3 min read

Your first step to becoming a Machine Learning Engineer

Your first step to becoming a Machine Learning Engineer
Even though it might feel like you need to sprint, this is more like a marathon. Or an Ironman...

If you're reading this chances are you want to take a step into becoming a Machine Learning Engineer. In this post I'd like to discuss a little about what is a Machine Learning Engineer (MLE), the roles responsibilities and what do you need to start your journey towards becoming one.

What is a Machine Learning Engineer?

Simply put, MLE's are Software Engineers who have enough proficiency in Machine Learning techniques to work together with Data Scientists and/or Data Engineers to develop, deploy and maintain End-to-End systems that utilize Machine Learning.

O'Reilly, in an article published in 2017 [1] discussing the role of MLEs, says:

They have stronger software engineering skills than typical data scientists. Machine learning engineers are able to work with (and sometimes sit on the same teams as) engineers who maintain production systems. They understand software development methodology, agile practices, and the full range of tools that modern software developers use: everything from IDEs [...] to the components of a continuous deployment pipeline.

  1. What are machine learning engineers? ↩︎

What are the responsibilities of a MLE?

Considering that what MLEs do is an extension of the work of Software Engineers, there shouldn't much surprise to know that much of the responsibilities should be the same, meaning that they will be involved in the architecture and design for end-to-end systems, with a special focus on:

  • A/B testing
  • Data logging
  • Security

Engineers should consider Machine Learning Engineering as more of a specialization (or expansion) of the common Software Engineer role rather a completely new thing. Machine Learning systems offers different challenges in the same domains of engineering we already have experience on, just like working with new languages, frameworks or industries.

How much does a Machine Learning Engineer earns?

We all gotta eat after all.

Based on Glassdoor's data at the time of the post, a Machine Learning Engineer earns an average of around USD 131,000 annualy[1]. In Japan the annual average is JPY 6,000,000[2].

  1. Machine Learning Engineer Salaries

  2. Machine Learning Engineer Salaries - Japan

What are the first steps to becoming a Machine Learning Engineer?

If you already are a Software Engineer, start by learning the common tools used by Machine Learning Engineers:

  • Basics of Machine Learning: What are the existing types of problems and areas using machine learning?
    • Supervised
    • Unsupervised
    • Regresssion
    • Classification
    • Computer Vision
    • Natural Language Processing
  • Related Languages: Depending on the application or company you will be working with, the languages used can vary. The great majority of ML related tools is built in Python. If you're looking to deploy models on the browser you will definitely need Javascript/Typescript. Tensorflow supports model deployment in several languages like Go, Java and C.
  • Classical Machine Learning versus Deep learning: What are the use cases and the trade-offs.
  • Machine Learning frameworks
    • Deep Learning: Tensorflow is extensively used in the Industry and supports deployment to the browser with Tensorflow.js and mobile with Tensorflow Lite. Academia has a strong preference for PyTorch and most of the latest research provides proof-of-concepts written in PyTorch. Since recently PyTorch also offers support for mobile deployment.
    • Classical Machine Learning: sklearn is used heavily for non neural network applications and XGBoost is probably the most famous library for using Decision Trees. It has been used in many winner solutions in data science competitions.

What if I'm not a Software Engineer?

If you are a coming from a background different from Software Engineer I would recommend you to start there

  • Learn the basics of programming
    • Python is one of the most utilized languages in the Machine Learning development, it is also relatively easy to learn. Javascript is utilized to deploy models on the browser.
  • Learn how to use a rapid backend development platforms like Firebase or Heroku. They will make it a lot easier to build end-to-end sytems without having to deal with all the details of setting up servers and related systems.
  • If you are interested in development for the web, learn a frontend development framework like Vue, React or Svelte.
    If you want to build smartphone applications, starting with a cross-platform development tool like Flutter might accelerate your work as you can develop once and deploy applications to both iOS and Android.