Long-form deep dives drawn from real production work — across the languages, frameworks, and protocols I happen to be wrestling with.
A complete tour of how a BLE connection actually happens — every step, every millisecond, and every place where Android and iOS quietly disagree.
Read articleWhy raw BLE pairing is not enough. Building an authenticated, MITM-resistant channel with X25519 ECDH, HKDF, and an offline PKI.
Read articleAfter the channel is established: AES-256-GCM, nonce design, AAD, sliding-window replay detection, and rate limits as the last line of defense.
Read articleWhy single-threaded ≠ race-condition-free. How Isolates, the Event Loop, Microtask Queue, and async/await create subtle concurrency bugs.
Read articleThree approaches to async serialization: SimpleMutex, QueueMutex, and LinkedMutex. Compared by memory, performance, API safety, and GC pressure.
Read articleHow flutter_bloc, riverpod, and control handle concurrent async operations. Source code analysis, comparison matrix, and pitfalls.
Read articleConstructors, initializer lists, factories, late fields, and the State lifecycle — distilled from the official Dart and Flutter docs.
Read articleReplace GetIt with what Flutter already gives you: an InheritedWidget, a step-by-step initializer, and constructors. Type-safe, explicit, debuggable, testable.
Read article