The first time you take on a data science project yourself as a freelance data scientist, it’s tempting to think of the project breakdown like this:
25% data cleaning → 50% data science → 25% deployment
Of course, if you take on a project with this expectation, it’s likely to over-run. Deploying a data science model can take much longer than expected, and cleaning data can also be surprisingly complex.
I’ve seen a lot of tongue-in-cheek blog posts saying that the breakdown is more like this:
However, I think that there’s another major stage that people are missing, which is the stage of gaining a client’s trust, getting NDAs signed, and getting access to the data. I’ve seen projects where it took 6 months to get hold of the data from the client, for 1 month of data science work. I have also seen a fair number of projects fail for the same reason.
So my take on this is that the breakdown is more like this:
Why is getting hold of data such a problem?
As data scientists, we encounter two kinds of data:
A paid data science project will usually involve private data. For many companies, its customer dataset, or manufacturing logs, or user data, are the crown jewels. The data is fiercely guarded. You will need to sign an NDA before you’re allowed to look at it. The consequences of a data leak are severe (just ask Ashley Madison).
Companies don’t like to give data to outsiders, least of all to freelance data scientists. Even if the stakeholder in the business wants to share the data, several people would need to sign off on it, and it takes objections from just one of them to stall the project.
What can we do about it?
Data scientists have to accept that getting hold of data will always be an obstacle. The best way to mitigate the risk of data not showing up is to schedule a kick-off meeting, ideally a month before the project. Request the data from the client at this meeting, and follow up regularly. Make sure that the data is available before the first billable day of the project. This means that any blockers can be dealt with in a timely fashion.
A large and often overlooked obstacle to getting a data science project off the ground is getting data from the client. The process can involve lots of meetings, contracts and NDAs before you even begin to sign a contract for the work.
The best way to mitigate this obstacle is to anticipate it and to plan for 1 month of ‘waiting for data’. This month involves kick-off meetings with a client, NDA signing, and regular follow-ups. If this step is taken, the probability of success is much higher.
How can you move from a steady employment as a data scientist to freelance data science consulting? What are the practical steps you need to take and common pitfalls when starting out as a freelance data scientist? I’ve written out 34 steps that I took to make data science freelancing my livelihood, and some tips that I wish I had known before trying to make it as a freelance data scientist.
How is data science freelancing different from other disciplines?
In some other fields such as graphic design or translation, freelancing is common or even the norm in the UK. What makes data science so hard to fit into a freelance model?
Data science is normally only worthwhile in a b2b context. In fact I can’t think of an example where data science is sold direct to the consumer.
The companies that have enough data to need data science are normally large, which means they have the budget to do data science in house rather than hire freelancers.
Data science projects can be complex and involve an investigation stage which could return negative results. This means that a freelance data scientist would have to take on a job without being able to guarantee that it is at all possible. This rarely happens to a freelance translator or graphic designer.
Freelance translators can set their prices per word and everybody understands and agrees on this pricing metric. It is hard to quantify freelance data science work in the same way other than pricing by the hour, which brings obvious disadvantages.
In the current climate, data scientists can earn a good living as employees and so there is no financial pressure to become a freelance data scientist.
Large data science projects last for years and need a whole team of people in different roles. A freelancer could not take on this kind of work. In contrast many graphic design or translation tasks only take a few hours to do, making them more suitable for outsourcing.
Data science is still a new discipline and the economy hasn’t yet adapted fully to its appearance.
Going from employee to freelance data scientist
It is possible to make the move from employment to freelancing in data science, but it requires a lot of work. First I would recommend that you first do a few years’ full time experience at some household name companies, to gain the necessary breadth of experience. I will go against the grain and recommend job hopping frequently, for example every 9-12 months. When you are a freelancer you will want as many companies under your belt as possible.
Make sure you complete any project that you start, and that you always deliver value for any company you work for far in excess of what they pay you. You should be much more than an employee completing their required tasks: you should be proactively identifying and acting on opportunities for the business to extract value from data. This is what a consultant would do and it is good preparation for what you will be doing as a freelance data scientist.
Moving into data science freelancing via contracting
In many countries you have the convenient stepping stone of contracting, which is a kind of middle ground between employment and true freelancing. If it is an option, I would recommend contracting as the simplest way into freelance data science work.
Provided that your CV is strong, you can set up a profile online, and recruitment agents call you about contracting positions. In the UK you would normally incorporate as a limited company.
Don’t forget that contracting is not true freelancing, for the reason that you are not behaving like a business. You are not investing in sales and marketing in the same way as a business, and you will normally be placed long term at a single client on a rolling contract.
Taking on contracting engagements for a year or so can be a useful way to move into data science freelancing, since you can take on freelancing work between contracts, or take time off a long term contract if a small freelancing job comes up. Contracting offers more flexibility than full-time employment, allowing you to tip your toe into data science freelancing without going all in. It can also give you practice at the administrative tasks involved in running a company.
Marketing yourself as a freelance data scientist
Once you have decided to move into data science freelancing, you need to decide on and implement a marketing strategy. Coming from traditional employment, it can be surprising how much work needs to go into marketing. Initially, you will find yourself working longer hours than you ever did as an employee. For many of us, myself included, the creative side of marketing can seem a chore. However, I guarantee you even a few hours invested in data science marketing will go a long way.
Pick a niche or speciality within data science. For example do you have experience in natural language processing, pharmaceuticals, finance, computer vision, retail, cloud ML? Bring this to the top of your CV and LinkedIn. Your blog posts, business card and elevator pitch should all focus on your niche.
Make sure your LinkedIn is up to date and full of material, images, and relevant keywords.
Create a profile on the main freelancing platforms. I created one on about 15 platforms including Upwork, Kolabtree, Guru, Clutch, Fiverr, Twine, and PeoplePerHour. Find which other platforms are active in your area by Googling for freelance data scientist, freelancer platform and the like. Signing up on these sites can be time consuming and sometimes you need to have an interview. You may be asked to pay a couple of dollars to register or apply for opportunities but don’t pay any more than that. You can try Toptal but be aware its onboarding process takes an entire week, but you can sign up on most other platforms in a few hours. Take the time to create a really good profile on these platforms with images, lots of documentation, information about past projects, etc. You want to outrank the competition.
Bear in mind that the vast majority of jobs on freelance platforms are outsourced to lower income countries, which can cause a race to the bottom in price. Having said that I’ve seen large data science freelance projects advertised on Upwork for $50 which would be ridiculous in any country. Don’t be demoralised by this. If you live in an expensive location you won’t be able to compete on price so you have to compete on quality. In any case if you have chosen your niche, and honed your profile, you can keep watching the freelancing sites until something comes up that you are perfect for, where the client is prepared to pay for an expert level job. At this point you will be glad that you didn’t drop your price.
Create a business LinkedIn profile and business website. If you can deploy some demo machine learning models on the website that will really set your website apart from the competition. I recommend Pythonanywhere.com, a provider that lets you deploy Flask apps cheaply and quickly.
Consider paying an online marketing expert to make your website professional, bring it to the top of Google results, or even pay for Google/Bing/LinkedIn ads (but be careful here because these are expensive). The money invested will be worth it. Make sure the website has a functioning contact form so that prospects can actually reach you. Test your contact form regularly as they break easily. Get an email address at your company’s domain.
Similar to your freelancer profiles, you should also create a business profile on company directories such as Goodfirms. Find every such directory and make sure you are on it. Put your competitors’ website URLs into Ahrefs’ backlink checker to find out who is linking to them, and try to get listed or mentioned on those sites too.
Make sure all your profiles are complete and link to your website.
Post frequently to LinkedIn. Try to post shareable content.
Connect on LinkedIn with people in managerial or CXO positions in industries that may need your skills. They must be of sufficiently high rank in the company to have the power to sign off on a data science project, but not so high up (CEO) that they are not directly involved in project level decisions in their business.
Don’t forget in person networking. Meetings on Meetup.com are helpful. Just make sure you are going to events where you might meet prospects. For example a technology meetup could have only other data scientists, aspiring data scientists, and recruitment agents in attendance. None of these are likely to present a prospect for you. I have found university alumni meetups to be very valuable, if you have that option. Similarly you can go to events in an industry that you’re interested in.
The great thing is that you can start the ball rolling while still in full time employment or contracting. Once you have your marketing set up, you can sit back and wait for leads to trickle in. If a suitable request for a small freelance data science job comes in, you can take it on in your free time. You can refine your pricing strategy over this period. If you ever have two people willing to pay you for a data science freelancing job, you can probably increase your price next time.
This is important because when you do become a full time freelance data scientist, you will have a lot of downtime when you’re not earning, and you will need a much higher rate than when you were employed. I recommend to aim to charge double your standard hourly rate because of this.
Taking the plunge as a full time freelance data scientist
The first time a client from one of the freelancing platforms asks you to do a reasonably big job, you will find that you no longer have time to keep up your day job. You will have to give up your safe employment in order to take on the freelance data science opportunity. So far you have been dipping your toe in the water but now it’s time to take the plunge as a full time freelance data scientist.
Make sure you have a series of potential clients lined up for after the first job. Even if you have a client who wants you to start a project next week, even if they have signed a contract, you should be aware that the job can still fall through, and you need to keep a series of clients in the pipeline. This is different from full time employment, where you can normally relax as soon as a contract is signed. Even if something seems ‘in the bag’ and the client assures you it’s guaranteed to start, nothing is really guaranteed until the money is in your bank account.
Building a process in data science freelancing
At this point you can get into a rhythm of freelancing.
When a client contacts you about a job, you need to think differently from an employee. You are now a consultant. Your job is not to fulfil the tasks you are given, your job is to understand the business need and come up with a solution. This is how a consultant delivers value. But this should be second nature because you will have been doing this in your last full time job anyway.
Keep a record of every lead and when they contact you. Ideally also what channel they came from (referral, website, LinkedIn, etc). This helps you identify which marketing strategies are delivering value.
When a lead contacts you, you need to know when to get back to them. Don’t be pushy, but if you don’t hear from them in a few days you can give them a nudge.
Even if you are very busy with a client at a given point in time, don’t neglect your marketing activities. Keep posting, blogging, monitoring your website, and looking for leads. You need to keep feeding prospects into your pipeline.
If you are too busy with data science work, take a few days off to focus entirely on marketing. You should outsource as much of your marketing as you can to freelancers, although some of it cannot be outsourced. For example your blog is your own voice.
Develop a checklist of ‘due diligence’ that you perform before accepting a freelance data science job. For example if the owner of a startup asks you to do some data science work on their app, ask them how many users they have. If there are only 40 users, there is not enough data for you to work with and you are best off dropping the client. Likewise make an informed guess as to the client’s financial situation before committing time and energy to a prospect. I check out their recent years’ accounts on Companies House or local equivalent.
Keep records of every freelance data science project. You will find you can reuse marketing materials, presentations, demos and the like, of course within the limits of IP. You should soon get a feel for where you can recycle knowledge or code and speed up the process.
Setting prices as a freelance data scientist
Move away from the freelancing platforms like Upwork, both because they take a large cut of your earnings, and because the most lucrative contracts can be found elsewhere if you do the legwork.
Increase your rate. The big consulting firms do not make their rates public because it is not in their interest to do so. But from what I can see the large consultancies are charging huge premiums sometimes to send in a recent graduate. Your selling point is your niche skills, which a new graduate won’t have, and the fact that you are cheaper than a large corporation, and hopefully do a better and quicker job too. Don’t be ashamed to point this out.
Try to refine your pricing strategy. Move away from hourly billing towards value based pricing. You should quote a price for a certain deliverable which doesn’t depend on how quick you are to deliver it. This is hard to do and you won’t be able to do it with all projects, because of the inherent unpredictability of data science work.
If two clients are prepared to pay you at a given rate, you should increase the rate.
If nobody tries to negotiate the rate downwards, you should increase the rate.
You can also start to think outside the box when you are looking for clients:
There is demand for data science pretty much anywhere, from medium sized companies to public sector to charities. Even if you would not expect an organisation to have a budget to hire a freelance data scientist, if an individual inside is convinced of your value you can land a successful contract.
Ask around your network for recommendations. Friends, family, alumni.
Update your LinkedIn to show your availability for contracts.
Sign up for a free trial of LinkedIn Premium, which allows you to look for prospects by industry, location and seniority. You can focus on people who are likely to need your niche skills and who also have the authority to sign off on it.
Develop an exit strategy
After you have finished a successful freelance data science project, you need to take advantage of the good ambience with the client.
Ask your clients to suggest anybody else who they can recommend you to.
Ask them to post testimonials on your website or web profiles.
Ask them for feedback on how the project went, so you can improve your processes.
Try to assess when they might need you for follow up work and set up a reminder to contact them in the future.
I hope that this post helped to inspire you towards becoming a freelance data scientist. If I missed anything off, please let me know. I wish you good luck on your journey towards freelancing.