Writing about software engineering, product building, and the indie founder journey.
All Posts · August 2026
9 posts

A multi-tenant staging environment moved onto hardware in my house, and the ninety minutes I lost to a TLS handshake failure taught me more than the migration did.

Ping worked from every node. The service worked from exactly one. A duplicate IP does not look like a duplicate IP, and the check that would have caught it is not the one you reach for.

The copy printed nothing. The delete printed nothing. Both are normal output for a successful run. Twelve production configs later, here is what actually went wrong and why it was not the rm.

After a hostname change the Proxmox firewall sits in "pending changes" and never applies them. Outbound works, inbound dies, and it looks nothing like a firewall problem.

Renaming a Linux box is one command. Renaming a Proxmox node is not, because the daemon that owns /etc/pve gets there before you do. The procedure that works, with the gates that catch the silent failures.

My CI pipeline sat pending for ten minutes. The runner was healthy. So was every other pipeline in the queue. The default setting was the bug.

My family cloud is reachable from anywhere on the internet, and I never opened a single firewall port to do it.

My reverse proxy had VRRP failover. I killed the process directly to test it, and the traffic black-holed anyway.

My password vault runs on a box in my house now. Every credential I have syncs to my phone and my browser the same way it did when I paid Bitwarden for it, except the encrypted database lives on hardware I can walk over and touch.