Posts
All the articles I've posted.
Ten Teams, One Hybrid App: Where Do You Draw the Module Boundaries?
Grab runs 1,000+ modules in one app, Reddit's Android app ~800. The rules that make that survivable — contracts over imports, CI-enforced graphs — and why a Flutter module must hide behind a native boundary.
iOS Has Six Ways to Run in the Background — Which One Actually Delivers My Message?
beginBackgroundTask, BGTaskScheduler, URLSession, silent push, PushKit, NSE — a decision guide to iOS background execution, tested against an E2EE messaging core.
The App Went to the Background — Is My Code Still Running?
A background queue is not background execution. Building the iOS lifecycle mental model — foreground, background, suspended — from an E2EE core that persists sessions to SQLCipher.
The Rust Core Is Done — So How Do Kotlin and Swift Actually Call It?
UniFFI, cbindgen, or hand-written FFI? Choosing the binding layer that lets Kotlin and Swift call a Rust library — with Firefox, Element X, and Signal as evidence.