Getting ready for a job interview has been likened to everything from preparing for battle, to gearing up to ask someone out on a date, to lining up a putt on the 18th green at The Masters. Meaning, at best, it’s nerve-racking, and at worse, it’s terrifying! Preparing for a Machine Learning interview is no different. You know you’ve got something ahead with the potential to be either really great, or really terrible. But how do you ensure your result is the great one?
It’s all about mindset, and preparation.
Understanding the context of your pending interview—i.e. the reason WHY there’s an open role in the first place—should be an integral part of your preparation. Knowing why you’re being interviewed will help you contextualize your value to the company. For example, if a company is looking to hire a Machine Learning Engineer, it should be clear that they are trying to solve a complex problem where traditional algorithmic solutions are hard to apply or simply do not work well enough. It should also be clear they are also extremely motivated to solve that problem.
The first thing you need to do when applying for such a role is to imagine yourself in that roll. To do this, you need to find out as much as possible about the company and position. To organize your research, ask yourself: What is one core problem I can solve for this company? Pursuing an answer to this question should excite you, and drive you to find out more about the problem—existing approaches, recent developments in that domain—and lead you to a bunch of more specific challenges. If you know what team you are being interviewed for, picking an appropriate problem might be easy; otherwise, choose something that is essential for the company. Put another way, think about the challenges facing the company, and then try to determine the questions they’re likely asking.
The next step in your preparations should be to think about what data you need to answer those questions. Some of this may be readily available, while you may have to build in additional hooks to gather certain pieces of information. Dig into the company’s infrastructure and operations—what stack do they operate on, what APIs do they have, what data are they already collecting, etc. Most companies today have a blog where they often discuss their challenges, approaches, successes and failures. This should give you further insight into how they operate, and what products and services they might have in the pipeline.
Now you need to make a fairly big conceptual jump: How does machine learning fit into all this? Given what you’re trying to achieve, and the data you think might be available, can you cast it into a learning problem? What is an appropriate model to use? How would you go about training and evaluating it? To give you an example, the primary challenge that a lot of recommendation systems like Netflix and Amazon face is clustering, not prediction—i.e. once you are able to figure out groups of users who seem to have similar preferences and behaviors, it becomes a whole lot easier to recommend products that they may find useful.
This thought process will help you be prepared to talk about issues that matter to the company the most. Nobody expects you to walk into an interview and lay out a complete solution for something they’ve been working hard on for months or years! But everybody likes a candidate who shows genuine interest, motivation, and curiosity for a problem that is close to their hearts.
Depending on your interviewer and the stage of your interview, you may be asked more technical questions, but you should try to use any opportunity you get to demonstrate that you have thought about the company and role. When asked more open-ended questions such as “Describe a technical challenge you faced when working on a project and how you solved it?” try to pick something that aligns well with the company’s interests.
I recently wrote a piece for the Udacity blog entitled 5 Skills You Need to Become a Machine Learning Engineer. In that article I identified five groupings for the essential skills that a Machine Learning Engineer needs:
I encourage you to read that post for further detail about these groups. What I wish to focus on here are the kinds of questions you’re likely to face in a Machine Learning interview, so I’ll use these groupings simply as an organizing principle.
For all such questions, you should be able to reason about the time and space complexity of your approach (usually in big-O notation), and try to aim for the lowest complexity possible.
Extensive practice is the only way to familiarize yourself with the different classes of problems, so that you can quickly converge on an efficient solution. Coding/interview prep platforms like InterviewBit, LeetCode, Interview Cake, Pramp and interviewing.io are highly beneficial for this purpose.
Remember that many machine learning algorithms have a basis in probability and statistics. Conceptual clarity of these fundamentals is extremely important, but at the same time, you must be able to relate abstract formulae with real-world quantities.
Data science and Machine Learning challenges such as those on Kaggle are a great way to get exposed to different kinds of problems and their nuances. Try to participate in as many as you can, and apply different machine learning models.
What I’ve tried to present here are two sides of the Machine Learning interview experience—call them the Contextual side and the Technical side. If there’s one message I’d like to stress, it’s that you should resist the temptation to focus on the latter at the expense of the former. It is far too common for aspiring Machine Learners to immerse themselves in technical preparations, while giving very little thought to the why of their interview—why is there an open role, why is the company pursuing Machine Learning talent (and Machine Learning solutions!), why are they interested in you? Understanding these questions will give meaning and context to the technical challenges you’ll need to address, and answering them will set you apart as the candidate best suited to move the company forward.
~
For more career resources (including the original resource guide this post is based on), please visit the Udacity Career Resource Center.
~
Announcing iOS Development with SwiftUI and SwiftData The demand for iOS developers proficient in Swift…
In a world driven by technology, finding the right opportunity to break into the tech…
This month, more than 1,000 people received notifications of their free enrollment in the AI…
Developers & IT Pros are harnessing the power of Google Cloud to solve real-world problems.…
From Weekend Projects to Web3's Next Big Thing Ready to help shape the future of…
It might be obvious by now, but here at Udacity, we really love tech and…
View Comments
Which programming language is usually preferred by companies for machine learning interviews? I've heard many companies prefer Java for programming interviews in general, but Python seems more suitable for machine learning.
Thanks Arpan for this great article! Would you be willing to point out some resources as solutions to these example problems? They look very interesting.