Google Software Engineer System Design Interview Questions
Practice the exact questions companies are asking right now.
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 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 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 distributed transactions protocol
System Design: Distributed Transactions Across Multiple Services Context You must design a distributed transactions protocol to coordinate updates acr...
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 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 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 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 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 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 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...
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 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 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 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...
Design high-throughput event subscription system
Design an Event Ingestion and Subscription System Context You are asked to design a horizontally scalable platform where producers send high-volume ev...
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...
Diagnose distributed database inconsistency
Distributed Database Incident: Inconsistent Replicas You are on-call for a distributed database that serves production traffic. Dashboards show data i...
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...