My experience of searching for a job in 2024 as an MLE

Main image

The job market for Machine Learning roles in 2024 was challenging. On the one hand, you hear about massive demand for AI/LLM experts, and the AI industry is booming; on the other hand, there are frequent layoffs and hiring freezes, and the interviews become increasingly challenging.

At that time, I decided that it was time to look for new opportunities and started answering all relevant interview opportunities that I received. I was interested in MLE positions for Senior, Staff, or Tech-Leading positions. I interviewed with 20+ companies across the world and want to share my experience - the good, the bad, and the weird.

The interview variety: what to expect

Most companies nowadays have at least three interviews, but the number of rounds can reach up to 6. There are several common types of interviews, but their contents vary from company to company:

Leetcode

  • Prescreen: This could be a quick chat with a recruiter about logistics and career expectations or a more technical quiz. Some recruiters read a list of questions and write down your answers to verify them later.
  • Coding rounds: In this round, you usually solve LeetCode-style questions. The difficulty and the quantity of the questions vary wildly. Some companies use simple problems to check for basic competence, while others can surprise you with hard-level tasks. Additionally, when you interview for a role beyond senior, communication becomes as crucial as the code itself. You’re expected to talk through your thought process, discuss trade-offs between different solutions, do dry runs, and react to hints from the interviewer.
  • ML System Design: You are expected to design an ML system from scratch. I have encountered questions about anti-fraud systems, manufacturing, chatbots, recommendation systems, and other domains. Some interviewers are interested in the features and model design, others focus on deployment, and in some cases, the theory and math are deemed to be the most important parts.
  • Various: Many companies have mixed rounds, where they ask questions that are relevant to them: writing SQL queries, answering NLP/CV questions, knowing the business domain, and solving questions related to statistics.
  • Behavioral: This is often the key interview - you need to prove that you’ll fit the team, that you have demonstrated both technical and soft skills, navigated complex interpersonal conflicts, and did your best to deliver projects. The questions are usually framed to be answered using the STAR (Situation, Task, Action, Result) method. Some interviewers prefer to ask about what went well, while others drill you on difficult situations where something went wrong.

Interview examples

Sankey

Here is a non-exhaustive list of the companies that I interviewed at and the details of the interview processes. For the sake of privacy, I won’t name most of the companies.

But first, I want to share some examples of situations where the process stopped after the initial discussion:

  • An investment company had only one middle-level DS and planned to hire only two more in 2024, which showed that ML solutions weren’t a priority for them.
  • A small startup wanted me on their advisory board. They wanted to build an observability platform for LLMs. We reached an agreement, and then our communications stopped.
  • A large law firm from London. They wanted to create a “GenAI steering group”. The recruiter asked me several questions about LLMs, like “what is least to most prompting”, “what are the two categories of AI agents”, and “what are the steps to develop a well-written prompt”. I didn’t receive any answer from them.
  • An Irish company with an interview process consisting of six rounds, including a project presentation. I declined, as by that time I had already accepted an interesting offer.
  • A mobile company, developing puzzles and brain teasers. The recruiter asked me a variety of questions, like the difference between sigmoid and softmax, the difference between Random Forest and Gradient boosting, questions on Python data structures, basic questions about a/b tests, and several others. There was no answer from them.
  • A large Thai company. The interview was for a staff level but included live coding tasks for data manipulation in pandas. After five or more iterations, I wasn’t able to keep up with it. Then there was a question about normal distribution, which I failed completely, as I didn’t remember it at all.
  • An almost yearly tradition - failing interviews at Yandex. This time, I wasn’t able to solve a hard-level task, as I could remember a frozenset data structure in Python.
  • An AI coding startup. The interviews were straightforward, and the questions were related to their product - modern LLMs, various optimization approaches, LORA and its modern variations, modern neural net optimizers, and several behavioral questions. I enjoyed the interview, but got a rejection, as I didn’t answer half of the theoretical questions and didn’t have relevant experience (that was fair).
  • A couple of recruiters from Japan reached out to me, but they themselves advised me to think about whether I really wanted to move to Japan, and didn’t contact me again.
  • One notable recruiter insisted that it is essential to add a list of used technologies of every company I worked to my CV.
  • Another weird case was when a recruiter reached out to me, but after one round of interviews, I was rejected due to not having relevant education, even though my education was openly stated in my CV.

A small Russian startup in Dubai

I had only one interview, but it was very interesting. We discussed a wide range of topics, such as string matching, Bert score, spell checkers, inference optimization, attention, BERT, ranking metrics, text-to-image, and face recognition. Some of the questions were framed like mini-ML System design tasks, and others were standalone.

