From my experience conducting hundreds of ML System Design interviews and nearly 100 mock interviews, poor time management is one of the most common reasons candidates struggle in the interviews. Many candidates fail to complete their design within the typical 45-minute to 1-hour timeframe, leaving interviewers without enough information to support hiring decisions. This issue affects a wide range of candidates, from fresh graduates to very senior MLE and RS, especially if they haven’t done an MLSD interview in a while.
Fortunately, time management is an area that can be improved efficiently with the right preparation and practice. In this blog, I’ll share some of the strategies and techniques that have helped candidates overcome this challenge, drawing from my experience as a candidate, interviewer, and interview coach.
Why time management is challenging in MLSD?
Similar to distributed system design interviews, MLSD interviews often present candidates with very open-ended questions. This provides a high degree of freedom to steer the conversation, but it also introduces challenges in organizing what to cover within the limited time available.
What makes this even more complex is the broad scope that MLSD interviews demand. Candidates need to address everything from clarifying objectives to feature engineering, model evaluation, and system considerations. As the ML domain rapidly evolves, the range of approaches to discuss continues to expand like a bubbling pool, from linear models to various extensions of generative models.
Pitfalls I came across
Given above time management challenges, candidates often fall into a number of common pitfalls. In the following section, I’ve summarized the most frequent issues I’ve observed during my experience.
- Many candidates, particularly first-timers, spend an excessive amount of time on the early stages of the design process including inefficient clarification of the problem, long-winded data listings, and feature engineering lost in unnecessary details.
- As a result, they struggle to complete the model design and end up rushing through the remaining sections, such as evaluation, serving, and deployment, reducing them to a single sentence each.
- Ironically, the interesting, in-depth, and practical discussions always occur in these later stages, which are often overlooked due to poor time management.
- When discussing design topics like model choice and evaluation metrics, one common pitfall is to list numerous approaches without diving into any of them in depth.
- I often hear candidates mention various types of ‘X networks’ without providing detailed comparisons or explaining why one might be the best option.
- MLSD interviews typically reward depth and nuanced understanding over merely touching on a broad range of approaches and terms.
- This issue often arises in questions that require multiple modules, such as a multi-stage recommendation system.
- Candidates tend to revisit common topics across different modules multiple times, discussing similar features, model architectures, or inference optimizations repetitively.
- The common affected section of this pitfall is feature engineering. Some candidates attempt to exhaust all possible features they can think of to improve their design quality and model performance.
- However, in most MLSD interviews, feature creativity isn’t a primary assessment criterion. Interviewers typically do not expect an exhaustive list of features. Instead, covering the most important feature categories is usually sufficient for a design interview.
- Some candidate tend to ‘review the history’ when discussing different options for a design decision.
- They begin with the most basic approaches, such as linear models, even though these will almost certainly not be used in their final design.
- While it’s important to acknowledge foundational concepts, spending too much time on approaches that aren’t relevant to the design wastes valuable time that could be better spent discussing trade-offs and optimizing the selected models.
- In a design interview, many candidates prefer to use diagrams to explain their design rather than relying solely on verbal explanations.
- While visual aids can be helpful, it’s important not to let them dominate your discussion time. Unlike distributed system design, many ML topics can be effectively conveyed through text and bullet points, which can be particularly efficient in online interviews.
Managing your time in MLSD interviews
Align with MLSD’s expectations
To avoid falling into these pitfalls, it’s crucial to focus our time on the most valuable topics. But what exactly does “valuable” mean in the context of an ML System Design interview? Here I picked some common expectations related to time management.
- Finish the design
- Show in-depth knowledge on ML topics
Tips for preparation
Fortunately, the main categories of MLSD questions are limited, allowing us to prepare draft designs for each category in advance. In this section, I’ll outline some strategies we can implement for better time management.
- Based on our experience and strength, we can select 1-2 topics we want to explore in depth for each question category. These topics could range from inference optimization to multi-task learning or data augmentation.
- How to decide right topics? The goal is to stand out from other candidates at our level. Focus on topics that address significant challenges in the design question, help achieve the design objectives with high impact, and are practical for real-world use cases.
- Keep in mind that the chosen topics should align with the specific scenario of the question. Tailor our deep dive to fit the actual requirements of the interview question.
- During our preparation, allocate and balance the time for each section of the discussion. Prioritize the sections where we plan to dive deeper. For other areas, present our design decisions concisely yet clearly.
- Also, remember to reserve time for clarification (3-5 minutes) and follow-up questions from the interviewers (about 5 minutes).
- Use a top-down approach or another clear structure to guide the discussion. A well-organized flow helps avoid redundant conversations and minimizes time spent clarifying our design to the interviewers. We’ll explore how to build effective structures in future blog posts.
Notes during interview
continuously check in with the interviewers, either explicitly or implicitly, to gauge whether they are interested in the deep-dive topics and to ensure they are following along with the sections we’ve completed.
My personal suggestion is to use bullet points whenever diagrams are not absolutely necessary for communication. Clear and concise diagrams should be reserved for instances where it’s difficult to explain a design verbally. Some potential areas where diagrams may be useful include:
- Non-linear pipelines, such as serving pipelines or online/offline feature generation pipelines.
- Custom model modifications, like multi-task loss functions or shared layers.
Call to action
Did you experience any other challenges on time management during your interview? Are these strategies helpful for your preparation and interviews? Do you have any other tricks and other topics you’d like to discuss? Feel free to comment and I’m eager to discuss!