Phase 1: Clarify, Scope & Constraints
Interviewer: "Let's design Google Drive — a cloud file storage and sync service. How do you approach this?"
Candidate: "Good. Google Drive is a broad product. Let me identify the core user journeys I'll focus on:
- Upload journey — User uploads a file from any device; it lands in the cloud reliably
- Download journey — User retrieves a file from any device; fast and consistent
- Sync journey — User modifies a file on device A; the change propagates to device B automatically
- Share journey — User shares a file/folder with another user with configurable permissions
The dominant complexity here is the sync story. Upload and download are relatively straightforward object storage problems. Sync introduces: conflict resolution, delta computation, ordering guarantees, and concurrent modification. That's where the interesting design work lives.
WHY: Unlike YouTube where reads dominate, Drive has a 50/50 nature — users both read and write constantly. The sync contract ('your file is always up to date everywhere') is the hardest promise to keep.
Non-goals for V1:
- Real-time collaborative editing (Google Docs uses Operational Transforms — a separate system)
- Video/photo special handling (transcoding, face recognition)
- Team Drives / Shared Drives with complex org-level permission inheritance
- Offline-first mobile app with conflict sync (desktop sync only)
Interviewer: "What about permissions? Sharing seems fundamental."
Candidate: "I'll design the permissions model and the sharing API, but I'll treat complex permission inheritance (nested folder ACLs that propagate to millions of files) as a V2 concern. V1: a file has an…
In the full tutorial
- Phase 2: High-Level Architecture
- Phase 3: Deep Dive & Evolution
- Phase 4: Robustness & Operations