What I Learned in Six Months as a Software Engineer Freelance

I think many of us are attracted by the idea to start their own business. This was something I was dreaming about for a while. One day the context was right and I jumped in. Six months after this is how things are going.

How I ended up being a freelancer

At the end of June I left my job at Groupon and I moved with my girlfriend to Lyon, France. I decided that I was going to be a freelance working remotely for several reasons:

  • there are startups and interesting companies in Lyon but I could not find the same level of work I could easily find in Dublin
  • I could not speak very well in French and my ability to write it was even more limited
  • wages are considerably lower in France compared to Ireland, UK or Germany, especially outside Paris
  • I thought this was my chance to go independent

Starting your own business can be a challenge. Doing that while moving to another country could make that challenge even more interesting. If you want to spice things up you can move to a country of which you do not speak the language. Extra points if this is a wonderful country with a taste for burocracy and a distaste for English.

Customers: the real question about freelancing

There is one big fear that stops most people from becoming a freelancer: the fear that you will not find customers and you will not be able to make a living.

I really understand that: I also had this fear. However you have to realize that this is a fairly dangerous fear which leads to poor choices so you have to fight it somehow. I became a freelancer only when I had two things:

  • savings to face a possibly long slow period
  • stuff in my bag of experiences which could help me land gigs, eventually

I also had a secret weapon: a good friend who has been asking me to work with him on some projects for several years already. We had worked together on open-source stuff before (such as libav and plaid).

So, I was still scared but I was not terrified. In the worst case I knew I could get a job in Lyon, after having improved my French.

Let me stress it once again: it is very important to reduce the fear of not having enough customers because the best thing you can do is to refuse customers you are not excited to work with.

This is important because if you start working on unexciting projects you will do a poorer job, you will learn less and you will have no time to accept or look for great projects. Yes, I know you are afraid, but this is not a reason to do poor choices.

You can read more about dealing with customers in my post Good clients, bad clients: how to recognize bad clients and how to deal with them.

Your business, your rules

Getting started it is natural to try staying as flexible as possible to get more work in. However you should build your set of rules over time and stick to them.

Take a moment and think what are the aspects that matters to you the most, what do you need to do a good work and making work a pleasure.

You could establish all sort of rules for yourself but typically there a few which are common:

  • a minimum rate below which you are not willing to work
  • some clauses which you need on your contracts for your own protection
  • requiring an advance
  • limits to the kind of work do you want to do
  • working with a specific kind of clients

Personally I started by setting my minimum rate: as many passionate developers I contribute enthusiastically to open-source for free, there is no need to give away work also to companies. It is also true that normally companies who are able to get the most out of your work will be the ones willing to pay you more. Money somehow is a proxy of how relevant your work could be for someone. I think that doing relevant work is very important.

I never sign a contract I am not really happy with and I always ask for an advance for a work.

I also decided that I will refuse working with customers who are too pushy: most customers try to get the best possible deal and this is perfectly ok, but if someone try to get a 70% discount, demand unreasonable conditions and in general does not act professionally I just walk away.

It is not very straightforward to define the kind of work I accept to do: I love all kind of technologies and I do not feel that anything is “below me”. What I try to focus on is the contribution I can make to a project: can I really make a difference? The answer is probably yes if:

  • it is related to a domain I know well: language design or microservices
  • it is about technologies that I master: Java or parsers for example
  • it is an innovative project: not a classical copycat project. I think that in that case my experience with tons of different stuff can help me get results faster

What I loved

In these months I had the possibility to do different work. This is important to me because I have different skills and I believe that by facing always new problems I can learn more tricks. I think that being able to find similarities between different kinds of projects and cross-pollinate ideas from very different contexts help you identify solid and exciting new solutions. I had the chance to work in research, small companies and very established companies and in each situation I learned something I could reuse. Also having lived in Italy, Germany, Ireland and France helps because from each country I learned a way of working a bit different.

I also had some time to work on open-source projects such as JavaParser, JavaSymbolSolver, WorldEngine and others. This year I became the person with more commits on JavaParser and I created JavaSymbolSolver from scratch. Together with Bret Curtis and some great contributors we grew WorldEngine into a much better project.

IMG_20160104_151547

I also got free stickers and a t-shirt by participating in Hacktoberfest!

I could organize my time. I was often working long hours during the week and many week-ends but I had the possibility to take a couple of days off, jump on a plane and visit a friend. That is invaluable to me.

What could be improved

Next year I would like to blog more regularly and to start speaking again at local meetups and conferences. I am not yet comfortable enough to give presentations in French and I do not think that presentations in English are that common in Lyon so probably it would be easier to give speeches outside Lyon. I have not yet definitive plans on that. I will also attend the Web Summit in Lisbon: I won two free tickets thanks to my open-source contribution. That was great!

I would also like to write about software development (a book perhaps?). I am thinking about a couple of things but it is definitely something that require more thoughts. Let’s see what come up.

Conclusions

It was a great experience so far and I am very happy I did this choice. As a freelancer I think I am in the position to make a difference in different interesting projects and that is simply fantastic.

I was lucky enough to have the right context to getting started so everything went smoothly and I did not have any bleak period.

In the future I would like to write a post about the difference in making business in France compared with other countries.

Are you think about becoming a freelancer? Did you already dive in? How things are going?

Download the guide with 68 resources on Creating Programming Languages

68resources

Receive the guide to your inbox to read it on all your devices when you have time

Powered by ConvertKit
6 replies
  1. Dottor Nomade
    Dottor Nomade says:

    “I had the possibility to take a couple of days off, jump on a plane and visit a friend. That is invaluable to me.”

    Well, it looks like when they’ll eventually kick me out of academia, I might enjoy trying to be a freelancer.

    “Extra points if this is a wonderful country with a taste for burocracy and a distaste for English.”

    I feel you, man. Exotic places like Singapore or Hong Kong are better than France, I think. And this sounds weird, but so things are.

    “lucky enough to have the right context to getting started”
    I think you’re being too humble, here. Sure, luck always counts, but I bet that you yourself built that context.

    So… cheers!

  2. Federico Tomassetti
    Federico Tomassetti says:

    Thank you! Indeed coming from academia I really missed the possibility to organize my time so if you ever leave it freelancing could be a good choice.

    About the last point: thank you. I did some work indeed to position myself but I have to admit that I had a lot of support. Not everyone starting has a friend throwing business at him and providing more than 50% of his revenues 🙂

Trackbacks & Pingbacks

  1. […] I also wrote about my progress when I was half of the way through my first year: my first six months as a consultant […]

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply