Design a photo sharing platform similar to Instagram. Users upload photos with captions, apply filters, follow other users, and browse a feed of photos from people they follow. The system supports 200 million daily active users uploading 100 million photos per day. Each photo is stored in multiple resolutions (thumbnail, medium, full) and served globally.
In your 90-second answer, cover: - Photo upload pipeline: from user's device to multiple resolutions stored and served globally - Data model for users, photos, follows, likes, and comments - How you generate and serve the photo feed (reference fan-out tradeoffs) - Image storage and CDN strategy for global delivery
Constraints: photo uploads must complete in under 3 seconds. Feed loading must return in under 500ms. Photos must be available globally within 30 seconds of upload.
How to approach it
- Hint 1
Separate the photo upload path from the photo processing path. Accept the upload immediately, return a response, and process resolutions asynchronously.
- Hint 2
Photos are write-once, read-many, and immutable -- this is the ideal workload for object storage (S3) fronted by a CDN.
- Hint 3
The feed is the hardest part. Consider a hybrid fan-out approach: pre-compute feeds for most users, but fetch celebrity posts at read time to avoid massive write amplification.
Ready to answer it out loud?
Record your answer in 1:30 and Preptile scores it 1–10 with specifics — what landed, what you skipped, and what to say next time.
Practising needs an invite code. Join the waitlist and we’ll send you one.