My Experience in ML Freelance

How does part-time flexible ML freelance works look like as side-gigs for a full-time ML engineer?

Zac Yung-Chun Liu
SylphAI
7 min readApr 17, 2023

--

Introduction

This blog post is about my experience in part-time freelance work in machine learning (ML) and data science (DS). I have been working full-time as a ML engineer and data scientist for about 8 years (2015- present). During this time period, I’ve also worked on a few long-term (> 4–6 months) freelance projects in ML as side gigs.

Recently I have seen a trend in the ML community that more and more ML engineers and data scientists are interested in this type of part-time gigs (one example), aiming to make themselves extra income, or just to gain the ML experiences that they are not able to get from their full-time jobs; therefore, I thought my experience could be helpful for some people.

Another side-gig I have done is so-called “expert consulting”. In the past 2 years I’ve done 20+ of these, mainly for market research companies as well as investment firms who are interested in the ML space. I will share this experience in a follow-up post.

Timeline, workload, and hourly rate

I worked on 4 freelance projects during my 8-year ML/ DS career. Here I share the timeline, the average hours I worked for each project, as well as the rate I charged.

  1. The first freelance ML project I worked on was back in 2017–2018. The project lasted over one year, where I worked about 20 hours per week; note that these hours were on top of my full-time workload. Since I was just starting my ML career, the hourly rate I charged was $35.
  2. The second project I worked on was in 2018–2019, it’s a 6-month project where I worked about 20 hours per week. During this time, I considered myself a bit more experienced, and my hourly rate was accepted as $65.
  3. The third project was from 2021–2022, it’s also a 6-month project and I worked around 10–15 hours per week; my hourly rate was $75.
  4. The most recent project I worked on was in 2022–2023, this project was shorter, about 4 months, and my hourly rate was $100.

One thing I’d like to share regarding the hourly rate is that it’s closely correlated with my full-time salary in a way that I think it’s fair to me and my clients, although I can probably charge a higher rate.

Time management

As you can imagine, working on a side-gig, in addition to a full-time ML engineering/ data science job, I had to work some hours during the nights as well as the weekends. To perform well in both my full-time position and part-time project, time management is extremely critical.

The approach I used to manage my time is to plan out the work hours in advance and try to follow it strictly. Not that this also depended on the work location and how flexible the work schedule I had in my full-time position. For my first freelance project, both my full-time and part-time work were flexible in terms of the work location and work hours. I had office spaces in both locations, luckily they were very close to each other (5-min walk). For example, I planned out to spend 4 hours every Friday afternoon in my part-time work office for in-person interaction and meetings. From Monday to Thursday, I worked 2–3 hours every night as well as 4–6 hours over the weekend for my freelance project (total about 20 hours per week). I tried to follow this schedule as much as I could, but surprises and uncertainties happened from time to time, so I had to adjust it dynamically as well.

Starting at the time of my second freelance project, remote work was much more acceptable to most employers, therefore, the next 3 freelance projects were all done remotely. Another approach to manage projects I used was to separate the work in different computers. I had a personal laptop that’s used for my freelance projects and I had the laptop provided by my full-time employer that’s strictly for my full-time work only. This helped me have a clear separation of the data to prevent the potential data security issue, as well as not mix up the proprietary work and documentations.

Transparency and benefits

In my case, transparency was very critical too. All my full-time bosses knew that I had a ML side-gig at the same time. Fortunately for me, they actually encouraged the side projects and they were supportive too. As from their views, the DS/ ML space is changing very fast; they believe I can be a more effective ML engineer by gaining new skills from side projects.

Moreover, I have been a ML generalist, therefore, working on diverse projects is essential for me to become effective in my jobs. For example, my full-time job was dealing mostly with image data, and my freelance work was mostly in NLP (natural language processing). If I were to only work on computer vision problems, I’d have less opportunity to test the state-of-the-art models in NLP with real datasets. Another example is that my full-time work used either AWS (Amazon Web Services) or GCP (Google Cloud Platform); through my freelance work, I got exposure to Microsoft Azure.

Expectations

One of the most tricky things in ML freelance is to manage client’s expectations in terms of model performance. ML is different from software engineering in that you can’t really promise the client you will build the best performing model that has > 99% accuracy, without seeing the data first. From my experiences, I found that it’s best to educate the clients out-front about this topic early in the conversations. Another thing I did was to divide the work into phases, for example, the first phase only focuses on the model development, and the second phase is to get to the ML deployment, and the commencement of the second phase work depends on the success of the first phase.

Clients

I got my clients mainly via my personal network, meaning LinkedIn, former co-workers, and people from meetup events, as well as my Slack community. I used Upwork, and did get one ML project from it, but it seems not very effective after that, mostly due to the poor project quality. I also applied to Toptal before, but I ended up not finishing the interview process, which was a bit slow and lengthy at the time.

There have been new platforms and freelance marketplaces coming out in the past few years, but I didn’t try all of them. Among the new concepts, I recently became affiliated with SylphAI. What attracted me to SylphAI is that it’s a community-focused platform for flexible work and I used it to help a few of my friends hire ML engineers. If you are just starting out and looking for ML freelance opportunity, this type of community platform would be valuable.

Proposal and SOW

Proposal and statement of work (SOW) are the required documents by most of the clients. In three of my freelance projects, the clients actually had a project proposal in mind already. Only one of my freelance projects that I had to pitch to my clients on what I can do for them.

I found all my clients appreciated the proposals and SOW that outline detailed steps in the ML works I was planning to do. For that being said, writing proposals and SOW really takes time and effort. Depending on the project scope, I found it took me at least a couple hours on average to draft and iterate good and detailed proposals and SOW. Currently freelancers don’t charge the client for the proposal writing time, but my opinion is that this has to change, as writing a proposal that contains the planned ML work you are going to do should be considered the actual work as well. In this regard, SylphAI has been striving to change this process. In the SylphAI platform, by default the freelancers are paid to write the proposals for potential clients.

As I was helped by many friends in my network and from the ML community in my freelance journey, here I share the template I used to draft the SOW, as a give back. P.S. Nowadays you can probably ask ChatGPT to write it for you.

Conclusion

Part-time freelance has been a good way for me to monetize my expertise in ML, which got me some extra cash to pay for vacations and house improvement. There are better ways to make extra income as ML/ DS professionals, because freelance actually takes up your time to rest and relax; It’s not for everyone. As for me, I have enjoyed working on these paid side projects to improve myself to become a better ML engineer/ data scientist; they also got me exposure to diverse ML problems. I can totally read about people’s experience in other ML fields from the internet, but I found that as a ML generalist, I can truly add new ML skills when I do hands-on work.

Note: this post was originally published on SylphAI’s blog site.

--

--