Thinking through system design for mobile engineers
Notes on how I think about mobile systems, product behavior, and high-level architecture. · 9 min read
I’m working through mobile system design from the client side of the product. Most examples start with backend services. I care more about the parts that get messy on a phone: local state, sync, push, offline behavior, product quality, APIs, and who owns what between client and server.
Start with the overview if you want context, or jump into the app you’re interested in. I’ll keep adding cases as I write them.
A system design pass for TalkLooper, a spoken English practice app: why the first MCP version was elegant, why transcript-only analysis broke down, and how I would redesign the loop around raw audio, consent, speech events, and practice feedback. · 16 min read
Use these after a post, or before one if you want to test yourself first.
Check the Slack mobile design post: product behavior, sync, push, local state, and scaling tradeoffs.
Check the Slack client architecture post: local truth, state ownership, outbox, push routing, offline UX, accessibility, and client observability.
Check the PayPal mobile design post: payment intents, ledgering, idempotency, risk, webhooks, local state, and recovery flows.
Check the Robinhood mobile design post: quote freshness, order idempotency, fills, buying power, ledgers, notifications, security, and mobile failure modes.
Check the Prism mobile design post: local-first play, daily seeds, sync, leaderboards, streaks, notifications, and mobile reliability.
Check the spoken English practice app system design post: MCP boundaries, raw audio, speech events, consent, analysis, feedback, and mobile reliability.
A short practice quiz for the Android LLM client architecture post, focused on local versus remote inference, streaming state, context, memory, privacy, cost, and mobile failure modes.