Most full-time, salaried developers wonder what it would be like to go freelance one day. The lure of higher hourly rates and increased flexibility is appealing. Then doubts start to surface: How would I find clients? Would I have to do sales and marketing? How would I do my taxes? Amidst these doubts, the thought bubble fades away, and full-time salaried work seems like the safer option.
This article is for those who’re thinking more seriously about the possibility of going freelance. It’s for people who want to assemble solid answers to questions like “If I go freelance, how much should I charge?”
Before diving too deep down the rabbit hole, we’ll start by figuring out if freelance development is right for you. To start, we’ll go through the best aspects of freelancing, followed by aspects that are more challenging or difficult. Compare these pros and cons with your current full-time salaried role and decide which one sounds best to you. The information shared here is based on my experience working as both a subcontractor via a consultancy, and as an independent freelancer working solo.
More flexibility. For many, this is the most appealing aspect of making the leap to a freelance career. While some crave the routine that working from an office Monday to Friday provides, others chafe at the commute, long hours, and repetitive days. Even though many freelance developers often work from client offices, the change in environment is much more frequent, truncated by the shorter length of freelance engagements compared to employment contracts. Other freelancers prefer to work from home, from a coworking space, or even becoming a digital nomad.
More autonomy. As the saying goes, freelancers are their own boss. You decide your hourly rate, where you’d like to work from, and how your business will run. You decide when to work and when not to work. Depending on the client, you may get much more control over the tech stack and approach to delivering a project than you would as part of a development team. However, this level of autonomy can be challenging for people who struggle to stay motivated and on-task without the peer pressure of a team environment.
The ability to shape work around your lifestyle. I once had a colleague who would take 3 months off every year to go surfing in Brazil, then spend the remaining 9 months of the year freelancing. Contract work allowed him the flexibility to do that, but his lifestyle would have been incompatible with most full-time salaried positions.
The potential to earn more per hour than you would as a salaried employee. Freelance developers can charge between $80 – $250 an hour depending on experience and skillset (and sometimes more), rates that not many salaried developers achieve in their lifetime. However, unpaid time including marketing, admin, contract negotiations, meetings with prospective clients, sick days, vacations, and lean periods without enough clients can take the shine off high hourly rates. In the end, freelancing is often not as lucrative as it appears on the surface, particularly when freelancers have a high rate of client turnover. Freelancers who can work with repeat clients or on multi-month freelance contracts have the best chance of exceeding their earning potential as a full-time salaried employee.
The potential to expand your business. Full-time salaried employees who become overwhelmed with too much work generally have only two options: ask for more support or work increasingly long hours. Freelancers who are overwhelmed with too much work have a potentially lucrative way to deal with the situation: hire a subcontractor. This is the way that many consultancy businesses get their start: with a talented freelancer bringing others onboard to take on some of the workload and earning a cut of the subcontractor’s rates.
Choose your tech stack. If your employer asks you to use a tool or programming language that you dislike, there’s not a lot you can do about it. As a freelancer, you can choose to only work with clients who’ll allow you to use your favorite programming language and tools. You’re more likely to be starting greenfields projects than working on an existing codebase, and can therefore avoid inheriting a pile of spaghetti-code. However, this may not be true when you’re getting established as a freelancer, or during lean-times, where you may need to do whatever work is available.
Choose your own way of working. As a full-time salaried developer, you’ve likely had to conform to your team or manager’s preferred way of working. This might include project management apps that are frustrating to work with, boring (and occasionally futile) estimation sessions, and needlessly complex record-keeping and reporting requirements. This is likely to still be true if you’re a freelancer who works on client sites or embedded in client teams. However, if you’re working alone, clients generally care more about what you do rather than how you do it (even if that means their project is managed across three or four barely legible Post-It notes).
At this point, freelancing is probably sounding pretty great! But hold on a minute, there are a number of things that are challenging and difficult about being a freelancer. These things may or may not be deal-breakers for you.
No benefits. Sick days, annual leave, work laptops, retirement contributions, employer-paid health insurance, parental leave, gym memberships, free lunches, performance bonuses, training budgets, a company car… forget about them. Freelancers generally don’t receive any benefits from their clients other than money in exchange for services. Despite this, freelancers still get sick, need vacations, need new laptops, need health insurance, need parental leave, and all the rest. The difference is in who pays for these things. You do. Now you can probably see why that shiny $100 an hour rate soon seems less like a luxury and more like a necessity.
Potentially higher and more complex taxes. Depending on your country of residence you may have different tax obligations as a freelancer compared to as an employee. In some countries, freelancers are taxed at a slightly higher rate than employees. You’ll likely have to do much more expense tracking and receipt management than you would as a salaried employee. For example, you’ll have to remember to deduct and keep receipts for a portion of your bills, office equipment, work-related training, travel, marketing expenses, and subscriptions. To make sure you understand what your tax obligations will be as a freelancer, I’d recommend talking to an accountant if you’re seriously thinking about making the switch.
Income instability. Freelancers often talk about the “feast or famine” phenomenon. Sometimes it feels like you have far too many clients to manage, while at other times, your inbox is empty and your days are spent watching reruns of Dr. Phil. As a result, your income can fluctuate, making it difficult to plan for recurring expenses. This instability is more common for freelancers who are still getting established and haven’t had time to build up a network of repeat clients. In general, the best antidote to income instability is time. With time, you’ll develop a regular client base that will help make your income more consistent and predictable.
Avoiding ‘Clients from Hell’. It’s tempting to think that freelancing will provide a permanent escape from bad bosses, but the existence of the Clients From Hell website suggests otherwise. Most clients are lovely, but occasionally you’ll end up with a client who tries to inflate the scope of the project, questions your decisions, or expects you to be available 24/7. Another common problem that many freelancers experience is late payment, and unfortunately, chasing up payments will become part of your job. Using a platform like CodementorX can mitigate some of these issues, as clients are pre-vetted before they’re allowed to work with you.
More non-development, non-tech tasks as an indie freelancer. A general rule for many independent freelancers is that you should expect about 50% of your time to be billable. The other 50% will involve marketing, talking to potential clients, preparing quotes and estimates, drawing up contracts, attending meetings, sending invoices, chasing up payment, updating social media, tweaking your portfolio website, networking, and doing general admin and bookkeeping. Notice that those 50% are all non-development tasks, meaning that 50% of your time is likely to be spent doing things that are completely unrelated to programming. Does that bother you? If so, you’d probably be happier subcontracting for an agency or consultancy, who will take care of most of these tasks for you. The trade-off here is that subcontractors working for an agency or consultancy are paid lower hourly rates and have less flexibility than independent freelancers, as the agency needs to take their cut (often 50% or more of what the client is paying for you). Sub-contractors also have less flexibility and are usually expected to work on-site and stick to the same hours as other employers.
Risk of isolation. For some of my friends, the biggest obstacle of going freelance is the fear of isolation. As an independent freelancer you’ll often be working from home, cafes, or coworking spaces where social interaction won’t happen incidentally. If you’re flying solo on a project, you won’t get to experience the daily interactions that occur when you’re part of a team. This is often extremely off-putting for people who love the social aspect of full-time salaried work. Even if you work on-site, freelance contracts can be as short as a few days or weeks, giving you little time to form long-lasting bonds with the people you work with. In a recent survey of freelancers in the UK, almost half of the respondents said they felt that freelancing was ‘lonely’ or ‘isolating’. It’s clear that freelancers need to take proactive steps to ensure that they get adequate, satisfying social contact in the absence of a permanent set of colleagues.
It can be hard to set and stick to boundaries. While working in an office provides a natural rhythm to the workday (as well as social pressure to avoid spending the whole day watching NBA highlights on YouTube), working from home, a cafe, or a coworking space requires more self-discipline. The first kind of discipline is the discipline to work when you’re supposed to, rather than goofing off all day. The second kind is the discipline to stop working when it’s time to stop. Nobody will enforce these boundaries except for you (and possibly your significant other!).
You won’t always be able to rely on coworkers to help when you get stuck. This is more true for freelancers who work alone. What happens if you get stuck? You generally can’t ask the client for help, as they may not be technical and they might expect you to have all the answers because they see you as an expert. Instead, you’ll need to build your own support network of developers you can turn to when you need help or advice. Even the most experienced developer benefits from being able to spitball and sanity check ideas with other developers. If you don’t already have a network like this, you can get help via Codementor.
If freelancing is right for you, what next?
You’ve weighed the pros and cons and decided that becoming a freelancer developer is the right move for you. Here’s what to do next.
The first step is to assess your current financial situation. What are your current financial obligations and monthly expenses? What’s the minimum income you need to make ends meet? A spreadsheet can be helpful here.
Making the switch to freelancing, or any career change, follows a general rule: as the speed of your transition increases, your level of financial risk increases. You need to find the right balance between speed and risk, and this will depend on the urgency with which you want to leave full-time salaried employment, and your financial and family situation.
You have various options depending on your need for speed, and appetite for risk:
- Keep working full-time and freelance on evenings and weekends.This is the safest option financially, but will take a toll on other areas of your life as you work longer hours. This may be a good option if you’re young and single, but becomes more difficult if you have less energy to burn, or a family that you need to nurture. If you go this route the idea is to transition to freelancing by gradually reducing the days that you work at your full-time salaried job. If this isn’t possible then you might consider saving up three months of your salary and using that as runway to launch your freelancing career, tiding you over while you assemble your first batch of clients. This option is arguably the safest, but also the slowest, as you’ll have less time overall to work on establishing your freelance business.
- Go part-time and work on developing your freelance business the rest of the time. This might involve scaling back to part-time hours, or finding a new part-time role. Your part-time role will help make ends meet while still allowing you time to work on developing your freelance business. However, part-time roles in development are relatively rare. It may be easier to negotiate a part-time arrangement with your current employer if they sense that you might otherwise have to leave. This option is a good balance between financial safety and speed of transition.
- Take a sabbatical to work on your freelance business. Some employers will allow you to take a ‘sabbatical’, a.k.a several weeks or months of unpaid leave. This provides you with a window of opportunity to try out a freelance career. If you like it, you can make the sabbatical permanent. If you don’t, you can return to your previous role.
- Quit your job as soon as possible and work on developing your freelance business. This is the riskiest option, but can be viable for people who have enough savings to make it work. If you have a significant other or a family, you’ll also need to gain their support for this move. One way to reduce the risk involved with this option is to reduce your expenses as much as possible.
Ready to Start Work
If you’ve decided that freelancing is right for you, and picked an option from the list above that matches your appetite for risk, it’s time to start taking practical steps to make this move a reality.
In my next post I’ll break down how to get your first few clients as a freelance developer. Stay tuned!