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.
- Set the target: suggestions in under 100 ms, as the user types.
- Store popular queries in a prefix structure such as a trie, precomputed with their ranking.
- Cache the top results for short prefixes close to the user, and shard by prefix for the long tail.
- 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.
More to practice.
Tell me about yourself and why this role is the right next step.
Software Engineering, Behavioral
Given a string, return the first non-repeating character and explain the complexity.
Software Engineering, Coding
Design an LRU cache with O(1) get and put operations.
Software Engineering, Coding
Design a notification service for email, SMS, and push at large scale.
Software Engineering, System Design
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.