The reluctant freelance
It has been a year now that I've played the "prototypical" role of a freelance developer - doing various missions for several clients and generally enjoying myself doing so. The fun part is that's something I never really planned for - pretty much the contrary - but learned to like a lot.
This is a bunch of experience, lesson learned and some insights about whether you may want to take the status or not. A part of it may be Belgian specific (I don't know the details of other job markets).
I pretty much got a freelance status when I cofounded Pull Review years ago - you can't be an employee of a company you own, as being an employee in Belgium implies some kind of subordination. When I decided to leave it, I just kept it (I had done the paperwork anyway) and I was getting a kid so my work life was a mess anyway.
Except for those few months, I was always a "fake freelance" - ie working mostly for a single customer at the time, and being treated like any team member. I actually did five years at Bluesquare (including 4 as CTO) under the status, without anyone batting an eye.
I left Bluesquare a bit more than a year ago, with the intention to get back on the market as a senior developer. My "plan" (as much as it exist) was to find a company I wanted to help, settle with a team and stay a while. That's not exactly what happened (see the details of my 2021 year) but this was one of my best year.
The pro and the cons
So let's see the good & the bad of the status.
Let's start by putting this aside. The money is stupidly good. There is a "market premium" on consultants versus employees in Belgium. I'm not sure it's fair, I can't really explain it, but it's there. I'd say it's around 30% so it is clearly significant.
The theory is that it's the price for the increased risk of being fired (as a freelance, your contract with a company is a service one - which means it's much easier to break - even if nothing prevent to have notice clause in freelance contract - I've one in mines). The reality in this industry (and at a decent seniority level) is that it's a negligible risk as companies have much more trouble finding developers than the other way around. It does not means you can't get fired - just that "finding a job that pay decenly" is not going to take a lot of time.
So that's a pro. And yes, it may be enough. Getting more money can go a long way toward living the way you want - whether it's about holidays, money to sustain your family or being able to put money aside for a house or a break. Don't let anyone say otherwise (people that says money does not matter generally have a significant amount of it).
Being able to work for different clients (possibly at the same time with multiple part time) is really nice. While you can learn a lot inside a given team/company (especially when the company itself is evolving), there is no doubt that seeing different companies allow you to learn a lot - it's all about context:
- Technology is different
- Teams are not organized in the same way
- People are just not the same
Each of those means an initial cost to learn - but also benefits to learn. On the company side, you can bring your various experiences and hence a lot of different perspectives.
Another benefit is how easy it is to get paid for some very small amount of works. Two example I have to mention:
- Mentoring: Whether people or compaanies, it's generally very small amount of work (like a couple of hours per month).
- Teaching: I love teaching and again, the status allow to just bill some hours/days there
While even a full time employee would have the time to do this the problem is that the status does not allow them to be paid for any work outside of their job.
A surprising benefit I found is more linked to my place in the companies I'm working with. As a freelance, even full time, the relation feels much simpler. They pay me money and I deliver some value. Pretty much everything else is irrelevant, and this include for example any kind of career management.
This means no evaluation, no KPI, no big meeting about how the promotion system works, etc. Having spent some time on those, I realise I really like being able to focus on the work - this does not means "spending time alone coding" - it includes team relations and projects, I just get much less of the "HR theater" - and it's a relief.
Admin and costs
Being a freelance in Belgium pretty much means being a "one person company". While a status of "natural person freelance" ("indépendant personne physique") exists, you have fiscal reasons to get out of it once you reach around 50k€ of yearly turnover - something that is very easy as a developer.
So you have to create a company, and this come with complexities and costs.
- Complexities being paperwork. You need to invoice (no more "pay coming by itself"), make a VAT declaration every quarter, keep track of every expenses, etc.
- Costs is mostly an accountant. Why it's probably possible to work without one (or with limited help), the ratio between cost and benefit is just too good - but that's still around 2k€ a year.
Some days I think 50% of why I'm paying my accountant is to remind me of my administrative obligations (I'm quite bad at discipline).
No work no pay
The employee status in Belgium is pretty good - especially when shit happens. I took pretty much a half time when my first kid was born. As a freelance this meant cutting my pay in half during that period - while as an employee I would have benefitted from various helps.
This is something to keep in mind - being sick, having to support a family member or having small kids as a freelance create some clear financial risks.
First to leave
Despite what I said about job market, as a freelance you are usually both expensive and easy to let go. That would put you in the spot of the "first person to let go once cash flow is low".
Despite the cons, I'm more and more convinced I'll keep the status whatever happens. Being outside of (most) office politics and the possibility to do small paying jobs are two things I'm less and less ready to let go.
Opinions? Let me know on Twitter!