Last week, I was approached by a friend regarding a freelance job she'd been offered. She wanted to know the benefits of freelancing and whether it was an opportunity worth pursuing. She isn't the first person to approach me. Many people wonder why I freelance. There are so many developer jobs out there. Why would one choose to go it alone instead of a stable full-time job?
We'll get to the answers shortly, but first a little background. I work as a full-stack freelance engineer, as well as being a founder of Skilled, a service that provides high-quality freelance opportunities to top Israeli developers. While this article covers aspects specific to freelancing in Israel, many of the points apply to freelancers anywhere in the world.
Freelancing is gaining traction rapidly. In the US, 57 million people freelanced in 2019, 35% of the workforce. It's expected to grow to over 50% by 2027. Technology is one of the primary enablers of this trend. (If you're wondering how this number is so high, it includes people that work in a regular job and also freelance on the side).
There's a good reason for this rise in popularity. Many freelancers love what they do. As a recent Cardiff University survey shows, freelancers enjoy a higher level of job satisfaction than salaried employees.
The article is split into four sections:
- The benefits of freelancing
- The downsides of freelancing
- Why companies hire freelancers
- How to get started as a freelancer
One of the biggest perks of freelancing is the immense amount of freedom and flexibility it provides. Many freelancers choose where they work from and what hours they work. You can decide to work from home, start working at midday, and take a day off whenever you feel like it. You also have the freedom to choose your rate and the projects you take on.
As a freelancer you run your own business, a business that sells your services to others. You don't have a boss and make your own decisions.
Granted, each client you take on binds you to a particular agreement, but the terms are often flexible, and you decide which projects do and don't work for you.
Many freelancers take their entrepreneurial interests further and work on income-generating side projects and later go on to start their own companies. It's easier to do this when you have such a flexible schedule. Others build their reputation and take on larger projects, employing other developers to help complete the work.
Freelance work exposes you to many different fields and technologies. Each project has its own challenges. You're exposed to a wide array of industries, meet different types of people, and learn a lot along the way.
As a freelance developer, I'm often in charge of putting together projects from the ground up. Either alone or as part of a small team. As a coder, being able to start a fresh project the way you want is a dream.
Working for a company, the work often involves fixing others' bugs and maintaining large systems that were written long before you arrived. This can be true even for startups. Freelance work can be like this, but it's less typical. It's the type of work I try and avoid.
As a full-stack developer, you have a lot of responsibility. A client needs a full web or mobile app built in the space of a few months. It's up to you to deliver the product. By the end, you have something tangible to show.
Freelancers often have a vast range of experience. A freelancer will typically work on 3-10 projects per year. In a regular job, it's usually only 1 or 2 projects, and they're all for the same company. Being involved in so many projects, you see things from a different perspective to employees. You experience doing things in lots of different ways which helps you decide the best approach for future work.
This is not to say you won't learn a lot by focusing on a single project for an extended period, but there are aspects to freelancing that give you knowledge others don't have. You get to see the insides of many companies and what is and isn't working for them. I have personally worked on around ten projects in the last 18 months, but there's also a project I've worked on for six years straight. There are benefits to both.
Whether freelancing pays better is a complicated question, but freelancers often earn more per hour than they would in a regular job.
For example, an experienced full-stack developer in Israel earns 35,000 shekels per month (brutto) as a salaried employee. A freelancer of a similar skill level will earn 300 shekels per hour. Assuming a 170 hour work month, the freelancer earns 51,000 shekels per month. (This accounts for vacation days. A regular employee works ~185 hours per month, but has vacation included in their contract).
The freelancer needs to pay taxes that a company pays for its employees. After the freelancer has paid those taxes, the 51,000₪ turns into roughly 43,000₪ (brutto). Freelancers and employees pay the same taxes on their remaining income with one exception; freelancers can expense business purchases lowering their taxable income. I'll cover this in more detail below.
So far, so good for the freelancer, but there are many more factors to consider:
- Is the freelancer able to fill up every month with work? If they only work 120 hours per month it will be far less lucrative (although they'll have more free time).
- Does the employee receive stocks or options? At a company like Google or Facebook, this is worth tens of thousands of dollars per year. At a startup, it's far less, but if there's an exit, it can be worth a lot.
- Does the employee receive an annual performance bonus?
- Did the employee receive a sign-on bonus?
- Does the employee receive additional benefits such as food, travel, laptops, a car, or anything else? If a freelancer needs to pay office rent, that's an additional cost of ~1,500₪ per month. An accountant is another few hundred shekels.
- Freelancers have a major tax benefit which allows them to deduct business expenses from their salary and pay fewer taxes. They can also claim back VAT (17%) on business purchases. For example, a freelancer that purchases a laptop for 7,000₪ receives a 1,190₪ (7,000 * 0.17) VAT refund, and their taxable income for the month drops by 5,810₪ (7,000 - 1,190). That's 5,810₪ they don't pay income taxes on leading to a few thousand shekel saving. Other business expenses include travel expenses (bus, train, gas), a car, business trips (flights, hotels and food), an Internet subscription, office rent, accountant fees, and more.
- Does the employee need to work overtime to earn their full salary? Is the freelancer able to put in 200 hours per month increasing their pay from 51,000₪ to 60,000₪?
- A freelancer needs to dedicate time to find jobs and talking with potential clients. This eats into their income.
To be clear, the numbers above are just an example. If you earn 35,000 shekels per month at your company, you could be making anywhere from 200 to 400 shekels per hour as a freelancer. That's a broad range.
Also note, most developers don't earn 35,000 shekels per month, and most freelancers earn far less than 300 shekels per hour. Some exceptional freelancers earn over 400 shekels per hour, but they would likely earn more than 35,000 shekels per month in a regular job too. In the US a top freelancer makes $200+ per hour.
Another item to be aware of is that the above tax calculations assume the freelancer works as an osek mursheh. There are additional tax benefits for freelancers that open up a business (chevrah ba'am). If you're a freelancer that earns over 20,000 shekels per month, it probably makes sense for you to incorporate. (If you need help finding an accountant, I'd be happy to give you free advice and recommend you to a few good ones. You can get in touch with me at email@example.com.)
While on the topic of finances, many freelancers prefer value-based pricing and quote a fixed price for a project. This means the freelancer doesn't count the hours they work but ensures the project is completed at the agreed-upon price. This mitigates a lot of the risk for the client. The client knows from the start how much the app will cost to develop, even if the developer ends up spending far more hours than anticipated on the project.
The upside for the developer is that if they work efficiently, they earn a lot more per hour. The downside is that if it takes longer than expected, the effective hourly rate will be lower than what they would have earnt had they worked on an hourly basis.
If you're good at what you do, then fixed price projects are often the best option. Not every project can be done at a fixed price, however. If the project specifications are likely to change, then sticking to hourly billing may make the most sense. Clients always ask for changes, so you need to be careful as to how you manage this.
One of the big reasons a freelancer earns more per hour is due to a lack of guaranteed work, as well as the time required to secure jobs. If you're a talented developer in search of freelance opportunities, fill out your details at Skilled.co.il and we'd be happy to help.
Corporate structures are often filled with bureaucracy and internal politics. Working as a freelancer, you will avoid a lot of it. As a recent TNW article put it:
Smart and visionary thinkers (young or old) want to exist outside the types of corporate structures operators love to impose. Process and bureaucracy are part and parcel of the operator’s tool kit.
Success as a freelancer is heavily results-orientated. If you do good work for a client, they'll recommend you to others. If you don't, they won't, and it will be hard to secure further projects.
Results matter especially for fixed-price projects. The more efficiently you work, the more you'll earn per hour. This also emphasises another benefit of fixed-price projects. Fixed priced projects encourage the developer to spend their time effectively and focus on shipping a product.
Many developers would do well to take such a practical view to writing code. Most developers don't have skin in the game, which can lead to time being wasted on things that don't matter.
Coming from an entrepreneurial background, the only thing that matters is shipping a product (and being able to continue shipping quickly long term). Good code is code that allows you to do that efficiently, long-term.
Fixed price projects can incentivise sloppy code that is hard to maintain long term, but this is mitigated by the fact that the freelancer has a reputation to uphold, and will likely have to do the maintenance work themselves. These factors incentivise shipping high-quality code efficiently.
There are some downsides to freelancing or consulting. It's not for everyone. It's geared to those with an entrepreneurial mindset and appetite for risk. Here are some of the downsides:
The biggest downside is a lack of guaranteed work. Depending on your personality, obligations, and financial situation, this can be a show stopper.
If you're in between jobs, or at a point in your life where the added risk has less of an impact, I recommend giving freelancing a try. If you have a family of 5 to support, it may not be worth the risk.
The easiest way to find work is to speak with freelance recruiters. We can help you if you sign up at Skilled.co.il, but there are other platforms such as TopTal and UpWork that also offer opportunities. Developers are in high demand. If you're a talented developer that can work independently, there will be a lot of opportunities for you.
Searching for work, negotiating contracts, talking to clients that don't materialise into jobs, these all take time. This isn't time you're paid for. Most developers prefer to avoid this and get on with coding. At Skilled we aim to remove most of this work for the developer.
You may work alone and miss the social interaction a company provides. In practice, many freelancers do work with others. 90% of the freelance work I have done has been with others, either in a shared office space with other freelancers, or at clients' offices. If you're looking for a freelance community, feel free to reach out to me.
Your environment can often change. You may find yourself working from a different office every three months. Or spending two days a week in one place and the other three days somewhere else. Some people prefer to avoid this constant change and desire more stability in their lives. I personally love the changing environments and new challenges, but each to their own.
If you spend a few years working at the same company, you'll gradually progress up the ladder. If you're at the same place for ten years and the company does well, you'll find yourself in a senior management position with a lucrative salary.
Career progression as a freelancer may look a little different. Some become entrepreneurs, some build an agency or consultancy, and others continue solo. I've met developers that freelanced for a few years, then worked as a CTO for a few years, and have now gone back to freelancing. There are a lot of options available.
As mentioned above, many companies provide benefits beyond the base salary the offer that a freelancer won't benefit from. This can include stock, bonuses, food, paid time-off, courses and other items.
This isn't black and white either, however. I've received equity from three of the companies I freelanced for and lowered my rate accordingly. Freelancers taking equity is not the norm, but it's possible if you're working with early-stage companies.
A common question people have is why companies hire freelancers? Surely, they'd be better hiring them in-house? Many companies do only hire developers in-house but others take on outside contractors. Here are some reasons why.
Hiring a freelancer is a much lower commitment. You can hire a freelancer for two months, and then end the engagement. Firing an employee is much harder and expensive. A company may hire a freelancer for a year and then let them go without having to pay a severance package.
A company may not have the budget for a full-time employee. This applies to a lot of startups. They may have $500,000 in funding to spend over 18 months. If they hire a full-time developer on a $100,000+ salary that's most of their annual budget gone. This can also apply to large organisations. A particular division may need someone for a 3-month project with a limited budget. Better to hire a freelancer than someone full-time.
A freelancer or consultant may have a specialised skill set that isn't readily available within the company. A social media app may need a cyber expert for a few months but doesn't need their expertise for an ongoing basis full-time.
Freelancers have diverse experience having seen a lot of different companies and projects. If you've tried doing things a lot of different ways, you'll quickly figure out the best way of doing things. A freelancer may see 8-15 projects in a 2 year period. A regular employee would be lucky to work on three. The freelancer brings a breadth of knowledge that the company may not be able to foster in-house.
You can hire top talent you may not otherwise have been able to hire. It can be hard for non-brand name companies to hire top talent. Hiring top freelance developers is easier, however. A lot of the best developers I know are freelancers. The companies they do work for would love to hire them, but it's not what they're looking for, and likely the companies couldn't match the salary expectations either.
Another big reason to bring in freelancers or even outsource to a team is to avoid overhead. If the freelancer is managing the entire project, that can take a lot of weight off the company's back. There will still be some communication with the outside members, but this can be considerably less than the overhead of running a team in-house enabling the in-house staff to focus on other items.
The last reason companies hire freelancers is due to how it looks on their books. They can categorise it as a different type of expense which may help their stock price look more attractive. I haven't seen this happen in Israel, but I understand that in the US it's quite common. This seems like a terrible reason to hire consultants, but it happens.
The easiest way to start is to use a site like ours (Skilled), TopTal, or Upwork. This is how I got started as a freelancer.
Reaching out to your network is another good way to find work. They may know of people looking for freelancers in their network.
Attending meet-ups and networking is another good way to find work.
Once you start working, if your clients like you, they'll recommend you to their friends at other companies. This is probably the best way to find new clients, but it takes time to build up a name for yourself and prove your worth.
Doing open-source work is another great angle to find work. Potentially the best angle. Not only does it look great on your resume and demonstrate the work you can do, but it's also an amazing way to generate leads. If you maintain or contribute to a large open-source project, people from all over the world will reach out to you, opening a lot of doors. I haven't done enough OSS development myself, unfortunately, but I have worked with those that have and seen first-hand what a powerful marketing outlet it can be.
Many developers are lucky to work in an industry they love. Many would develop even if unpaid, and many do so in their spare time working on personal side-projects or open-source contributions with no immediate reward.
Whether as a freelancer, employee, or founder, many developers love what they do, and all are great options. Hopefully, this article gave you some further insight into what it would mean for you to freelance and how to take the next step.
Feel free to reach out to me with any questions. You can email me at firstname.lastname@example.org with questions. If you're a company looking for developers, or a developer looking for work, I'm happy to talk.