Building TimeLogger: One Rust Binary, Four Apple Platforms
How I built a multi-device time tracker with a single Rust server as the brain and native Swift clients for iOS, macOS, and watchOS — syncing over Wi-Fi, BLE, and iCloud.
Long-form thinking on ML engineering, developer tooling, and the quiet craftsmanship of systems that actually work. Written slowly — read at your own pace.
A field report on the bugs I hit while shipping TimeLogger across iOS, macOS, watchOS, and widgets — silent BLE back-pressure, timestamp comparisons that lie, Live Activities that outlive your process, and a handful of other footguns.
Read the essay→How I built a multi-device time tracker with a single Rust server as the brain and native Swift clients for iOS, macOS, and watchOS — syncing over Wi-Fi, BLE, and iCloud.
A tour of the command-line tools I rely on daily as an ML engineer — from terminal multiplexing to fuzzy finding — and how I use Restic to keep bulletproof backups of everything that matters.
If anything here sparks an idea, or you're working on something interesting in ML, tooling, or agents — I'd love to hear from you.
Start a conversation