One question I hear, particularly from younger software developers, is "when am I ready to try freelancing?" Here's a few things to think through if you're in that situation. Or maybe you know someone else who could benefit from this checklist?
Have a great Sunday, see you next week! ☕
How do you know when you’re ready to start working as an independent freelancer, contractor, or consultant?
It’s tempting just to say:
“Do you know how to ship software? Great, quit your job and find your first client!”
But if you’re like me, you want to think things through first. Let’s try this: I’ll walk you through a few points, and you can consider how you stack up on each one.
1. Do you have enough industry experience?
Let’s start with your expertise: You must know your craft before selling your services to clients. Duh.
But a few years of experience as a salaried developer also helps in other ways: you’ll know how to collaborate with peers, managers, and stakeholders in a professional setting.
Years on your CV also makes you appear more trustworthy: I’d prefer to hire an electrician with a few years under their belt rather than someone straight out of school.
How many years, though? Personally I think five years of software development experience is enough to start freelancing—provided it’s somewhat well-rounded.
Have you worked on various projects during your five years, or is it just the same year repeated five times? “I’ve just written stored db procedures for the same large corporation.”
Being a specialist can be an advantage (potentially higher hourly rates!). Unfortunately, unless you’re genuinely excellent at that skill and you’re able to find clients that need that specific expertise, too narrow of a skillset can also make it hard to find clients.
2. Do you have evidence of the ability to build software?
Expertise alone is insufficient; others must perceive you as valuable, too. There are several ways you can do this.
Testimonials and referrals from past employers, managers, and peers are an excellent way to build trust. If you don’t already have this, I highly recommend you contact people and ask them for favorable write-ups.
LinkedIn makes this easy via the “ask for recommendation” feature: just write personalized notes to the people you contact. Maybe go out for a coffee and catch up with them, too—it’s an excellent way to start warming up your network.
I also found that this helped somewhat with impostor syndrome when I started working for myself: “Hey, people appreciated my work on these projects! I can’t be all bad then…”
A portfolio can be a big help. Your portfolio can take many forms: public websites you have built, mobile apps, conference talks, and even screenshots and screencasts of things you have worked on.
Open source work is a third angle: having a track record of contributing to relevant software projects indicates technical skills and the ability to collaborate.
3. Do you have people skills?
Are you easy to get along with? Do people enjoy working with you?
Think of two craftspeople who have the same expertise. One is slightly more skilled than the other but also harder to work with. Most clients will prefer to hire a person who is more enjoyable to work with, even if they are slightly less skilled than the other person.
Clients are also more likely to recommend you to others if they like working with you.
4. Do you have a network in the industry?
Many of us get most of our work as referrals from old contacts.
There are ways to find clients even if you don’t have a network already: you can cold call/email companies in your area, get in touch with consulting agencies that have too much work on their hands, you can register with contract brokers, or you can apply for projects via online freelancing sites.
The problem with these approaches is that you are starting cold, competing on even ground with other developers. On freelancing sites like Toptal, you’re competing with the whole world!
If you instead get referred directly to the client via people who know and trust you, you’ll have a significant advantage:
5. Do you have a buffer saved up?
An initial emergency fund is a good idea: a bit of runway means you have time to find that first client. You’ll also be more relaxed around potential clients when you’re not desperate for money.
Even if you find a suitable project on day one, it can take a while before the first invoice comes in. You need to have enough cash to tide you over until then.
So, save up a few months of runway before you jump: 3-6 months of expenses can be a good number, but you should adjust to fit your risk tolerance. If you have a family, you may want a bigger cushion.
How many did you get?
How did it go? Do you feel more or less ready now?
Remember that you don’t need to have every angle covered to be successful. Some developers jump to freelancing very early in their careers. Many of us do great without a portfolio or a long streak of public Github commits.
And please don’t judge yourself too harshly. You don’t have to be a superstar rocket scientist to find clients; you just have to be competent enough to be valuable!