Bits
All the Bits I've posted.
-
Pit Board Reading: Accessibility in Compose Multiplatform
A driver reads the pit board once per lap, at 300 km/h, in under a second. If the board is cluttered, the message is lost. Semantics work the same way: your UI is read by a screen reader, and what it hears depends on what you put on the board.
-
Every Commit on the Clock: CI/CD for Kotlin Multiplatform with GitHub Actions
In endurance racing every car carries a timing transponder: the circuit knows exactly where you are, every lap, every sector. This is how to put one on your KMP project.
-
Front Wing, Not Small Wing: Design Tokens for Native UI in KMP
The FIA technical regulations never call anything a small wing. They name parts by what they do. Shape tokens work the same way, and one XML file can feed Compose and SwiftUI without sharing a line of UI.
-
Box, Box: Deep Links in Kotlin Multiplatform
A deep link is the radio call that sends a user straight to one screen, skipping the whole navigation flow. Here's how I handle the parsing in commonMain and keep the platform glue thin on Android and iOS.
-
Telemetry: Shared Analytics and Crash Reporting in Kotlin Multiplatform
A race car streams telemetry to the pit wall over one radio link, whatever the sensor. Analytics and crash reporting in KMP should work the same way: one interface in commonMain, the native SDKs underneath.
-
Minimum Weight: Code Coverage Gates in Kotlin Multiplatform with Kover
In GT racing, every car crosses the weighbridge and the minimum weight limit only ever goes up. That's how a coverage floor should work too.
-
Two Racing Lines: Annotations and the DSL in NetFlow 0.7.0
The pit lane is a second line through the same circuit, not a detour around it. Here is why NetFlow 0.7.0 added Retrofit-style annotations on top of its DSL, and the exact point where they stop.
-
Torque Spec: Shared Form State and Validation in KMP
The spec says 120 Nm and you already knew that. Knowing the number was never the hard part. My validation rules were already shared. The sixty lines of state around them were not.
-
Lights Out: Automatic Skeleton Loading in Compose Multiplatform
Five ligths go out and every car reacts to the same signal at once. My shimmer effect wasn't doing that. Every skeleton on screen was running its own private clock.
-
Same Car, Every Time: Deterministic Feature Module Generation in KMP
AI generation adapts to anything you ask. A bash script adapts to nothing. After a few months of scaffolding KMP feature modules both ways, I know which one I trust.