← Back to Directory

Snap interview notes, page 1 of 22

Large Enterprises

Most of these Snap write-ups come from Software Engineers (117), then Machine Learning Engineers (65) and Data Scientists (18). The most reported rounds are the technical phone screen (149), the system design round (45), the behavioral / leadership round (11) and the product sense round (8).

216 interview notes · updated Jul 2026

Snap·Data Scientist·Technical Phone Screen

Oct 2023
Snapchat data scientist interview with a SQL-heavy technical screen focused on a friend-request abuse monitoring scenario. Three questions, all building on the same two tables, escalating from pure SQL to system design and edge case thinking. Not a brutal round but the third question caught me a bit flat-footed.
  • Write a SQL query that returns each of the last 7 calendar days along with the same-day acceptance rate, defined as the number of approvals where the approval date equals the request date divided by total requests on that date.
  • Write a SQL query to find the percentage of friendship requests from last week that did NOT come from accounts flagged as spam.
  • The Users table may not contain all users. Propose at least one data or query change to make the previous queries more robust, and describe the key hypotheses and edge cases you would validate when interpreting results.

“The DATE(request_ts) = DATE(approval_ts) condition is the actual crux here and I almost forgot to scope it that way.”

View Post

Snap·Data Scientist·Technical Phone Screen

Aug 2025
Snapchat data scientist interview that was basically a gauntlet of SQL edge cases around friendship request data. Four tasks, all connected, and they kept layering on complexity. Felt like a take-home but with someone watching.
  • Write a single SQL query that returns, for each date in a given 7-day UTC window, the columns: day, same-day accepts, total requests, and same-day accept rate. A same-day accept means the request and approval share the same UTC date. The output must include days with zero requests.
  • Write SQL to compute the percentage of friendship requests from last week where the requester is not marked as spam. Only include requests with a timestamp in the defined UTC window, and report the result to two decimal places.
  • If the users table is incomplete and some requesters have no record there, write SQL returning three percentages for the same window: one excluding unknown requesters, one treating unknowns as spam, and one treating unknowns as not spam. Also return the counts used for each denominator.
  • List at least three edge cases you considered for the above queries, such as NULL approved_at, approvals falling outside the date window, duplicate requests between the same pair, or timezone cutoffs. Explain explicitly how your SQL handles each.

“The zero-request days requirement is what got me.”

View Post

Snap·Machine Learning Engineer·Technical Phone Screen

Apr 2026
Snap ML engineer interview, one technical question about LLM security. Pretty niche topic and I wasn't fully prepared for how deep it could go.
  • How are large language models vulnerable to adversarial attacks?

“I started with prompt injection since that's the most obvious one, then moved into data poisoning during pretraining.”

View Post

Snap·Software Engineer·Technical Phone Screen

Apr 2026
Snapchat coding interview that went deep into numerical methods territory. Not what I was expecting from a social media company, but here we are.
  • Implement sin(x) from scratch without using any built-in trig functions, accurate to within a specified precision like 1e-7.

“I knew Taylor series was the right direction but blanked for a solid minute on the range reduction part.”

View Post

Snap·Machine Learning Engineer·Technical Phone Screen

Apr 2026
Snapchat ML engineer interview that came down to a classic graph problem. Nothing too exotic, but you better know your cycle detection cold.
  • Given a list of courses and their prerequisites, determine whether it's possible to complete all courses without getting stuck in a dependency cycle.

“Classic directed graph problem dressed up as a scheduling puzzle.”

View Post

Snap·Backend Engineer·Technical Phone Screen

Apr 2026
Snapchat backend interview with a graph problem that looks straightforward until you actually have to count the pairs correctly. Union Find was the expected approach and they weren't subtle about it.
  • Given a list of edges representing employee connections, group employees into connected components and return the total number of pairs you can form by picking one person from each of two different groups.

“The example they gave made it click pretty fast: edges like [0,1],[0,2],[3,4] give you groups of size 3 and 2, so 3x2=6 pairs.”

View Post

Snap·Software Engineer·Onsite - System Design / Architecture

Apr 2026
Snapchat system design round, one big question about building an in-memory cache with TTL and LRU eviction. More depth required than I expected, especially once the distributed angle came up.
  • Design an in-memory cache that supports per-key TTL expiration, LRU eviction when at capacity, and the standard get/put operations. Walk through your data structures, expiration strategy, thread safety, and how you'd extend this to a distributed setting.

“I started with the hashmap plus doubly linked list combo for LRU which felt solid, but then they asked how I'd handle TTL and I kind of fumbled for a minute.”

View Post

Snap·Machine Learning Engineer·Onsite - System Design / Architecture

Apr 2026
Snapchat ML engineer interview focused entirely on system design for a video recommendation pipeline. Pretty deep on the inter-service communication side, not just the usual 'describe your ML model' stuff.
  • Design a video recommendation system end-to-end, with specific attention to what data is passed between services. Identify the core services (candidate generation, feature service, ranker, re-ranker, serving/response builder, logging) and for each pair, define the payload, format/schema, latency budget, consistency guarantees, ordering guarantees, caching strategy, and how you'd minimize cross-service bandwidth.

“This one went longer than I expected.”

View Post

Snap·Software Engineer·Technical Phone Screen

Apr 2026
Snapchat coding round, got a grid fire-spreading problem that's essentially a well-known LC hard. Knew the general shape of the solution but the implementation details took longer than I'd like to admit.
  • On a grid with empty cells, walls, and fire sources, fire spreads outward each minute. You start at the top-left and need to reach the bottom-right safehouse. Find the maximum number of minutes you can wait at the start and still guarantee reaching the safehouse safely. Return a large constant if you can wait indefinitely, or -1 if it's impossible.

“I recognized the fire-spreading part pretty fast and jumped straight to multi-source BFS for fire arrival times.”

View Post

Snap·Software Engineer·Technical Phone Screen

Apr 2026
Snapchat software engineering interview that went deep into Swift internals. The copy-on-write question was more involved than I expected and required both a conceptual explanation and a live implementation.
  • Explain copy-on-write semantics in Swift and how the standard library uses it for value types like Array, String, and Dictionary. Then implement a CoW wrapper from scratch using a class-backed storage box and isKnownUniquelyReferenced.

“The conceptual part I had down: value types share underlying storage until a mutation happens, at which point a copy is made.”

View Post