I get a lot of reader questions about freelancing. People interested in freelance web development or freelance mobile development or what have you. I applaud the desire to go free agent, and I think you should do it. But I think you get a lot of bad advice about how to do it. Bad advice at a philosophical level, that is.
Today I'm not answering a specific reader question, though. Instead, I'm just going to talk about going freelance. I did this years ago and have had a good run. But I really wish I knew then what I know now. Hopefully, I can help you get to joy a lot quicker and in less roundabout fashion than I did.
And don't worry. I've stated that you're asking the wrong question, so I will, eventually, get to what you're probably wondering - what is the right question?
Freelance Development? Here Are Some Tips (That Help Us Make Money Off You)!
If you google advice about freelancing as a developer and about freelance web development, specifically, you'll probably find a lot of advice from a certain kind of site. Fiverr, Upwork, and Toptal are all happy to help. They'll tell you how great it is, saying things like:
- Be your own boss!
- Have work-life balance.
- Choose your projects.
And they'll offer you advice, like:
- Beef up your breadth and depth of tech stack knowledge to have the most opportunities.
- Build up your portfolio so that you can show it off.
- Create and promote your personal brand through a website, user groups, conferences, etc.
- Get your business affairs in order.
All of this is actually good advice for your immediate future. Full stop. This stuff will help you blast out of your salaried job and into the world of self-employment - they're right about that.
But here's the rub. All of these sites are providing advice to you on how to be a good product for them to sell. Think of these the way you'd think of recruiters giving you job search advice. They want you to do an excellent job with the next stage of your career and go exactly no further. This makes sense since they earn their revenue pairing freelancers with companies in need of short-term labor.
Freelance Development Is Basically Just Job Hopping
If this whole thing sounds familiar, it should. It looks an awful lot like recruiters helping you from job to job as soon as you're willing to jump. The difference? The world expects you to jump as a freelancer, but feigns shock when you do it as a salaried employee. Freelancers jump - it's what they do.
But make no mistake - the difference is only that you jump perhaps a little more often and that people expect it.
Do you want to know what I thought freelancing would be like when I started? I'm actually chuckling a little as I type this. I'd had some moonlighting gigs in the past where I did 5-10 hours per week of work in my spare time for someone. So I just assumed that I'd find 4 app dev clients that wanted about 10 hours per week of work.
I'm not chuckling because this was or is a stupid thing to assume. I'm chuckling in irony because of how much the world turns out not to work that way.
You get into freelancing assuming that you'll have a bunch of clients and diversity of work, handling multiple projects at once. But what you'll wind up doing is taking sequential gigs with periods resembling job searches in between.
This Is a Hamster Wheel
You're going to need something more than this, eventually.
When you're sitting in a cube farm somewhere, with a pointy-haired project manager asking you for TPS reports, freelancing sounds great. But serial gig freelancing puts you in sort of a career purgatory. You leave and quickly start making more money, which is cool. You also have a lot more freedom, which is also cool. But the novelty wears off, and this simply becomes your (definitely cool, but not new) life.
Meanwhile, you eventually stagnate and hit sort of an earnings cap. There's only so much that "freelance web developer" can charge per hour. Once you hit $150 per billable hour, that's kind of it. No matter how full your stack or nimble your fingers, if you raise your bill rate, clients will just find someone cheaper.
Now that probably seems great compared to your soon to be former cube mates, those suckers. But years later, when you're capping out, they're getting promotions to architect, then manager, then VP. Their advancement may be slower in the short term, but they have no cap the way you do.
Don't Seek to "Freelance"
You can leave your job. Once you're ready, I suggest you do so. Wage software development is a bad economic deal.
But freelancing is not a destination or a journey - it's a temporary stop. You need to make a plan beyond freelancing. And, while you're at it, don't call yourself a "freelancer" but rather a consultant - that alone will let you bill higher rates. "Freelancer" makes you sound like you're living with your parents while you dabble and sow your oats.
To understand why I say this, consider a few things that someone with software development skills could do to make money:
- Sell books to software developers for a few bucks, like I do.
- Build a SaaS that makes accounting easier and sell subscriptions for $29.99 a month to aspiring
- Make a killer new source control technology and sell it to dev managers and directors for $10,000 per department per year.
- Build a sophisticated static analyzer and sell it for hundreds of thousands per year to CIOs of large companies.
These things have a lot of differences. You're selling significantly different things for different amounts of money, to different people. They'd have different business models with different sales and marketing plans. You'd need different amounts of staff. In fact, they really only have two things in common.They involve software, and there's an actual human being - a buyer - who has the power and the money to purchase them.
But those commonalities make all the difference. If you want to have a stable, successful career in software with no hard ceiling, you need a buyer and you need to not sell things to that buyer by the hour. And you accomplish neither of these when you freelance.
Freelancers, Like Employed Grunts, Don't Have Buyers
I discussed this in detail in a recent post, but I want to restate it here. When you sell "freelance labor" you're selling something that's going to have a price point in the neighborhood of $50,000 to $200,000 or more.
You know who has the money to buy stuff that expensive? Executives.
But do you know who couldn't possibly care less about full stack this, REST-that, JSON-whatever, and React-blah-blah? Executives.
That means you have no buyer. Your 'buyer' is a system. And that system gives you whiteboard interviews and purchases by process and committee. That's no good. You need to speak directly to your buyers.
But beyond just speaking to your buyers, you need to appeal to them by helping them solve a problem they have and will pay you to solve. As a freelancer, people give you specs and you give them code. As a consultant with something to offer buyers, buyers give you problems and you give them solutions. For instance, consider the difference here.
- Hiring manager tells a freelancer they need someone with PHP/MySQL/WordPress/etc. and interviews you.
- Buyer with a pizza shop tells you he's getting killed because his competitors have online pizza ordering and he needs that too. He'll pay you $10,000 and could not possibly care less what a WordPress or a Python is.
Your Long-Term Prospects Improve as a Consultant
What you've done with the latter example above is move up the so-called value chain. If you work for the pizza shop as a freelancer, some project manager there has already figured out all of the technologies and specifics and such. You're just there to toil away with a spec.
If you work for the pizza shop owner as a buyer, he wants you to solve his problem - "help me compete with other stores that have online ordering." He's relying on you for execution, but, more importantly, he's deferring to you for your expertise. You now have more freedom to solve the problem as you see fit, using technologies that make sense to you. This helps you get off the hamster wheel I mentioned earlier.
Successful consultants specialize in a variety of ways. Your specialty might become "I help pizza shops automate to get an edge on the competition." Within this specialty, you can start to develop offerings that involve app dev, but also transcend it. For instance, maybe you develop the following as a product/service ladder.
- Website audit and project roadmap.
- Stock website build.
- Custom website build.
- POS upgrade.
- Some kind of business-specific SaaS that you sell to pizza shops.
You get the idea. Now you have an entire business that doesn't involve specs or billing by the hour. You can write plenty of code, and the code you write will make your service delivery more efficient, boosting your effective hourly rate. And, if you get tired of constantly keeping up with technology, you can shift your offering to the more strategic/consultative, or you can hire people to handle the execution.
You're no longer relying on familiarity with shiny new technologies as your differentiator. Now you're winning business because of your considerable (and growing) experience with pizza shops.
So What's the Question You Should Ask?
I promised you that I'd give you the right question to ask, since "how to be a freelance web developer" is the wrong one. The right question to ask as you contemplate ditching the nine-to-five is, "who will I help, and what will I help them do?"
It's a generic question and a really tough one to answer against the backdrop of your career. It's also one you may change as your career develops and you pivot. But regardless, it's critical that you answer this before you do anything else.
Answering this question will help you develop an offering that gets you off of the hamster wheel. It'll even help you with your blogging, speaking, and content marketing. It will focus your business and get you paying attention to what you'll do and why, instead of obsessing over how you do it.
In the end, tech stacks don't matter. Portfolios don't matter, and hourly rates don't matter. On a long timeline, all that matters is who you help and what you help them do. So by all means, take the plunge and go off on your own. It's incredibly rewarding. But have a plan for how to help people - don't wait for them to figure out how you might be useful.