Machine learning engineers are in high demand as more companies adopt artificial intelligence technologies. With demand outpacing supply, the average yearly salary for a machine learning engineer is a healthy $125,000 to $175,000 (find our more on MLE salaries here). And the highest-paying companies are offering more than $200,000 to secure top talent. Intrigued? Read on to learn how to become a machine learning engineer.
A Guide to Becoming a Machine Learning Engineer
What Is Machine Learning?
Machine learning (ML) is a subset of artificial intelligence (AI). You might have heard how AI is transforming virtually every industry, from transportation (self-driving cars) to finance (automatic fraud protection). You’ve definitely heard of data scientists, which the Harvard Business Review has called the sexiest job of the 21st century.
Machine learning involves scaling data science algorithms to large data sets. Data engineers or machine learning engineers will often work with data scientists, who will define the rules of engagement when it comes to a data set and communicate insights to critical business stakeholders.
Machine learning engineers are there to make sure the models that data scientists run are always performant, always ingesting vast amounts of real-time data that make the models more accurate. They use programming frameworks and big data tools to ensure that data pipelines running from raw data the company is collecting to refined data science models in the backend are always up and ready to roll. They’re there to scale machine learning applications to the large amounts of data companies are now gathering.
Reading this introductory list of machine learning algorithms will help you understand exactly how machine learning operates in theory. Machine learning engineers are the programmers who ensure the algorithms have relevant data to ingest and process at all times.
What Is a Machine Learning Engineer?
The next definition we have to work through is that of the machine learning engineer position itself. In practice, what does it look like and what machine learning skills are required?
Here’s an example from Apple of the machine learning skills employers are looking for and what machine learning engineers are tasked to do. You’d be working with state-of-the-art technologies and building out Siri and her functions as a critical user interface to a suite of powerful machine learning algorithms.
Creativity and an entrepreneurial spirit that can accept failure as a result of experimentation is an important part of any machine learning engineer role.
The day-to-day is left a bit broad in this machine learning engineer job description, but you can see that it involves working with many different teams, organizations, and codebases while writing elegant code and mastering new technologies to bring an AI interface to people. Apple’s product-focused culture means that you’ll likely work within that framework, while having the independence to work and scale with new AI technologies.
Here’s a sample day in the life of somebody who works as a machine learning engineer. The piece begins with a personal morning routine and then breaks down what it’s like working with different models throughout the day, including when code reviews and collaboration with other team members break the flow. Take a look if you want a tangible record of an average day for a machine learning engineer.
Requirements for Being a Machine Learning Engineer
As this machine learning engineer job description from Apple shows, you’ll need to be quite technically skilled to have a successful machine learning career. Most machine learning roles will require the use of Python or C/C++ (though Python is often preferred). Background in the theory behind machine learning algorithms and an understanding of how they can be efficiently implemented in terms of both space and time is critical.
You’ll be working with different algorithms and implementing them across different codebases and settings, so previous experience working in a software engineering role at a company that’s achieved a large codebase and some scale is helpful.
The ability to understand the latest deep learning and machine learning papers and implement their architecture is also an important part of becoming a machine learning engineer for a cutting-edge company.
The easiest path to that desired career, though by no means the only one, is to start off with a software engineering background and then gain the statistics and machine learning knowledge needed to work as a machine learning engineer.
You could also be an academic who is more involved with machine learning theory and then develop your software engineering skills (though you might be a better fit for a data scientist rather than a data engineer role if that’s the case).
A more difficult path involves teaching yourself both the software fundamentals and the machine learning theory. It’s doable, and there isn’t necessarily stigma associated with people who are self-learning in an industry like this that’s on the cutting edge of computer technology.
If you feel like you need some guidance as you explore how to get a job in machine learning, Springboard has launched the first AI/machine learning bootcamp with a job guarantee. It comes with one-on-one mentorship and weekly phone calls with your own AI mentor, plus career coaching to help you begin your machine learning career.
Machine Learning Skills Needed
Machine Learning Theory
You need to understand how machine learning algorithms work, what their goals are, and how to use them on data at scale. A Tour of the Top 10 Algorithms for Machine Learning Newbies will take you through the basics of the most frequently used algorithms in machine learning, from linear regression to k-means clustering.
Foundation in Computer Science Theory
In order for you to build maximally performant data pipelines, you’ll have to understand how machine learning algorithms work and the time and space they take to process different amounts of data. By understanding how to cut down on space and time considerations, you’ll be able to implement machine learning pipelines that can handle petabytes of data—an essential skill to have.
You need to actually learn how to handle data sets and work with them in order to launch a machine learning career. Data wrangling is when data professionals clean up data sets and process them through machine learning models. The process, in practice, involves a lot of cleaning out mistaken values, validating data, and then manipulating it to a desired state so that it can be transformed or handled elegantly by different algorithms.
For practice, the Kaggle section has plenty of data sets you can play around with, and it comes with handy upvote features and previous projects so you can see what the most popular data sets are—and how people have wrangled with them in the past.
Related: 6 Complete Machine Learning Projects & Tips to Build Your Own
Familiarity With Distributed Computing
You’ll have to become familiar with distributed computing and frameworks that help you take advantage of data processing across either cloud computing-based servers or through spreading data across different servers you own. In practice, running cutting-edge machine learning algorithms on very large data sets will only be truly performant on the scale you need to become a machine learning engineer.
Best Practices for Coding Collaboration
You’re going to need to learn how to work with multiple codebases and slice through different teams. This is why you’ll want to review code review best practices and learn the different methods of building intuitive access to your code and instances, from Docker containers to Flask as an API builder.
Python and Its Libraries
Python is the foundation of most data science and data engineering frameworks. You’ll want to master it and its applications in different libraries, from Pandas (perfect for data wrangling) to scikit-learn (comes with efficient pre-packaged machine learning implementation algorithms that you can often call with one line of code).
Fortunately, the Python language has very clean syntax and (aside from its use of whitespace) is very similar to most other programming languages in terms of the essentials (making it easier to pick up). It’s also very versatile, with libraries that help with all sorts of different functions, and can accept many programming paradigms, from object-oriented to more functional programming.
A good first step is to work with this free interactive learning path to machine learning in Python. Then you can move to something like this Pandas Cookbook so that you can start working with data in Python.
Git and GitHub, Docker, APIs
You’ll want to get a handle on how to use Git and GitHub efficiently in order to collaborate across different codebases and across different models quickly with different teams. This Git guide can serve as your refresher on this topic.
Docker containers will let you share applications with all of the dependencies packaged and are an essential software development collaboration tool. You’ll want to get a handle on Docker and use it to help share the software you’ve developed.
You’ll also want to learn how to build and access APIs easily: they’re a systematic set of rules for both getting data and for letting others pull it.
You’ll want to train with a distributed data programming framework that will help you handle the load of big data sets that might go into the petabytes. This Hadoop vs. Spark blog post will help you pick which framework to work in and will offer some initial steps to tackle both.
If you want to get started with Spark, there is a Spark implementation in Python known as PySpark, and plenty of documentation and tutorials involving Spark, especially with Databricks. SparkML is a very popular “large scale” machine learning framework. The argument can be made that Spark is the future and Hadoop is the past. If you believe that, focus on building your Spark skills.
There are plenty of Hadoop tutorials as well. This list summarizes the many out there that can help you pick up this framework.
Machine Learning/Deep Learning Algorithms
By now, you should have a fairly good idea of how to implement machine learning and deep learning algorithms in practice. You’ll be able to implement old school machine learning algorithms like linear and logistic regression, random forests, and ensembles. You’ll be able to handle new ensemble algorithms such as XGBoost and Catboost, and common deep learning architectures including Recurrent Neural Networks, Convolutional Neural Networks, LSTM, and YOLO (You Only Look Once).
Learning the TensorFlow framework and other deep learning libraries, such as Keras, will allow you to harness the power of neural networks and reinforcement learning. This tutorial site tackles the basics of TensorFlow and how to apply it to your data.
Data Storage and Pipelines
Once you’ve mastered the tools required to ingest data at scale and then worked with it with different machine learning approaches, you’ll want to stitch all kinds of different tasks together in order to build a coherent data pipeline. Consider something like Spotify’s Luigi framework. It helps you deal with the low-level plumbing so you can focus on the high-level strategy of what you want your machine learning pipeline to do.
You’ll also want to have a fairly good understanding of how to operate with SQL and NoSQL databases. This SQL tutorial will come in handy and this tutorial on interacting with JSON in Python will help you deal with more unstructured NoSQL data.
Roles Within Machine Learning
While we’ve talked specifically about the machine learning engineer role—and that is the most common job title for someone building and deploying large-scale AI systems—you should know that there are other roles in the machine learning domain that you can also enter if you just want to be in the broader world of machine learning.
This includes, for example, the data scientist or the data engineer role. Glassdoor reports that data scientists earn $140,000 a year as base pay. In practice, data scientists work often with machine learning engineers and data engineers, defining the business logic, tuning data models, and communicating insights from any data work to business stakeholders. Machine learning engineers will often work with data scientists, but with a bit more focus on data models and statistical theory, as well as communication skills, they can become them if they wish.
Data engineers are a more general category that machine learning engineers fall under: machine learning engineers tend to focus strictly on the frameworks and capabilities of working with big data using machine learning. Data engineers will earn about $150,000 a year as base pay.
In practice, an interview for a machine learning position will always involve some mix of machine learning theory and programming as well as your usual soft skills/culture fit questions. The more of a data engineer/machine learning engineer position you’re applying for, the more your interview will look like a standard software engineering interview with some machine learning questions thrown in. We sat down with two machine learning engineers, who talked about the typical hiring process.
Here are some insights from one of those machine learning engineers, currently working at Airbnb:
“You will have one interview which talks a lot about the algorithms and what sort of machine learning tools you can be using and just evaluating whether you actually understand what machine learning is. There will be an interview about your experience, where you are asked, have you actually built machine learning systems in the past and how you built them, what could have been done better—things like that. Apart from that… we have at least two core-values interviews for every candidate who comes to Airbnb because for us culture is the most important thing and we want to make sure we don’t mess it up. And depending on the person, you might be asked to one or two programming- or algorithmic-based interviews as well. I think what Airbnb likes to see is a lot of execution capability—that is, you’re actually able to write code quickly and then be able to implement it and make sure it’s working.”
How to Get a Job In Machine Learning
If you want to get a job in machine learning and start a career in the field, you’ll need to think about the approach to finding different roles, the interview process, and how to integrate with your new team once you’ve been hired.
Here are some helpful resources.
Approach and Research
You’re not likely to find machine learning roles on general job boards—they tend to be specific roles within either large Fortune 500 companies or smaller tech startups. The best way to approach finding job opportunities in the space is network-based: using informational interviews with existing machine learning engineers to learn about their team and its hiring practices, or attending machine learning-specific events such as the O’Reilly Strata series.
If you want to search online for how to get a job in machine learning, one of the best places to go is AngelList, which tends to have a high density of startup and tech jobs, and which help connect you directly to hiring managers or recruiters. If you want to work a little harder but get higher-quality connections, hiring managers will often post on Hacker News, specifically in the “Who’s Hiring” threads that are available monthly. The latter often suffers from a bunch of non-targeted emails sent to hiring managers: if you can impress hiring managers with your passion for the problems they’re working on and proven projects in the space, you’ll leap above all the applicants and get a direct line to a desperate hiring professional in machine learning.
Once you’ve secured an interview (it may take quite a bit of prospecting, given how specialized and network-based recruitment is), you’ll want to get prepared for it. Here’s a Quora thread on how different hiring managers approach the interview process for machine learning. Since it’s a broad topic and there are many different opportunities to apply machine learning, you should expect to receive some general questions on machine learning theory (e.g., what is the difference between kernel and non-kernel methods?), implementation of machine learning (a common scenario is to walk through a typical algorithm such as K-means clustering and ask you to talk through the math and a pseudo-code implementation without a compiler), and distributed systems (what’s commonly known as big data—how do you handle large data sets?).
Oftentimes, you’ll be asked behavioral and background questions throughout the process as well. Make sure you have a coherent story of where your career is, how machine learning and the role you’re applying for fit within that story, and how your past experience with ML can help the team now.
Integrate With Your New Team
Finally, if you’ve gotten the job, you’ll want to learn exactly what your goals are and what your role within the team is. Given that machine learning roles tend to be software roles, you’ll want to get up to scratch on building high-performant code that is easy to read—and learn how to communicate with both data and software teams. This series of answers on Quora about the day-to-day of a machine learning engineer might help in that regard.
Resources to Get You Started
This blog post from graphics processor Nvidia’s website (whose GPU units often power a lot of AI applications across the web) cuts through the buzzwords involved with artificial intelligence and succinctly breaks down the difference between machine learning, deep learning, and the general term of artificial intelligence. Use this resource as a refresher to keep those terms conceptually separate for yourself, or use it as an introduction to the field for others who are curious.
This list of 41 machine learning interview questions, with their solutions, will help you understand the foundations of machine learning and will give you plenty to practice with as you begin your machine learning career.
This interactive course by Google sums up both deep learning and TensorFlow in an accessible and easy fashion, and serves as a helpful refresher as well as a concise summary of the field for newcomers.
The jobs section of KDnuggets often has resources related to data science, artificial intelligence, and machine learning jobs. Check out the latest job postings for potential entries into a machine learning career.
Hopefully this post was helpful to those wondering how to become a machine learning engineer. If you want more guidance, Springboard has launched the first AI/machine learning bootcamp with a job guarantee. It comes with weekly one-on-one mentorship from your own AI/ML expert and career coaching—which can help bridge the gap between the theory discussed in this article and the reality of starting your machine learning career. Find out more!