The questions
- Design a metrics monitoring system like DatadogHigh-volume time-series ingestion: bounded cardinality, correct aggregation across retries and rollups, and alerts that distinguish unhealthy services from missing data.Hard
- Design a distributed key-value storePartitioned storage with replication: durable writes, availability during partitions, ownership changes, and convergence after failures.Hard
- Design Google CalendarLocal-time recurrence, bounded free/busy queries, invitation state, and reminders that remain correct when schedules change.Hard
- Design Google AnalyticsHigh-volume event collection with retry-safe counting, late-arriving session data, distinct-user queries, and tenant skew.Hard
- Design a system to sort huge datasetsDistributed external sorting: global ordering, skewed keys, bounded-memory shuffle and merge, and correct recovery from worker failures.Hard
- Design Dropbox or Google DriveLarge file transfers with small metadata transactions: resumable uploads, offline conflicts, reliable change feeds, and shared subtrees whose permissions change as files move.Hard
- Design a distributed job schedulerDurable timed execution: recurring occurrences, reliable dispatch, worker leases, retries, and duplicate side effects.Hard
- Design a login and authentication systemSecurity-sensitive identity flows: password verification under attack, revocable sessions, and account recovery without takeover races.Hard
- Design Wikipedia or NotionVersioned documents: concurrent saves, durable history, global caching, and safe page-tree changes.Hard
- Design a flash giveaway: 6 million burgers in an hourA fixed-stock giveaway under burst traffic: atomic claims, retry-safe allocation, admission control, and durable success.Hard
- Design a real-time stock price feedGlobal latest-value streaming: source ordering, hot-symbol fanout, conflation, and reconnecting through lagging regions without rolling prices backward.Hard
- Design Google PhotosLarge private media objects with small searchable metadata: reliable uploads, asynchronous image processing, library indexing, and revocable album sharing.Hard
- Design a wire transfer systemMoney movement across a transactional boundary: balanced ledger entries, retry-safe transfers, uncertain bank responses, and reconciliation.Hard
- Design a large data migration to the cloudMoving a changing dataset across a limited link: resumable bulk copy, change capture, independent integrity checks, and a fenced cutover.Hard
- Design BitTorrentSwarm-based distribution: finding reachable peers, keeping rare pieces available, verifying untrusted data, and making peer upload capacity useful.Hard
- Design an ads serving systemFast ad selection over changing campaign data, with strict budget enforcement despite concurrent serving and delayed impression events.Hard
A good order to practice them
Four questions that together cover most of what the Google list tests.
- 1Design a distributed key-value storePartitioning, replication and moving data between nodes without losing it. Most of the storage questions build on this.
- 2Design a distributed job schedulerRunning each job once even when workers crash, and recovering a schedule after an outage.
- 3Design a system to sort huge datasetsReasoning with numbers when the data is far bigger than memory, and handling skewed keys.
- 4Design Google CalendarA product question: recurring events, time zones and free/busy lookups test how well you frame requirements.
What these questions test
The concepts that come up across the Google questions, by how many questions need them.
- Database sharding3
- Back-of-the-envelope estimation3
- Database replication3
- Eventual consistency2
- Kafka vs RabbitMQ2
- WebSockets, SSE and long polling2
- Message queues2
- Idempotency and idempotency keys2
- Transactional outbox pattern2
- Distributed locks and fencing tokens2
- Caching strategies2
- Content delivery networks (CDN)2
Where interviewers push
One hard part from each of the other questions: where a strong answer separates from an average one.
- Design a login and authentication system: Password verification under credential-stuffing attacks
- Password hashing must be deliberately expensive, but attackers can invoke it without owning an account. A defense that protects servers by locking accounts can instead let attackers deny service to victims.
- Design a flash giveaway: 6 million burgers in an hour: Stock limits and one claim per account
- The system must preserve both a global stock bound and a per-account uniqueness rule. Checking stock, decrementing it, and recording the winner separately creates gaps where concurrency or crashes can violate either rule.
- Design a wire transfer system: Atomic money movement and ledger invariants
- An individually balanced journal can still overdraw a customer, and a correct balance check can still lose money if balance updates, postings, and transfer state commit separately.
- Design a large data migration to the cloud: Keeping destination data correct during migration
- The copy takes over a month while objects are replaced and deleted. A successful upload can still leave the wrong final state if snapshot data and journal events are applied in the wrong order.
- Design BitTorrent: Piece selection, parallelism, and the slow tail
- Fast individual downloads can produce a weak swarm if everyone requests the same early pieces. Conversely, blindly seeking rare pieces can delay startup, and a nearly finished download can stall behind one slow peer.
- Design Google Analytics: Retry-safe collection and processing
- Browsers retry after ambiguous failures, and stream workers replay after crashes. At this volume, duplicate suppression is substantial state, while acknowledging too early can lose events that the service promised to keep.
Questions people ask
What system design questions does Google ask?
Candidates have reported questions like a metrics monitoring system like Datadog, a distributed key-value store, Google Calendar, Google Analytics, and a system to sort huge datasets. Questions change and vary by team, so treat this as a sample of what comes up, not a list to memorize.
What level are these Google questions for?
Of the 16 questions here, 16 are hard. Counting each level a question suits: 0 at mid-level, 16 at senior, 16 at staff+. The same question is asked at several levels; what changes is how deep you are expected to go and how much you drive.
What should I study for a Google system design interview?
The concepts that come up most across these questions are database sharding, back-of-the-envelope estimation, database replication, and eventual consistency. Learn how each one works and its trade-offs, then practice a few of the questions end to end, out loud, in 45 minutes.