← Snapchat Interview Insights

Snapchat·Machine Learning Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
Jun 2026

Summary

ML system design interview at Snapchat for an MLE role. The whole thing was one long design question about building a recommendation system for Lenses, with two meaty follow-ups that went pretty deep into cold start and multi-objective modeling. Felt like a real engineering conversation rather than a quiz.

Questions Asked (3)

Q1

Design a full recommendation system for Snapchat Lenses, covering problem framing, candidate generation, ranking model architecture, feature design, label and objective definition, and both training and serving pipelines.

System DesignTechnical Trade-offsProduct Sense & Ideation
Author's notes

Big open-ended question and I spent probably too long on candidate generation before they nudged me toward ranking.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the product goal and constraints (e.g., surface relevant Lenses to users to maximize engagement while ensuring diversity and freshness). Then walk through the ML system design in a structured way: problem framing, candidate generation, ranking model, features, labels/objective, and training/serving pipelines. Emphasize trade-offs and how you would measure success.

Pro tip: Anchor your design in Snapchat's unique context: ephemeral content, AR try-on, and social graph. Mention how you'd handle cold-start for new Lenses and users, and how you'd balance exploration with exploitation to avoid feedback loops.

1. Problem Framing & Metrics

Define the recommendation task: given a user and context, rank Lenses to maximize engagement (e.g., Lens usage, shares, time spent). Choose offline and online metrics (e.g., CTR, conversion rate, diversity) and set constraints (latency, freshness).

2. Candidate Generation

Design multiple candidate sources: collaborative filtering (user-user, item-item), content-based (Lens metadata, visual features), trending/popular, social graph (friends' usage), and contextual (time, location). Use a lightweight model to retrieve top-N candidates efficiently.

3. Ranking Model Architecture

Propose a two-stage ranking: a light ranker (e.g., logistic regression or small NN) to prune candidates, then a heavy ranker (e.g., deep neural network with wide & deep or multi-task learning) to predict multiple objectives (e.g., usage, share, like). Consider sequence models for user history.

4. Feature Design & Label Definition

List key features: user features (demographics, past interactions, embeddings), Lens features (creator, category, visual embeddings, popularity), context features (time, location, device), and cross features (user-Lens affinity). Define labels: binary engagement (used/not used), multi-class actions, or regression on watch time. Address negative sampling and bias.

5. Training & Serving Pipelines

Describe offline training: data collection, feature engineering, model training (e.g., distributed training), and evaluation (A/B testing). For serving: real-time feature fetching, model inference (low latency), and post-processing (diversity, freshness, business rules). Discuss monitoring and retraining cadence.

Key Points to Mention

  • Two-stage architecture: candidate generation + ranking for scalability.
  • Multi-task learning to optimize multiple engagement signals (e.g., usage, share, like).
  • Handling cold-start: use content-based features and explore/exploit strategies.
  • Feature store for consistent online/offline features and low-latency serving.
  • Evaluation: offline metrics (AUC, NDCG) and online A/B tests with guardrail metrics.
  • Diversity and freshness: avoid filter bubbles and repetitive recommendations.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

How would you handle cold start for both brand-new Lenses with no engagement history and new users with no behavioral data?

System DesignTechnical Trade-offsAdaptability & Ambiguity
Author's notes

Two-sided cold start in one question, which is a lot.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by defining the two cold-start problems separately—new Lenses and new users—then propose a unified framework that leverages content-based features and contextual signals to generate initial recommendations, followed by a bandit-based exploration strategy to gather feedback and transition to personalized models. Emphasize the importance of measuring and mitigating popularity bias and ensuring a smooth handoff from exploration to exploitation.

Pro tip: Show that you understand Snapchat's unique constraints: Lenses are consumed in short, ephemeral sessions, so cold-start solutions must deliver immediate value without relying on long-term user history. Mention that you'd leverage Snap's rich content features (e.g., Lens visual embeddings, creator metadata) and contextual signals (time, location, device) to bootstrap recommendations.

1. Frame the problem and constraints

Acknowledge that cold start for Lenses and users are distinct but related: new Lenses lack engagement data, new users lack behavioral history. Highlight Snapchat's real-time, ephemeral context and the need for low-latency serving.

2. Leverage content and context for initial recommendations

For new Lenses, use content-based features (visual embeddings, tags, creator info) to match with users' past preferences or contextual signals. For new users, use contextual bandits with side information (time, location, device, demographics) to make initial guesses.

3. Design an exploration strategy

Employ multi-armed bandits (e.g., Thompson Sampling) to balance exploration of new Lenses and exploitation of known preferences, while ensuring new users see a diverse set of Lenses to quickly learn their tastes.

4. Transition to personalized models

As engagement data accumulates, gradually shift from content-based/contextual methods to collaborative filtering or deep learning models, using techniques like meta-learning or transfer learning to speed up adaptation.

5. Evaluate and mitigate biases

Set up offline and online metrics (e.g., CTR, watch time, diversity) to monitor cold-start performance. Actively address popularity bias and feedback loops by injecting randomness and ensuring fair exposure for new Lenses.

Key Points to Mention

  • Content-based filtering using Lens visual features and metadata
  • Contextual bandits for new users with side information
  • Exploration-exploitation trade-off via Thompson Sampling or UCB
  • Transfer learning / meta-learning to leverage data from similar users or Lenses
  • Popularity bias and feedback loops in recommendation systems
  • Online evaluation metrics and A/B testing for cold-start strategies

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

Users can view, try, share, or save a Lens. How do you model these different engagement levels? Walk through the trade-offs between a single weighted model versus separate models per action combined into a final score.

Technical Trade-offsSystem DesignProduct Analytics & Metrics
Author's notes

This one I actually liked.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by framing the problem as modeling user engagement with Lenses, where each action (view, try, share, save) represents a different level of intent and value. Then, compare a single weighted model versus separate models per action, discussing trade-offs in terms of simplicity, interpretability, flexibility, and data requirements. Conclude with a recommendation based on business goals and practical constraints.

Pro tip: Emphasize that the choice depends on the specific product goals and data availability; a hybrid approach (e.g., separate models for each action combined via a learned or heuristic weighting) often balances interpretability and performance.

1. Define Engagement Levels and Business Value

Clarify what each action signifies (e.g., view = low intent, try = medium, share/save = high) and how they contribute to Snapchat's objectives like user retention or content virality.

2. Single Weighted Model Approach

Describe modeling engagement as a single score by assigning weights to each action (e.g., view=1, try=3, share=5, save=4) and summing or averaging. Discuss pros: simplicity, easy to deploy, and interpretability.

3. Separate Models per Action Approach

Explain training individual models to predict each action (e.g., probability of try, share, save) and then combining them into a final score via another model or rule. Discuss pros: flexibility, ability to capture action-specific nuances, and better handling of sparse actions.

4. Trade-offs Analysis

Compare the two approaches on dimensions like data requirements, computational cost, interpretability, ability to handle class imbalance, and ease of updating as new actions emerge.

5. Recommendation and Hybrid Approach

Suggest a hybrid: use separate models for each action to generate features, then combine them with a learned weighting (e.g., logistic regression or gradient boosting) to produce a final engagement score, balancing flexibility and simplicity.

Key Points to Mention

  • Business value hierarchy of actions: view < try < save < share (or similar)
  • Data sparsity and class imbalance for actions like share/save
  • Interpretability and explainability for stakeholders
  • Computational and maintenance costs of multiple models
  • Potential for online learning and real-time scoring
  • Evaluation metrics: correlation with business KPIs, AUC per action, and overall engagement lift

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.