How the interviewer opens it
“Design a short video app like TikTok. Users upload short videos and scroll an endless, personalized For You feed that starts playing right away.”
The prompt is vague on purpose. The first few minutes are yours: narrow it to the core features and agree on the numbers before you draw anything.
What to clarify first
- scale
- read:write mix and events
- media profile
- personalization and freshness
- browsing and playback latency
- publication
- consistency vs availability
- durability and retention
- geography
- scope boundaries
The answers stay with the interviewer. In a SysRound round, Alex answers them as an interviewer would.
Scope of a strong answer
Core requirements
- Upload videos and publish them after processing and approval
- Serve an endless, personalized For You feed
- Start playback quickly and keep swiping smooth on mobile networks
- Collect viewing signals and incorporate them into subsequent feed ranking
Usually out of scope
- Live streaming and video editing tools
- Comments, messaging, and a following feed
- Training recommendation models from scratch
- Building moderation classifiers
- Multi-region active-active operation
- A one-minute guarantee for user-visible recommendation changes
What interviewers probe
- Making an upload safely playable
- A successful file upload is not a playable video. Encoding, packaging, and moderation finish independently, and retries or lost notifications can otherwise expose broken videos or strand valid ones.
- Fast first frame without wasting mobile bandwidth
- The feed can return quickly while playback still stalls. Startup depends on encoding boundaries, CDN cache state, network conditions, and how much speculative downloading the client does.
- Fresh personalization with stable issued pages
- Feedback can reach the ranker quickly while the client still has minutes of previously ranked items. The design must distinguish backend freshness from visible adaptation, preserve retry stability, and avoid treating prefetched content as viewed.
Common mistakes
- Drawing only a feed database and recommendation box, with no media processing or delivery path.
- Publishing videos before all required assets and moderation results are ready.
- Proxying video bytes through API servers or prefetching whole pages of full videos.
- Ignoring telemetry volume because the product appears read-heavy.
- Confusing backend feature freshness with user-visible adaptation despite minutes of already issued content.
- Using unstable offset pagination, treating prefetch as a view, or spending the interview on model training instead of serving and feedback.
The bar by level
- Senior (L5/E5)
- Owns the upload-to-playback lifecycle, including idempotent retries and publication gating. Designs bounded candidate retrieval and ranking, stable issued pages, asynchronous feedback, and client prefetch with adaptive playback. Uses estimates to distinguish API, encoding, telemetry, and delivery bottlenecks. Understands that fresh backend features do not replace items already queued on the client.
- Staff (L6+/E6+)
- Defines correctness boundaries between published assets, eligibility, issued pages, observed views, and feature availability. Reasons through stale workers, lost work, cold-CDN bursts, concurrent page creation, ranking outages, and feedback replay. Separates backend freshness from visible adaptation and can introduce an explicit client/server feed-revision protocol if the latter becomes a requirement. Makes concrete bandwidth, encoding-cost, and regional-recovery trade-offs without global coordination on every swipe.