Skip to content
All resources

guide

Mobile System Design Prompt Pack

Mobile system design prompts with the constraints interviewers actually care about: offline state, sync, cache correctness, battery, memory and lifecycle recovery.

Use this in practice

Use these prompts to rehearse mobile-specific system design. For each prompt, start from the device and user state before you draw services.

Prompt 1: personalized feed

  • Design a feed that opens fast, supports pagination, survives poor network and lets the user keep reading previously loaded content offline.
  • Cover: initial load, pull to refresh, cursor pagination, cache storage, stale content labels, optimistic actions, image prefetching and memory pressure.
  • Failure modes: duplicate items after refresh, missing items after pagination, stale likes, old responses overwriting new state, cache growing without bounds.
  • Senior tradeoff: explain when you choose cached-first, network-first or stale-while-revalidate, and how the UI tells the truth without feeling broken.
  • Metrics: feed open time, first contentful item, scroll hitch rate, image cache hit rate, pagination failure rate and stale response drops.

Prompt 2: offline notes

  • Design notes that can be created, edited and deleted offline, then synced across devices later.
  • Cover: local IDs, operation log, conflict policy, tombstones, retry queue, last-write-wins risks, user-visible conflict resolution and account switching.
  • Failure modes: deletion resurrects a note, edits apply out of order, the same note appears twice, sync drains battery, app is killed mid-sync.
  • Senior tradeoff: decide where conflict resolution belongs, client, server or user flow, and explain why that choice is acceptable for the product.
  • Metrics: sync success rate, unresolved conflicts, retry age, local queue depth, data loss reports and battery impact during background sync.

Prompt 3: image loading layer

  • Design an image pipeline for a high-scroll app with avatars, thumbnails and detail images.
  • Cover: memory cache, disk cache, request coalescing, cancellation, priority, decoding off the main thread, placeholders and progressive loading.
  • Failure modes: wrong image in reused cells, scroll jank from decoding, runaway memory, cache poisoning, duplicated downloads and no cancellation during fast scroll.
  • Senior tradeoff: explain separate policies for avatars, feed thumbnails and full-screen images instead of using one cache rule for everything.
  • Metrics: cache hit rate by tier, decode time, main-thread work, memory warnings, cancelled requests and visible image swap errors.

Prompt 4: background upload

  • Design reliable photo or video upload from mobile when the app can be backgrounded, killed or moved between Wi-Fi and cellular.
  • Cover: resumable upload, local pending state, background sessions, retry policy, user cancellation, compression, progress persistence and server idempotency.
  • Failure modes: duplicate uploads, lost progress after kill, retry storm, upload completes but UI says failed, user logs out mid-upload.
  • Senior tradeoff: define what happens if the upload is important enough to preserve but not important enough to drain battery.
  • Metrics: completion rate, retry count, median upload time, stuck uploads, duplicate server objects and background termination events.

Answer shape

  • Open with constraints: device lifecycle, network variability, local storage, memory, battery, privacy, release risk and team ownership.
  • Define state ownership before components: what lives in memory, on disk, on the server, in the queue and in UI state.
  • Draw the happy path only after naming offline, retry, stale response and app-kill behavior.
  • Add observability: logs, counters, sampled traces, debug screens and support tooling for reproducing user state.
  • End with evolution: migrations, feature flags, compatibility with older app versions and how teams own the boundaries.

Use this resource inside a path.

The free tools are designed to plug into the larger Salari career system.