Video streaming platform inspired by Netflix's published engineering: chunked per-title encoding, playback manifests steering players to CDN servers inside ISPs, off-peak pre-positioning of popular titles, DRM licenses, and viewing history powering 'continue watching' and personalized rows. A teaching design.
See why serving video from a server's disk in one quality can't work.
What was missing: Nothing yet.
Why that's risky: Evening traffic needs terabits per second that no server or data centre link can provide, one quality stalls on slow connections, and every stream crosses the internet.
What gets added: One server that accepts uploaded files and streams them to members in a single quality.
Trade-offs: Simple, but video bandwidth dwarfs everything else.
Turn each studio master into renditions for every device and network, quickly.
What was missing: One file, one quality.
Why that's risky: Segments are still served from our own storage through our servers, far from members.
What gets added: An ingest service that receives and verifies masters, chunked encoders that encode chunks in parallel with a bitrate ladder tuned per title, packaged into short segments in media storage, and a catalog database.
Trade-offs: Per-title encoding costs more compute up front but saves bandwidth on every view.
Serve video bytes from servers next to members.
What was missing: Video bytes came from our data centres.
Why that's risky: Edge servers fill on demand, so the first viewers of a new release in each region pull from origin at peak time.
What gets added: A playback service that returns a manifest listing renditions and the best nearby CDN servers for the device and network, a manifest cache, and CDN servers placed inside internet providers' networks.
Trade-offs: Placing servers inside ISPs needs partnerships, but removes most traffic from the public internet.
Have tomorrow's popular titles on the edge before anyone presses play.
What was missing: Edges filled on demand at peak time.
Why that's risky: Anyone with a segment URL could play it: content isn't protected by DRM or entitlement checks.
What gets added: A viewing event stream and a fill worker that predicts popular titles per region and copies their segments onto edge servers during off-peak hours.
Trade-offs: Predictions waste some edge space on titles that turn out less popular.
Only paying members on allowed devices and regions can play.
What was missing: Segments weren't protected.
Why that's risky: Members can't resume where they stopped, the home page isn't personalized, and quality of experience isn't measured.
What gets added: Segments are encrypted, and a license service issues short-lived DRM licenses after checking the member's plan, device and region in the entitlements database.
Trade-offs: License checks add a step at start-up; licenses are cached on the device for the session.
Bring members back to what they want to watch, and watch streaming quality per ISP.
What was missing: No viewing history, a generic home page, and no quality monitoring.
Why that's risky: Remaining risk is regional: control-plane services must fail over between regions while edges keep streaming.
What gets added: A history writer recording what members watched and where they stopped, a recommendation builder precomputing personalized rows, a home page service reading them, and QoE monitoring of start-up time, rebuffering and bitrate per internet provider.
Trade-offs: Rows are refreshed a few times a day rather than per click.
Use a CDN with pre-warmed caches for hot content, cache manifests/entitlements, and prioritize delivering the first few segments from the closest edge. Keep manifests small and enable HTTP/2 or HTTP/3 for parallel fetches.
Produce jobs per rendition and codec to a queue; workers autoscale with queue depth. Ensure idempotent outputs using deterministic keys. Use spot/low-cost instances as workers with checkpointing for long encodes, and store artifacts in object storage.
Use DRM with short-lived licenses, signed URLs/cookies on the CDN, and entitlement checks cached for seconds. Keys stay in a KMS; services use least-privilege to request decryption operations.
Send client-side playback events to an ingestion endpoint that writes to a durable queue. Batch-process with workers to aggregate QoE metrics and store rollups for dashboards and alerting.
You're in the middle of an interview session. Leaving now will end your current attempt.
Explore concept overviews, real-system examples, key tradeoffs, and interview talking points for each roadmap section.
You've conquered this phase. These are the skills you now own: