This article is the third and last of a three articles series about making the move to freelancing. If you haven’t read the previous ones yet, it is recommended but not mandatory to do so before going on.
One year ago, I left my full-time job at Ubisoft Montreal and became a freelance developer. In this article series, I share my experiences and a few concrete tips on how to switch to freelancing. It is, of course, targeted towards aspiring freelance programmers, but other freelance workers will hopefully also find a lot to learn. Some of the information presented is also specific to Montreal, but the overall step by step process can be applied elsewhere.
This series is composed of three articles. Each article covers a stage of your progress towards your goal of becoming a freelance developer. They are presented in a chronological order. Two weeks ago, we went through the preparation stage: before you leave your current position and can position yourself as a freelance developer.
Then last week, we presented the following stage we call “transition”. At that point, the switch to freelancing was done, but no contract was signed yet. Finally, this week, the execution stage will help you keep your business moving forward while working on your first contracts.
A career is something very personal, and it is very likely that people have different views about what becoming a freelance developer means. This series is not about answering all questions to everyone. It’s about sharing my experience with other newcomers so that they can benefit from it. Any question or remark is more than welcome, please share them in the comments at the bottom of this page.
All the effort of the transition stage has hopefully paid off, and you managed to get your first contract, congratulations! It is now time to give your best to your clients and keep your business healthy.
Your workplace can make a big difference on how you feel about your work. You should consider your options carefully before accepting contracts.
You will often need to work at your client’s office. It’s generally the best way to collaborate with your client’s team. Unfortunately, in this case you don’t get to choose your workplace. For this reason, if your potential client requires you to work on site, you should visit their office and make sure it won’t have a negative impact on you. If in doubt, express your concerns and take some time to think about it. A compromise can sometimes be reached where you can spend most of the time working off site, and visit your client when needed. As with price negotiations, if your potential client’s workplace doesn’t meet your standards and you’re not allowed to work from outside, there’s no obligation to accept the contract.
If you’re free to pick where you work from, you generally have two options: work from home or find a working space. Working from home sometimes represents the ideal of working in the cosy comfort of your house, the tranquility needed to focus on your code and the ability to eat and drink healthy. While this is true to some extent, always working from home is not without drawbacks.
First, it’s very easy to isolate yourself from your peers and your social network. Going out of your home forces you to have social interactions that make you grow as a developer and as a person. Comments on your code from fellow developers, pieces of advices about software design around a cup of coffee, or tales of vacations at the other end of the world can all inspire you and will keep you moving. Working and living at home can also give you the feeling that you’re always working, which in turn can lead to burn out.
Luckily, there’s plenty of options to find a working space in Montreal. One of them is called co-working. The idea of a co-working space is simple: a large office equipped with all business facilities (internet connection, printers, desks, meeting rooms, etc.) is rented by freelancers and/or small companies. All members share a part of the rent and have access to the space as they want. Usually, co-working spaces have pricing plans that allow you to rent a desk part time. This is a good solution if you want to cut the cost and work from your quiet home from time to time. Montreal has lots of co-working spaces but it is not easy to find a regularly updated online directory. The co-working wiki has a list of spaces available in Montreal, but some of its content is a bit outdated. You’ll need to double-check the information on each space’s website and use other resources to have a more complete picture what Montreal has to offer in terms of co-working spaces.
To help you in your choice, here’s a list of some of the co-working spaces I know or heard of:
Most of co-working spaces offer a one-day free trial, so don’t be afraid to try them before making your decision.
Eventually, you will need to make money to make your freelance business sustainable. That means tracking time spent working and sending invoices to your clients. Depending on your contracts, you may also need help in accounting to keep track of your expenses and revenue.
Plenty of solutions exist to take care of these two aspects of your business. Some of them provide accounting and invoicing services, other only offer one or the other. To me, unless your revenue and expense workflow is complicated (lots of different clients, large amount of expenses that you sometimes bill to your clients, etc.), a beginner freelancer should only need an invoicing solution, not the accounting part.
You will also need to check their pricing plan to understand which one is most adapted to your needs. Some of them base their price on the number of clients that you have, others on the number of collaborators or invoices you can send, and some are totally free.
I started using Freshbooks, a two in one solution. It’s great for invoicing. It’s easy to use, generates good looking invoices that can be translated with a click of a button, and interfaces with lots of payment options like Dwolla and Paypal. While I was very happy with the results, I felt that 20.95$/month for generating invoices was a bit expensive.
I looked for cheaper alternatives and one of my fellow developers @jfstgermain recommended Harvest to me. At $12/month, it is significantly cheaper. While the time tracking and invoicing features are good enough for my use cases, it can sometimes feel a bit bare. For instance, you’ll have to handle translating invoices yourself. In a bilingual and multicultural area such as Montreal, it can be a deal breaker. So far, all my clients have been happy to receive invoices written in english, but it may change in the future.
Many more solutions exist out here. Invoice machine looks like an interesting minimal solution that is free for freelancers who do not send more than 3 invoices per month — which is realistic for a software developer. Waveapps is completely free and seems to provide a complete business platform. I encourage you to look around and use what is best adapted to your needs.
Declaring and paying taxes is mandatory, and it can become very time consuming and confusing if not taken seriously. Luckily, it is also quick and easy if you update your records regularly. When you make a transaction that has some impact on your taxes, record it in your files immediately. For instance, if you buy a piece of software, record the transaction as soon as your receive the invoice. I suggest using Google spreadsheets to keep track of the numbers, and saving your electronic invoices in the cloud. Remember that you are required by the Quebec revenue agency to be able to present data up to 7 years old. For paper invoices, you can take a picture and upload it to the same cloud service — the revenue agency is ok with that, I double-checked with them on the phone.
Following this process, and if you use an invoicing solution as mentionned in the previous section, doing your taxes shouldn’t take more than 30 minutes at the end of the year: you’ll just need to open them and sum everything up to produce your tax declaration.
To actually produce your tax declaration, you can either pay an accountant or do it yourself using software solutions like UFile (or ImpotExpert in French). Accounting expenses are deductible from your taxes, so the additional cost is not too high. Moreover, accountants can often optimize your tax declaration so that you can get more money back. However, producing your tax declaration yourself gives you a lot of hindsight of where your hard earned money is going.
If you’d like to use an accountant’s services, I personnally have always been satisfied with Impots-Ici. Otherwise, UFile (or ImpotExpert in French) is a very simple, affordable and complete solution. Most accountants actually use it to produce tax declarations.
One of the perks of being employed by a company is to automatically benefit from a good health and salary insurance. As soon as you start becoming a freelancer, these two protections are not automatic. You will need to subscribe to health and salary (separately most of the time) insurance yourself. In order to do that, you can contact insurance brokers. Some of them, like SFL or SFITA are independent insurance consultants. Being independent professionals like yourself, they should better understand your needs. Personnally, I contacted SFL and subscribed to health and salary insurance with them and I’m very happy so far with the service. I invite you to contact them and they’ll be happy to answer your questions for free.
Keeping your software development skills up to date is key to your success. You will regularly need to improve one or several of the skills you chose to focus on (see “Choosing your skills” in the first article of this series). You will also need to acquire new skills you identified as essential to maintain or grow your business.
Fortunately, lots of resources are available to software developers for self-improvement. Blogs, forums and answer sites like stackoverflow and Quora are great to find out answers to specific technical questions. Twitter feeds are also very helpful to learn about emerging technologies and paradigms. These resources are free most of the time and it will only cost you some time to find and use the best ones.
However, I’m a strong believer in training by doing. I think that the best way to learn about something is to struggle with it. For this reason I recommend that you don’t spend too much time reading. Choose a small set of excellent resources that you select and update regularly. The goal is to spend a small amount of time reading instead of doing any actual work. You should not spend more than thirty minutes a day reading about technology unless you’re acquiring a new skill.
Fellow programmers will also be available during meetups, hackathons and conferences to share their knowledge with you. Montreal has excellent events going on all year long. My favorites include JS Montreal meetups and the Confoo conference, but you can find many more by subscribing to the Montreal Tech Events calendar, or by visiting the excellent Montreal Tech Watch.
Meetups and hackathons are generally free, but conferences can be expensive. Most of them also happens during the week, and if you’re a successful software developer, chances are that you’ll have to choose between attending an expensive conference or billing your clients. For this reason, you should carefully ask yourself: “What value can I get out of this conference?”. If the answer is not a clear return on investment, I recommend you to wait for a better opportunity.
Finally, if you’re looking for a comprehensive resource on a specific subject to use as a reference or training material, a great book can be a very helpful companion. However books can be expensive and take a lot of room on your shelves. Moreover, you don’t need them all the time. Safari Books Online — from O’Reilly — is a large tech books library available from 29.99$/month. You can access up to 10 books during a month, and you can even download some of them for offline reading. Most of the O’Reilly collection is available, plus lots of other editors’ publications. The quality is very good and the catalog is updated regularly. They also offer video tutorials, master classes and conferences. Another plan is also available at 44.99$/month and gives you access to early drafts, which can help you get into a new technology before your competitors. If you’re on a budget, the Bibliothèque et Archives Nationales du Québec has a Safari account that gives you access to the Safari catalog if you’re a member of the library.
From the preparation stage to billing your first clients, we covered a lot of content in this articles series. It is in my opinion a good time to try things for yourself. Don’t be afraid to question what others do and get out of the beaten path: being a freelancer is your chance to work the way you always wanted to. Hopefully, some of the advice mentionned in this series will help you achieve this.
Thank you for reading this far, and good luck!Julien Gilli 08 October 2013