Sunday, October 9, 2011

Quasio - contact filtering application

Well well well... It has been sometime... I have been busy and have experienced some hardships in life with close deaths in the family but I am back! The long awaited Android application that I have been building is out. Quasio is out and available:


The full details are in the link. I will post what I shared with a group of techies via email in this blog for public consumption. This will cover the story and motivation behind the app... Here we go:


The idea for the application came about while transferring cell phone providers. I bought an Android phone because I wanted to develop applications and create a passive income stream from it but had no idea what those applications would be. While transferring numbers from my old trust worthy BlackJack phone to my new Android HTC EVO phone, I tried to get software to do it but could not find one that could do it conveniently. As you would imagine this can be a nightmare when you have lots of contacts which you then have to manually transfer over wasting precious time. Through this frustration a thought came to my head: Why am I transferring Jane and John Doe over when I barely speak to them? I do not want to delete them, but it would be nice if there was an application out there that would hide contacts if I have not spoken to them in X days, weeks, or months...

Application Idea Was Born:

I first did some application searches in the Android Market to find an application that can do this reasoning: "somebody else on this big planet must have experienced the same frustration and need the same thing... I am pretty sure this exists out there, I will just buy it and be done with it", but to my surprise, nothing existed in the form that I wished it had. I then said, "let me just move people into groups and manage it that way. This is a feature available in the native Contact application." The developer in me, i.e. the lazy developer in me spoke loudly and said: "I am lazy! I would prefer for the phone to do it for me." So it was time to scratch my itch and get it done! I bought an Android book from Manning:

Android in Action, Second Edition

