<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Timothy Serem — Writing</title><description>Technical writing on offline-first Android, Jetpack Compose, and Kotlin.</description><link>https://kiptechie.com/</link><item><title>How I use coding agents without losing comprehension</title><link>https://kiptechie.com/writing/agentic-android-workflow-claude-code/</link><guid isPermaLink="true">https://kiptechie.com/writing/agentic-android-workflow-claude-code/</guid><description>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.</description><pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Designing for low literacy: the interface begins with the community</title><link>https://kiptechie.com/writing/designing-for-low-literacy-local-language-audio/</link><guid isPermaLink="true">https://kiptechie.com/writing/designing-for-low-literacy-local-language-audio/</guid><description>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.</description><pubDate>Sun, 05 Jul 2026 00:00:00 GMT</pubDate></item><item><title>Encrypting Room with SQLCipher in offline-first Android apps</title><link>https://kiptechie.com/writing/encrypting-room-sqlcipher-android-keystore/</link><guid isPermaLink="true">https://kiptechie.com/writing/encrypting-room-sqlcipher-android-keystore/</guid><description>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.</description><pubDate>Sun, 21 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Designing an Offline-First Map: Local Vectors, Satellite When Connected</title><link>https://kiptechie.com/writing/offline-vector-maps-maplibre-play-asset-delivery/</link><guid isPermaLink="true">https://kiptechie.com/writing/offline-vector-maps-maplibre-play-asset-delivery/</guid><description>How we combined online satellite imagery with targeted offline vector coverage so that losing connectivity reduced map fidelity, not capability.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate></item><item><title>Offline-First Android: Building Reliable Sync Around Room and Kotlin Flows</title><link>https://kiptechie.com/writing/offline-first-single-source-of-truth/</link><guid isPermaLink="true">https://kiptechie.com/writing/offline-first-single-source-of-truth/</guid><description>A practical architecture where Room serves as the UI&apos;s read model and background workers keep local data synchronized when the network is available.</description><pubDate>Thu, 11 Jun 2026 00:00:00 GMT</pubDate></item><item><title>MVVM or MVI? Start with who owns the state</title><link>https://kiptechie.com/writing/mvvm-vs-mvi/</link><guid isPermaLink="true">https://kiptechie.com/writing/mvvm-vs-mvi/</guid><description>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.</description><pubDate>Tue, 02 Jun 2026 00:00:00 GMT</pubDate></item></channel></rss>