Technical Writing

Notes from the workshop

Long-form deep dives drawn from real production work — across the languages, frameworks, and protocols I happen to be wrestling with.

BLE Deep Dive Series
BLE Fundamentals
Part 1 14 min read
BLE Flutter Android iOS

BLE Fundamentals — Connection Lifecycle & Platform Quirks

A complete tour of how a BLE connection actually happens — every step, every millisecond, and every place where Android and iOS quietly disagree.

Read article
Building a Secure Channel over BLE
Part 2 13 min read
BLE Cryptography Security

Building a Secure Channel over BLE

Why raw BLE pairing is not enough. Building an authenticated, MITM-resistant channel with X25519 ECDH, HKDF, and an offline PKI.

Read article
Encrypting Every Packet
Part 3 11 min read
BLE AES-GCM Security

Encrypting Every Packet — AES-GCM, Replay & Rate Limiting

After the channel is established: AES-256-GCM, nonce design, AAD, sliding-window replay detection, and rate limits as the last line of defense.

Read article
Dart Deep Dive Series
Event Loop & Async in Dart
Part 1 8 min read
Dart Async Isolates

Event Loop & Async in Dart

Why single-threaded ≠ race-condition-free. How Isolates, the Event Loop, Microtask Queue, and async/await create subtle concurrency bugs.

Read article
Mutex in Dart — 3 Implementations
Part 2 10 min read
Dart Concurrency Patterns

Mutex in Dart — 3 Implementations

Three approaches to async serialization: SimpleMutex, QueueMutex, and LinkedMutex. Compared by memory, performance, API safety, and GC pressure.

Read article
Concurrency in State Management
Part 3 12 min read
Flutter Concurrency State Management

Concurrency in State Management

How flutter_bloc, riverpod, and control handle concurrent async operations. Source code analysis, comparison matrix, and pitfalls.

Read article
Flutter Architecture Series
Object Initialization in Dart & Flutter
Part 1 9 min read
Dart Flutter Fundamentals

Object Initialization in Dart & Flutter

Constructors, initializer lists, factories, late fields, and the State lifecycle — distilled from the official Dart and Flutter docs.

Read article
Flutter DI without external packages
Part 2 8 min read
Flutter Architecture DI

Flutter DI without external packages

Replace GetIt with what Flutter already gives you: an InheritedWidget, a step-by-step initializer, and constructors. Type-safe, explicit, debuggable, testable.

Read article