How to succeed as a Machine Learning Engineer
What skills do you need. What's the nature of work. What concepts do you need to be familiar with.
Hey reader, welcome to the 💥 free edition 💥 of my weekly newsletter. I write about building machine learning products, working with people, and growing your career. You can learn more about me here. Feel free to send me your questions and I’m happy to offer my thoughts. Subscribe to this newsletter to receive it in your inbox every week.
According to this report by LinkedIn, Machine Learning Engineer is a 4th fastest growing role in the last 5 years (behind Vaccine Specialist, Diversity & Inclusion Manager, and Customer Marketing Manager).
It means that ML Engineer is the fastest growing role in the entire tech industry
In the context of building AI products, ML is a vehicle that uses data as a fuel to achieve the goal of AI. You'll find yourself building products that need to work in the wild. With noisy and incomplete data. With constraints that seem unfair. With users who demand 100% accuracy.
What do you need to know in order to succeed as an ML Engineer? Here are 7 skills that will help you:
1. Being able to tell others what you did
The core reason ML is growing at such a rapid clip is that it's creating business value. Companies can tangibly benefit from this technology. This means that ML Engineers can no longer work on siloed research projects. Everything they do has a direct impact on the company.
This means that you'll be working a lot with developers, marketers, salespeople, product managers, and more. You should be able to explain your work to someone who doesn't know ML.
You need to empower them with clean explanations.
It's a critical skill to develop when you're building an AI product. If you get a chance to work closely with customers, take it every single time.
2. Knowing Python
Python has become the language of AI. You can survive without it, but you'll have a hard time.
When you're building a product, you should leverage the work others have done.
No need to reinvent the wheel here. You won't get any special prize for building a neural net from scratch.
People have built a variety of libraries and tools in Python. You're free to learn additional languages on top of it. But make sure you're fluent in Python.
3. Being okay with wild goose chases
Real world data is messy. And incomplete. In order to build a product that works, you'll have to address many edge cases.
Your customers won’t care if your algorithm is 93% accurate. It's actually a high score for an algorithm, but the users don't care if it doesn't work for their particular scenario.
You need to go on frequent wild goose chases while developing the product. It's not an easy task.
In addition to the data not being clean, the goals won't be well defined either.
You should be disciplined about your work and develop a framework for rapid experimentation.
4. Translating to plain english
Your customers talk in english. Your product understands code. You should be able to listen to a problem in plain english and translate it into code. And figure out what algorithmic framework to use while analyzing the data.
You should build the product such that many customers can use it in a repeatable way.
Make sure to listen to patterns as well. Your potential users or customers are a goldmine of product information. Listen carefully and translate.
5. Knowing ML frameworks
This one is obvious, but it's important to know the categories and hierarchies here. You'll encounter different problems and different types of data.
Based on the situation, you need to quickly make decisions on what to use. Is this a classification problem or a regression problem? Should you use ensemble learning? Does it make sense to use recurrent neural nets?
You should be able to look at a problem and have an instinctive understanding of the direction you need to take.
6. Knowing statistics
There are no certainties in this world. Only probabilities.
You should get comfortable living in the world of probabilities.
Learn how to design and develop systems based on it. A simple example would be showing confidence levels for various predictions. If you're building a system that needs to predict something, being able to show a confidence level for each prediction would go a long way.
7. Having domain knowledge
The domain here refers to the world your customers live in. Are you building a product for manufacturers? Or a financial services company? Or a cybersecurity company?
You need to know what frameworks are applicable to what type of data. If you're building a tool to determine whether or not a transaction is fraudulent, it really helps if you know how financial transactions work and who the user is.