Are you tired of a normal 9-5 office development job?
You might be tempted to throw in the towel and become a freelance software developer. For many, freelancing conjures the allure of working when you want to, where you want to, on what you want to, and all for more than you might make in a regular job.
But what would you really be getting yourself into? Would the advantages of going on your own outweigh the many disadvantages that come with it?
In this article, you’ll get some straight talk from developers with freelancing experience, all of them Tutorial Team members or readers like yourself. We’ll share what we consider the benefits and drawbacks of freelance software development, to help you decide if it’s for you.
Although in some cases, the terms freelancer and consultant are used interchangeably, in this article we are making a distinction:
- Consulting: long-term, contract-based work for a single company that is usually, but not always, performed on-site.
- Freelancing: short-to-medium-term work for one or more companies that is usually, but not necessarily, performed from home or some other location of the freelancer’s choosing, such as a coworking space—or the beach!
While consulting can be a great way to earn a living as a developer, this article focuses exclusively on freelancing.
The Benefits of Freelancing
I asked our pool of freelancers what they considered the main benefits of freelancing, and they mentioned the following:
-
Earning more money: Personally, I earn about two to three times more than I would as an employee here in Poland, and I am pretty sure proportions would be not much different in a few other European countries. But such difference can be lower in other countries, where salaries are much higher, such as the UK and US.
However it’s not always about absolute numbers. For example, Richard Hancock noticed that he earns as much as some of his friends, but whereas they spend on average 40-60 hours per week, he works 20-30 hours. Jean-Philippe Cyr says that the real profitability lies on the fact the freelancer has more time (no commuting, no office hours, etc.), and he’s the real owner and master of it.
-
Choosing projects: For Andy Donnelly and Ignacio Nieto, one big benefit is the the ability to choose what projects to work on.
When Ignacio finishes a project, he usually find himself with several other offers to choose from. He considers himself lucky for being able then to choose the project he likes more, and/or the one having the higher challenge factor.
-
Choosing what technologies to learn and work with: Since you can choose your projects, you’re also free to switch to different technologies at any time. Kuba Suder was a Ruby on Rails developer, but he wanted to learn Mac and iOS development, so he took a freelancing job to develop a Bitcoin wallet app for the Mac and learned, while getting paid. As a freelancer you can also have more time for learning new things, because you don’t necessarily have to work all week.
I took advantage of that ability several times: when I wanted to learn, say JEE (but also C#, Python, and more). I simply started searching for projects requiring that technology, and strategically chose the next project to work on based on what I wanted to learn next.
-
Choosing clients: For Spencer Muller Diniz, another big benefit is having no formal attachment to an employer. Jake Gundersen agrees: “I can fire a client if I feel like the deal isn’t working for me.” This can be important because there’s a huge difference between clients that are easy to work with, and clients from hell.
Can you spot the parallel? As an employee, you can be fired. As a freelancer, you can fire a client. :]
-
Choosing schedule: To Pierre Rochon, one big benefit is having lots of flexibility in his schedule, such that he can escape from “the office” at virtually any time. Combined with being able to work from home, this means he gets to spend more time with his family.
This can also be helpful because you can decide to take off one day or work on a weekend if you’d like – it doesn’t matter as long as you get your work done.
-
Choose work environment: Finally, Edward Gilmore relishes his freedom from the cubicle, which he considers a soul-sucking, creative wasteland. He says, “If you want to inspire someone to become an entrepreneur, put him in a cube.” :]
I usually work in a dedicated office room in my house, but I often spend a few hours in the living room-not to mention that I can virtually work anywhere (coffee house, train, airport, beach, you name it), provided that I have my macbook and an internet connection.
You can also travel to exciting locations while you work! Andy Donnelly, primarily based in the UK, managed to work on projects while in Australia and the Netherlands. Digital nomads take that to the next level, by combining freelancing with nomadic lifestyle-a great way to explore the world, while still being able to work.
-
Be your own boss: Paul Jones likes the fact that he gets to be his own boss—though I have to warn you, as a freelancer, your spouse can become your boss! :]
The Drawbacks of Freelancing
Although the benefits listed earlier may sound pretty sweet, freelancing comes with some significant drawbacks as well. Before jumping into a major life change, you should carefully consider these items as well.
I asked our pool of freelancers about the drawbacks they’ve encountered working independently, and here are their answers:
-
Don’t have a secure salary: To Ignacio Nieto, the #1 drawback is not having a fixed, secure salary as one would normally enjoy in a conventional job. In Spain, where he lives, if you are a freelancer, you have no sick leave at all. The social security will not pay you like it would if you had a regular job. If you have a bad year, for whatever reason, you are on your own.
And I presume that’s a recurring problem, regardless of the country where you happen to live.
-
Don’t have paid vacation: Additionally, Pawel Krakowiak regrets the loss of paid vacation. You might be tempted to avoid or take shorter vacations, because you know you’ll lose money twice: the amount spent for the vacation itself, and the missing income for the non-working break.
-
Find the next project: According to to Gary Riches and Malhar Ambekar, the looming need to find the next project is a recurrent problem and source of stress. Depending on the size of the projects you take, that can be as frequent as every two to three months.
My biggest concern as a freelancer has been that I might not have a job tomorrow. Projects can (and, believe me, will) stop or freeze without any prior notice, for a variety of reasons.
-
Don’t always get to pick projects: Since jobs aren’t guaranteed, Richard Hancock notes that as a freelancer you sometimes have to take on jobs you may not want, just to pay the bills.
At the beginning of my freelancing career, I took a project which was underpaid – but I couldn’t afford to wait longer for a better project, so I decided to take it.
A few years later, a friend of mine proposed me a project on a technology that I didn’t (and still don’t) like much, but the client was great, the pay rate was good, and I needed a new project asap. So, despite the lack of interest in the technology, I took the project. In case you are wondering, it was MS Access. :]
-
Don’t have co-workers: Pawel Krakowiak also experiences loneliness, a feeling that is common among those who work from home. To many, the major thing employment offers that is practically absent in freelancing is daily exposure to colleagues.
Kuba Suder misses all of the routine interactions with his coworkers, such as chats in the office kitchen, asking and being asked for help, going out for lunch and attending office parties.
-
High pressure: Christopher Hawkins warns about the constant pressure he experiences as a freelancer. This can come from many different sources, including project deadlines, mistakes in cost estimates for fixed-price projects, bugs that are hard to track down and late payments.
-
Have to wear many hats: Robin Hayward reminds us that since you’re running your own business as a freelancer, you have to deal with things that in employment are handled by someone else, and at which you might not excel: accounting, invoicing, expenses, taxes and so forth.
-
Hard to disconnect from work: Another disadvantage I’ve experienced is that when one freelances from home, there’s a real risk of never disconnecting from work.
Julio Carrettoni experienced that feeling on his first national holiday as a freelancer, which fell on a Monday. His fiancé insisted in taking a mini vacation, but in the end he didn’t fully enjoy it because distracted by the money he was losing by not working on a Monday.
Kuba Suder‘s advice is to learn how to manage your own time. Without discipline or a learned routine, you can easily end up working too much for your well-being, or working too little and getting into trouble.
-
Risk of not being paid: So far nobody, including me, has mentioned a problem that everybody fears: not being paid. You do your work, you put all your pride and dedication into it, you let your skills do their magic, and when all is said and done—you don’t get paid.
It does happen. And it can happen more easily when the involved parties are in different corners of the world. It’s sad that, in my case, the only two times I didn’t get paid, it was when working for people I trust and consider friends.
Note that I am not recommending to not do business with friends. I just want to warn that it can happen when you least expect it.
Wearing Many Hats
Another thing to consider beyond benefits and drawbacks is that being a successful freelancer requires you to wear many hats. This isn’t for everyone – some people find they don’t like freelancing because they prefer to focus just on programming, and not all the other stuff like sales or working with clients.
Here are some roles you should be prepared to play as a freelancer:
- Salesman: You’re going to be selling a product, and that product is you.
- Requirement analyst: This means being able to translate vague business ideas you receive from clients into developer-friendly requirements for yourself.
- Software architect: Your clients may depend on you to design software architectures, and choose things like hardware, software, technologies and languages.
- Technical writer: Your clients may expect you to be able to provide good technical documentation of your work.
- System administrator: You should have a minimum of proficiency in administering the hardware and the operating system on which you’ll work and for which you’ll provide solutions.
- Business owner: As a freelancer you are effectively running a 1-person business, so you’ll need to arrange some legal work (such as setting up your business and writing contracts), accounting work (like invoicing, bookkeeping, and yearly taxes), HR work (like arranging private health insurance), and other business work (like setting up a company web page and Twitter account). We recommend you hire a lawyer and accountant and don’t try to do this all on your own – it will be the best in the long term.
The fact that freelancing requires you to were many hats can be either a benefit or a drawback – it depends on what you personally like to do!
Where to Go From Here?
Let’s be real: Freelancing isn’t for everyone. Now that you’ve heard from some freelancers about the benefits and drawbacks they’ve experienced, try answering these questions. This isn’t a test; there is no score to calculate. Just answer and draw your own conclusions:
- Am I willing to take on additional stress?
- Can I afford to have a period of time with no income?
- Am I willing to have an irregular income?
- Am I willing to work irregular hours?
- Am I willing to work more hours than I would in a regular job?
- Can I spend most of my working time alone?
- Can I work with little or no supervision or structure?
- Am I willing to always be in “job search” mode?
- Am I willing to take on or delegate the extra responsibilities of self-employment, such as accounting and marketing?
- Am I good at solving problems and fixing bugs?
- Am I good at finding pointers to what I need to know to get things done?
- Is there a particularly cool/unique job opportunity that I’d be missing out on for this?
Here are some final pieces of advice for those considering freelancing:
- Try a demo first. If you already have a regular job and you don’t want to jump ship yet, or you’re not sure whether freelancing is for you, take on a project in your spare time and see how it goes.
- Talk to other freelancers. If you have any friends who freelance, ask them about their experiences. Otherwise, attend local meetups to connect with freelancers. Or do that online (slack communities, forums, etc.)
- Do your “homework”. Consider the implications of working from home – there are some pros and cons of that as well. You might find my article on staying motivated as a work-from-home developer helpful.
Best of luck with your decision! If you end up deciding freelancing is for you, check out my next article on how to become a software developer freelancer (available on 02/25).
If you have any questions, comments or suggestions, please join the discussion below. We’d love to hear from those of you who have made this decision already, or who are looking for help on making it!
The post Freelance Software Development: Is It For You? appeared first on Ray Wenderlich.