How to get hired as a Machine Learning Engineer
7 steps to land a Machine Learning Engineer Job
Get a job as a Machine Learning Engineer is by no means an easy task (a positive note to start the article). But it is completely doable if you have the patience and the discipline. The bad news is that you have to study a lot to land a job in a tech company. The good news is that there is a shortage of skilled Machine Learning Engineers, even in big tech, and the salaries are crazy. Seriously crazy. Is it worth it? For me it totally is. But that’s up to you.
So how do I start?
Know your s**t
Before even thinking of applying, you have to know the basics. And by basics, I don’t mean Convolutional Neural Networks. Not even K- Means. I mean basic computer science principles. Algorithms and Data Structures, Programming languages (preferably Python), Debugging, Testing, Version control, Cloud computing. The list goes on and on.
But remember. A Machine Learning Engineer is first and foremost a Software Engineer. He is not a Data Scientist or a Data Analyst. To learn everything, I personally would choose this amazing course by Coursera on Python programming and this by Udacity on Algorithms and Data Structures
Know your Machine Learning
Not as important as the first step, but still useful. You should familiarize yourself with basic algorithms such as Regression, Decisions trees, K Means and get your hands dirty with data preprocessing and modeling. Again, don’t go too fancy. Companies, in general, don’t look for people who can prove mathematically back-propagation. They look for developers to code and build their machine learning pipelines. And in those pipelines machine learning takes about only 5% of the work. Again these courses by Coursera and Udacity are your friends.
For a more comprehensive list of resources, you can also check out my free course, where I explain all the steps you need to take to get started with Machine learning. You can subscribe here.
Assuming that you know the basics ( and you should), the next important step is to get experience. I recommend to start working on some personal projects you find interesting (maybe you can predict bitcoin price with neural networks or run quicksort in a massive dataset, I don’t know), participate in one or two Kaggle competitions and maybe land a few small freelancing gigs from clients.
The important thing is to build the whole thing from scratch. From the database and server to the deployed API in production. It is the only way to really comprehend the whole stack and get in touch with all components of the pipeline. Trust me. No course or lesson can match this. It will immediately give you a whole new perspective.
Build Portfolio and Resume
Now that you’re feeling confident and you have worked on some real-world projects, it’s time to build your resume. However, your resume is not just a pdf. It is a personal website showcasing all your projects and courses. It is a LinkedIn account (extremely important) with all the up to date information about you. It is a GitHub profile containing all the code you wrote over the past months. And maybe is a blog showcasing what you have learned so far. Preferably is all the above.
That’s how you will grab the attention of the recruiter from your dream company. That’s what the hiring manager will discover when he googles your name.
Prepare for coding interviews
Now to the fun (not so much) part. You have to prepare for coding interviews. Don’t assume that you know what you’re doing. Even if you have a master’s from MIT. Let me say it one more time. You have to prepare.
If you feel confident in your Algorithms and Data Structures skills, here what you’ll need to do. Grab a copy of Cracking the coding interview (the bible for software interviews) and open a Leetcode account. Start practicing on easy problems. Try to come up with a brute force solution, then try to optimize it. When you are stuck, think about what other data structures you can use. Or check the book for similar problems. But don’t give up.
Then do another one. And another one. As you’re solving more and more, you start to identify the patterns and you can proceed to medium or even hard problems. How many problems you should solve? The more the better. Perhaps 150 if you want to work in a FAANG. Otherwise about 50.
Also, my advice is to try and simulate the actual interview experience as soon as possible when you practice. Set up a timer. Explain your thoughts out loud.
Study system design
One integral part of interviews is system design rounds, where you describe how you would build a popular architecture such as Instagram or Netflix. It evaluates all your technical abilities, your background and your general knowledge. Hence, it’s not something you can learn overnight.
Although you can prepare. You can start by dive into the system design of the 10 most popular apps and then try to design a different one. And repeat the process until you feel confident.
You should also emphasize in Machine Learning architectures such as recommendation systems or search autocompletion. In general, this is the round where the company will test your ML background. But keep in mind that it’s a very high-level talk.
The final step is to start applying. You can, of course, submit applications on the company’s online platform. But don’t expect any results. To expedite the process, I would focus on 3 things:
Find recruiters on LinkedIn, send them a friend request expressing your interest in a position and let your CV / GitHub account / Website do all the work for you. But do it subtly. Express your interest in the company, ask for an informational call etc.
Ask a friend who works in a tech company for a referral (Referrals are the number one source of new hires in America).
Attend job fairs and networking events
That was it? It’s that easy? Lol. Arguably it’s a long process and it takes courage and determination to continue after rejections. But don’t discourage yourself. There is not a single person who hasn’t been rejected. You should also know that unfortunately, it’s also a matter of timing and luck.
But eventually, all your efforts are going to pay off. And that’s not a matter of timing or luck. It’s a certainty.