Currently contracting through oDesk. I tend to average about 25 billable hours per week, with the remainder of my time split between learning about technology trends and working on long term personal projects. This led to a six month stint last year as a contractor at a local business that is exploring startup approaches like Agile/Scrum, which was an overwhelmingly positive experience. I was also lucky enough to be a contractor at hp for a year in 2005 but didn’t recognize the potential of making it a career at the time.

Before that I had many years of negative experiences working as a furniture mover, a web developer, a Macintosh technician, and your local neighborhood computer guy. I survived for a year after the housing bust on $6,000 I made flipping PowerPC iMacs that were suffering from the bulging capacitor issue that’s been plaguing electronics. I scratched out income any way I could to support a floundering shareware business, hoping that the “if you build it, they will come” philosophy would pan out, but unfortunately it never did.

If I was a student again and had it to do all over.. hmmm what a question. I think that even today I consider £30,000 a year to be a good income, although a contractor can certainly make more than that at the going hourly rate if they reach full employment. It might help to take a step back and look at software development like any other kind of development. For example in real estate, there is earned and unearned income, and each type has its advantages.

There will always be money in the first type, because people always need things done. Historically contractors have generally been paid more than full time employees, because they are responsible for their own equipment, training, insurance, retirement, etc. Software development requires a great deal of education. If you add up all of the hours, not just in school but on personal time, it’s comparable to a being an architect or civil engineer. Except instead of leveraging the efforts of subcontractors, we employ code. So there is a potential there to make considerably more money. There is no ceiling on income for software contractors.

The second type works more like speculation. Yes, a client might make a million dollars from the code you develop. But the odds are extremely high (I would put them around 50/50, maybe even up to 90%) that he or she will break even or possibly lose money. The contractor gets paid first, after that it’s anyone’s guess. I had every advantage (a degree, a brief period of no bills living with my father after I graduated college, even a dot bomb to open up opportunities over the competition) but I was unable to find any traction with the products I was creating. The tech industry has rose colored glasses. For every overnight success, there are hundreds, even thousands of failures. Successful speculators in software are like the ones in real estate. Generally they just don’t touch the code. They’ve either put in their time and earned their wings, or they have a personal calling inside themselves to outsource the details and focus on the big picture. And perhaps most importantly, they have access to capital. I have come to peace with the fact that I would rather be in the trenches than flying a desk.

But say it’s the year 2000 again, I’m fresh out of college and Facebook hasn’t been invented yet, and I want to be in the second camp. It’s not going to happen selling shareware games, or scratching out a living doing odd jobs, or pulling all nighters with other hackers. As far as I can tell (and the simplicity of this took me a decade to grok), the secret is growth. I know it sounds mundane, but if you look at any successful company, they are always growing. So fresh out of school, I would have done my contract at hp first, to just see how established companies do things. Everything is about interoperability, passing data back and forth to different teams, being able to explain your work to others. It’s vanilla, and boring, but allows for scale. Then I would have taken my savings for the year (I would have only spent about a quarter to half of my earnings) and used that to bootstrap myself over the next year, meeting local developers and the clients they work for. I would have found myself designing websites, probably learning about the gotchas of scaling databases, but today it’s all about apps and SAAS and scaling interfaces and interoperating with mobile devices. I would have quickly found that there is high demand for such work. High enough that I couldn’t respond to all of the job invites coming my way, and would have to make a choice either to become a team of developers or cater to more selective clients. At some point I would have crossed a threshold where my priorities switched from survival to planning. To me, that means having six months of income or more saved so you can work on your own without answering to anyone. And more importantly, having a trade that allows you to build your savings again in case of failure (which is likely). Then I would have had a history of a few successfully completed projects under my belt, and could think about hiring myself and others.

Then I would either write a solution for a company and sell it at $10,000 a pop, or look at the niche they are ignoring and write the app that fills it. Knowing how I am, I’d go for the second option. It’s almost always something that people want really badly, that they’re willing to pay for, that they just can’t get easily (preferably software related so it can scale). In my fantasy, this would be a wifi box that gives you free internet by way of distributed hashing (hey, I can dream, that’s why I got my degree in computer engineering), and I’d just build them out of my garage and sell them locally for a few hundred dollars each until we hit scale. Maybe another option is a $99 app that runs on your cell phone, something that crosses wifi mode and tethering to create a mesh network. The prospect of canceling one’s internet and cable bills is almost too sweet to think about rationally. Then everyone in the country would want one, and we’d have more work than we could handle, and we’d sell to Elon Musk or Richard Branson or whoever for a billion dollars. I probably have, I don’t know, a few dozen, maybe a hundred ideas like this that I would like to do, but never had the savings to attempt such things, until recently. Most of them are not nearly this audacious.

But just out of college, my highest priority was “just finishing this game I’ve been working on for years” and I missed out on a ton of opportunities. So I think that kind of nagging, soul crushing worry is something to be very wary of, because it’s hindered the careers of countless developers. I should have focused on a concrete product, with say a three month development time, that I could sell for real dollars, that people would tell their friends about. The shareware and app markets are saturated, so for a fraction of the effort, I could have created new niches. I should have listened more closely when my family had trouble setting up their email and written a $5 solution for them, that solved the decision tree of username, password, pop/smtp, ssl, etc once and for all, and sidestepped the necessity of hosted tools like gmail. I remember being surprised that Apple implemented it in their Mail.app years later. Such low lying fruit could have been so lucrative in the early 2000s. It would have sidestepped app stores and marketing by going viral. Crossing that magical curve from $100 a month to $1,000 and then $10,000 would have put me well on my way to making a meaningful contribution. Instead I floundered, and let the internet lottery distract me from networking, bootstrapping and compound growth.

P.S. It’s worth noting that I’ve only had a six month cushion twice in my life, and didn’t keep my eye on the ball. I let others talk me out of it. Those times were after long term contracts, but my current goal is to get there independently. Sorry this got so long.