6 ms·
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
by zackmorris 13y ago
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.
- 1morewebdev 13y agoThis is very helpful. For something as important as how to make money, a long answer and detailed one like this is welcome. I'm currently at a technical skill level between "freelancer" and "consultant" (loosely speaking, that is). This is useful advice. Thanks.
- russell 13y agoGood post. If you are starting out, it's well worth listening to guys who tried hard and didnt quite get the brass ring. One trap that Zack and I both fell into is consulting. He had a lot of small contracts for a modest income, while I had multi-year contracts for a good income. I averaged $165K for more than a decade, but if you take out the health insurance, vacation/holiday pay, and don time, it's no better than a good paying job. In California it wont make you rich. And you can get trapped in older technology. The pay is good because no one else wants to do it.
- russell 13y agoHey Zach, advice to you from an industry elder. From your comments, I would put you in your late 30s, young enough to be scrappy but experienced enough to be on a founding team. The only reason for doing is to gain industry domain experience. (Software doesnt count.) The domain can suggest startup possibilities. Consulting income is a trap, unless you make massive savings. Dont look back at what might have been. I worked on a VisiCalc equivalent on a 7094 in the 60s. One of the members of the founding team of Sorcim worked for me (remember SuperCalc?). Dont say I didn have my chances to be rich and famous. Dont look sideways. If it is being done now, someone has beaten you to it. And someone else is working on the second generation. Dont scratch your own itch. Software itches dont make money. Too many smart people doing the same thing. Do cultivate relationships. Do look for other people,s problems. As you noted , if it bugs the common man or the elderly, it is probably an annoyance for everyone else.
- zackmorris 13y agoHah you got me, I'm 36. I also agree that consulting can be a trap, but for the reason that it's not scalable. A consulting firm is only worth about as much as its employees, so there's no real exit strategy. I guess I'm kind of lucky that I don't live in a big city so can afford to dabble in it. But it does sting sometimes to not receive residual income for past work. Cool to hear about your earlier escapades. My business partner and I were just getting a foothold in Mac OS 9 shareware games when Apple switched to OS X and antiquated the code we had worked so hard on for 5 years. I took it really personally and suffered several years of depression. Things didn't turn around for me until I stopped using my own code. Now I don't maintain an "engine", I just scavenge commonly used code and find that it shields me from the whims of proprietary APIs. I guess what I’m trying to say is, I also look back on what might have been, and sometimes wished I had been born 5 years earlier, when things were “booming”. But it’s an easy trap to fall into, because at least for the time being, programmers’ leverage is increasing faster than competition can fill the niches. Kids today, what with their supercomputers and megabit internet connections and being able to stand on the shoulders of giants’ open source projects! Get off my lawn! In my day we didn’t even have the internet! We had BBS’s, and floppy disks that stopped being readable, and books.. paper books! Imagine such a thing! And girls didn’t even use computers! Neither did teachers! Can you imagine? I too have often wished the geeks and hackers of the world were better at networking. Generations of potential have been lost to reinventing the wheel. It’s kind of ironic that we’re so able to communicate in this distributed fashion and solve problems but have so few interpersonal and professional relationships.