26.5 · More whole-feature designs: a feed, a video player, a map, search-as-you-type and notifications
Each classic design question hides one small algorithm that decides whether the answer is right: merging pages without duplicates, choosing a bitrate without flapping, mapping a coordinate to a tile, ignoring a stale response, deriving a badge.
Mental model. Name the one hard client problem inside the feature, show the data model that makes it easy, and say what you would measure. The rest of the design is the usual layers.
Lists, media and maps
A ranked feed, adaptive video, and map tiles.
- Design the client of a social feed: cursor paging over a re-ranked list, de-duplication, a “new posts” pill and keeping the scroll position still.
The server decides the order, and it can change between requests, so the contract matters more than the UI. Page with an opaque cursor that the server ties to… - Design the client side of a video player: startup, adaptive bitrate selection, buffer targets and why switching rules need smoothing and hysteresis.
Playback quality is three numbers: startup time, rebuffering (stalls) and picture quality, and they trade against each other. Start with a low-to-middle… - Design a map or ride-hailing client: tile maths, caching while panning, location updates, battery and what you send to the server.
A slippy map is a pyramid of square tiles. At zoom z the world is a 2^z × 2^z grid (1 tile at zoom 0, 1,048,576 at zoom 10, over a billion at zoom 15), and a…
Input and attention
Search-as-you-type and the notification experience.
- Design search-as-you-type: debouncing, cancelling, ignoring stale responses, caching and local suggestions.
Every keystroke should not become a request. A debounce waits until the user pauses (about 150 to 300 ms) and then sends one query for the current text; in the… - Design the notification experience end to end: when to ask permission, an in-app inbox, de-duplication, collapse, badge counts and quiet hours.
Treat a push as a hint, not the data. Ask for permission at a moment the user can see the value (after they follow something or enable an alert), with a short…
More in System design & staff+
- 26.1 · Designing a whole feature: the method, a messenger, an offline reader and a store
- 26.2 · Reliability, payload budgets, and analytics and experiments
- 26.3 · Multi-brand apps and SDKs for other teams
- 26.4 · RFCs and strategy, estimating, incidents and mentoring, and organisation-level bets
- 26.6 · Collaborative editing, a payments ledger and clocks in sync
- 26.7 · Capacity estimates and retry storms
- 26.8 · A rate limiter, push versus polling, a flight booking app, a swipe deck, an image browser, a ride-hailing rider app and a photo feed API