I originally wrote this as a comment on Reddit. Since it ended up being 1700+ words, I figured it would be worth posting here too!
A caveat upfront: I haven’t done these things myself, because I’ve been lucky to have some awesome jobs I don’t want to leave. However, I’ve watched many of my peers try to freelance – some successfully, and some unsuccessfully.
So I think there’s still value in my observations. I’ve worked closely with marketing and sales teams more than once in my career, as well as having to deal with clients in an agency setting – so my marketing and sales advice is hands-on, real-world advice from the trenches.
Keep in mind that it’s entirely possible to follow the default route most people seem to when they try to go freelance – ditch the job, and try to pick up work by browsing Craigslist and /r/forhire. Or go to a freelancer marketplace like freelancer.com. The freelancers I’ve seen who attempted and failed never really advanced beyond trolling job boards, responding to lots of ads and hoping for the best.
The people I’ve seen do this successfully long term have realized that when you’re freelance, web development is no longer your #1 job.
Job #1 – Marketing
The goal of marketing is to generate leads. You can do this online, but it might be easier to do in-person networking. Having a good story helps here. “I’m a freelance web developer” isn’t a great story. It makes you sound like an undifferentiated commodity.
When you’re starting, something better might be “I’m a React developer who helps funded startups deliver features more quickly.” Now, instead of describing yourself in terms that don’t distinguish you from the tens of thousands of people in low-cost countries who will work more cheaply than you, you’re expressing yourself in terms of the business value you deliver.
And by specifying something like “funded startups,” you’re opting into a) a market that has money to spend and b) is in a position where they need to trade money for time because VCs want to see ROI on their investment quickly.
Note that I’m not saying that funded startups are necessarily what you should target. But you should have a target market in mind beyond just “anyone in the world who might need web dev services”. Preferably a target market that tends to budgets to spend and isn’t afraid to use them.
Another example might be positioning yourself as a front-end specialist for Java or .NET shops. Companies that use these technologies tend to be larger, and dev managers might just have a budget to bring in a front-end specialist to do fancy-pants JS work the back-end enterprise developers are too busy to do.
Hopefully, those examples give you a starting point for finding a perfect target market for you!
In the long term, saying something like “I’m a React developer” might not be a great play. Technologies change, sometimes a lot more quickly than any of us expect. But when you’re just starting, if you know a super in-demand technology, using that to help describe yourself can be a good play. Over time, as you work with more clients, you’ll often find that you end up working with lots of them in a particular niche – medtech, or fintech, for example.
Then, your value prop becomes something like “I’m a developer who helps fintech companies deliver features quickly. Unlike my competitors, I have a deep understanding of finance so I’ll deliver work your customers will love.”
Job #2 – Sales
The goal of sales is to qualify and close the leads generated by step 1.
Qualifying leads means making sure they’re serious about needing your services, and not just “kicking the tires” or trying to get you into a race to the bottom bidding war against other freelancers or agencies. If the lead already sees you as an undifferentiated commodity, you’re starting out in the hole.
The sales process also includes things like sales calls, writing proposals, and then following up relentlessly to turn those proposals into signed orders. If a client asks for a proposal, always ask them to schedule a call or meeting to discuss the proposal together. Some people will ask for a proposal as a way to blow you off. If they’re not willing to do a 15-minute proposal follow-up, there’s a good chance they aren’t serious.
When I say follow up relentlessly, I don’t mean that you should be annoying. If someone tells you to get lost, then get lost. The freelance devs I’ve known who seem to have lots of well-paying work seem to follow up using a sort of loose exponential backoff algorithm if a client ghosts them.
You’d be surprised at the number of clients who really want to work with you, but your $50k proposal isn’t one of their top 5 priorities because it’s the only 5-figure contract they’re dealing with right now. Ensuring these potential clients don’t fall off your radar can be vital to having a happy, successful, profitable business. If you don’t hear back from someone who has otherwise seemed polite and professional, they probably aren’t ghosting you. They’re likely just busy.
A CRM can be a massive help here. It’ll help you remember who all your leads are and see exactly when you’ve contacted them. It’ll even remind you to follow up when people haven’t gotten back to you. Salesforce for small business is $25 per user per month. Since you’ll be a one-person company, this might be $25 very well-spent.
99% of your freelance competition isn’t treating the sales process professionally and seriously. Many of them have vague worries about sounding too much like a salesperson. This is great for you! Good clients with real budgets are very familiar with the sales process. They expect you to sell to them. They expect you to suggest that you send them a proposal.
A professional sales process gives ideal clients confidence because it’s a strong up-front signal that you know what the hell you’re doing. It’ll increase the chances a client will want to work with you.
On the flip side, be wary of clients who argue on price and try to nickel-and-dime you on everything. Don’t be afraid to walk away if something seems off. Your instinct will usually be right. Walking away doesn’t mean you think a potential client is a bad person. Sometimes, you and the other person aren’t a good fit. It happens.
Job #3 – Project Management
You need to be your own project manager to ensure you deliver promptly on the deals you closed in step 2.
Failing to keep clients up to date and deliver on time will ensure you have lots of one-off clients. Delivering great work on time, every time will help guarantee lots of repeat clients. It’s way easier to sell to existing clients than to new ones, you making your clients happy is essential.
As a one-person shop, you’ve got some flexibility when choosing what process you use. Scrum is probably overkill unless you find it valuable to have a daily standup meeting with your cat. Kanban often works well for solo developers.
As an experienced developer, you probably have a good idea of what will work well for you here.
Job #4 – Business Administration
Business administration means things like tracking your expenses, writing contracts, keeping track of business accounting, invoicing clients, and making sure your clients pay their invoices.
You’ll probably want a Master Services Agreement (MSA) that covers all the work you do for a client across all projects, then a separate contract or statement of work (SOW) for each project you do. This ensures that both you and the client know precisely what the terms of your business relationship are. Ideally, you’d get a lawyer to help you create these. But when you’re a new freelancer, that might be too expensive.
A while back when I was considering freelancing, I bought Brennan Dunn’s Double Your Freelancing Rate, and it has contract documents you can modify to suit your business. It comes with templates for MSA, SOW, and proposals. I think it’s worth the $297 for these documents alone. But it also comes with a great course that will shape your whole mindset toward freelancing. I highly recommend it. If you buy one thing in preparation for going freelancing, buy this. I’m not affiliated with the guy at all. I’m just a happy customer.
Job #5 – Web Development
Hey, we’re finally at the fun part! I won’t go into too much detail here since you already understand this part well.
It might seem disappointing that this is so far down the list. And it might seem like all of the items above are huge. At first, they will be. But the more you do marketing and sales, the easier they’ll become.
The marketing and sales work you do will land you good clients with large budgets, the kind of clients other freelancers aren’t able to get. And those good clients will become repeat clients, and so you’ll find that you’re spending most of your time on web dev work and the marketing, sales, and admin aspect fade into the background.
Or, you’ll find that you enjoy the marketing and sales so much that you want to hire a developer or two or three so you can spend all your time making deals. If that happens, congrats! You’re not running an agency.
Here are a few resources you might find helpful in your journey:
- Jonathan Stark’s Hourly Billing is Nuts. Even if you decide you do want to bill hourly at first, reading this short book will ensure that you do so as a conscious choice after knowing what your options are.
- Philip Morgan’s The Positioning Manual for Technical Firms. This will help you think about how to position yourself vs. your competition in a way that makes you stand out.
- As mentioned above, Brennan Dunn’s Double Your Freelancing Rate is a great course that comes with some great document templates to help you get started. The course will help frame the way you think about freelancing, so I think it would be a worthwhile investment.
I’m not affiliated with any of these guys in any way. I just like their work, have found it informative and valuable, and think it would help you start your freelancing business on the right foot. In total, it’s an investment of maybe $400, which I don’t think is a huge price to pay considering how lucrative freelancing could be for you – if you do it right.
Holy crap. I apologize for the huge reply. I should turn this into a damn blog post or something.
Hey, look, that’s exactly what I did! Thanks for reading.