How the interviewer opens it
“Design a service that saves playback progress and lets a user resume on another device. Devices can lose their connection and send delayed or conflicting updates.”
The prompt is vague on purpose. The first minutes are for you. Reduce the prompt to the core features and agree on the numbers before you draw.
What to clarify first
- Identity and media
- Scale
- Save frequency
- Read and write mix
- Latency and visibility
- Playback behavior
- Shared progress policy
- Offline behavior
- Consistency and durability
- Retention and exclusions
The interviewer has the answers. In a SysRound round, Alex gives these answers, as a real interviewer does.
Scope of a strong answer
Core requirements
- Save a playback position for each profile and media item.
- Return the shared position when another device starts playback.
- Handle backward seeks, restarts, and completion.
- Resolve delayed updates and conflicts from disconnected devices.
Usually out of scope
- Deliver or store media files.
- Synchronize the playback clocks of several devices.
- Store a complete playback history.
- Accept writes in several regions at the same time.
What interviewers ask about
- Position changes within a session
- A lower position can represent a valid seek. Network delays can make an older position or completion event arrive last.
- Progress from disconnected devices
- Offline clients cannot know about later sessions. The service needs a clear product rule because it cannot reconstruct the user's true intent.
- Resume after a failure
- Users expect an acknowledged save to survive failure. At this write rate, outages also create large bursts of delayed checkpoints.
Common mistakes
- The design keeps the largest position and prevents backward seeks or restarts.
- The design treats the latest arrival as the latest user action.
- The design trusts device clocks without a rule for clock errors.
- Retries or offline uploads silently take control from a newer session.
- The service acknowledges saves before durable storage accepts them.
- The service stores every progress sample even though the product needs only the latest checkpoint.
The bar by level
- Senior (L5/E5)
- Define session ownership and offline conflict rules. Prevent old sessions from replacing progress. Cover durable acknowledgments, authoritative resume reads, retries, and write volume.
- Staff (L6+/E6+)
- Separate product intent from observable order. Handle retried starts, offline promotion races, expired identities, and storage partitions. Explain which guarantees change under simultaneous region writes.