Blog

Long-form notes on architecture decisions, things that surprised me, and things I had to understand properly before I could move on.

Explicit errors, implicit bugs: learning modern C++ by losing to my own dungeon

I built a dungeon crawler in C++23 to learn modern C++ — modules, std::expected, composition over inheritance. The types caught the small errors. Nothing caught my assumptions.

Moving to homelab infra made things 4x slower, and I blamed the wrong thing

I built Watchtower, a self hosted log ingestion pipeline. Moving infra off my dev machine made throughput 4x worse, and I spent way too long blaming the hardware.