Introduction

I always found interview preparation challenging even after being in the industry for many years. Coming from an accounting background, I found technical interviews especially daunting. As I have recently cracked multiple offers that ranged from 300-600k, I can now say I am much more comfortable. This is my guide to those that are looking for a clear path to follow to land a job.
WARNING: There is no shortcut.
Have you tried to lose weight or be in shape? I have, but I failed so many times. My weight graph over the last 10 years looks like a stock chart. Constant ups and downs, but with an upward trend. This is because I tried to do certain fads like the keto diet or a no-carb diet in a short period of time without really changing my mindset and long-term habits. I only started to see true results recently when I changed my long-term habits with food. I find interview preparation similar. You may see some results with grinding for 3 months to land a job, but they are not a long-term solution. Though you may be able to pass interviews here and there, you still may not feel confident. Only after mastering concepts and knowledge in depth do you start to feel confident. There are many paths to losing weight and being healthy, but all paths have underlying and fundamental truths: eating healthy, exercising, and learning to enjoy the process consistently. For interviewing, it is not much different: studying, building, and learning to enjoy the process consistently.

There are two main skills you need to get a job in ML.
- Skill to land an interview
- Skill to pass the interview
Let’s dig in.
Skill to land an interview
If you have the right experience, you may be getting interviews left and right. When I was working on LLM at Cohere, my inbox was crazy because so many companies are trying to do LLM.
If you are working in a less relevant field or recently graduated in this market in 2025/26, you will have a harder time. Some basics you can do are to have a good resume (single page please) and an updated LinkedIn.
I know it’s easier said than done, but if I was in your shoes today, I would do the following: Make a sustainable system where I am learning and building daily. If I need to pay the bills, I will not just try to get into top jobs. I will try startups, if not gig work/restaurants, or move to a cheaper country while learning. Find what you enjoy and learn by building it. Currently, entrepreneurship is very easy to do with things like LLMs, Shopify, Stripe, etc. Do you want to join Google? Maybe try to build a similar service but on a smaller scale and leverage AI. You will learn so much. Then make some noise by writing a blog. Or how about writing a research paper and trying to publish in a conference like NeurIPS?
Several years back, I wrote a few articles like How to data science without a degree, built compbase.co for searching salary data, and developed a bot to play Word Blitz using machine learning. I did them for fun, and they led to interesting opportunities like getting invited to talk at a data science bootcamp.
Does the above sound like too much work and not fun? Though this advice may seem cliche, I strongly believe in finding a career that you resonate with. Doing all the work I mentioned above can sound challenging and tiring, but if you really enjoy building, it will be fun and bearable. Even for me, I find learning and keeping up with the machine learning industry hard, but they are fun at the same time. This is why I can keep on doing it. I hope you can find a career that you enjoy.
Story time: When I was working at GoDaddy one time, I went through 6 managers in 1 year. This was brutal and so tough. But eventually I learned to deal with failures and changes. I wanted to change jobs but I couldn’t because I sucked at interviewing. It took me 2 years to keep interviewing and improving. During this time, I learned to deal with failures and changes. I learned to find things to learn even in teams and projects I didn’t like while preparing for interviews. Similarly, whatever situation you are in, you need to find a sustainable way to learn and build while preparing for your goal.
I often remind myself: if there is a will there is a way.
Skill to pass the interview
ML interviews are especially challenging because the breadth and depth can vary so much by company. ML interviews are relatively new compared to software engineering interviews. Not only that, the ML industry moves much quicker (think about ChatGPT). So interview practices are not standardized, and it’s hard to keep up with new advances that are taking place daily.
I created mlpro because I found ML interview preparation challenging and wished there was a guide. Though every machine learning and data science interview is quite unique, there are some common themes: ML coding/Python, SWE coding, system design, ML theory, behavioral, data science/experimentation, take-home assignments. Let’s dig into them.
SWE Coding (LeetCode)
Because I didn’t have a computer science background, I hated this interview and didn’t see a point of it. It seemed like a brain teaser question that is not useful. But I now realize that it is just part of the game of tech interviewing. I hated it because I didn’t know it and was not good at it. Once you get good and comfortable at it, then it is no longer a problem.
I tried many things: LeetCode, Interview Cake, Grokking the Coding Interview, Python coding interview books, and more. I tried solving one LeetCode question a day. None of them worked for me personally.
What worked finally was when I decided to intensely focus and solve the BLIND75 questions in a day while really understanding the concepts. Instead of spending 30 minutes a day for a year, I was spending 1-4 hours a day trying to study and understand the concepts for 2 months before and after work. After this time, I became much more comfortable. Shout-out to neetcode.io for building a very useful site.
Thankfully, ML interviews don’t have as many LeetCode interviews as regular SWE interviews. I would focus on being very good at Blind 75 questions and then solve company-tagged problems on sites like LeetCode. In 2025, I prepared by going through Blind 75 again and completing ~20 company-tagged questions. This was enough for me to clear several FANG companies. I personally do not recommend you spend so much of your effort in trying to be top 1% of LeetCode. These days, many new grads grind LeetCode during college years and become so good at them. They are probably way better than me. However, I suggest spending more time building actual products and services. Once interview styles change (as companies are) from LeetCode, you will be in trouble. In all of my interviews, I didn’t fly through the interviews. I struggled but was able to communicate my thoughts and solve through them. This is the state you want to get to.
ML Coding
This one is challenging because there is very little guidance. But from my experience of being interviewed and interviewing, there are a few patterns you can prepare for.
First is “code ___ from scratch”. This can be k-means clustering, logistic regression, neural net, or loss function. You may be using numpy or pytorch. They might ask you to build a simple word predictor using simple heuristics or models. I would really find what kind of ML coding question you will get asked during the interview and try to tailor your preparation.
Second is an end-to-end ML or data science problem. You may be given a dataset and you will need to explore the data, point out problems, build models, and evaluate. I prepared these by finding sample datasets from Kaggle and actually going through solving the problem in a Jupyter notebook. I am going to have an example uploaded to this site (coming soon). I found datasets that are similar to the company I’m interviewing for. For example, if it was Shopify, I would find some e-commerce dataset and try to solve the end-to-end problem.
ML Theory
You will learn a lot of this from your courses and books. I can name a few here that I think are so useful.
- StatQuest - for reviewing ml and statistics concepts
- The Elements of Statistical Learning
- An Introduction to Statistical Learning
- Deeplearning.ai
- Stanford CS online courses
Clearly there is no shortage of materials, but that is also the challenge. The most effective way I learned is by trying to build the models yourself from scratch. This could mean using numpy or pytorch. This is what I did for preparation. When you try to implement famous algorithms like word2vec or transformers, you will understand it so much better. When you train them, you are forced to think about its loss function, evaluation methods, and more. This is the best way to prepare. This has the added benefit of keeping your ML coding skill sharp. It even helps you during a system design interview because you will end up talking about model details then.
This has no timeline. It is constant learning, but a good foundation will go a long way. New grad interviews will have more simple theory questions, whereas senior interviews are more practical and based on real scenarios.
Data Science
Though I have pivoted my career (for now) into more hardcore machine learning, I started my tech journey as a data scientist. And I found Emma Ding’s content very useful for things like experimentation design and product sense. I find this useful even for engineers because it just makes you stronger knowing the entire product life cycle and process. Big companies tend to not ask these questions for MLEs, but you can get asked in smaller companies. As a side note, data engineering is an important skill. Unless you are joining as a product data scientist, you are not likely to be interviewed in SQL.
I would give yourself 1 month to review.
System design question
This one is really interesting. I was really scared about a system design interview before. I tried several things like Grokking the System Design Interview, Grokking the ML System Design Interview, AlgoExpert, a machine learning system design interview book, Designing Data-Intensive Applications (DDIA), and more. Similar to my LeetCode struggle, they didn't help. This interview only became easy after my job at Shopify. Why? I was actually working on and designing a recommender system. When I was preparing for interviews, many of the details came from memory without having to study too much. Please remember, this is not because I am some smart, genius person. My “preparation” was 2 years on the job building a recommender system.
Let’s go back to my earlier analogy. You certainly can be an expert in health science by studying. But I’m sure it is different when you have trained yourself and lived the healthy life. As you may have guessed, my recommendation is to build the system yourself. Can you pass an interview without building it? Yes. But will you master the concept? No. Learning by building the system is going to be the best way.
There are several topics like recommender system, fraud detection, image classifier, chatbot, and RAG that are very common in ML interviews. Choose a topic that is interesting to you. Deploy the model, interact with it. Think about all the different components that go into building a working system: UI, database, users, feature store, evaluation, monitoring, and more. Even if it is not a fully working solution, you can build mockups locally. It’s really different when you just imagine how services are built vs when you actually try to build it. You will run into so many problems and learn from them.
My two cents is that topics like recommender system and LLMs are going to be the main general interview topics. Recommender system is a great topic because it requires many different components to make it work: offline/online model, feature store, cold start problem, simple vs very complicated model architectures, large data problem, etc. LLM is going to be another standard interview topic due to its recent craze. LLM is also a good topic to interview because there are so many complicated components in its model architecture, different training methods (Pretraining, SFT, RL), challenging serving and deployment problems, multimodality, and countless use cases.
I prepared this interview by first mastering recommender system design. I did not prepare as if I am preparing for just a 1-hour system design interview. I prepared like I was writing a book. How do you build a recommender system? I trained models of easy, medium, and hard complexities, wrote down pros and cons, tried to build mock user databases, etc. Then when I was preparing for specific companies, I would try to guess the kind of system the company would need to build and I would try to build it on paper. I wrote down different models I might try, different loss functions, what kind of data I might need, anticipated challenges, and more. This way, I can easily answer different questions the interviewer might ask.
I would give 2 months for this preparation.
Behavioral questions
This is a field where I think you should not fail. Easier said than done. I mastered these very early when I was recruiting for consulting back in college. This appears in a few different forms during interviews. It can be with a recruiter, hiring manager, or during all interviews like at Amazon via leadership principles. I think you should not fail because the questions are extremely common and you can prepare them in advance. However, even though the questions may seem easy, I think they take some soul-searching to have really good answers. I would first go through the common behavioral questions and write them all down. You can search Google or ask an LLM to generate questions for you. I listed all questions and answered them in Situation, Action, Result format.
The questions like "tell me about a failure" or "tell me about a time you had a conflict with your manager" may sound simple. But I surprisingly see many engineers find these interviews hard. You need to see what is beneath the intention of these questions. Ultimately, interviewers want to see that you are someone that can solve problems, pleasant to work with, and deal with challenges. Your answer should demonstrate this.
This should be easily doable in 1 week.
Conclusion
I have talked about what to cover. But how did I execute them? I will discuss this in the next article.