My First Six Months As a Freelance Software Engineer
My First Six Months As a Freelance Software Engineer
A look at the start of a freelancing career, its benefits, and how to avoid panic about not making any money.
Join the DZone community and get the full member experience.Join For Free
[Latest Guide] Ship faster because you know more, not because you are rushing. Get actionable insights from 7 million commits and 85,000+ software engineers, to increase your team's velocity. Brought to you in partnership with GitPrime.
I think many of us are attracted by the idea of starting our own business. This was something I was dreaming about for a while. One day the context was right and I jumped in. Six months later 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 freelancer 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 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 you want to do.
- Working with a specific kind of client.
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 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 tries to get a 70% discount, demand unreasonable conditions, or in general does not act professionally, I just walk away.
It is not very straightforward to define the kind of work I accept: 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 helps 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 the most 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.
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 weekends, 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
This 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 do not have definitive plans on that yet. I will also attend the Web Summit in Lisbon: I won two free tickets thanks to my open-source contributions. 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 thought. Let’s see what come up.
It was a great experience so far and I am very happy I made 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 get started, so everything went smoothly and I did not have any bleak periods.
In the future, I would like to write a post about the difference in starting a business in France compared with other countries.
Are you thinking about becoming a freelancer? Did you already dive in? How are things are going?
Published at DZone with permission of Federico Tomassetti , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.