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
and this by Udacity on Algorithms and Data
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
and Udacity are your
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
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
Or you can even look for freelancing work instead of joining a big company where you can choose your clients and the projects you work on. And the best part is that sometimes the payment might be even better ( yeah I know you are not in there for the money but it’s always a good factor to consider). By the way if you’d like to know and compare rates, this Machine Learning rate calculator from Toptal can definitely help.
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.
* Disclosure: Please note that some of the links above might be affiliate links, and at no additional cost to you, we will earn a commission if you decide to make a purchase after clicking through.