What is a freelancer?
Before I start, I want to explain what I mean by “freelancer”. Throughout the years as a developer I’ve had numerous jobs and roles, but I group them by my relationship with the client.
- Permanent employment: a job where I have a personal contract with another company; they are not using my company. I’ve had six permanent jobs, most in my younger days as a mainframe COBOL developer.
- Contracting: a role I’ve actively looked for, often through a job site, where the end client employs my company through at least one third-party agency. In the past they have usually insisted that I work on site. At least half of my career has been contracting.
- Freelance: where my company is hired directly by another company or person.
- Indie: no one is employing me and I’m developing apps or ideas on my own.
Why be a freelancer?
There are pros and cons to all of these roles, and there is no hierarchy attached to them. Your preferred way of working is personal, and you should never think you are better than others because of how your career progressed.
I’ve found that contracting has often paid the best, but it can feel like you are part of the company’s politics at times.
Freelancing, with the right client and well-managed expectations, can offer the best of contracting and indie work combined—but that combination is not always easy to find. I get a great sense of achievement from freelancing: the client is passionate about their app and I help them fulfil that idea.
How do you become a freelancer?
This is the tricky question. If you are looking for a simple answer, I’m afraid you’re not going to find one.
Most of my freelance work has come from people finding me through this website. Your website needs to be professional, current and easy to discover. Recommendations from people and clients I’ve worked with are just as important.
To earn recommendations, be someone people would happily work with again. Treat people with respect. Don’t talk down to them because they don’t know the difference between HTTP and HTTPS; technical knowledge does not make you superior.
It isn’t easy to get people to find you, so don’t throw the opportunity away when they do. Meet-ups, professional communities and podcast appearances can all introduce you to people who may need your skills.
While you wait for people to reach out, write your own apps and build a portfolio. Show that you can complete a job all the way through to the store. Don’t expect every app to make money, but share what you learned either way—you need to promote your work.
Tips from a freelancer
When I’m contacted about a possible freelance project, I work through a few steps:
- Read the enquiry a couple of times before replying.
- Check whether the scope and budget are realistic. If someone is effectively asking for Instagram on a £50 budget, explain the likely timescale and your day rate. That helps both sides decide whether to continue.
- Break down the high-level areas of work and how long you expect them to take. Estimation gets easier with experience, so use your own apps to explore capabilities clients commonly request—location, notifications, augmented reality and similar features.
- Ask about things the client may not have considered:
- Localisation and supported regions
- Whether both iOS and Android are required
- Hosting and ongoing service costs
- Whether an existing system already has an API
- If they decide to work with someone else, wish them well and let them know you’re available in future. Being useful and professional is memorable, and I’ve had clients return later.
Freelancer stretch goals
If you have the capacity—and it doesn’t put another project at risk—it can help to have a couple of freelance projects running at once. Every project has delays or quiet points, so juggling a small number can help with workload and cash flow. Don’t overdo it: I once had nine projects running and the stress was too much.
Keep learning other development languages and techniques. I’ve never had the luxury of saying I only work on iOS. Clients value that I can develop for both iOS and Android, and build a complete back end using C# when needed.
For many projects I ask for 30% at the start, 30% when I hand over the work for sign-off, and the final 40% once the app is live. The initial payment shows the client’s commitment; the final amount shows yours. Stay flexible: longer projects may need more milestones or monthly payment for days worked.
Be a freelancer
If you’ve decided to go for it, I wish you all the luck in the world. Help others when you gain experience, promote good work, and remember that you struggled once too.
Most importantly, build trust. Clients remember people who listen, explain clearly and care about delivering the right outcome.