Katkat

Design a video recommendation system

RedditMachine Learning Engineer · Onsite

Last updated

This question evaluates ML system design competencies for a Machine Learning Engineer, covering infrastructure architecture, logging and observability, feature pipelines, model training/evaluation, serving reliability, and privacy-aware data practices within the ML System Design domain.

Scenario

You are designing an ML-driven video recommendation product (home feed + “up next”) for a consumer app.

The interviewer focuses heavily on infrastructure and logging/observability.

Requirements

  • Serve personalized recommendations with low latency.
  • Handle both:
  • Home feed (rank a set of candidates)
  • Next video (contextual/session-based)
  • Support rapid iteration (new models/features) and safe experimentation.

What to cover

  1. High-level architecture: offline training pipeline, online serving, candidate generation + ranking.
  2. Data & logging design:
  • What events to log (impressions, clicks, watch time, skips, likes, shares, follows, dwell, scroll depth, etc.)
  • How to uniquely identify an “impression” and join it to outcomes
  • How to avoid common logging pitfalls (position bias, missing-not-at-random, duplicate events)
  1. Feature pipelines:
  • Batch vs streaming features
  • Feature store (online/offline consistency)
  1. Model training & evaluation:
  • Labels and objectives (CTR, watch time, completion, satisfaction)
  • Offline metrics and online A/B testing
  1. Serving infra & reliability:
  • Latency budget, caching, fallback behavior, graceful degradation
  • Monitoring, alerting, model/data drift detection
  1. Privacy & compliance considerations in logging and retention.