Blog
Notes on engineering decisions, code, and things I learn building.
The server that restarted every five hours
A container that crash-looped with no panic and no error log — four times, for four different reasons. A tour through every way a health check can lie to you.
The editor that ate my <
Type a lone < in the code editor and it silently became <. The culprit was a hidden component, two tabs away, faithfully doing its job.
Make the broadcast survive a restart
The first version sent your whole campaign from a single goroutine — and lost everything if the process blinked. Rebuilding it as a durable per-recipient queue.
Consistency over intensity: a roadmap for learning to program
You don't learn to code in one heroic weekend. The real roadmap is almost boring: a little, every day, applied and repeated. A story about the 12-hour tutorial that taught me nothing.
Stepping away from the keyboard is part of the work
Some problems don't get solved by typing harder. Real rest — a walk, some air, a coffee away from the screen — is a debugging tool, not wasted time.
Before you write code: plan, ship an MVP, don't chase perfect
The most important decisions on a project happen before the first commit. A short field guide: plan, pick boring tech, ship small, and test in the real world.