Mobile system design · 17 min
Mobile system design interview: how the round is scored
How a mobile system design round runs, the seven things a senior answer covers, a worked offline sync example, and how Senior and Staff are scored.
Interview round · every platform
A mobile system design round is not the backend round with a phone drawn on the left. It is scored on what the client has to survive: no network, a killed process, a slow device, an old app version that stays installed for a year.
For: Senior and Staff iOS, Android, Flutter and React Native engineers with a design round in the loop.

| Part of the round | What the interviewer writes down |
|---|---|
| Requirements and scope | Whether you ask what the feature must do offline, on which devices, and for how many users before you draw anything. |
| Client architecture | Where the source of truth lives on the device, how layers talk, and what owns each piece of state. |
| Data, cache and sync | Cache sizing by cost, invalidation, conflict handling and what the user sees while sync is running. |
| Platform constraints | Lifecycle, background limits, memory pressure, battery and the network you get on a train. |
| Release and operation | Feature flags, staged rollout, old clients in the field, and how you would know the design is failing. |
Loops differ by company. This is the common shape of the round in senior mobile loops, not a promise about any one employer.
Weak
Draws a server, a database and an arrow to the app, then talks about the backend.
Strong
Starts on the device: what is stored, what happens with no network, and what the user sees during a retry.
Weak
Adds a cache because designs have caches.
Strong
Sizes the cache by cost, says what evicts first, and names the one number to measure before tuning it.
Weak
Treats the app version as current forever.
Strong
Plans for the old client that never updates: API versioning, flags and a kill switch.
The second question
“The user edits the same note on two devices while offline. What happens when both come back?”
Tests whether your sync design has a conflict rule or only a happy path.
“The feed image cache hits memory warnings on a three-year-old phone. What do you change first?”
Tests whether you measure and size by cost instead of guessing a count.
“Half of your users are on a version from last year. The API has to change. How?”
Tests whether the design survives the release train, which a backend round never asks.
Read how the round is run and scored, then the platform version you will face (iOS or Android).
An offline-first editor and an image-heavy feed cover sync, conflict, cache and memory, the four areas that recur.
For each design, have someone change one fact (no network, 10x users, old clients) and answer out loud.
Migration, rollout and who else the design affects. That is where Staff is scored against Senior.

Mobile system design · 17 min
How a mobile system design round runs, the seven things a senior answer covers, a worked offline sync example, and how Senior and Staff are scored.

Mobile system design · 15 min
What an iOS design round adds: background limits, background URLSession, storage, image pipelines and push, with a worked photo feed design.

Mobile system design · 15 min
What an Android design round adds: process death, WorkManager, Doze, FCM priority and Room as source of truth, with a worked chat design and its follow-ups.

Mobile system design · 14 min
How to design offline-first sync in a mobile system design interview: local source of truth, the outbox, conflict rules, clocks and migration on device.

Mobile system design · 12 min
How to design caching in a mobile system design interview: memory and disk tiers, eviction, invalidation, HTTP caching and the image loader prompt.

Senior and Staff loops · 15 min
How I decide Staff vs Senior in a mobile system design loop: the questions I ask, what each level answers, the follow-ups, and how down-levelling happens.

Prepare for mobile coding, live coding and pair programming rounds: the tasks that recur, how they are graded, and what to say while you type.

Prepare for the mobile architecture round on iOS, Android and Flutter: module boundaries, dependency direction, state ownership and defending your pattern.

What changes in a Senior or Staff mobile interview loop: the follow-up depth, the scope of the design round, and the evidence each level is expected to show.

Prepare for the Swift, SwiftUI and UIKit rounds of an iOS interview: concurrency and isolation, memory, state and identity, and what each question scores.

Prepare for the Kotlin, coroutines and Jetpack Compose rounds of an Android interview: structured concurrency, Flow, recomposition and state.