Practical Tips From A Toptal Freelancer
If you are a nerd-ish data scientist who wants to start working as an independent (remote) freelance data scientist, this article is for you. The transition from your current 9-to-5 job to remote freelancing is a liberating experience. The ultimate payoff is immense, including:
- higher learning speed, as you are constantly taking in new projects and working with different technologies.
- opportunity to work with cutting-edge startups, without having to leave in a small room in San Francisco.
- freedom to organize your days, weeks, and months, plus no one is counting how many vacation days you have taken off this year.
- higher hourly rates, which translate into higher paychecks at the end of the month.
One Freelance Data Scientist’s Path
My name is Pau Labarta Bajo. I am a freelance data scientist and ML engineer who works as a remote freelancer for the last 2+ years. Before, I used to work as a data scientist in a top mobile gaming company, Nordeus. Around me, I had a crew of great data scientists and amazing data engineers. By the time I joined the team, they had already built the data analytics platform in-house that helped the company manage a game with over 2M daily active users. I felt I was another bee operating inside a well-established swarm. 90% of my time was spent on technical stuff, including data analysis to improve the product and ML development to increase its efficiency. 10% of the time was on communicating to the rest of the team what I was working on.
That split feels great for nerds like us, data scientists, and ML weirdos. However, this comfort has a price that came to me in two constant thoughts
- While Machine Learning techniques and applications pop up everywhere, I keep on using the same techniques to solve the same problems, again and again. Boring.
- Why do I have to wait for yearly assessments, based on someone else opinion, to get a raise? There must be a better way.
Eventually, I quit my job to start working as a remote freelance data scientist. The transition has been both challenging and incredibly enriching. On the way, I have collected a few learnings that I condensed into 4 practical tips, to help you join me and start walking on the other side.
1. Stay calm and do not underprice your expertise
The first question you have is: where do I find my first project?
There are tons of data-related jobs on the internet. If you visit a website like Upwork you can see new job postings poping every minute. Yes, there are LOTS of data science jobs, which is something you should be thankful for every morning. However, there is also a lot of competition on those huge sites. Freelancers from all over the world try to fish in the same pond as you.
You might be tempted to think:
“Let’s try to increase my chances of landing my first job by setting a lower rate than what I think makes sense given my skills AND cost of living”
Big mistake. And, by the way, I made that mistake, twice. In my second freelance project, I was working with another data engineer, in the same time zone, whose salary more than doubled mine. He was working freelance for the first time. Countless times I regretted my smart pricing.
Most clients are willing to pay higher rates to decrease project uncertainty. Yours is a highly qualified job, and excessive price discounts are also interpreted as higher uncertainty on the project’s success. Also, keep in mind you are trying to convince another human, not a cost-minimizing android. You need to show confidence, and setting a lower price than what you think you are worth is the opposite of that.
2. Fish in several ponds
Nowadays there are lots of freelance platforms. I have used 3 of them (Upwork, Toptal, and Braintrust), but feel free to explore others as well.
These platforms can be classified into 2 groups:
- Volume-based platforms, like Upwork. There are no entry barriers both for clients and freelancers. Anyone can publish a job, and anyone can register as a freelancer. It is a good place to find small projects, but quite hard to get good clients when you start. Good jobs are usually open only to applicants who have built a reputation inside the platform through previous projects. This puts you at a disadvantage, and can frankly get quite frustrating when you start. Nonetheless, I suggest you create a profile in Upwork. Upwork clients can find your profile through a search inside the platform, and directly ask you to send a proposal. This is an option you have to leave open.
- Quality-based platforms, like Toptal or Braintrust. They have fewer clients but with much higher quality. In order to see and apply for projects inside these platforms, you need to pass a screening process. It takes around 2 to 5 weeks to complete it. It is time and energy-consuming, but the payoff is immense. Being inside these platforms gives you the opportunity to connect with great clients, usually startups and big enterprises, who are willing to pay higher rates for the quality that Toptal promises them. Do not be scared by their “only top 3%” policy. I can safely say that I was not a “top 3% machine learning engineer” when I joined Toptal 2 years ago.
3. Clients look for VERY specific profiles
Most clients do not look for a well-rounded data scientist, but a specific profile that can solve their problem. Someone who knows very well how to either
- analyze a dataset,
- build a dashboard with Tableau,
- build a data pipeline in Google Cloud,
- build a machine learning model,
- scrape a website,
It is tempting to try to present yourself as the ultimate freelance data scientist who can do everything, but this is not what the client is looking for. Also, data science is a huge market. By narrowing your profile you are still fishing in a pretty large pond. Keep that in mind.
My first freelance job could be crudely described as “None of our data engineers can build a pretty dashboard in Tableau. Can you?”. This was not the most exciting job I could think of, but something I had done thousand times in my previous job. I was an expert in that, and this is what has value for the client.
Start your path by focusing on projects in which you are already an expert. Avoid impostor syndrome, earn your first check, and build up confidence.
Working part-time, or even hourly, you can learn the same as in your previous 9-to-5. Use this as an opportunity to learn new skills in your extra time, in preparation for the next area you want to work in with your next contract.
4. Write proposals that solve business problems, not presentation letters
A typical error is to start a proposal like this:
“Dear X. My name is Y, and I am a data scientist with N years of experience in A, B, C an D. I have a background in E, and … “
Sure. Your potential client would like to know about your incredible background. But she is not your mom or dad. He wants to get the problem solved, so go straight to the point. Focus on the problem from the first paragraph, without preambles and presentations that can only make her yawn. Use bullet points to enumerate very specific things that are directly related to the problem and to decrease the cognitive load. Also, keep BS to the minimum. Do you enjoy reading how someone else praises herself? Same for your potential client.
I have kept every proposal I wrote sent since I started freelancing. All proposals that earned me a job have a structure like this:
“Hi X! My name is Y. I have built N things recently that are directly related to your problem Z:
- Project alpha
- Project beta
- Project gamma …
I would love to help you with this one. Let’s set a call this week to get into the specifics. Best, Y.“
Freelance remote work as a data scientist is incredibly rewarding, both intellectually and financially. It would give me immense pleasure if any of this advice helped you in your freelance path.
I am always open to help others and collaborate on new projects. You can reach me under firstname.lastname@example.org.
If you want to read more about freelance, data science and machine learning, subscribe to the datamachines newsletter or check out my blog.
Have a great day