2024 Survival Guide for Machine Learning Engineer Interviews | by Mengliu Zhao | Dec, 2024
During the Interview — How to Prepare?
Once you start the application process and start to get interviews, there are a few things you need to search and prepare for:
- Interview format
- Referrals, networking
- LinkedIn or Portfolio
- Interview resources and materials
- Strategies: planning, tracking, evolving, prompting, estimating your level, wearing your “lens of career,” getting an interview partner, red flags
- Accepting the offer
Interview format
The interview format varies among different companies. No two companies have the same interview format for the MLE role, so you must do your “homework” on researching the format in advance. For example, even for FAANG companies, Apple is known for its startup-style interview format, which varies from team to team. On the other hand, Meta tends to have a consistent interview format at the company level, comprising one or two leet code rounds and ML system design rounds. Usually, the recruiter would give detailed information about large companies’ interview format, so you won’t be surprised. However, the process could be less structured for smaller companies and change more frequently. Sometimes, smaller companies replace leet code with other coding questions and only lightly touch the modelling part instead of having an entire ML system design session. You should search for information on free websites like Prepfully, Glassdoor, Interview Query, or other paid websites for a comprehensive understanding of the interview format and process to prepare better in advance. Lastly, don’t be limited by interview format as it’s not a standard test — there could be behaviour elements during technical interviews and technical questions during your hiring manager round. Be prepared, but be flexible and ready to be surprised.
Referrals and networking
Many web articles would exaggerate the benefit of referrals, but having a referral is just a shorter path for you to get past the recruiter round and land directly to the second round (usually the hiring manager round). Besides having referrals, it’s almost equivalently essential to network in person, e.g., use hackathon opportunities to talk to companies, go to in-person job fairs, and participate in offline volunteer events sponsored by companies you’re interested in. Please don’t rely on referrals or networking to get a job, but use them as opportunities to increase your probability of getting more conversations from recruiters and hiring managers to maximize your interview efficiency.
LinkedIn or Portfolio. LinkedIn and Portfolio are just advertising tools that help recruiters understand who you are beyond the textual information in your resume. As a junior MLE, it would help to include course projects and Kaggle challenges in your GitHub repository to show more relevant experience; however, at you get more senior level, toy projects make less sense, but PR in large-scale open source projects, insightful articles and analysis, tutorials on SOTA research or toolboxes, will make you stand out from the rest of the candidates.
Interview resources and materials
Generally speaking, you need materials covering the five domains: i) coding, ii) behaviour, iii) ML/Deep learning fundamentals, iv) ML system design, and v) a general MLE interview advice book.
i) Coding. If you’re not a Leet Code expert, then I would recommend starting with the following resources:
ii) Behaviour:
iii) ML/Deep learning fundamentals:
iv) ML system design:
v) A general MLE interview advice book:
You also need to have a handful of interview partners — these days, you can subscribe to online interview preparation services (don’t use the costly ones which charge you thousands of dollars; there are always cheaper replacements) and pair up with other MLE candidates for skill and information exchange.
Strategies: planning, tracking, evolving, prompting, interview for one level up, wearing your “lens of career,” getting an interview partner, red flags
Planning, tracking, and evolving. Ideally, as described in this article, you should get at least a handful of recruiter calls and categorize your interviews to different interest levels. For one thing, the job market is constantly changing, and someone can rarely plan for the best strategy in the first interview. For the other thing, you’ll learn and grow during the interview process, so you’ll become different from where you were a few months ago at the beginning of the job-seeking stage. So, even if you’re the most talented candidate on the market, it’s essential to spread out your conversations over a few months and start with the conversations that you’re least interested in to familiarize yourself with the market and sharpen your interview skills, and leave the most important ones to the later stage. Track your progress, feedback, and thoughts during your interview process. Set specific learning goals and evolve with your interviews. You might never have had the chance to touch on GenAI knowledge in the past few years, but you could utilize the interview process to learn from online courses and build small side projects. The best thing is to get a job after the interview, and the second best thing is to learn something useful even if you don’t get the job offer. If you keep learning from every interview, eventually, it will vastly increase your chances of getting the next job offer.
Prompting. This is the age of LLM, and you should utilize it wisely. Look for the keywords in the job descriptions or responsibilities. If there is an interview involving “software engineering principles,” then you can prompt your favourite LLM to give you a list of software engineering principles for machine learning for preparation purposes. Again, the prompt answer shouldn’t be your sole source of knowledge, but it can compensate for some blind spots from your daily reading sources.
Interview for one level up. Sometimes, the boundaries between levels are blurry. Unless you’re an absolute beginner in this field, you can always try the opportunities that are one level above and prepare for the down level at the job offer stage. If you’re interviewing for senior level, preparing or applying to staff-level opportunities doesn’t hurt. It doesn’t always work, but sometimes it can open doors for you.
Wear your “lens of career”. Don’t just go to an interview without thinking about your career. Unless you desperately need this job for a specific reason, ask yourself, where does this job fit into your overall career map? This question matters from two perspectives: first, it helps you choose the company that you want to go to, e.g., one startup might offer higher salaries in the short run, but if it doesn’t prioritize sound software engineering principles, then you’ll lose the opportunity to grow into a promising career in the long run; second, it helps to diagnose the outcome of the interview, e.g., your rejections are mostly from startups, but eventually you landed in offers from well-known listed companies, then you’ll realize the rejections don’t mean you’re not a qualified MLE, but because interviewing at startups require different skills and those don’t belong to your career path.
Partner up. Five years ago, there was no such thing as finding an interview partner. But these days, there are interview services all over the internet ranging from extremely high cost (which I don’t recommend) to a few hundred dollars. Remember, it’s a constantly shifting market, so nobody knows the whole picture. The best way to gain information is to partner with your non-competitive peers (e.g., you’re in the CV domain, and your partner is in the recommendation system domain) to practice and improve together. Better than just partnering, you should seek to partner up — look for people with a higher seniority level while you can still offer something useful for them. You might ask, how is it possible? Why would someone more senior than me want to practice with me together? Remember, nobody is perfect, and you can consistently offer others something. There are senior software engineers who would like to become MLE, and you can trade your ML knowledge for their software engineering best practices. There are product managers who need ML-related input, and you can ask for behavioural practice in return. Even for people with no industry experience at the entry-level, you can still ask for coding practice in return or listen to their life stories and get inspired. As an MLE, especially at the senior/staff level, you need to demonstrate leadership skills, and the best leadership skill you can demonstrate is to collect the professionals at different levels to help achieve the goal you’re chasing after — your dream offer.
Red flags. Some red flags, like asking you to overwork directly or ghosting the interviews, are explicit. However, some red flags are more subtle or deliberately disguised. For example, your hiring manager might politely explain their situation and wish you “didn’t have high expectations at the beginning and decide to leave in a few months” — it sounds so considerate. Still, it shadows the fact that the turnover is high. The best strategy for avoiding red flags involves reading Glassdoor reviews and learning about company culture during the interview. Specifically, “culture” doesn’t mean the “culture claims” defined on the company website but the actual dynamics between you and the team. Are the interviewers only asking prepared questions without trying to understand your problem-solving skills? When you throw a question, can the interviewer catch that question and give an answer that helps you to understand the company’s value better? Lastly, always remember to use your gut feelings and decide whether you like your future team. After all, if you decide to take the job offer, you’re facing these people eight hours per day for the next few years; if your gut feeling tells you that you don’t like them, then it won’t be happy anyway.
Accepting the offer. Once you’re done with all the frustration, all the disappointments, and all the hard work, it’s time to talk about the offer. Many web threads discuss the necessity of negotiating the offer, but I suggest being cautious, especially in this employer’s market. If you want to negotiate, the best practice is to have two comparable offers and prepare for the worst case. Also, websites like Levels.fyi and Glassdoor should be used to research the compensation range.