System design interview question · ML & AI

Design a recommendation system

Recommend useful content while balancing relevance, freshness, and exploration.

Advanced 60 minutesPersonalizationFree
More ML & AI questions

The brief

Recommend useful content while balancing relevance, freshness, and exploration. Your design should meet these requirements:

  1. Recommendations use user and item signals.
  2. New users and new items still receive reasonable results.
  3. The system can measure changes without blocking requests.

Scale to design for

Millions of users and items; recommendations served in < 100–200 ms; new users/items daily; experimentation is continuous.

State these assumptions out loud in the interview, then let them drive your choices: they decide what needs caching, sharding or asynchronous processing.

Before you start

You'll get more out of this round if you're comfortable with:

  • Candidate generation vs ranking
  • Collaborative filtering
  • Embeddings basics
  • A/B testing

Questions an interviewer may ask

Expect follow-ups like these once your high-level design is on the board. Have an answer, and a reason, for each:

  • How do you go from 10M items to 20 recommendations in 100 ms?
  • What does a brand-new user see?
  • How do you avoid popularity bias?
  • How do you test a new model safely?

Common mistakes to avoid

  • Scoring every item per request
  • No cold-start plan
  • Training/serving skew
  • Evaluating only offline metrics
  • No feedback loop logging

Concepts this round covers

  • Candidate generation
  • Ranking
  • Cold start
  • Personalization

What a complete answer covers

An online candidate/ranking flow, offline training loop, fallback behavior, and a measurable experimentation plan.

There is no single correct design. A strong answer meets the requirements at the stated scale and explains the trade-offs behind each choice. New to the format? Read how to prepare for a system design interview.