Google System Design Interview Questions
Google System Design interview questions target your ability to design large, reliable, and maintainable systems rather than to memorize specific product internals. Interviewers look for structured thinking about requirements, clear APIs and data models, capacity and latency estimates, scaling strategies, failure modes, and observability. Expect a 45–60 minute, open‑ended conversation where you start with clarifying questions, sketch a high‑level architecture, then iteratively drill into hotspots (datastore choices, sharding, caching, consistency, load balancing, and recovery) while defending trade‑offs under follow‑up challenges. Effective interview preparation balances breadth and depth: practice a handful of canonical systems (URL shortener, chat service, streaming, search, document collaboration) and rehearse quantifying traffic and storage, estimating RPS and capacity, and naming concrete failure scenarios. Use timed sketching on a whiteboard or shared doc, run mock interviews that force you to explain trade‑offs, and incorporate observability, SLIs/SLOs, and deployment considerations into every design. Aim to make assumptions explicit, iterate when challenged, and show pragmatic engineering judgment.
Design large-scale near-duplicate video detection
Design a product-grade fuzzy (near-)duplicate detection system for a large short-video platform. You need to detect whether an uploaded video is a nea...
Design distributed message queue service
Design a Distributed Message Queue for High Throughput and Large Payloads Context You are asked to design a distributed message queue system that supp...
Design a key-value store
System Design: Scalable Key–Value Store with Range Scans You are asked to design a distributed key–value (KV) store that supports the following operat...
Design task scheduler with dependencies
Design a Distributed Task Scheduling Infrastructure Context Design a distributed task scheduling and orchestration system that can run at scale, suppo...
Design a distributed rate limiter
Design a Rate Limiter with Burst Allowance and Distributed Coordination Context You are designing a rate limiter for an API gateway that serves high Q...
Make algorithm code production-ready
Productionizing a Sliding-Window String Algorithm Context: You have implemented a correct sliding-window algorithm for a classic string task (e.g., lo...
Design school-to-guardian messaging with acknowledgments
System Design: Guardian Acknowledgement Messaging Platform Context Design a system that enables school staff to send messages to students' guardians, ...
Design an elevator control system
Elevator Control System Design (N floors, M elevators) Context You are designing a multi-elevator control system for a building with N floors (1..N) a...
Design key management service
Design a Key Management Service (KMS) You are asked to design a production-grade, multi-tenant Key Management Service. A client provides a key identif...
Design deduplicated file storage on filesystem
System Design Task: Filesystem-Only, Multi-tenant, Deduplicated File Storage You are asked to design a multi-tenant file storage service with the foll...
Design quota enforcement for high concurrency
System Design: Quota Enforcement Service at Very High QPS Context You are designing a multi-tenant quota and rate-limiting service used by many backen...
Design a prioritized log manager with eviction
Design a Log Store with Priority- and Recency-Aware Eviction Context You are designing an in-memory (or on-disk) log storage component. Each inserted ...
Design a Twitter hashtag metrics aggregator
System Design: Hashtag Metrics Aggregator Design a service that ingests a high-volume stream of social posts (like tweets) and produces metrics/aggreg...
Design relational-to-NoSQL migration pipeline
System Design: Migrate From Relational DB to a NoSQL Key-Value Store with Snapshot + CDC Context You need to migrate data from an OLTP relational data...
Design line-preserving file chunker pipeline
System Design: Pack Text Lines into Exact 100 MB Output Files Design a data pipeline that reads many text files of varying sizes and emits output file...
Design distributed log storage service
Design a Distributed Append-Only Log Storage System You are asked to design the storage layer of a distributed, partitioned, replicated append-only lo...
Design executable notebook service APIs
Design: Collaborative Notebook with Executable User Functions (JAR Upload) Context Design a collaborative, browser-based code notebook service. The sy...
Design distributed transactions protocol
System Design: Distributed Transactions Across Multiple Services Context You must design a distributed transactions protocol to coordinate updates acr...
Design viewing history and resume service
Design: Watched-Video and Resume Playback Service Context Design a backend service that records each user’s watched video list and lets them resume an...
Design at-least-once notification delivery
System Design: At-Least-Once Notification System Context Design a multi-channel notification platform (email, SMS, push, in-app) that guarantees at-le...