Snap interview questions
Big tech · 8 questions reported
- junior 0
- mid 3
- senior 5
These are 8 technical questions candidates reported being asked in Snap interviews for AI engineer, ML engineer and applied AI engineer roles, each with a model answer you can say out loud in a minute or two. They cover training, ml system design, embeddings, attention and multimodal: 0 junior, 3 mid-level and 5 senior questions. Every question comes from a public interview write-up that names Snap.Updated
Snap embeddings questions
Model answer
Yes: a two-tower model with user and item embeddings, trained with in-batch negatives. A positive should mean value: a click with real dwell time or a save, never a bare impression.
Retrain on a time-based split, computing features only from data before each label's timestamp, so nothing leaks from the future. Exposure bias: the logs only hold what the old model chose to show, so keep a small exploration slice of randomised items, correct for popularity in sampled negatives, and weight by inverse propensity. Validate on the following day, then A/B test.
Snap attention and the transformer block questions
Model answer
Convolutions build in locality and translation equivariance: each layer sees a small neighbourhood so they learn well from less data, but long-range links need depth or pooling. Self-attention connects every position to every other in one layer with few built-in assumptions, so it needs more data or pretraining, and its cost grows quadratically with sequence length. Hybrids take both: a convolutional stem feeding transformer layers, or convolution stages early and attention later, as in CoAtNet.
Snap training and optimisation questions
Model answer
BatchNorm normalizes each feature across the batch. LayerNorm normalizes each example across its own features. So BatchNorm depends on the batch: training uses batch statistics and updates running averages, inference uses those stored running statistics. LayerNorm computes the same thing in both modes, which is why transformers and small or variable batches use it.
Bugs usually show up as a train-eval gap: a missing model.eval(), tiny or unshuffled batches, stale running statistics after fine-tuning, or the wrong axis. Compare train and eval outputs on one batch and inspect the running statistics.
Model answer
With hidden layers, every unit in a layer computes the same output and gets the same gradient, so they stay identical forever: the layer acts like one unit. Worse, with all weights zero the gradients reaching earlier layers are zero too, so they don't move at all.
Linear and logistic regression are fine. There are no hidden units to be symmetric, the loss is convex, and gradient descent from zero reaches the same optimum as from anywhere. Networks therefore use random initialization scaled to keep activation variance steady, such as Xavier or He initialization.
Model answer
Outcomes aren't exclusive, so give each its own binary head on a shared trunk with sigmoid cross-entropy, not one softmax.
For a funnel like impression, click, purchase, model the chain: p(click) times p(purchase given click) equals p(click and purchase). Supervise p(click) and the product on all impressions, as ESMM does, so the conditional head is learned over the whole space instead of only clicked items, avoiding sample-selection bias. Weight the task losses, watch for one task dominating the shared gradients, and check each head's calibration.
Snap mL system design questions
Model answer
Two stages. Candidate generation from several sources: lenses near the user's history, trending lenses, lenses friends used, camera context. Then a ranker predicting try, capture and send. New lenses: content features like category, creator and a visual embedding, plus a small exploration slot. New users: regional popularity, adapting within the first sessions. Evaluate offline on a time split, then A/B test on sends, not just tries.
Model answer
Split it into spatial retrieval and ranking, both cheap. Index POIs in a spatial grid such as geohash or S2 cells, and precompute the top candidates per cell and zoom level offline from popularity and quality, so a viewport query just unions a few cells' lists. Online, a light model reranks a few hundred candidates with user and time features.
To hold 150 ms p95: cache cell lists at the edge and on the client, prefetch neighbouring cells while the user pans, and cancel stale requests. If the ranker runs late, serve the precomputed order.
Snap multimodal models questions
Model answer
Don't search only the 20%: make the rest searchable. Embed frames and queries in a shared space with a CLIP-style model, and generate text from speech recognition, OCR and vision-language captions. Index both: BM25 over real and generated text, and an ANN index over visual embeddings, merged and reranked. Fine-tune the dual encoder on search logs of query and watched video. Report recall at k separately for videos with and without metadata.
Each question comes from a public interview write-up or video that names Snap; the answers are ours. Not affiliated with Snap.