My First Year as a Freelance Software Engineer

In the summer of 2017 my last permanent job unexpectedly came to an end. I used this opportunity to start doing something different.

Having been an employee for almost two decades I had the idea of becoming a freelancer on my mind for many years. I always found the flexibility of time and space, a wide variety of ever changing projects and my success more depending on my own abilities (as opposed to office politics) appealing in freelancing.

I believe running a business (even if it’s a one-person show) is a useful experience and therefore my career would benefit from becoming independent for a while and offering my services directly at the free market.

Disclaimer: this post is more about self reflection than giving advice to others who want to hop on the freelance train. I do not consider myself an expert in this field, take everything with a grain of salt here and be sure you talk to a qualified expert before making a move.

How did I start?

Getting laid off together with another 140 people from SoundCloud was the best kick start I could have wished for. The layoffs were big news and when I added myself to the Hire a SoundClouder spreadsheet recruiting requests started pouring in. As usual in recruiting, 90% of the inquiries was irrelevant, still by the time I read through hundreds of emails I ended up with a handful of promising leads.

The gardening leave gave me enough time to prepare the paperwork for becoming a freelancer. The first step was to find a tax accountant (Steuerberater). Setting up everything on your own is theoretically possible but I have never heard of anyone in this business doing that.

I briefly considered becoming an e-Resident of Estonia too which supposedly offers no-nonsense bureaucracy for businesses, however being a resident of Germany means I have to deal with the local authorities anyway. Maybe one day for a side-business.

I found a tax advisor who speaks English (back then I was not too confident with my German) and was willing to help. They are quite old fashioned bureaucrats: papers, folders, ring binders everywhere. Germany is a paper-stamp-and-signature based country to an extreme extent, tax advisors are no exception. I convinced them to exchange documents via email although they plain refused to use anything else like DropBox or one of the many cloud based bookkeeping services.

Running a freelance business requires a bank account which is recommended to be a separate one from the one you use for your private needs. As someone who prefers paperless solutions I went for N26 which fulfilled all my expectations. The only paper they used was the envelop they sent the credit card in.

Although this is not a requirement I subscribed for Debitoor, an invoicing and bookkeeping platform. Services like this allow collaboration with your tax accountant but I am currently not using this feature for the above mentioned reasons.

Registering myself with the tax authorities took about a week and from then on I was all set.

The first projects

Thanks to the viral Hire a SoundClouder spreadsheet I had two contracts before even my gardening leave ended. The idea was to work on two projects the same time with 50%-50% time share totaling about 40 hours per week. The motivation behind: more exposure to projects, easy backup if one of them flops, testing out how part time commitment can work.

One quickly turned out to be a flop due to toxic environment and wildly misaligned expectations, the other is still a client I work for. Working on these two contracts taught me that booking myself to 100% of my available time on multiple projects way too much.

Despite closing the deals with the very first clients was quick and low effort, in order to learn more about the market I kept talking to potential clients and recruiters. I probably had a conversation with 15-20 potential leads.

I learned the following: many companies want permanent employees and not freelancers; positioning myself as a generalist might not be the best idea; pricing is insanely hard.

Because I had very little idea how to set a price tag, I used the first leads to experiment in this field. I roughly calculated a baseline hourly rate from my previous year’s salary as an employee and used a -50% to +100% range. I received a wide variety of reactions. They ranged from laughing loud, never answering emails again or to politely negotiating down by 5%.

Self improvements

I believe continuous self improvement in this profession is essential and have been practicing ever since I entered the software engineering career decades ago. I made a few moves over the last year specifically to support my freelance ambitions.

I hired a German teacher and are taking regular lessons. As a result I am no longer scared to join project at German speaking companies. It also gives me more confidence when dealing with legal matter and paperwork.

Also read a couple of “self-help” books on how to be better at running myself as a business:

What worked well

Over the last year I managed to expose myself to working for a wide range of actual and potential clients and this helped me to gain enough experience and confidence to continue. The original plan was to freelance for at least one year and see if it works for me; today the answer is a definite yes.

One important motivation was to be independent of time, space and of fixed working hours. I had doubts in the past whether remote work is for me but a 5 months long contract showed me I can be efficient without showing up in an office every day.

Working less than 40 hours a week is also a big win! I spent most of the extra time on well-being, health and self-improvement. I do not mind the money I did not make while not working at all as long as I can pay all the bills. Although it is hard to measure I think the time I spent working was more focused and the outcome of high quality. The positive feedback I received so far confirms this.

What could I have done better

Contrary to the above I did not organize my time as efficiently as I should have. I did not end up in complete chaos like working at night and sleeping during the day but I wish I was more disciplined with my daily routines. Working remotely on a long project is way more challenging than it sounds.

I could have relied on my senses more when spotting problematic projects and toxic environments. Each disappointment and conflict was preceded by a bad feeling and I still ignored the feeling and went ahead. The lesson? No money is worth causing myself a large amount of pain.

I had big plans for networking and exposing myself “outside” a year ago which quickly faded after the initial excitement, primarily due to laziness. I still believe I should attend meetups or conferences regularly, maybe even present some times, participate in developer communities (especially in-real-life mentoring and helping out people in online forums).

My online portfolio received a quick facelift and managed to add some content but the amount of blog posts was nowhere near what I planned.

Talking of the portfolio, I am still uncertain whether positioning myself as a full-stack software engineer is a good idea (as opposed to a “specialist of something”). Most of the time companies and recruiters are searching for more specific skills (and sometimes too specific for my taste). Even though I could perfectly fit into many of these projects marketing myself as a generalist might turn potential clients away.

How does the future look like?

I will stay on the freelance track, figure out how to position myself better and work on the improvement areas. I will keep you posted!

Tools and services I use

Readers might ask what tools I use to keep the freelance business going. The non-exhaustive list is below: