Question bank / Software Engineering, System Design, Advanced

How to answer: Design type-ahead search suggestions for hundreds of millions of users.

Whether you can serve suggestions fast at huge scale and keep them fresh.

What the interviewer is testing.

Ranking, latency, caching, freshness. Whether you can serve suggestions fast at huge scale and keep them fresh.

An outline for this question.

  1. Set the target: suggestions in under 100 ms, as the user types.
  2. Store popular queries in a prefix structure such as a trie, precomputed with their ranking.
  3. Cache the top results for short prefixes close to the user, and shard by prefix for the long tail.
  4. Refresh in the background from recent query logs so new trends appear, and filter unsafe suggestions.

The mistake to avoid.

Querying a database on every keystroke. The latency alone rules it out.

The general method: requirements, design, trade-offs.

The same shape works for most system design questions, whatever the topic.

  • Pin down what the system must do, how many users, and what matters most (speed, cost, correctness).
  • Sketch the main parts and how data moves between them, starting simple.
  • Pick one or two parts to go deep on, and say what you gave up for each choice.
  • Finish with how it fails and how you would know: monitoring, retries, limits.

Practice it, out loud.

Reading an outline is not the same as saying it. Answer this question in a mock interview, in your own words, then compare it with the outline above.

Practice this questionSee live interview help

This is a Replysis practice question. It is not a leaked or official question from any company, and the outline is a guide to structure, not a script. Use your own experience and facts.