Writing
RSSNotes from the field.
Technical writing on offline-first Android, Jetpack Compose, and Kotlin — drawn from real project work, not from the docs.
- How I use coding agents without losing comprehension Coding agents help me migrate modules, ship features, fix bugs, and write tests faster. The hard part is keeping enough understanding to remain responsible for the code. Jul 16, 2026
- Designing for low literacy: the interface begins with the community What InfoRange taught me about designing with pastoralist communities: combine text, native-language audio, recognizable icons, and meaningful color instead of assuming that any one channel works for everyone. Jul 5, 2026
- Encrypting Room with SQLCipher in offline-first Android apps SQLCipher makes encrypting a Room database fairly direct. In an offline-first app, the harder design work is making the passphrase lifecycle explicit, testable, and recoverable enough for real field conditions. Jun 21, 2026
- Designing an Offline-First Map: Local Vectors, Satellite When Connected How we combined online satellite imagery with targeted offline vector coverage so that losing connectivity reduced map fidelity, not capability. Jun 18, 2026
- Offline-First Android: Building Reliable Sync Around Room and Kotlin Flows A practical architecture where Room serves as the UI's read model and background workers keep local data synchronized when the network is available. Jun 11, 2026
- MVVM or MVI? Start with who owns the state MVVM and MVI are often presented as competing Android architectures. The more useful decision is where state is authored, how events are ordered, and which screens genuinely need a reducer. Jun 2, 2026