From the end of 2009 to 2015 I've supported myself and my family as a professional freelancer – I've been a work for hire software engineer. And in that time I've never in my life made more money or done such varied and interesting work. A friend asked me recently how I did it and while that's a bit hard to answer, I was able to write down a bunch of rules that worked for me.

  1. Insurance. Accept that health care is a disaster and you're going to get hosed. 'Nuff said. ObamaCare did not make this better.
  2. Taxes. Put away 1/3 for taxes every month. That money goes in a separate bank account and is never touched. Or pay in advance every quarter which is what the IRS really wants.
  3. Two Gigs. Always, always, always have 2 gigs at the same time. I've always striven for a full time (40 hour) and a half time (20 hour). That way when one goes south – and it will – you have a fall back. Accept that you're going to work at least 60 hours per week. Sometimes the amount will be more and sometimes less but, at least for me, that was the average.
  4. Rates. Keep raising your hourly rate. I've been guilty of not raising it often enough but if your skills keep increasing (and they will) then the marketplace needs to reflect that. To some extent your rate, if its not unreasonable, is a reflection of your skills. You want to be a mercedes not a yugo.
  5. Time Logging. Bill for everything. If you call an attorney about an issue, well, the clock starts ticking right away. If you're doing hard core software development then I'd argue that you're not different in skill levels. Keep track of your time and understand your minimum billing increment.
  6. Technical Excellence. As a freelancer all you are selling is yourself. Mediocrity isn't an option – that's for people with comfortable jobs. You need to be hungry. Hell I even have a full time job now and I'm at ElixirCon on my own dime because I'm committed to improving my skills.
  7. Personal Integrity. Never be afraid to walk away from a gig if you find it unethical or it puts you in legal jeopardy.
  8. "How High?" If the client says jump then your only answer is "How High?". I remember once getting a skype message at 10:30 at night before I was about to leave for a conference and the request was "Can I get a report of xyz". And, you guessed it, 3 am rolled around and the report was written, run and checked into subversion.
  9. Take Everything. I once took on some WordPress sysadmin work - 10 hours per month. That directly led to over $500,000 plus of on going Ruby / Rails work that continues to this day. Never, ever walk away from work. If someone is will to pay then you do the work. You say yes even if you don't know how you'll get it done – farm it out to another if you have to. Hell call me if you have to. ;-)
  10. Give Back. That WordPress work came out of a presentation I gave at ApacheCon in 2006. That's right I'm still making $$$ from a silly presentation that I gave once. Now I'll freely admit that I was lucky on this one. That was (and is) an absolute goldmine. Make presentations, write blog posts, tweet, write open source. Giving back always pays back.

The biggest question everyone has is "how do you get gigs?" This is the freelancer equivalent of asking a writer "where they get their story ideas". And the answer is pretty much the same. Just as ideas are all around writers, gigs are all around you. Technology is ubiquitous these days and that means that there is interesting technical work literally everywhere:

  • You know Sherwin Williams Paint? They're doing iPhone apps with computer vision to match paint samples. That means iOS development, android development, backends, etc.
  • In Noblesville, Indiana there is an ecommerce company doing tens of millions of dollars of industrial sales. You can't move that many units of anything without technology. How do I know? I gave some money to a fantastic charity and their founder introduced me to the president of that company and three weeks later I was helping writing code for them. Gigs are literally everywhere.

And that's just 2 examples. There are dozens of examples if not hundreds. Finally you want to network fiercely. That doesn't just mean LinkedIn and Twitter. Go out and talk to people. Do meetups if you have to but its always best to talk to non digital folk. Just as an example, I recently found out that my next door neighbor is a Vice President at Sales Force. I know it sounds a bit scummy but I have to think that knowing him, in addition to being a good neighbor, is worthwhile. Heck my kids play with his kids; if I didn't get to know him I'd be an ass.

Gigs are all around you!