Machine learning (ML) is a subfield of artificial intelligence (AI) and computer science that focuses on imitating how humans learn by leveraging data and algorithms. The main objective of machine learning is to identify patterns in data. In supervised learning, algorithms are implemented on input data to learn a function and to map inputs to outputs based on example input-output pairs. With the learned function, we can pass unseen observations to a model for it to make predictions of the outcome. Unsupervised learning, on the other hand, learns patterns from untagged data.
It's highly believed AI will transform business as we know it, and the revolution has already begun in several industries. Consequently, several companies are investing billions into the field: As of September 2019, $37 Billion in cumulative funding had been raised for machine learning application companies in the US, and with the rise in demand for ML applications comes the need for talent to build the products. One such role that is necessary for this push is that of the machine learning engineer. There are several compelling reasons to want to become a machine learning engineer:
- It’s a lucrative career option.
- It’s an exciting field that will always present new challenges and require continual learning.
- A career in artificial intelligence puts you at the center of the most cutting-edge technological game-changer in modern industry.
Now that we’ve established the “why” of becoming a machine learning engineer, we will be breaking down just what a machine learning engineer does and how you can become one.
What is a Machine Learning Engineer?
Machine learning engineering is considered a subfield of software engineering, so it’s fair to say their lifestyles are quite similar. Like software engineers, employers expect machine learning engineers to be proficient programmers familiar with software engineering tools such as IDEs, GitHub, and Docker.
The main difference is that machine learning engineers are mainly focused on creating programs that provide computers with the necessary resources to be capable of self-learning. Machine learning engineers make this distinction by combining their knowledge of software engineering with that of machine learning.
A machine learning engineer’s objective is to convert data into a product. Thus, a machine learning engineer may be described as a technically sound programmer researching, building, and designing self-learning software to automate predictive models.
What Does a Machine Learning Engineer Do?
Many would have heard of the data scientists - especially after Havard Business School called it the sexist role of the 21st century; Compared to data scientists, machine learning engineers appear slightly further down the line within a project. To put it into perspective, a data scientist would analyze data to generate business insights, whereas a machine learning engineer would turn the data into a product.
A machine learning engineer would be much more focused on writing code that takes theoretical data science models and scales them to the production level for deployment as a machine learning product. However, the specifics of a machine learning engineer's responsibilities may change depending on two key factors: 1) the organization's size and 2) the type of project.
There are still some general responsibilities that you can expect from a role as a machine learning engineer. These responsibilities include:
- Designing, researching, and developing scalable machine learning pipelines that automate the machine learning workflow
- Scaling data science prototypes
- Sourcing and extracting datasets that are appropriate to tackle the problem at hand; This may be done in collaboration with data engineers
- Verifying the data they’ve extracted is of good quality and cleaning it
- Leveraging statistical analysis to improve the quality of machine learning models
- Building data and model pipelines
- Managing the infrastructure required to take a model to production
- Deploying machine learning models
- Monitoring machine learning systems in production and retraining them when it’s necessary
- Building machine learning frameworks
Chip Huyen, a writer and prominent figure in machine learning suggested that it’s a good practice not to get hung up on the role definitions since they typically serve as an inaccurate reflection of what you may be doing. For instance, it’s possible to come across two people working on the same team that performs significantly different tasks. Still, you may also come across two people at different companies that do similar things but have very different titles.
What Skills Does a Machine Learning Engineer Need?
Machine learning engineers sit at the intersection of software engineers and data scientists. Due to its interdisciplinary nature, you’ll have to be well-versed in foundational data science skills and have a solid grasp of software engineering principles.
It’s important to note that most machine learning engineer roles do not require a degree, despite several job descriptions still listing it as a requirement. If you’re able to demonstrate the necessary skills required of a machine learning engineer in your portfolio, you can still be considered. Let’s dive deeper into the education, skills, and experience needed to give you a better idea of what you’d need to demonstrate.
Programming language: The most obvious requirement is the ability to write code; Python and R are the most popular languages for machine learning practitioners; however, some companies may require you to know other languages like C++ and Java.
Mathematics, probability, and statistics: Mathematics, probability, and statistics play a significant role in machine learning. For example, linear algebra [a sub-field of mathematics] focuses heavily on vectors, matrics, and linear transformations, which are all critical foundational aspects in machine learning; we often see it in notations that describe how an algorithms works and must have good knowledge of it when we implement an algorithm in code. Other vital techniques require a good understanding of probability to help us deal with uncertainty in the real world and statistics to help us build and validate our models.
Machine learning algorithms and frameworks: It’s doubtful that you’ll have to implement a machine learning algorithm from scratch. Several knowledgeable people have created various machine learning frameworks (i.e., Scikit-learn, TensorFlow, Pytorch, Hugging Face, etc.) that makes doing machine learning accessible. However, choosing a suitable model and optimizing it for the task requires good knowledge of machine learning algorithms, their hyperparameters, and how their hyperparameters impact learning. You must also be aware of the pros and cons of taking each relative approach when solving a problem, which also requires good knowledge of the inner workings of various machine learning algorithms.
Software engineering and system design: The final deliverable for a machine learning engineer is workable software. Careful thought about how the system is designed must go into the development of machine learning systems to scale well with increasing data. Also, a machine learning system is a minor component required to fit into a more extensive system. Thus, a machine learning engineer must understand various software engineering best practices (i.e., version control, testing, documentation, modular coding, etc.) and how the different pieces form a system. You’ll be required to build an appropriate interface for your machine learning model such that it can communicate with components in the system effectively.
MLOps: Machine learning operations (MLOps) is one of the core functions of machine learning engineering. It focuses on streamlining the process of taking machine learning models to production and the necessary resources to maintain and monitor them once in production. It’s still a reasonably new function, but it’s beginning to gain traction as a practical approach for creating good quality machine learning applications.
Communication: Machine learning engineers must work with various stakeholders: some of these stakeholders will be pretty technical (i.e., data scientists) while others may not be (i.e., product teams). Thus, effectively adapting your communication style for the stakeholder you engage with is vital.
Problem-solving: Despite all of the fancy tools at the forefront of machine learning, the main objective of a machine learning project is to solve a problem. This means thinking creatively and critically about problems is a highly desirable trait for machine learning engineers.
Fast learner: Machine learning is a rapidly evolving field: as you read this article, a researcher somewhere is working on how to improve some model or process. To remain at the cutting edge, you must have a knack for rapidly learning new tools, how they work, where they work well, and where they don’t. In short, the decision to be a machine learning engineer is an implicit commitment to continual learning.
How to Land Your First Machine Learning Job
How do you land your first job? This can be broken into two phases: 1) Portfolio building and 2) Outreach. The portfolio building phase should occur while you’re learning machine learning. A portion of outreach should happen, but it accelerates when you’ve got a strong portfolio. So let’s dive deeper into each phase.
The portfolio building phase
One of the most demanding challenges in applying for machine learning roles is landing an interview. Since the field is relatively new, there are no universal validating criteria that companies use to decipher if a candidate is a suitable fit for a machine learning engineer’s role. Of course, it doesn’t help that most job openings receive hundreds of applications per day. To offset the backlog, candidates' resumes are often passed through an ATS system that filters applications by specific keywords. Unfortunately, people quickly caught on and filled their resumes with keywords to beat ATS systems. So how can you ensure companies notice you?
One solution is to work on projects that demonstrate your skills and help you build a portfolio. These projects may be several well-crafted blog posts that detail an approach to a problem or how to implement a particular tool (i.e., setting up monitoring for a production-ready machine learning model). A project may also be an end-to-end system you’ve designed to predict an outcome given some inputs. What matters most is that you can demonstrate the capabilities that employers want.
If you’re unsure about what project to build, you could participate in data science competitions that are hosted on platforms such as DataCamp, and Kaggle. Contributing to such competitions is highly regarded among many employers, and it serves as a great way to build a portfolio. You can get an idea of what it is like to participate in a competition with this Kaggle Competition Tutorial.
The outreach phase
The next stage is outreach once you have a portfolio that speaks for you. Several people prefer the traditional way of job seeking, which involves using job boards to apply for as many jobs as possible with the same resume. While this may lead to some success, it’s more of a brute force method.
A more strategic approach to landing a job is to lay out a set of companies you’d like to be your employer. For example, would you prefer a company using machine learning or a company that enhances current systems? What size would you like your ideal company to be? Begin to ask yourself questions like these to break down what your ideal employer looks like and list them out.
Once you have a list of ideal companies, you can begin seeking out decision-makers (i.e., hiring managers, chief data scientists, team leads) at these organizations using social media platforms like LinkedIn and Twitter. Try to attach a friendly message to add value to them since it’s highly likely that they are already receiving tons of messages from people seeking opportunities. Coming from a giving perspective is more likely to get them to take an interest.
Hi [Insert name],
I read the system design article for your recommendation system and admire how you dealt with the cold-start problem. Given your team's high level of expertise, you’ve probably thought of this already: recommending popular articles is extremely useful for aiding people’s decisions. I conducted a project to approach that problem - here’s the link [insert link]. Would you be available for a short chat about the approach I took on this project? Please let me know your preferred time to speak. Here’s my availability [insert availability].
Notice that the above suggestion has two key requirements for it to be fulfilled:
- It assumes you’ve got an online presence; if you don’t, make sure you at least create a LinkedIn account and optimize your profile.
- It assumes you’ve conducted vigorous research about the company’s machine learning department since you will need to be in the loop if you want to add value.
But don’t stop there. Recruiters are extremely helpful for landing your first job, so it’s vital that you also try to connect with recruiters through platforms like LinkedIn. Build a relationship and let the recruiter know the type of work you’re interested in so they can be on the lookout for you.
A major disclaimer is that this is by no means guaranteed to land you a job. However, the systematic approach to the job hunt allows you to track your progress better and improve in areas that you do not do so well. For example, if you reach out to someone and don’t receive a response, you can tweak that message and send it to someone else. If it gets a response, you can alter that message and use it for someone else. Ideally, you would keep tweaking it until you receive more and more responses.
How much you can earn as a machine learning engineer depends on your location. For instance, a graduate can expect a salary of around £35,000 per annum in the UK and the national average salary is £52,000, according to prospects. However, in the US, the average entry-level machine learning engineer salary is $94,771 per annum and the average salary is $112,513 according to reports from Payscale.
It’s clear to see that this may need some refining since many companies are now accepting more and more remote workers. There has been an ongoing debate on how to pay employees fairly given the rise of remote work: some companies have resolved to pay employees based on their location, which means you could earn less than someone in the same role as you if you’re working from a lesser economically developed country and they’re in-office. Other companies have decided to stick with the pay rate regardless of the location. The main gist is that companies have different policies about paying remote workers, so you’ll have to do your due diligence.
What to Expect in a Machine Learning Engineer’s Interview
Different companies have their preferred way of conducting their interview process, and finding each approach can be challenging. A good practice is to ask how the interview process works before your first interview, but this information is usually given to you. In addition, most companies tend to take their approach from multinational organizations (i.e., Google, Facebook, Apple, etc.) and then add their twist, so it suits them. Thus, we can learn a lot about how most companies conduct the machine learning engineer interview and get a better idea of what to expect by looking at the processes of multinational organizations.
Google seeks to hire only the brightest talent. Consequently, their extremely challenging interview process is designed to filter out candidates that do not meet their high standards.
The interview process is also specific to Google (i.e., Google cloud) and extremely broad, covering various topics from data structures and algorithms to system design and testing. You can expect to go through several rounds, including a recruiter screen, one or two technical phone screens, and four to six onsite interviews.
Like Google, Amazon’s interview process is specific to Amazon (i.e., AWS) and extremely difficult. The interviews include a recruiter phone screen, an online assessment in some instances, one or two phone screens, and four to six onsite interviews.
The topics to be covered include behavioral questions, software engineering questions (i.e., system design), and machine learning-specific questions. However, it’s possible an interviewer may ask about some of your machine learning projects and require you to solve a coding problem.
Meta (previously Facebook) interview
Meta’s machine learning engineer interview process is quite holistic. You’ll be taken through a recruiter screen, a coding interview, and five onsite interviews to determine if you’re suitable. You may also be provided with a take-home assignment for the hiring managers to see how you work through problems practically.
It’s important to note that not all companies' hiring processes are as prolonged or intense as the multinational companies listed above. For example, some companies do not believe it’s as necessary to hone in on data structures & algorithms. Still, most would agree that machine learning system design is essential and would include a section to test your knowledge in that department. Therefore, you should expect multiple interview rounds - which are typically a screening round, then a technical round, followed by a behavioral interview - before a decision is made.
The outcome of a machine learning engineer's workflow is working software; To work effectively as a machine learning engineer, you must be a technically sound programmer with a solid foundation in math, statistics, probability, and software engineering. Although it’s often requested in job descriptions, a degree is generally not required for most companies, but it is necessary to demonstrate your capabilities with a portfolio.
DataCamp has two excellent career tracks to get you started on your journey:
You don’t have to complete both tracks, since employers typically prefer knowledge of either Python or R; competency in both is nice to have but not a requirement.