Freelancing: 2 Years of Learning and Evolution

Last year was my second year as a freelance programmer, and I’d like to continue my habit of retrospectives, so here’s another. My primary work philosophy has been to figure out how much I need to earn each month, and then work as part-time as possible to earn that amount.

2012 was a sort of proof-of-concept of that strategy, and demonstrated success in the various aspects of that: I was able to accurately predict how much money I’d need, I was able to land gigs to earn that money, and I greatly enjoyed all the extra free time I had as a result.

Based on the success of 2012, I felt very comfortable in 2013 to dial back my hours even more. Here’s what my monthly hours looked like over the past two years:

2012 (the left half) was erratic while in 2013 (the right half) I worked less, but more consistently. In 2012 I averaged about 13 hours per week, while last year I averaged about 8. What is most interesting is that I was able to reduce my weekly hours by 62% while only reducing my annual income by 12%. That’s because last year I was able to increase my effective hourly rate by about 53% compared to 2012.

I didn’t change the hourly rate I advertise to clients, so how did I increase my effective hourly rate?

  1. Preferring project-based contracts to hourly contracts. These allow me to quote a fixed price, and the faster I get the project done, the more per hour I make. Having had good experience in 2012, I felt confident enough in my estimates to push for more project-based contracts in 2013, which have proven to be much more profitable.
  2. Recurring income. I’m now covering 26% of my monthly budget with recurring payments for hosting and support, whereas I ended 2012 at around 15%. I’ve previously spent some time making sure my hosting and deployment is unified and simple, so while I almost doubled my recurring income year over year, I certainly didn’t have to double the amount of work I have to do each month to keep all the sites up and running well.

It’s also nice to see that my client base is becoming more diversified and that I’m relying less on any particular client as an income source:

  • Number of clients invoiced. 2012: 6, 2013: 9
  • Per-client average. 2012: $12,595, 2013: $7,418

For 2014, I expect I’ll continue working around 8 hours per week, and focus on building Django apps from scratch, which are my favorite projects and lead to recurring revenue. I’ll also continue working on personal incubation projects like BatchedInbox; I’d love to be partially supporting myself with those. Definitely let me know what your contracting or salaried experience has taught you, and if you’ve got any questions or suggestions!


  • Victor Varvariuc

    Hi Mike! I am also a Python developer looking for ways to make more time to spend with my family. What would be advice on this?
    BTW, I cannot see the image with graph.

    • mrooney

      Hey Victor, that sounds like a great idea :) I’d recommend checking out the resources section ( where you can read previous posts with more detail on getting started, as well as books that helped me a lot. If there are any questions that doesn’t answer, certainly let me know!

      • Victor Varvariuc

        Thanks for the [unexpected] feedback! I’ll definitely research the recommended links.

  • Pingback: Freelancing: 2 Years of Learning and Evolution ...

  • Matt

    Hi Mike! I read this post last year, just when it hit the press and I was looking forward for a possible sequel (triquel?) in 2015. Just wanted to ask if it’s in the works or if I should be a bit more patient :). Hope all is well and happy (belated) new year!