and read the book in a week and was pumped up! It took me 3 weeks to develop the application (nights and weekends with some slacking :( ) and then I spent another week or so building in the security leveraging Google APIs and recommendations. I told some of my friends (software developers, QA testers, and non-techies) about the app and invited them to a private beta testing. We tested for about 2 weeks and fixed some bugs and usability/UI issues along the way. I was finally in a position to release the application and get it out to the market (so exciting to own your own product!!!)

Application release and Marketing effort:

I was very apprehensive to release the app to the market without a marketing effort and knew that sales would not be good without rising above the "noise levels" within the Android Market. The Android Market has to date 250,000 (this is a stale value and is increasing all the time, this value came from Wikipedia). I became concerned with this number and came up with the idea of creating a commercial to somewhat mirror the "Mac vs PC" commercials. I will not spoil it for you so I will provide you with the link as soon as it is fully edited and ready for YouTube prime time (I am starring in the commercial despite the good efforts of my director and producer trying to fire me from the commercial and get a professional actor lol! My ego wanted to be in it so I refused to be replaced, lol, Besides I write code, how hard can it be to act?). I am also creating a video that will dive into how to use the app and cover questions that may commonly arise among first time users.

Despite not having the marketing engine in place, I released the application to the Android just to make sure it works and because some of my friends have been waiting to purchase it! So it has been released and has been out for about 2 weeks to date:

The full description of the application is in the link so I will not fully explain the functionality here to avoid redundantly covering it. To sum it up though this is what the application does:

  1. It breaks up your contacts into 2 groups: active and inactive (all contacts with phone numbers on the phone are automatically synced with the app and are kept in sync)
  2. It allows you to set how long between conversations (text/phone) active contacts show be moved to the inactive group; so if you set it to a week and you have not called/texted John Doe or John Doe has not called/texted you in a week, John Doe gets moved to the inactive list automatically. The minute you contact John Doe or John Doe contacts you, John is automatically moved to the active list (you can also move people manually if you want)
  3. Active and Inactive contacts are sorted by how often you talk to them then name. For instance, if you talked to John 10 times and Eddie 9 times, John will be on the top of the list because you have interacted with him the most
  4. The app lets you add, delete, call, text, edit, move contacts between active and inactive groups, and view the call log

This app will save you from scrolling/searching/using-shortcuts to find people you talk to the most in the sea of contacts on your phone. This is what I wanted for myself because I hate wasting time doing all of that.

The app price is $1.99 which I think is a fair price point but may be subject to change. I do not believe in the Google model of giving things up for free in the hopes of monetizing applications via adds. Ads are good for certain types of applications like applications with contextual information that may cover a particular niche, subject, and/or topic. This helps both the business advertising and the content provider, leading to higher conversion rates due to its relevance to content and avoiding spamming the user with useless ads. My application has no content to speak of other than your contacts which is not relevant to any advertiser so I would hate to steal their money with clicks that will likely not lead to the desired action.

Another thing is that the major benefactors of ads are the ad networks, i.e. Google and the rest of the ad providers, unless as I have said before that the application itself provides content related to the ad and therefore produces ads relevant to the user base.

IMHO developers should be paid for their efforts and businesses since the dawn of time have been run on revenue and profits and not the hopes that people will click on ads. Every other sector of society expects money for their services, it is about time we as developers start to ask for the same (doesn't have to be much but something we also need to eat!)

That is the end of the email thread. Hope you enjoyed!

Follow me on Twitter mrosario2012

Saturday, May 14, 2011

Diversify Your Life Portfolio

Lately, I have been working pretty hard on an Android application for a new contact management system (finally!!) and have been just doing that after work and on the weekends. It has been time consuming because I had to read a book and learn the platform (which I do not mind because I am a software developer and love coding), and has practically been the only thing I have done in the past few weeks. This is fine and actually recommendable when comes to building a product, business, or service, but can cause havoc to your emotional and entrepreneurial health. Why can it be dangerous to your emotional and entrepreneurial health?

In a word – failure. If what you are working on fails to get to where you expect to, or just doesn't go anywhere, you will take an emotional and entrepreneurial hit that may put you out of commission. The journey to achieve financial freedom is a harsh and hard road one has to travel that has hurdles, bumps, and maybe some discomfort. Because of this inherent risk, I believe people should diversify their happiness or life portfolio to hedge against and minimize the risk of failure in one area of life. Tim Ferris discusses this in part in a blog with 37Signals.

We should be involved in multiple things in life outside of business. Tim recommends having a physical activity to balance your life like going to the gym and setting exercise goals. This way if one of your weeks is bad on the business side, but you've reached a milestone in the gym, you will not feel entirely bad and may actually not even get upset at all. I think this advise is solid and should be obeyed like a commandment. The activity outside business could be dance classes, learning a new language, taking a class cooking, sculpting, teaching your children, volunteer work, etc; just something else where you can achieve, or help someone; this will feed your ego.

Life is hard and the road paved for entrepreneurs is tough, so be smart about your pursuits and try to strike a balance. This will help you make it through the hard times and overcome the setbacks. Stay positive, keep positive people around you, and soldier on in the battle for independence!

Follow me on Twitter mrosario2012

Friday, April 15, 2011

Fight the resistance

Often times, we want to get stuff done to accomplish a desired goal but fall short of accomplishing it. A short list of culprits:

“I do not have time”
“I just do not see the point. I may put in a lot of time and get nothing back”
“I am exhausted after work, forget it man. I rather play Xbox or watch tv”
“I have too many commitments, I cannot add another to the list”
“It's futile man... I will quit while I am ahead”

Excuses like these are just a way to protect your ego from your lack of commitment to get things done. When I mention this to friends I often hear, “I only have one life to live, I am not going to waste it”... Watching TV is not a waste of time? How much entertainment do you need in your life to feel satisfied and get on with what needs to be done to progress? I am a firm believer that pleasure should be rewarded only after hard work.

Everyone has interest in succeeding but few make the commitment to see it through. It is easy to talk and bs your way into feeling good with bs-sessions. The hard part, and the only way to get to where you need to go, is through work, not talk, work. Resistance is encountered when things outside of our normal sphere of comfort are challenged; this resistance is usually a deep societal and environmental training towards mediocrity that has a strong gravitational pull towards the easy path. It is time to challenge these assumptions and beliefs and question their roots. Is career thing for me? Do I want to be running with the rest of the rats on the treadmill to the retirement home? Why do I believe what I believe? Is it because I am afraid to be different and challenge status quo? Or is it because this was a thought I came up with after careful consideration?

Ponder this the next time resistance raises its ugly head. You have to choose to do it and see value in it in for it to get done. It may be hard and uncomfortable but you have to accept it and forge ahead. Challenge the voice in your head telling you to postpone action and “just live your life”. This voice is usually a lie or a mediocre cry from the years of indoctrination to “get with the program” and be like everyone else. Fight the resistance even if you are it.

Follow me on Twitter mrosario2012

Monday, January 31, 2011

Building equity with products

Software development is an awesome thing offering both pain and joy, but beyond that, it puts developers in a unique position. We can literally create a product out of thin air that solves a problem and adds value. Most of us do it for companies and receive compensation for it, others do it for their own business (we will leave out the hobbyists who do it for fun and the open source community in this discussion.) Which one builds equity and what should we pursue?

Let's start our look with default route people usually take en masse-- the employment route. Why is this the default? Schools prepare us for today's jobs or to become university professors. The institution of school was built to serve industrial means and as such must crank out good skilled employees who can serve the needs of industry. Sir Ken Robinson does a magnificent job at explaining how the system works and why it is deficient for tomorrows needs. How can school be preparing us for an unknown future? What will happen five years from now? One year from now? No one knows yet we pretend to be preparing our children for it... But I digress...

Going to school can be good thing and prepares us to meet the needs of industry today. As developers, a lot of us will study computer science and learn great things like discrete mathematics, hard sciences, math, programming, data structures, software engineering, etc. With this knowledge and skills at hand, we then hope to enter the workforce to build and/or enhance applications. This is an extremely pleasurable experience. Working on something you are passionate about and getting payed for it is the ultimate thing ever in my opinion. Here some of the other benefits of employment:
  • Steady and predictable income
  • Career progression
  • Working with a team
  • Growing personally and professionally
  • Learning new skills, technical and otherwise, from more experienced developers
  • Managing projects and teams
  • Working with people across regions and different cultures
  • Learning best practices
  • Getting to see what powers a company and how its technology infrastructure is structured
There are many more benefits to employment but there are some drawbacks as well. One I have come to notice as of late:
  • Ownership of your work belongs to your employer
In a corporate environment you get to build really cool stuff but own nothing and just take home what you have learned. The code is theirs and will be used to grow drive revenue or save money. Sometimes this revenue or savings can be in the millions. At my old employer, we used a vendors matching engine that was essentially nothing more than a 2-3 month project (at most), which the firm payed about 1-2 million for up front and had a maintenance cost of $200,000 dollars a year. Guest how many times we had to call them for support? Twice in 5 years. It's design was simple and elegant: a 2 tier C++ application hitting the database. Our applications fed it trade data from hooks we built to the database. The database had a series of triggers that called stored procedures or plain SQL that would take action upon receiving new trade data. It would perform matches when possible, report near matches, failed matches, and other exceptions to the users for their intervention. The matching engine was very flexible in the sense that we owned the database and were able to make schema and core changes to the database logic at will. 1-2 million dollars plus $200,000 a year for something we estimated would have taken 2 guys to build in 2-3 months. Amazing isn't it? Who would have thought that much effort would have that much of a return without being a rock star? Let's do some simple math here. Let's assume they would have paid 1 million dollars for it. That means that the 2 guys I mentioned in our estimate would have made $500,000 each (excluding the support income). Now assuming the worst case of our estimate, let's say it would have taken them 3 months to build. They would have each made about $167,000 per month. Not a bad wage huh? Remember this was just one bank paying this. Others banks would have probably paid the same with little hassle once they would have seen the competition pick it up.

Now obviously I am ignoring some costs here. The one cost of many I am ignoring here are the marketing costs and other miscellaneous costs. This would take down their earnings quite a bit. Another thing I failed to mention here is as well is how hard it is to sell to enterprise businesses or the Fortune 500. It can be incredibly hard from what I hear and can take forever for it to clear and for money and software to exchange hands. But the point I am trying to drive home here is the equity these guys would build from owning this software and that would increase overtime when enhanced it new features. Targeting small businesses would increase their chances of success as well (at a much cheaper price.)

This leads us to the final point of the blog and that is one of building equity. When you write software that you plan on renting or selling to the public, you are building equity overtime and increasing your net worth. The software business is sort of a copy and paste business model: build it once and correctly (or correct enough) then copy and ship the product to as many customers as you can acquire. The effort is not duplicated like when you are employed and have to constantly build newer things. You just have to build something people want or need once (with maintenance cycles of course) well enough and people will pay. Good thing about building a product is that it belongs to you and you can do whatever you like with it. One question you may have at this point is: how do I find a product people want or need? For starters, what do you want or need that does not exist or exists but does not meet your needs? What do family and friends our yours in unrelated areas of life want or need? What do people in the hobbies you enjoy want or need? There are many ways to find niches as described in this new book I am reading called Start Small, Stay Small: A Developer's Guide to Launching a Startup. I think any technical entrepreneur with ambition to get into the game should definitely pick up this book and add it to their arsenal. There is not talk here of chasing VC's and seeking millions in funding to get started. It basically teaches you how to build it in your spare time and on your budget. I cannot put the book down and have already started to employ his advice on market research using Google Adsense and other tools available online. Amazing read check it out.

Follow me on Twitter mrosario2012