The structure: five moves, in order
Lesson 1 of 42 min read
What to say in the first five minutes so the next forty go well.
Candidates fail this round by starting to draw immediately. Use five moves, out loud, in this order.
1. Scope it down (2 minutes)
Turn the vague prompt into three requirements and say the rest is out of scope. "Groups, media and read receipts — I will skip voice calls and end-to-end encryption unless you want them." You have now defined what success looks like, and the interviewer will correct you if they wanted something else.
2. Name the data (3 minutes)
Write the entities and their key fields, including the ones that only exist on the client: a client-generated id, a status, updatedAt, fetchedAt. Those four fields are where most of the mobile design conversation lives.
3. Choose the transport (3 minutes)
REST, WebSocket, polling, push — and say why. "Push wakes the app, then the app pulls; I would not deliver content inside the notification, because delivery is not guaranteed."
4. Decide the offline story (10 minutes)
This is the heart of a mobile design round. The UI reads from the local database; the network updates it. Then: how writes queue, how retries stay idempotent, what happens on conflict, and when data is considered stale.
5. Then the mobile constraints (10 minutes)
- Battery — one socket or one sync job, not three; batch work; respect Doze.
- Payload — ask the backend for a screen-shaped endpoint rather than five calls and client-side joining.
- Memory — page lists, size images, release bitmaps on trim.
- Low-end devices — 2 GB RAM, 720p, an older OS. Test there, not on your own phone.
- Failure — process death mid-write, airplane mode, clock skew, a token expiring mid-sync.
Leave three minutes
Close with what you would measure in production (cold start, sync success rate, crash-free sessions) and the first thing you would improve with more time. Interviewers score "knows what they did not solve" very highly.
