Design a streaming video platform MVP (Netflix-like)
Company: HubSpot
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
##### Question
Design a Netflix-like streaming video platform MVP that supports three main customer use cases:
1. **Browse Catalog** — users browse TV shows and movies by genre and by curated categories such as "Recently Added" and "Top Ten".
2. **Play Videos** — users play videos at different resolutions across device types (web, iOS, Android, smart TV) using adaptive bitrate (ABR) streaming.
3. **Resume Playback** — the system remembers and restores a user's last play position so they can continue where they left off across sessions and devices.
Work through the full design and be ready to cover:
1. **Service decomposition / overall architecture** — ingestion/transcoding pipeline, metadata & catalog service, search/indexing, playback/ABR, session/auth, CDN, and how the pieces fit together.
2. **Data models** — content/catalog items (movies, series, episodes), video assets and ABR ladder, curated/ranking lists, users/profiles, devices, playback sessions, and watch progress.
3. **API contracts** — catalog browse/search, playback start, heartbeat, stop, and resume/continue-watching state.
4. **Adaptive bitrate streaming** — ABR ladder, HLS/DASH packaging (CMAF), segment sizing, and per-device player support.
5. **Session state & resume** — how playback sessions are tracked, how heartbeats update progress (with debouncing), concurrency limits per account, and how resume is restored across devices.
6. **DRM, licensing, and access control** — multi-DRM (Widevine/FairPlay/PlayReady), CENC, signed/tokenized URLs, and entitlement checks.
7. **"Recently Added" and "Top Ten"** — how to compute, materialize, and surface these rails (definitions, pipelines, and a small ranking example).
8. **Storage, CDN, caching, and consistency** — object storage vs. SQL vs. NoSQL choices, CDN delivery and signing, manifest vs. segment TTLs, and consistency strategy for catalog, rankings, and resume state.
9. **Scalability & availability** — scaling strategies, partitioning, SLOs/SLAs, and capacity targets at peak concurrency.
10. **Content ingestion & indexing** — master upload/validation, transcode/package pipeline, search indexing, and how "Recently Added" is derived.
11. **Cold starts & cache warming** — CDN pre-warming for popular titles, prefetching first segments for fast time-to-first-frame, and service/index warm-up.
12. **Metrics, monitoring, and failure handling** — QoE and backend metrics, observability/tracing, and graceful degradation (CDN fallback, origin/license failover, partial catalog outages, transcode backlog, write failures).
Quick Answer: A HubSpot software-engineer onsite system-design question: design a Netflix-like streaming video platform MVP supporting catalog browse (by genre, Recently Added, Top Ten), adaptive-bitrate playback across devices, and cross-device resume. It evaluates service decomposition, data models and API contracts, the ingestion/transcoding pipeline, ABR/DRM delivery, ranking-rail computation, caching/consistency, SLOs and scalability, observability, and failure handling with graceful degradation.