The Most In-Demand Tech Skills for Machine Learning Engineers
By: Jeff Hale
Tags: Artificial Intelligence, Machine Learning, Technology, Data, Data Science

Machine learning engineer is a hip-sounding job title and people in the role are well compensated. According to one analysis , it was the the top emerging job on LinkedIn between 2012 and 2017. Indeed reported an average salary of $140,536 for machine learning engineers in the US as of June 26, 2020. Not too shabby. 😀

Let’s look at how machine learning engineers fit into the flow of data within an organization.

Data Flow in Organizations

Here’s a representation of how data flows through an organization.

Created by Jeff Hale

Data is generated, ingested, and stored in databases. The data might be modified to make it more usable through ETL, which stands for extract, transform, and load.

Then the data can be used to make machine learning models, do inference, and create analyses.

If the data is used in machine learning models, then those models might be served to the word through websites or APIs. That’s the path on the left. 📱

Alternatively, if the data was procured with the intent of establishing causality — often through experimentation — then statistical analysis can be performed and shared. 🔬

Finally, if the data is used in post-hoc analysis to glean insights, it will likely be fed into a report or presentation. 🖥

Let’s add the roles that often accompany the flow of data to our diagram.

Data Roles

Created by Jeff Hale

The orange boxes represent the people who do the data things. 😀

Data engineers are responsible for making data pipelines. They create systems that ingest data, store it, and transform it into a useable form for data scientists and data analysts. 💻

are responsible for making data pipelines. They create systems that ingest data, store it, and transform it into a useable form for data scientists and data analysts. 💻 Data scientists create machine learning models to help drive decisions and create predictive tools. They might also do the experimentation and statistical inference used to draw causal conclusions. This second role is more of a traditional statistician’s role. 🧪

create machine learning models to help drive decisions and create predictive tools. They might also do the experimentation and statistical inference used to draw causal conclusions. This second role is more of a traditional statistician’s role. 🧪 Data analysts find insights in existing data and share that information with stakeholders. 📊

find insights in existing data and share that information with stakeholders. 📊 Machine learning engineers take the proof-of-concept machine learning models data scientists create and turn them into scalable, optimized, serve-able models for use in APIs and apps. 👩‍💻

There is often a good bit of overlap in the roles. 🙂

Notice that data scientists might focus more heavily on machine learning or statistical inference. This distinction is similar to one by Michael Hochster who differentiated between Type A and Type B data scientist. Type A data scientists do more of the static, statistical inference and analysis and Type B data scientists do more machine learning system building and software engineering. See Robert Chang’s excellent article for discussion.

In a small organization, the data scientist might be more of a generalist and play all the roles shown in the diagram above. If the organization is young, the first need is to get the data pipeline in shape. Then comes analysis, reporting, and dashboarding of core metrics to drive business decisions. Consequently, a data engineer and a data analyst are often early hires.

Machine learning engineers are often added later, as the data and data capabilities of the organization grow. If machine learning is the core competency of an organization, you’ll see more machine learning engineers sooner rather than later. 👍

Our focus in this article is on machine learning engineers, so let’s drill down on what they do.

source: pixabay.com

Machine Learning Engineer Skills

How does the job of a machine learning engineer differ from that of a data scientist or data engineer?

⭐️ Machine learning engineers take the models data scientists have created that show predictive promise and turn them into code that performs well in production. ⭐️

Machine learning engineers need to write code that:

predicts well

is production ready and easy to understand

runs fast and is memory efficient

is sensitive to ethical considerations

The first point requires understanding how to evaluate the performance of machine learning models. Machine learning engineers need to tune models and test different architectures to improve performance. As you’ll see in a moment, many employers are looking for skills with deep learning frameworks.

Machine learning engineers write code for production, so they need to practice good software development practices. They need to be comfortable with version control, follow common code style rules, and document code well. They might deal with continuous integration, testing, and containerization. They might even deal with container orchestration for deployment — as you’ll see in a moment, Kubernetes and Docker show up in a decent number of job descriptions.

Production code needs to be fast and efficient, so machine learning engineers should have a grounding in computer science and big data principles. There are a lot of ways to improve code efficiency and performance. I’ve drafted a rough outline on the topic, so follow me to make sure you don’t miss the finished guide. 😀

Finally, machine learning engineers need to understand how their models might negatively affect people. Check out Cathy O’Neil’s Weapons of Math Destruction for an introduction. Machine learning engineers have great power, and as the saying goes: with great power comes great responsibility. 🕷

Now let’s look at the specific technologies found in machine learning engineer job listings.

Method

I scraped information from SimplyHired and Monster to see which keywords appeared with “Machine Learning Engineer” in job listings in the United States. I used the Requests, Beautiful Soup, pandas, and Plotly Python libraries in my analysis.

I used tech keywords gleaned from my analysis of data scientist, data engineer, and data analyst job listings. Indeed was not included because it occasionally returned no information for common terms and it sometimes returned wildly different counts for the baseline case with no keywords. LinkedIn was not searched because it previously locked me out of my account after scraping its site. ☹️

For Monster and SimplyHired, I calculated the percentage of total machine learning engineer listings that each keyword appeared in. Then I averaged those percentages for each keyword.

Results

Here’s a plot of technology terms that appeared in at least 15% of job listings on July 1, 2020.

July 1, 2020

Let’s dive in! 😀

Most employers are looking for machine learning engineers to have Python skills. Python is found in 3 out of 4 job listings! 🐍

TensorFlow is the second most common technology, appearing in over 40% of all machine learning engineer listings. TensorFlow is an open source deep learning framework.

Let’s look at other deep learning frameworks that showed up frequently.

Keras was in 20% of listings. Keras is a high-level API for TensorFlow and is now tightly integrated with TensorFlow 2.0. Both were developed primarily at Google.

PyTorch — the other major deep learning framework — is found in over a quarter of listings. It’s younger than TensorFlow but has been growing in usage. See my article exploring PyTorch and TensorFlow popularity here.

Java appears in nearly a third of listings. Java is one of the most commonly used software development languages. However it isn’t taught for data science nearly as much as Python or R.

Apache Spark is often used in big data applications. It supports many programming languages including Java, Python, R, and Scala.

AWS is the most common cloud provider for machine learning engineers and is found in nearly 30% of listings. This isn’t surprising because it is the dominant cloud provider.

Comparison with Other Terms

Here’s a chart comparing the ten most common machine learning engineer terms with how common those terms are in data scientist and data engineering listings.