Stories about Software


Be a Freelance Web Developer? You’re Asking the Wrong Question

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 Web 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 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.

Becoming just a freelance web developer can feel like this hamster running on its wheel.

When you’re sitting in a cube farm somewhere, 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.

And, speaking of the long term, they also have a path out of the endless fire-hose drinking of new technologies.  Once you call it a development career and go into management, you stop having to learn a new Javascript framework every 4 days.  But as a freelance generalist on Upwork, you have to do that forever.  Or, at least as long as you’re a freelance web developer.

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 freelancers consultants.
  • 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 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 time line, 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 on them to figure out how you might be useful.

newest oldest most voted
Notify of

[…] you like posts along the lines of the one I made Wednesday, then I suggest a couple of podcasts.  First, the Freelancer’s show, and second, the podcast […]

Rattan Chauhan

Wonderful read! Really liked your post and I fully agree with your views that we should strive to become a problem solver than trying to become a freelancer who knows few languages or frameworks.

Erik Dietrich

Glad you liked. Thanks for the feedback!


Definitely the best post on freelancing I have ever read! I always wondered “and then?” when I was reading those Toptal-like articles.

This is brillant. Thanks a lot for that.


How would you start approaching executive types? Especially as a scruffy nerdy looking programmer?

Hey Eric, As someone who started freelancing fulltime about 4 months ago, I thought I’d share my thoughts on this. Just a quick note about sites like Upwork, freelancers are not relegated to these platforms for work. I have made long lasting contacts outside of Upwork through referrals, with the trade-off being that I need to start chasing my payments 🙂 I think your post is missing one vital bit of information. Being “promoted” to architect/manager/whatever, is not the next stage of a developers career. Most developers I’ve worked with think this is a natural progression and stop learning in… Read more »