Lesson 27 of 30
The hard parts of video streaming — adaptive bitrate switching, CDN delivery, transcoding — belong to a player library and backend infrastructure the frontend doesn't own. The interesting frontend question is everything around that: honest UI state, resilient playback data, and prefetching the next thing.
13 min read
Every option explains itself — why the right one is right, and why each wrong one is wrong. Miss one and it comes back later on a spaced-repetition schedule.
Question 1 of 3
Which responsibilities belong to the frontend in a video streaming player design, versus the underlying player library and backend infrastructure?
Hints without spoilers, and a plain explanation of why a wrong answer was wrong — answered only from this lesson. Free account, no card.
Sign up freeWhat interviewers actually ask about this, and what a strong answer has to cover.
A strong answer covers
Likely follow-ups
"Design the frontend architecture for a video streaming player" is a prompt worth scoping carefully up front, because most of what makes video streaming genuinely hard — adaptive bitrate switching, segment delivery, CDN edge caching, transcoding — is handled by an underlying player library (think HLS.js or a native platform player) and backend delivery infrastructure, not code the frontend team writes. A strong answer says that scope boundary out loud early, then focuses on what's actually the frontend's job:
The player library detects buffering and its internal state briefly reports an error while it attempts to recover the stream. A weak frontend either shows nothing (leaving the user staring at a frozen frame with no explanation) or shows a generic error and resets to the beginning. A resilient design: surface a real "reconnecting" state honestly, keep the last-known playback position in persisted state independent of the player's internal state, and once the stream recovers, resume from that persisted position rather than the player's own potentially-corrupted internal timestamp. Meanwhile, if this video is part of an autoplay queue, the next item's opening segment was already prefetched in the background before the connection dropped — so once this video actually finishes, the transition doesn't cost a fresh cold start.
"Design a video player" tests whether a candidate can correctly scope frontend responsibility away from adjacent infrastructure, then reason concretely about honest UI state and resilience — not whether they know how video codecs or CDNs work internally.