System design interview questionHard
TikTok

Design TikTok's For You Recommendations

Design a high-velocity video recommendation feed (For You Page).

1. Problem Statement

Design the 'For You' page API for TikTok. The core challenge is delivering a highly personalized, infinite stream of videos with very low latency.

2. Architecture Discussion Map

Use this as one discussion aid, not a single correct answer. Your design should follow from the requirements, scale, and trade-offs you establish.

Rendering architecture diagram...
Mermaid Source (For AI Bots)
graph LR
    A["Design TikTok's For You Recommendations"]
    A --> F1["Real-time Analytics Clickstream, Watch time"]
    A --> F2["ML Pipeline Candidate Generation -> Ranking -> Re-ranking"]
    A --> F3["Cold Start Problem"]
    A --> F4["Latency Feed must be instant"]
    A --> F5["Content Delivery Pre-fetching"]

3. Key Focus Areas

  • 1
    Real-time Analytics (Clickstream, Watch time)
  • 2
    ML Pipeline (Candidate Generation -> Ranking -> Re-ranking)
  • 3
    Cold Start Problem
  • 4
    Latency (Feed must be instant)
  • 5
    Content Delivery (Pre-fetching)

4. What the Interviewer Looks For

The interviewer probes these areas, and the report grades the interview against them.

  • Objectives, scope, and estimation
  • Retrieval and ranking funnel
  • Real-time signals and feature infrastructure
  • Model training and rollout
  • Cold start, exploration, and integrity
  • Serving reliability and client delivery

Want interactive feedback?

Practice drawing this system component-by-component on a live whiteboard while the interviewer probes at your target level.

Continue to Dashboard

Core Concepts

System DesignRecommendation SystemsML Infrastructure

Continue preparing

Build a complete software engineer mock interview plan

Related System Design

Design a Notification System

Design a scalable notification service that sends emails, SMS, and push notifications to millions of users.

Related System Design

Design a Cross-Product Tagging System

Design a shared tagging service that lets users apply tags to entities across multiple Atlassian products, with consistent search and deduplication.