Notes on code, systems & the occasional coffee tangent

A slow blog about backend engineering, self-hosting, and the small decisions that make software either pleasant or miserable to maintain.

#infra#caddy

Why I moved every side project behind one reverse proxy

Aug 11, 2026 · 6 min read

For years I ran a tangle of nginx configs, one per project, each slightly different because I copy-pasted them at 1am. Consolidating everything behind a single Caddyfile cut my config from 400 lines to 40, and TLS just — stopped being something I thought about. Here's the layout that finally stuck, and the two gotchas that cost me an evening each.

#databases

Stop reaching for a database on day one

Aug 3, 2026 · 4 min read

Most side projects and internal tools never see enough traffic to justify the operational cost of a managed database. A flat JSON file, committed to git, will outlive three rewrites of your "proper" schema. A case for boring storage.

#career

Six years of writing READMEs nobody reads

Jul 22, 2026 · 5 min read

Documentation debt compounds quietly. I went back through every repo I've owned since 2020 and rewrote the top of each README as if I were the on-call engineer with zero context. Here's what I learned about my own writing habits.

#tools

A minimal home lab setup that survives power outages

Jul 9, 2026 · 7 min read

My home lab used to fall over every time the power flickered. After switching to a small UPS, staggered boot order, and a health-check cron job that texts me, it's been quietly running for eight months without a single manual restart.