Android LLM client architecture in 2026
A mobile-first architecture guide for Android LLM clients, covering local models, remote models, streaming UI, memory, privacy, cost, and failure modes.
San Francisco. Engineering Manager at Speak. Before that, Android at Amazon, Verkada, Slack, and Square. Outside of work I build small things, mostly with Claude Code. Writing at /blog.
A public notebook on mobile-first system design: local state, sync, push, offline behavior, APIs, and where client and server ownership meet.
A mobile-first architecture guide for Android LLM clients, covering local models, remote models, streaming UI, memory, privacy, cost, and failure modes.
A practical look at Android AppFunctions as a mobile MCP-style layer: what changed, how typed app actions work, and what Android teams should expose first.
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.
Break a mobile app on purpose, then replay the safer client design for offline conflicts, duplicate taps, and stale cache.
Drag components into a tree, edit props, and watch a Kotlin captureSingleRemoteDocument block generate live.
Daily memory puzzle. Tiles vary by shape, color, and fill, and you have to remember the sequence across all three. Live on App Store and Google Play.