Snap Interview Guide

Snap Interview Guide 2026: AR Engineering, Camera Systems, and Real-Time Communication at Scale

Snap Inc. is a camera company — their words, and accurate. While known for Snapchat, their core technical differentiation is augmented reality (Lens Studio, Spectacles), real-time video processing, and ephemeral messaging. This guide covers SWE and graphics/ML engineering interviews at L3–L6.

The Snap Interview Process

  1. Recruiter screen (30 min)
  2. Technical phone screen (1 hour) — 1–2 coding problems; may include camera/graphics domain question for relevant teams
  3. Virtual onsite (4–5 rounds):
    • 2× coding (algorithms, data structures; graphics/CV questions for camera teams)
    • 1× system design (messaging, stories, AR platform, or ads)
    • 1× domain depth (for AR/ML roles: linear algebra, rendering, neural networks)
    • 1× behavioral (Snap values)

Snap has distinct engineering orgs: Core Infrastructure, Advertising (major revenue driver), Camera Platform (AR/ML), Maps, and Snap Kit (SDK). Interview style varies by team.

Core Algorithms: Computer Vision and AR

Face Landmark Detection (Simplified)

import math
from typing import List, Tuple

class FaceLandmarkTracker:
    """
    Simplified face landmark tracking for AR filters.
    Snap's Lens Studio runs landmark detection at 30+ FPS on mobile.

    Real system uses deep learning (MobileNet-based landmark detector)
    with 68+ facial landmarks (eyes, nose, mouth corners, jawline).

    Key optimizations for mobile:
    - Quantized INT8 models (4x faster than FP32)
    - Region of Interest: only process detected face region
    - Temporal smoothing: use Kalman filter to smooth jitter
    - Two-stage: face detection → landmark refinement
    """

    def __init__(self, n_landmarks: int = 68):
        self.n_landmarks = n_landmarks
        self.smoothing_factor = 0.7  # for exponential moving average

    def smooth_landmarks(
        self,
        prev_landmarks: List[Tuple[float, float]],
        new_landmarks: List[Tuple[float, float]]
    ) -> List[Tuple[float, float]]:
        """
        Exponential moving average smoothing to reduce jitter.
        α=0.7 means: 70% current frame, 30% previous frame.

        Higher α = more responsive to movement, more jitter.
        Lower α = smoother but lags behind fast movements.
        """
        if not prev_landmarks:
            return new_landmarks

        α = self.smoothing_factor
        smoothed = []
        for prev, curr in zip(prev_landmarks, new_landmarks):
            x = α * curr[0] + (1 - α) * prev[0]
            y = α * curr[1] + (1 - α) * prev[1]
            smoothed.append((x, y))
        return smoothed

    def fit_face_oval(
        self,
        landmarks: List[Tuple[float, float]],
        jawline_indices: List[int] = None
    ) -> Tuple[float, float, float, float]:
        """
        Fit an ellipse to jaw landmarks for face oval detection.
        Used for AR face contour effects.

        Returns: (center_x, center_y, width, height)
        """
        if not landmarks:
            return (0, 0, 0, 0)

        indices = jawline_indices or list(range(len(landmarks)))
        points = [landmarks[i] for i in indices if i  Tuple[float, float, float]:
        """
        Estimate pitch, yaw, roll from landmark geometry.
        Used to align 3D AR objects (glasses, hats) with head orientation.

        Simplified geometric approach — real systems use PnP algorithm
        (Perspective-n-Point) with 3D model correspondence.

        Returns: (pitch, yaw, roll) in degrees
        """
        nose_tip = landmarks_2d[key_point_indices.get('nose_tip', 33)]
        left_eye = landmarks_2d[key_point_indices.get('left_eye', 36)]
        right_eye = landmarks_2d[key_point_indices.get('right_eye', 45)]

        # Yaw: horizontal head turn — estimated from eye position symmetry
        eye_dx = right_eye[0] - left_eye[0]
        eye_dy = right_eye[1] - left_eye[1]
        yaw = math.degrees(math.atan2(eye_dy, eye_dx))

        # Roll: head tilt
        roll = math.degrees(math.atan2(
            right_eye[1] - left_eye[1],
            right_eye[0] - left_eye[0]
        ))

        # Pitch: very rough estimate from nose position relative to eyes
        eye_center_y = (left_eye[1] + right_eye[1]) / 2
        pitch_raw = nose_tip[1] - eye_center_y
        pitch = pitch_raw / 10.0  # normalize

        return (pitch, yaw, roll)

Ephemeral Message Storage with TTL

import time
import heapq
from typing import Any, Dict, List, Optional, Tuple

class EphemeralMessageStore:
    """
    Message store with automatic TTL expiry — core to Snapchat's
    ephemeral messaging model.

    Snaps expire after:
    - Viewed: 1–10 seconds (sender's choice)
    - Unopened: 30 days
    - Stories: 24 hours

    Implementation: heap-based TTL eviction + hash map for O(1) lookup.
    Real Snap uses Cassandra with TTL column families for this.
    """

    def __init__(self):
        self.messages: Dict[str, Dict] = {}  # msg_id -> {content, expires_at}
        self.expiry_heap: List[Tuple[float, str]] = []  # (expires_at, msg_id)

    def store(self, msg_id: str, content: Any,
              ttl_seconds: float) -> float:
        """Store message with TTL. Returns expiry timestamp."""
        expires_at = time.time() + ttl_seconds
        self.messages[msg_id] = {
            'content': content,
            'expires_at': expires_at,
            'viewed': False,
        }
        heapq.heappush(self.expiry_heap, (expires_at, msg_id))
        return expires_at

    def retrieve(self, msg_id: str) -> Optional[Any]:
        """
        Retrieve message if not expired. Mark as viewed.
        Snap-specific: after view, content is deleted within seconds.
        """
        self._evict_expired()

        if msg_id not in self.messages:
            return None

        msg = self.messages[msg_id]
        if time.time() > msg['expires_at']:
            del self.messages[msg_id]
            return None

        # If already viewed, cannot retrieve again
        if msg['viewed']:
            return None

        content = msg['content']
        msg['viewed'] = True
        # Schedule immediate deletion (in production: async job after ACK)
        msg['expires_at'] = time.time() + 5  # 5 second grace for replay protection
        return content

    def _evict_expired(self):
        """Lazy eviction: clean up expired messages from heap."""
        now = time.time()
        while self.expiry_heap and self.expiry_heap[0][0] <= now:
            expires_at, msg_id = heapq.heappop(self.expiry_heap)
            if msg_id in self.messages:
                msg = self.messages[msg_id]
                if msg['expires_at'] <= now:
                    del self.messages[msg_id]

System Design: Snap Stories at Scale

Common question: “Design Snap Stories — content visible to followers for 24 hours.”

"""
Snap Stories Architecture:

Content Upload:
  Mobile → [Upload Service] → S3 (video/image)
                            → [Transcoding] → multiple resolutions
                            → [CDN distribution] (Fastly/Cloudflare)

Story Creation:
  POST /story → [Story Service] → creates story record
  Record: {story_id, creator_id, media_url, created_at, expires_at=+24h}

Story Feed (for a viewer):
  GET /feed → [Feed Service] → fetches stories from all followed accounts
  Sorted by: recency (most recent first)
  Viewed status tracked per viewer (Redis SET: viewer_id:viewed_stories)

Discovery (public stories):
  Snap Map shows stories pinned to geographic locations
  "Our Story" aggregates community content around events/locations
  Requires geospatial indexing (S2 geometry or geohashing)

Scale numbers:
  - 400M daily active users
  - 4B+ Snaps created daily
  - Stories served with <300ms latency globally

CDN strategy:
  - Popular stories (celebrity accounts) eagerly pushed to edge nodes
  - Unknown creators: pull-through cache (cached on first request)
  - 24h TTL: CDN entries automatically invalidate at story expiry
"""

Snap Engineering Culture

  • Innovation-focused: Snap pioneered Stories, AR filters, ephemeral messaging — culture rewards novel ideas
  • Mobile-first: Everything is evaluated on mobile performance; battery impact, frame rate, bandwidth matter
  • Privacy: Ephemeral design is intentional; privacy is a product differentiator
  • Hardware integration: Spectacles (AR glasses) — Snap is investing in the AR hardware stack

Behavioral at Snap

  • “What’s a product you think is badly designed and how would you fix it?” — Snap values design sensibility
  • Creativity: “Tell me about something you built that you’re genuinely proud of.”
  • Speed vs. craft: Social apps iterate fast; show you can ship quickly without sacrificing stability

Compensation (L3–L6, US, 2025 data)

LevelTitleBaseTotal Comp
L3SWE$150–180K$195–245K
L4Senior SWE$185–220K$260–350K
L5Staff SWE$220–260K$360–480K
L6Principal$260–310K$480–650K+

Snap is publicly traded (NYSE: SNAP). RSUs vest quarterly over 4 years. Stock has been challenging post-ATH; evaluate on long-term AR/Spectacles potential.

Interview Tips

  • Use Snapchat and Lens Studio: Build an AR Lens before interviewing for the camera platform team
  • Computer vision basics: Know CNNs, object detection, facial landmark detection at a conceptual level
  • Mobile optimization: Battery, latency, frame rate — these metrics matter at Snap more than elsewhere
  • LeetCode: Medium difficulty; image processing, graph algorithms, and sliding window patterns are common

Practice problems: LeetCode 315 (Count Smaller Numbers After Self), 239 (Sliding Window Max), 307 (Range Sum Query Mutable), 56 (Merge Intervals).

Related System Design Interview Questions

Practice these system design problems that appear in Snap interviews:

Related Company Interview Guides

Explore all our company interview guides covering FAANG, startups, and high-growth tech companies.

Related system design: String Manipulation Interview Patterns: Complete Guide (2025)

See also: System Design Interview: Design a Pastebin / Code Snippet Service

See also: System Design Interview: Design a Maps and Navigation System (Google Maps)

  • System Design Interview: Design a Social Graph (Friend Connections)
  • System Design Interview: Design a Hotel / Booking Reservation System
  • System Design Interview: Design a Real-Time Bidding (RTB) System
  • System Design Interview: Design a Location-Based Services System (Yelp/Google Maps)
  • System Design Interview: Design a Real-Time Chat Application (WhatsApp/Slack)
  • System Design Interview: Design a Search Engine (Query Processing and Ranking)
  • System Design Interview: Design a Video Streaming Platform (YouTube/Netflix)
  • System Design Interview: Design a Ride-Sharing App (Uber/Lyft Dispatch)
  • System Design Interview: Design a Social Media Feed System
  • System Design Interview: Design a Content Moderation System
  • System Design Interview: Design a Notification System
  • System Design Interview: Design a Fleet Management and Vehicle Tracking System
  • System Design Interview: Design a Real-Time Gaming Leaderboard
  • System Design Interview: Design an Ad Click Aggregation System (Google/Meta Ads)
  • String Algorithm Interview Patterns: Sliding Window, Palindromes, Anagrams, Rolling Hash
  • System Design Interview: Design a Live Sports Score System
  • Topological Sort Interview Patterns: Course Schedule, Alien Dictionary, Build Order
  • System Design Interview: Design a Web Crawler and Search Indexer
  • System Design Interview: Design a Geospatial Service (Nearby Drivers/Places)
  • Binary Search Interview Patterns: Answer Space, Rotated Arrays, Median
  • System Design Interview: Design a Content Delivery Network (CDN)
  • Recursion and Memoization Interview Patterns: LCS, Edit Distance, Word Break
  • System Design Interview: Design a Ticketing System (Ticketmaster)
  • Two Pointers and Sliding Window Interview Patterns
  • System Design Interview: Design a Live Video Streaming Platform (Twitch)
  • System Design Interview: Design a Recommendation System (Netflix/Spotify/Amazon)
  • Bit Manipulation Interview Patterns: XOR Tricks, Bitmask DP, and Common Problems
  • System Design Interview: Design a Social Media Feed (Twitter/Instagram)
  • Recursion and Backtracking Interview Patterns: Permutations, N-Queens, Sudoku
  • System Design Interview: Design a Real-Time Collaboration Tool (Figma/Miro)
  • Interval Problem Patterns: Merge, Insert, Meeting Rooms & Scheduling
  • System Design Interview: Design a Real-Time Leaderboard
  • Linked List Interview Patterns: Reverse, Cycle, Merge & Reorder
  • Stack Interview Patterns: Parentheses, Calculator, Histogram & Min Stack
  • Two Pointers and Sliding Window Interview Patterns: Complete Guide
  • System Design Interview: Design a Video Streaming Platform (YouTube/Netflix)
  • Heap and Priority Queue Interview Patterns
  • Math and Number Theory Interview Patterns
  • Sorting Algorithms Interview Guide: Quicksort, Mergesort, Counting Sort
  • System Design: Notification Service (Push, SMS, Email at Scale)
  • System Design: Collaborative Document Editing (Google Docs)
  • Matrix and Grid DP Interview Patterns: Unique Paths, Minimum Path Sum, Dungeon
  • System Design: Live Location Tracking (Uber / Lyft Driver GPS)
  • Recursion Interview Patterns: Memoization, Tree Recursion, Classic Problems
  • Monotonic Stack Interview Patterns: Next Greater, Histograms, Stock Span
  • Backtracking Interview Patterns: Subsets, Permutations, N-Queens
  • System Design: Real-Time Chat System (WhatsApp / Slack)
  • String DP Interview Patterns: LCS, Edit Distance, Palindrome DP
  • System Design: Twitter / Social Media Feed Architecture
  • System Design: Video Streaming Platform (Netflix/YouTube)
  • System Design: URL Shortener (bit.ly/TinyURL)
  • System Design: Email Service at Scale (SendGrid/Gmail)
  • System Design: Autocomplete and Typeahead Service
  • Stack and Queue Interview Patterns
  • System Design: Multi-Tenant SaaS Architecture
  • System Design: Kubernetes and Container Orchestration
  • Graph Algorithm Interview Patterns
  • System Design: Recommendation Engine at Scale
  • Related System Design Topics

    📌 Related System Design: Low-Level Design: Chess Game (OOP Interview)

    📌 Related: Low-Level Design: Parking Lot System (OOP Interview)

    📌 Related: System Design Interview: Design Instagram / Photo Sharing Platform

    📌 Related: System Design Interview: Design YouTube / Video Streaming Platform

    📌 Related: Low-Level Design: Snake and Ladder Game (OOP Interview)

    📌 Related: System Design Interview: Design WhatsApp / Real-Time Messaging

    📌 Related: System Design Interview: Design Twitter / X Timeline

    📌 Related: System Design Interview: Design a Ride-Sharing App (Uber / Lyft)

    📌 Related: Low-Level Design: Chat Application (OOP Interview)

    📌 Related: Low-Level Design: Movie Ticket Booking System (OOP Interview)

    📌 Related: System Design Interview: Design a Social Media News Feed

    📌 Related: Low-Level Design: Pub/Sub Event System (OOP Interview)

    📌 Related: Low-Level Design: Notification System (OOP Interview)

    📌 Related: System Design Interview: Design a Geo-Proximity Service (Yelp / Nearby)

    📌 Related: System Design Interview: Design a Leaderboard / Top-K System

    📌 Related: Low-Level Design: Social Network Friend Graph (OOP Interview)

    Related: System Design: Real-Time Collaborative Document Editor (Google Docs)

    Related: Low-Level Design: Pub/Sub Message Broker (Observer Pattern)

    Related: System Design: Feature Flag and A/B Testing System

    Related: System Design Interview: Design a Search Engine

    Related system design: System Design: Search Autocomplete (Typeahead) — Trie, Cache, Scoring

    Related system design: Low-Level Design: Social Media Feed (Follow, Post, Fan-out, Likes)

    Related system design: Low-Level Design: Ride-Sharing Driver App (State Machine, Earnings, Location)

    Related system design: Low-Level Design: Online Auction System (Proxy Bidding, Sniping Prevention, State Machine)

    Related system design: Low-Level Design: Food Delivery Order System (DoorDash/Uber Eats) — State Machine, Driver Assignment

    Related system design: System Design: Distributed Counters, Leaderboards, and Real-Time Analytics

    Related system design: System Design: Real-time Chat and Messaging System (WhatsApp/Slack) — WebSockets, Pub/Sub, Scale

    Related system design: Low-Level Design: Notification Service — Push, Email, SMS, Templates, and Deduplication

    Related system design: Low-Level Design: Content Moderation System — Automated Filtering, Human Review, and Appeals

    Related system design: System Design: Geo-Proximity Service — Location Storage, Radius Search, and Geohashing

    Related system design: Low-Level Design: Flash Sale System — Inventory Lock, Queue-based Checkout, and Oversell Prevention

    Related system design: Low-Level Design: Food Delivery Order Tracking — Real-time Location, State Machine, and ETA

    Related system design: Low-Level Design: Social Media Post Scheduler — Scheduling, Multi-Platform Publishing, and Analytics

    Related system design: Low-Level Design: Customer Support Ticketing System — Routing, SLA, Escalation, and Knowledge Base

    Related system design: Low-Level Design: Employee Leave Management System — Accrual, Approval Workflows, Balances, and Compliance

    Related system design: Low-Level Design: Digital Wallet — Balance Management, Transfers, Ledger, and Transaction Limits

    Related system design: Low-Level Design: Task Management System — Boards, Workflows, Assignments, Due Dates, and Notifications

    Related system design: Low-Level Design: Coupon and Discount System — Validation, Stacking Rules, Usage Limits, and Analytics

    Related system design: System Design: Social Network News Feed — Fan-out on Write vs Read, Ranking, and Feed Generation

    Related system design: Low-Level Design: Document Management System — Versioning, Permissions, Full-text Search, and Collaboration

    Related system design: System Design: Multiplayer Game Backend — Game Sessions, Real-time State, Matchmaking, and Leaderboards

    Related system design: System Design: WebRTC and Video Calling — Signaling, ICE, STUN/TURN, and SFU Architecture

    Related system design: Low-Level Design: Food Delivery Platform — Orders, Driver Dispatch, Real-Time Tracking

    Related system design: System Design: Ride-Sharing App (Uber/Lyft) — Driver Matching, Pricing, and Trip Lifecycle

    Related system design: Low-Level Design: Social Media Platform — Posts, Feeds, Follows, and Notifications

    Related system design: Low-Level Design: Survey and Form Builder — Dynamic Schemas, Conditional Logic, and Analytics

    Related system design: System Design: Chat Application — Real-Time Messaging, Message Storage, and Presence (WhatsApp/Slack)

    Related system design: System Design: Ad Serving — Real-Time Bidding, Targeting, and Impression Tracking

    Related system design: System Design: Typeahead and Autocomplete — Trie, Ranking, and Real-Time Suggestion Updates

    Related system design: System Design: Ad Server — Targeting, Real-Time Bidding, Impression Tracking, and Click Attribution

    Related system design: Low-Level Design: Online Learning Platform (Coursera/Udemy) — Courses, Progress, and Certificates

    Related system design: Low-Level Design: Task Management System (Trello/Jira) — Boards, Workflows, and Notifications

    Related system design: System Design: Flash Sale — High-Concurrency Inventory, Queue-Based Purchase, and Oversell Prevention

    Related system design: Low-Level Design: Ride-Sharing App (Uber/Lyft) — Driver Matching, Surge Pricing, and Trip State Machine

    Related system design: System Design: Analytics Pipeline — Ingestion, Stream Processing, and OLAP Query Layer

    Related system design: System Design: Live Comments — Real-Time Delivery, Moderation, and Spam Prevention at Scale

    Related system design: Low-Level Design: Online Food Delivery (DoorDash/Uber Eats) — Order Lifecycle, Driver Assignment, and ETA

    Related system design: Low-Level Design: Blog Platform — Content Management, Comments, and SEO-Friendly URLs

    Related system design: System Design: Typeahead / Search Autocomplete — Trie Service, Ranking, and Low-Latency Delivery

    See also: System Design: Media Storage and Delivery

    See also: System Design: Gaming Backend

    See also: System Design: Location Service

    See also: System Design: Content Delivery Network (CDN)

    See also: System Design: IoT Data Platform

    See also: DP State Machine Interview Patterns

    See also: System Design: Real-Time Bidding Platform

    See also: Sliding Window Interview Patterns

    See also: Monotonic Stack Interview Patterns

    See also: Low-Level Design: Poll and Voting System

    Snap system design interviews cover link tracking at scale. Review the full design in URL Shortener and Click Analytics Platform System Design.

    Snap delivers real-time sports content. Review live sports platform system design in Live Sports Score Platform System Design.

    Snap interviews cover video processing. Review the full upload-to-stream pipeline design in Video Processing Platform System Design.

    See also: Low-Level Design: Content Moderation System – Rules Engine, ML Scoring, and Appeals

    Snap location features rely on maps infrastructure. Review maps system design in Maps and Navigation Platform System Design.

    Snap discovery features use search autocomplete. Review Redis prefix cache and debouncing in Search Autocomplete System Low-Level Design.

    Snap uses short links for sharing. Review URL shortener design, caching, and scale in URL Shortener System Low-Level Design.

    Snap uses recommendations for content discovery. Review the two-stage architecture and serving pipeline in Recommendation System Low-Level Design.

    Snap uses real-time video. Review live streaming architecture, LL-HLS, and WebRTC tradeoffs in Live Video Streaming System Low-Level Design.

    Snap uses location features. Review proximity service design with geohash and spatial indexing in Proximity Service (Find Nearby) Low-Level Design.

    Snap system design covers media CDN delivery. Review the full CDN LLD in Content Delivery Network (CDN) Low-Level Design.

    Snap system design covers real-time messaging. Review the full chat LLD in Messaging System (Chat) Low-Level Design.

    Snap system design covers real-time ranking. Review the full leaderboard LLD in Game Leaderboard System Low-Level Design.

    Snap system design covers ad tracking and fraud detection. Review the full LLD in Ad Click Tracker System Low-Level Design.

    Snap system design covers content feed and story delivery. Review the feed LLD in Content Feed System Low-Level Design.

    Snap system design covers engagement and comment systems. Review the full comment LLD in Comment System Low-Level Design.

    Snap system design covers real-time messaging. Review the full chat system LLD in Chat System Low-Level Design (WhatsApp / Messenger).

    Media upload and processing pipeline design is in our Media Upload Service Low-Level Design.

    Image processing service design is covered in our Image Processing Service Low-Level Design.

    Follow and friend system design is covered in our Follow System Low-Level Design.

    Like and reaction system design is covered in our Like System Low-Level Design.

    User blocking system design is covered in our User Blocking System Low-Level Design.

    Image resizing and media processing system design is covered in our Image Resizing Service Low-Level Design.

    Video transcoding and media processing design is covered in our Video Transcoding Pipeline Low-Level Design.

    CDN integration and media delivery optimization is covered in our CDN Integration Low-Level Design.

    Push notification token management and mobile delivery design is covered in our Push Notification Token Management Low-Level Design.

    WebSocket server and real-time communication design is covered in our WebSocket Server Low-Level Design.

    Location tracking and proximity detection design is covered in our Location Tracking Low-Level Design.

    Link preview and rich media embed design is covered in our Link Preview Service Low-Level Design.

    User presence and real-time status system design is covered in our User Presence System Low-Level Design.

    Follower graph and friend network design is covered in our Follower Graph Low-Level Design.

    Poll and interactive content system design is covered in our Poll System Low-Level Design.

    CDN cache and media delivery design is covered in our CDN Cache System Low-Level Design.

    See also: Push Notification System Low-Level Design: Multi-Platform Delivery, Fan-Out, and Analytics

    See also: Image Moderation Pipeline Low-Level Design: ML Classification, Human Review Queue, and Appeals

    See also: Live Chat System Low-Level Design: WebSocket Connections, Message Persistence, and Presence

    See also: Abuse Detection System Low-Level Design: Multi-Signal Risk Scoring, Account Takeover Detection, and Automated Response

    See also: Low Level Design: Location Sharing Service

    Scroll to Top