SWEs: How to become a machine learning engineer?

I previously wrote a popular post about how undergraduates can become MLEs, and received a lot of questions from people who were already working in the industry. If you’re working as a software engineer, but want to transition to a machine learning engineer, then this post is for you.

Option One: Work on a ML project as a SWE.

The number one thing that software engineers lack when it comes to applying for machine learning engineer roles is real world work experience.

I see too many engineers make the mistake of listing multiple online courses on their resume when recruiters are simply looking for past projects. Save your time and money and try to get staffed on a machine learning-related project as a SWE. All you’re probably missing is a few ML-related lines on your resume and projects you can talk about in interviews. 

Machine learning engineers sometimes collaborate with software engineers to build an end-to-end system. If you’re a back-end, front-end, or full-stack engineer, then you can get machine learning exposure from getting staffed on a machine learning project while being a software engineer.

Real world work experience is significantly more impactful than taking a online course when you write about your experience with machine learning on your resume and talk about it in your job interviews.

Ask your manager to help you find an opportunity to work on a machine learning-related project. If your manager isn’t helpful, then ask around the company too. Use your non-ML expertise as an advantage to help out with tools and technologies the MLEs aren’t familiar with as you learn about ML.

If your company doesn’t use machine learning, skip to option 3.

Options 2-5 can be explored in parallel.

Option 2: Try to transition internally at your current company.

Apply to transition internally to a machine learning role at your company. This is the easiest option because you have the advantage of knowing a company's internal tools and technologies better than external candidates.

Option 3. Apply for jobs like SWE, ML at big companies.

There’s a category of machine learning and software engineering jobs that require both skills. They usually have the job title of “SWE, ML”. Here’s an example of a “Software Engineer, Machine Learning” job from Amazon:

Here’s the analogous “Machine Learning Engineer” job posting:

The roles with Software Engineer in the title will weigh your past experience as a software engineer more positively than the traditional machine learning engineer roles.

Option 4. Apply at startups where software engineering and machine learning skills are needed.

People too often underestimate the experience of working at a startup. It’s the best environment to transition to a new role. 

First, the biggest blockers for SWEs transitioning to MLE is usually the resume. Interviews are a numbers game. You need to get the maximum number of interviews possible so that you can learn from them and maximize your chances of passing them. The resume is usually what stops SWEs from getting the number of interviews they need.

Applying to startups will give you a higher proportion of interviews from applications than applying to big tech companies. Startups aren’t as picky as FAANG. They’re more likely to have a human look at your resume and give you the opportunity to interview.

I went to Crunchbase, got a free trial, and then searched for AI start ups in the Bay Area. Then, I cold-emailed all the founders, which lead to my first machine learning specific job at a ~30 person startup. I wouldn’t be where I am today without that experience. 

Option 5. Apply to graduate school.

5a. Traditional in-person school

I applied to graduate school as a backup, in case I couldn’t find a job. I ended up finding my dream job and getting rejected from all the graduate schools. It’s hard to prepare for interviews and graduate school admissions at the same time, but it’s good to shoot your shot and see which one works out for you.

Option 6. Apply to graduate school for a Masters or PhD.

Many job postings require a Masters for the MLE positions. I was able to get a job without graduate school, but it was a struggle. The unfortunate truth is the one extra line saying MS on your resume does make a difference in the application process. It’s not impossible to get a job without it, but it does make it a lot harder. If my company had paid for an online degree, then I would have done the Georgia Tech Online Masters in Computer science with a Specialization in Machine Learning. Check it out! I recommend it because many of my coworkers have done it.

Option 7. Complete a bootcamp.

In between my software engineering job and my machine learning job at a startup, I completed an AI Bootcamp, Insight Data Science. (Update: It was shutdown because of COVID.)

I personally wouldn’t recommend paying for one. I did Insight because it was free.

This is not an option, but a requirement: Remember it’s a marathon not a sprint!

I started as a software engineer, completed a bootcamp, and worked as a deep learning engineer at a tiny startup before I finally landed my current role as a machine learning engineer at Stripe. It took me 3 years, 300+ job applications, 100+ job interviews, 10 graduate school rejections, and many more job rejections. Keep going!


Questions or comments? Tweet at me