Mobile System Design Interview

Course Content

Mobile System Design Interview

11 sections · 23 lessons

Cheat sheet: patterns across the case studies and how to keep practising


The course's claim is that a small number of patterns recur everywhere. The first half of this lesson is the evidence, and it is the most useful page here for a candidate facing an unfamiliar prompt.

The second half is about what happens after you finish reading. Reading this course does not make you good at the round. Forty-five minutes of designing, several times, does.

Where each pattern appeared

PatternFeed (S4)Chat (S5)Trading (S6)Library (S7)Hotel (S8)Drive (S9)Video (S10)
Offline-first (UI reads local)●●○●◐●◐
Outbox for pending writes●●✗—✗●—
Optimistic update + rollback●●✗—✗●—
Cursor pagination●●—●●●●
Coalescing high-frequency events◐○●——●●
Resumable chunked transfer—●———●●
Idempotency key on writes○●●—●●—
Two-transport handoff (socket ⇄ push)○●◐——◐—
Delta sync with a change token—●———●—
Conflict resolution—◐———●—

● central · ◐ present · ○ minor · ✗ deliberately rejected · — not applicable

What the rejections teach

The ✗ cells are the most instructive part of the table. Trading and hotel booking both could queue writes in an outbox and both deliberately do not, because a market order or a payment executed an hour late at an unknown price is worse than one that never happened. Same pattern, same architecture, opposite decision — driven entirely by what the write costs if it lands late.

That is the answer to give when an interviewer asks "would you use an outbox here?" The question is never whether the pattern exists. It is whether a delayed write is acceptable.

What triggers each pattern

If the prompt contains…Reach for
A list of remote contentCursor pagination, offline-first, image downsampling
A user creating or changing somethingOutbox, optimistic update with rollback, idempotency key
"Real time", "live", "instant"Two-transport handoff, and ask about backgrounded delivery
Updates faster than a person can readCoalescing at a fixed flush rate
Files, media, or anything over ~20 MBResumable chunked transfer on a system transfer service
The same data on two devicesDelta sync with a change token, then conflict resolution
Money, orders, or anything irreversibleIdempotency key, explicit unknown state, reconcile — never blind retry
"Works offline"Metadata separate from content, and a per-feature offline table
Offline-first + outboxCursor paginationBackground schedulingProcess-death recoveryMedia / bandwidth adaptationReal-time transport handoffMetadata / content splitL4 · News feed appL5 · Chat appL6 · Stock trading appL7 · Pagination libraryL8 · Hotel reservation appL9 · Google Drive appL10 · YouTube appSeven case studies, seven patterns, and every case study is two or three of them combined.
Offline-first and pagination appear in almost every row — they are the two worth being able to draw without thinking.

Practising and going further

Knowing the patterns is recognition. Using them under a timer is the skill, and it only comes from practice.

The repetition that actually builds the skillPick an appon your phoneDesign it in45 minutesScoreagainstthe rubricFind theweakest axisRedo withthat focusDesign under a clock, out loud, before checking anything.
Reading the subject teaches the vocabulary; only timed repetitions teach the round.

Design the apps on your own phone

The best practice material is already installed. Pick one and give it a real 45 minutes with the protocol from How to use this course.

Good ones to start with, roughly in order of difficulty:

App typeWhat it exercisesClosest section
A weather appCaching, staleness, location permissions4
A podcast appDownloads, background audio, playback position10
A ride-hailing appLive location, battery, state machine across a trip6 + 8
A food delivery appMulti-step flow, live tracking, payment8
A photo backup appBackground upload, storage, conflict9
A collaborative notes appSync, conflict, offline editing9
A photo editorMemory, large images, undo history, export3 + 4

For each: write the questions, the API contract, the layer diagram, the storage design, and the six constraints. Then open the real app, turn on aeroplane mode, and see what it actually does. That last step teaches more than the design did — real apps make trade-offs you will not predict, and the ones that surprise you are the ones worth understanding.

The self-assessment rubric

Score your own attempt out of four, one point each:

  1. Architecture. Did you name a single source of truth, and does the presentation layer avoid touching the network?
  2. Constraints. Did you cover all six, with a number attached to at least three?
  3. API and data flow. Could you trace one item from response to pixel, naming every store on the way?
  4. Platform judgement. Did you name a platform limit unprompted and design around it correctly?

Three or four is interview-ready. Two means you have the structure and not the depth — that is usually a Section 3 problem, so go back to the relevant lesson rather than doing another mock.

The deep dive that often follows

This round is frequently paired with a platform-specific technical interview in the same loop. It typically covers concurrency and threading on your platform, the view and activity lifecycle, memory management and reference cycles, the rendering pipeline and how to profile a dropped frame, and testing strategy.

That is a different body of knowledge from this course and worth preparing separately. The overlap is real, though: the memory arithmetic in Images and media, the background execution limits in Background work, and the main-thread budget in Scroll performance all come up in both.

Where to go next

System Design Interview gives you the server half of every case study here — the news feed, chat, YouTube, Google Drive, hotel reservation, payment, and stock exchange designs. Reading the matching section after each case study here is the fastest way to become someone who can hold both halves of the conversation, which is what a senior mobile engineer is expected to do.