I recently had the opportunity to be a guest on Mitch Tabian’s podcast, which was live streamed on Youtube (please excuse my shabby appearance — I was not prepared!). We had a great conversation about my experiences as a freelancer however at the time, being a newbie to the world of live streaming, I didn’t realize the title of the video was “Making Money as an Android Freelancer”.. So while some people have approached me to say they got value from it, I feel like I could’ve been a bit more practical with my responses and a little less biographical. So….
Here are my top 6 PRACTICAL steps to becoming a successful freelance developer (and therefore “Making Money” !):
1 — Create your own experience
One of the main conundrums about coming out of formal education into the workplace is the fact that employers expect you to have experience & rarely hire you without experience, so then how are you supposed to get a job requiring experience if you’re not given the opportunity to gain experience.
This is the difference between formal education and coding. Software development is a meritocracy — you get hired on your merits and what you can actually do, not whether or not you have a formal education in Python or have 6 years experience working at Microsoft.
Therefore as a new developer you don’t have to wait to land your first job to generate experience — you can just build stuff. Build something, put it out there, build something else, rinse and repeat. Build a portfolio for yourself, so when you get around to looking for work you can demonstrate what you can do by what you’ve built.
2 —Expect to take a loss at the start
Yes freelancing can be lucrative, and yes freelancers get paid more in the workplace than permanent employees. I’m not entirely sure the logic in that but it’s true 🤷🏽♂️. However when you first start freelancing, you will probably be operating at a loss and that’s okay. A 3 month project that I, as a very experienced developer, could land with a project fee of £15k - you might need to on for £9k. Or even 5k.
Again, that’s okay. For two reasons, one — the “loss” you’re taking is versus what you could be earning as a freelancer, compared to a permanent employee you’re probably on par. And two, you’re building portfolio. You’re learning the ropes, you’re building connections, and you’re being paid to do so.
(For reference my first freelancing gig was $1500 to build an entire app that took about 2–3 months, in hindsight it should’ve been more like $10k)
3 — Start networking
LinkedIn is probably my favorite place to do this. Comment on stuff, connect with people, write about coding topics that interest you. You never know who you connect with might know someone who knows someone who wants someone who does what you do.
There’s also Facebook Group’s, Twitter, Slack channels, Meetup’s on zoom, Meetup’s in person (pre + post Covid).. you never know who you’re talking to.
4 — Price to your worth
In my experience, there’s 3 prices freelancers have in mind for a project (or a day rate). What you want to earn for a job, what you know you can earn for a job, and a little less than what you know you could earn because you don’t yet have the confidence to command the price you want.
When you start out, I’d highly advocate taking what you can get for your first and maybe your second project. After that, start pricing what you think you’re worth. If you need the money take less. If you don’t, be patient and find a role that will pay what you’re worth.
5 — Make sure you get paid
If you’re working off a day rate, you shouldn’t have any issue getting paid as long as a contract is in place.
If you’re working directly with a client on a fixed project fee setup, then you want a little bit more confidence you’re actually going to be paid. The way that I do this is to get the client to agree to specific milestones, at which points payments will be released. In practice this will look something like this.
If the project is to build the Twitter app for $10k across 3 months, I’d setup the milestones to looking something like…
$100 upfront.
$1k dollars on delivery of the login page.
$3k on delivery of the timeline.
$2k on delivery of DM functionality.
The rest of the $ on completion of the project.
This way you know you’re being paid and not building an entire app only to not be paid in the end.
6 —Keep learning new things
Freelancing is not like a permanent job. When new tech becomes mainstream no one will be paying you to learn it, you’ll be expected to know it. So while I highly advocate you don’t waste time learning things you have no idea if you’ll ever need to use, if it becomes obvious that some new tech is becoming more and more relevant in your stack, take the time, learn it.
You don’t want to get left behind.
That’s it. I didn’t realize until recently that being a freelancer was such a mythical position 😂 so hopefully this sheds a little light on what it takes and how to get started on your freelancing journey.
PS: If you wanna hear my conversation with Mitch for my podcast you can find it on episode 11 of the Coffee & Coding Podcast — wherever you find podcasts.
PPS: There’s also Coffee & Coding Slack channel, if you want to ask me any specific questions or chat freelancing.. you can find me there 👍🏽
PPPS: We also did a Part 2 episode where I feel like I dropped a lot more practical knowledge, so that might be worth checking out also 🤓