I received an offer from them and was tempted to accept it, but ultimately, I declined, as the startup was less than one year old and felt too risky for me.

Adtech Startup in Dubai

This was quite an interesting company with fun interviews. There were multiple rounds with various questions:

  • Discussion about my experience and two specific projects
  • ML theory
  • Coding challenge: find mistakes in the ML code and suggest improvements to it; write Python code for converting data from one data structure into a different one
  • A case study based on their real-world problems - designing a bidding auction

I received an offer but declined because the domain wasn’t that interesting to me, and I wanted different work conditions.

A Government company in Saudi Arabia

This was an unexpected experience. This company had ambitious plans tied to Saudi Vision 2030. They were hiring aggressively, and I had three rounds of interviews:

  • Initial discussion with the recruiter
  • A mixed round: writing a SQL query, solving a Leetcode-style question, and an ML System Design question. The difficulty of these questions was low.
  • The last interview was with two top managers, and it had a completely different vibe compared to the previous rounds. They were interested in text-to-speech technologies and developing and hosting their own LLMs.

There was no answer from them.

An international online bank in Spain

This company had a FAANG-style process with multiple rounds:

  • A coding interview with two LeetCode-style questions, one of which was a simple string manipulation, and the other required using BFS or Dynamic Programming
  • Another mixed interview: talk about my experience (particularly about a medical chatbot project). Then, the ML system design was about a customer chatbot, where the interviewer played the role of a business person. Finally, a bunch of NLP questions: RNN vs transformer, what is GPT, what is LLM, why a high number of parameters is important, Chinchilla laws, and other topics.
  • A variety of statistical questions: Bayesian-related questions about two boxes with balls of different colors, setting up an A/B test, general questions about logistic regression, and tree-based models
  • Bar-raiser: This was a weird round. I was bombarded with questions about my last three jobs: why I was hired, my most challenging projects, my contributions, what my manager would say my strengths and weaknesses are, why I left the companies, and whether they were trying to retain me. It was exhausting.

The feedback was that I successfully passed the technical interviews, but based on the bar raiser, I came across as a “middle” level engineer with a “low level of ownership” and without brilliant ideas.

A consulting company in the UAE

This was already a relatively new consulting company, with most members having previous experience in McKinsey or BCG. I was told that they are expected to work 11-12 hours daily on average. They don’t have official overtime, but you have to work until late or on weekends “for the sake of the clients”. The interview rounds were not standard:

  • There were usual questions about work projects and a/b testing in them, then there was a business case of designing a fault detection system for a manufacturing factory
  • Questions about LLMS, Bayes’ theorem, p-value, throwing an unbalanced coin, questions related to econometrics, and genealogy discussion about algorithm complexity, feature engineering, and greedy algorithms
  • A business case about segmenting clients in a bank app

After these three rounds of interviews, I was ghosted.

Meta

This was the longest and most involved process, spanning from September 2024 to the following January. In 2022, I had already been interviewed at Meta but failed the initial screening round. In 2024, I was contacted again and offered an opportunity to try for a higher grade. I can’t share full details of the interview rounds due to the signed NDA, so I’ll tell about my experience in broad strokes.

  • Initial screening: two easy-medium level LeetCode problems and behavioral questions. Afterwards, I received detailed feedback on this round.
  • Since I passed this screening round, I could start preparing for the subsequent interviews. I had a call with another interviewer, who shared detailed descriptions of the rounds and the expectations. This was very useful and made the preparations easier.
  • Coding rounds: There were two rounds with two LeetCode questions. It was important not just to write the code well, but also to communicate well during each step of solving the tasks. The topics ranged from string manipulation to tree traversal.
  • Behavioral: standard questions about my best projects, handling conflicts, and feedback that I have received before.
  • ML Design rounds: two rounds about designing recommendation systems. One focused on practical applications, and the other focused more on the theory behind the algorithms.

After the final interview, I had to follow up after two weeks to get the results. It turned out they had forgotten to get back to me! They confirmed I had passed, and we started the team-matching process. After a call with a hiring manager, I received an offer for an E5 role.

Conclusion

This job search was a marathon, not a sprint. It taught me that preparation is everything, especially practicing in mock interviews. It also showed that different companies, and even different interviewers within the same company, value vastly different things. Some want LeetCode wizards, some want product-minded designers, and some want people with a specific kind of past experience. Many companies keep tight headcounts and pivot hard to LLMs.

The process can be draining and full of frustrating waits, but being persistent and prepared eventually pays off.

blogpost life career jobsearch machinelearning