Good role models are hard to find
I’ve found it very hard to find success as a freelance programmer. One of the things that makes it so hard to be successful is that there are so few freelance programmers out there who have achieved what I would consider success.
What do I consider success? If I’ve managed to create an income or lifestyle that’s substantially better than what I would be able to have at a regular job, then that’s success. (To quantify this, I would not consider $150/year working 40 hours a week to be freelancing success. You can get that at a regular job. Something like $300K/year for 20 hours a week with a lot of vacations would be more like it.)
Alan Weiss wrote, IIRC, that his ideal client would pay him $5 million a year for 15 minutes of work. Me and Alan Weiss are on the same page as far as what success means.
The sad fate of most freelance programmers
In my observation most freelance programmers end up in one of the following three scenarios:
- Give up on freelancing and get a job
- “Succeed” by managing to pay the bills but with no lifestyle or income gain over a regular job. (Most technical “freelancers” and “consultants” are just full-time contractors, effectively employees who happen to be paid hourly instead of salary.)
- Actually achieve the dream of creating an abundant income and exceptional lifestyle
This list is in order of most common to least common. Scenario 1, “give up”, probably accounts for the ultimate fate of 75% of freelance programmers. Scenario 2, pseudo-success, probably accounts for almost all the rest. If I had to guess, I would guess that fewer than 1% of freelance programmers actually achieve #3.
There’s also the career path of building an agency. I’m personally not interested in that path. My goals are to make a lot of money and have a low level of stress. I judge agency ownership to be a poor bet for both those objectives relative to other available options.
What the successful technical consultants do
Over the years I’ve been able to discover a small handful of technical consultants who seem to have built a good career for themselves. They are:
- Reuven Lerner
- Wes Bos
- Todd Motto
- Ryan Waggoner
- Jonathan Stark
- Nader Dabit
- Alain Chautard
- Mike Julian
- Corey Quinn
There might be one or two that I’m forgetting. But in seven years of freelancing, the number of freelance programmers I’ve encountered who I’d gladly switch places with is pretty much fully contained in the above list. I think this is very important to understand. There aren’t a lot of successful freelance programmers out there.
(By the way, I have to mention Matt Inglot because he’s one of my favorite people in the world and gives a lot of great freelancing advice. He personally went the agency route though and I’m focusing on solo consultants in this list.)
Why would I gladly switch places with the people on the above list? Because I understand them to be making a lot of money and to have a decent lifestyle. For example, in a post called The Prosperous Software Consultant, my friend Nader Dabit claims to have made between $200K and $400K for four years straight, from Mississippi. I believe Ryan Waggoner makes no secret of his claim (a claim I believe) that he has earned $250K/year freelancing while working about 20 hours a week. I understand others on the list to be doing similarly well or better, although I don’t want to publicly share numbers without permission.
So, these people earn hundreds of thousands a year. How do they make their money?
Here’s a list. What follows is just my understanding and isn’t necessarily completely accurate.
|Wes Bos||Training, product sales|
|Todd Motto||Training, product sales, development|
|Jonathan Stark||Training, consulting, development|
|Nader Dabit||Training, development|
|Alain Chautard||Training, consulting, development|
By the way, when I say “consulting”, I mean getting paid purely for providing counsel, not implementation. A lot of people refer to writing code as consulting, but I don’t define that term that way.
The other question, after “how do these people make money?” is “how do they get their work?”
How successful consultants get their work
My understanding is that successful technical consultants get their work via the following marketing tactics:
- Conference talks
- Local user group talks
- Podcast hosting/guesting
- Blog posts
- Self-published books/ebooks
- “Real” technical books with reputable publishers
These tactics have varying degrees of effectiveness. Writing a technical book for a publisher carries with it a lot more weight than just writing a few blog posts on the topic, for example.
How I’ve implemented the tactics I’ve observed in successful people
In the last few years I’ve done the following:
- Spoke at conferences and user groups
- Started my own podcast and appeared on other people’s podcasts
- Written technical blog posts
- Put on both free and paid online workshops
- Written an ebook
In my experience the benefits from each of these activities come obliquely.
I used to imagine that if I were to speak at a conference, someone in the audience would come up to me afterward and ask me to work for them. I think that happens sometimes but I think a different scenario plays out most of the time.
Last month I spoke at Little Rock Tech Fest in Little Rock, Arkansas. They had a speakers’ dinner where I ran into one of the other speakers who, in a crazy coincidence, I had actually met before in Michigan. He and I had a chance to hang out at the conference and deepen our relationship. One of the other speakers worked for CircleCI. I invited him onto my podcast and he said yes. In another crazy coincidence, I ran into someone at Little Rock Tech Fest who I had met at Double Your Freelancing Conference in Virginia in 2015. She actually had a project lead for me. So I didn’t meet any actual prospects at this conference but I met people who could introduce me to prospects.
Pretty much all my speaking and writing has been on the topic of Rails testing. Just how it happened when I wrote Angular for Rails Developers and became known in my network as “the Angular/Rails guy”, I’m now becoming known as “the Rails testing guy”.
A week or two ago someone in my network approached me about giving a paid talk inside their company on the topic of Rails testing. As far as I know, this person isn’t a subscriber to my email list. I doubt he actually consumes the content I create. I’m guessing he just became kind of peripherally aware of the work I do. Because I put out so much Rails testing material, I’m perceived as a Rails testing expert (whether I claim to be or not) and it generates leads. I understand this happens with book authors as well. Clients hire the author for consulting projects because of the author’s book, even if the client never cracked open the book.
Empiricism is key
I hope you’ve noticed throughout this post that I’ve tried to be ruthlessly empirical. I’m not asking myself, “What do the freelancing gurus saying I should be doing?” I’m asking, “What are successful technical consultants actually doing?”
There’s a lot of bullshit freelancing advice out there. Some freelancing advice is bad simply because the advice-giver is (wittingly or unwittingly) full of shit. The advice-giver means well but he or she sells some untested theory that sounds for all the world to everyone like it’s a great idea, but in practice, doesn’t actually work.
Other freelancing advice is bad not because the advice is actually wrong, but because it’s the right advice applied to the wrong person. For example, I often read advice to go to Chamber of Commerce or BNI meetings. That advice might work plenty well for someone selling auto insurance or even brochureware websites. That tactic will not work for someone like me, trying to sell Ruby on Rails testing services.
I’m a beginner
Speaking of bad advice, I don’t want to add to the problem and give bad advice myself.
So let me be clear that I’m a beginner in the skill of getting good clients. But in the spirit of being empirical, I can share a couple of the successes I’ve had.
A couple years ago a local friend of mine introduced me to a prospective client who needed an instructor for a bootcamp. Me and the prospect made a deal and continue to work together this day. It’s been one of my most enjoyable and most lucrative consulting engagements ever. I attribute this success to the fact that I had developed a reputation in my local community as a speaker. Because I regularly gave tech talks at local user group meetings, I became known as a knowledgeable developer and teacher. I also met a lot of people that way. One of the people I met was the person who introduced me to this client. So the takeaway: speaking works. (Caveat: aside from that one ideal lead, speaking at local user groups has not led to any other client engagements of nearly equal quality.)
About a year ago I wrote a few blog posts on how to get Rails set up on AWS. A couple months ago someone contacted me who was trying to follow my tutorial. He didn’t have a background as a developer. Ultimately he just hired me to build his project for him. This has also turned out to be one of my most enjoyable and lucrative client engagements ever. My takeaway from this: writing works. (Caveat: again, aside from this client, I can’t recall any other clients who have found me this way.)
The last example I’ll give is a recent scenario where I was looking for a job. I announced on my podcast that I was looking for a job. I said the same thing to my email list of a few hundred people. As a result, a number of people wrote to me and invited me to apply to work where they worked. This resulted in a number of actual interviews. I ended up calling off my job search but it was an interesting demonstration of the power of having built an audience. I imagine that if and when I do the same thing saying I’m looking for consulting work, the effect will be similar. Charles Max Wood has told me that on the occasions he has announced on the Ruby Rogues podcast that he was looking for work, people would always respond.
I might characterize the takeaways from this post as:
- When studying what works and what doesn’t for getting new clients, be empirical
- Speaking and writing are good ways of attracting clients – but not all speaking and writing channels are equally effective
- Building an audience and getting prospective clients to knock on your door is much better than going around and knocking on prospective clients’ doors. In my experience the prospect conversations are generated obliquely. I don’t attract the clients themselves, I attract people who are connected to the prospects and introduce me later.