How to become the Machine Learning Engineer, the pros and cons of the profession
Machine Learning Engineer is a specialist who deploys, trains and maintains machine learning models.
Machine learning involves identifying patterns in data using algorithms that allow computers to make predictions without human intervention and, in many cases, make decisions.
ML Engineer is a profession that is very popular in the West and continues to develop in Ukraine. According to the worldwide employment search network Indeed, in the USA, such a specialist earns an average of $148,000 per year, and in top companies – $200,000-300,000. In Ukraine, according to DOU statistics, an ML Engineer earns an average of $2,900 per month.
There are only a few ML Engineer vacancies in the Ukrainian market. Most of all the offers are concentrated in Kyiv or Lviv. The announced salary ranges from $800 for Strong Junior to $7,000 for an experienced specialist.
DOU asked people with extensive experience in the Machine Learning segment about what a specialist in this position does, what knowledge is required, what are the pros and cons of the profession, and how to become a Machine Learning Engineer.
Our interlocutors are ML Engineers Anton Benediuk, Viacheslav Stadnichuk, Dmytro Samchuk, Oleksii Babych, Bohdan Lukashchuk, Evelina Alexiutenko and the founder of the outsourcing IT company HUSPI Olga Provotar, who is experienced in developing systems based on machine learning.
With the specialists we went through the nine questions:
- Who is a Machine Learning Engineer?
- How to get into this profession?
- What knowledge and experience does a Machine Learning Engineer need?
- How to become a Machine Learning Engineer? What knowledge is needed?
- What books should a future Machine Learning Engineer read?
- Stages of work on the project. Is there any difference between an ML Engineer position in an outsourcing company, outstaff and a product company?
- Describe the working day of a Machine Learning Engineer.
- Pros and cons of the profession.
- The most complex and exciting project.
🤖 Who is a Machine Learning Engineer
Anton: A Machine Learning Engineer is a person who can create a model from raw data that can solve problems set by the customer. A model means a software solution based on various mathematical practices. In addition to the development itself, one of the most important tasks of the ML Engineer is to implement the resulting model in production and ensure its stable operation.
Olga: ML Engineer works with complex algorithms to create predictive models or develop intelligent systems. It develops or maintains these systems and improves them. This role often involves a lot of experimentation, data analysis, and controversy.
Engineers work closely with Software Developers and Data Scientists. The ultimate goal of an ML Engineer is to develop scalable and efficient machine learning-based systems that can solve practical problems.
Viacheslav: Machine Learning Engineer specialises in machine and deep learning algorithms.
The engineer writes, adapts machine learning algorithms to a specific task and data set, and trains ML models
Dmytro: In general, this question is quite debatable, because the field of Data Science [which includes Machine Learning] is considered young. Some companies hire people for Data Scientist positions and offer both analytics and data engineering as well as model building. Others divide this large volume of work into separate areas. So you can find more specialized positions like Data Engineer, Data Analyst (Data Science), ML Engineer, ML Researcher and even MLOps Engineer.
In my opinion, an ML Engineer is someone who can analyze data, prepare it, run experiments, train a model, and implement solutions in production.
Oleksiy: The ML Engineer’s responsibility is to develop algorithms and models that enable machines to learn from data, make predictions, and perform tasks with high accuracy.
Some of the typical tasks that the ML Engineer may be responsible for include data cleaning and preprocessing, feature engineering, algorithm selection, model training and optimization, testing and validation, and model deployment.
The ultimate goal of a machine engineer is to create scalable, efficient, and accurate machine learning models that can automate processes and improve decision-making processes.
Bohdan: Perhaps the best way to describe an ML engineer is as a machine learning R&D specialist.
The key to understanding the specifics is R&D, because part of the work will always be research, analysis, development and retrieval of data/methods/algorithms/models/business needs, etc., and the other part is engineering in the best traditions of software engineering. Depending on the project, something may be more, and something less.
💼 How to get into this profession
Dmytro: My path was long and difficult. In the evenings and in my free time, I studied mathematical analysis, linear algebra, and probability theory, took courses in machine learning, learned Python and the necessary libraries, and made pet projects. I eventually moved into a position as a data engineer, where I later did machine learning.
Vyacheslav: I started with Embedded, then got into a project related to image processing, and computer vision. It was interesting, so I decided to develop it further. A mentor on the project played a significant role in my development as an engineer.
Anton: In 2018, I became interested in the topic of artificial intelligence and how it is arranged internally. Before that, I worked as a Software Engineer for a long time. This helped to some extent to master the basic tools and approaches in machine learning on my own. Next, I was lucky: there were tasks on the project that needed to be solved precisely with the help of machine learning. This is how I gained my first experience in this field.
Bohdan: During my graduate studies, I chose a topic related to machine learning, so I decided to dig deeper. I began to study, take courses, and found ML engineers in my company, with whom I communicated on this topic. At first unsystematically. But in general, if you do something constantly, you grow in this area over time.
🧠 What knowledge and experience does a Machine Learning Engineer need?
Evelina: To get into the profession, you need to know the basics of higher mathematics (linear algebra, mathematical analysis, optimization methods), and also have experience with programming languages (Python, experience with C++ will be a plus). Know basic Python libraries (pandas, NumPy, SciPy etc) and have experience with a set of basic techniques for ML (LogReg, KNN, Decision Tree, Random Forest, XGBoost etc), with a base of neural networks (ResNet, U-Net, Mask R-CNN, YOLOv5, CLIP, Siamese Networks and OpenCV) and a base of NLP (TF-IDF, Word2vec, BERT, RNN, LSTM etc). Of course, you still need to master the databases.
I learned many of the above things at the university when I studied in the “Applied Mathematics” speciality. But I received the main training at an internship, at a mentoring program. It was difficult because of the competition that existed even before the appearance of ChatGPT and the hype around ML. And now the requirements for candidates have increased and continue to increase.
Anton: Today, an ML Engineer must, on the one hand, understand for which tasks and data which model can be used, and be able to adapt such a model to the project’s requirements.
Being an MLOps, on the other hand, means being able to set up all the infrastructure that a model needs to run. Here it is important to separate the infrastructure for the model and the data. The data infrastructure is handled by the Data Engineer.
The list of specific tools is quite easy to find, for example, here. The good news is that they are not changing at the same rate as, for example, JS.
Vyacheslav: Knowledge of mathematics, statistics, and often Python is required. It is also worth looking into machine learning libraries: TensorFlow, PyTorch, Keras. When it comes to Computer Vision tasks, experience with OpenCV is required.
Dmytro: You need to have basic knowledge of math analysis, linear algebra, probability theory and statistics. It is worth knowing Python, data processing libraries and several frameworks for machine or deep learning, machine learning theory: how to prepare data for a particular approach, how to choose a cost function, metrics, error analysis, what is data leakage. In addition, you must be able to deploy the model and monitor it.
Oleksii: Of course, you need to know mathematics: linear algebra, optimization theory, probability theory and mathematical statistics, graph theory.
You definitely need to know a programming language, be able to write production-ready code. Know basic ML algorithms, and how to match a business problem with an ML problem.
It is important to be able to present the results of your model to the customer, and describe successful metrics. Since the amount of data is growing and we are increasingly faced with Big Data, knowing Apache Spark, Apache Hadoop will not hurt either.
And since the amount of data increases, and development is increasingly transferred to the cloud, I advise you to learn to work with cloud technologies: AWS, Google Cloud and Microsoft Azure.
And if some technology comes along that improves work optimization and performance, and you know how to use it (like ChatGPT), that’s definitely a huge plus.
🧑🏻💻 How to become a Machine Learning Engineer
Anton: In Machine Learning, people usually come from either an engineering or an academic direction (these are people who have received relevant education, for example, at the Faculty of Applied Mathematics or the Faculty of Physics and Mathematics). Usually, both the first and the second face the problem of lack of experience.
I would recommend looking for machine learning problems and trying to solve them. I was lucky, I found them on a project where I was already working. But if there is no such possibility, Kaggle and courses on Coursera or Udemy, which include homework, can be suitable for this.
Vyacheslav: Get the theoretical foundations of this direction, try to implement your simple concept and develop in it.
Olga: There is no single course, book or Internet resource that could become a “magic pill”. But it is still possible to single out something that will definitely help in mastering such a difficult profession:
- Build a strong knowledge base in mathematics and computer science (as an option, obtain a degree in computer science or a related field).
- Learn programming languages such as Python, Java or C++.
- Familiarize yourself with data analysis and visualization tools like Pandas, matplotlib, data processing techniques.
- Join online communities. Communicate with experienced people, participate in hackathons.
- Look for internship opportunities.
For those who enjoy working with data, math and programming, this would be a great career choice.
Dmytro: To become a machine learning engineer, I recommend that you first decide whether you like mathematics and artificial intelligence. Next, you should understand which problems are closer to you: tabular data and traditional machine learning, computer vision, processing/generation/understanding of natural languages, working with sound, reinforcement learning, etc. The best way is to try everything. And add this resource to the home page.
The most important thing is practice. The 10k hour rule still works 😉
Oleksii: Nowadays, there are an incredible number of open courses, from fundamental ones from Stanford, Google and Courserato YouTube playlists: Machine Learning A-Z on The Geek’s Academy channel or Course: Machine Learning A-Z from Udemy. Generative algorithms and models are readily available to almost everyone, so see what deep learning models are capable of and what you want to do right away. When you choose a course, I advise you to try a pet project.
Don’t be afraid or underestimate the freelancing exchanges that you can use to improve your skills and develop. In addition, you can solve the problems of friends who have their own businesses with the help of ML.
The whole article you can read at DOU.ua