Archive

All posts

Short notes, written slowly.

A small home lab, three years in

2026-10-18 · Home lab

The lab is one mini PC, two SSDs, and a fan that is louder than I expected. It runs a handful of virtual machines: a router, a file server, a build box, and one machine that exists only to be broken and restored.

The first year was mostly collecting parts. The second year was mostly undoing decisions. The third year has been quiet, which is the point. The best compliment I can give a home lab is that I forget it is there.

What survived

Plain Debian. A single bridge. Backups that run on a timer and are tested on the first Sunday of the month. A written list of every address, port, and password hint — not because I cannot remember, but because future me should not have to.

What I would not rebuild

Nested hypervisors for fun. A dashboard for everything. Any service that needed a database before it needed a purpose. The lab is not a product; it is a place to practice being careful.

If I started again, I would buy one more disk than I think I need, label the cables, and write the runbook before the first boot. The rest is improvisation with better notes.

Notes on DNS, for people who don't like DNS

2026-09-27 · Networks

DNS is a distributed cache with a delegation protocol attached. Most of the pain comes from forgetting the cache part.

A resolver is not a directory. It is a program that asks other programs, remembers answers for a while, and sometimes lies politely. When something breaks, the useful questions are: which resolver answered, what TTL did it use, and was the answer signed or just believed?

What I check first

Whether the name resolves from the machine that is complaining, not from my laptop. Whether the answer changes when I ask a different resolver. Whether the TTL is short enough that a change can propagate before lunch.

For a small network, I prefer one caching resolver I control, one forwarder I trust, and a written note about which is which. DNS over HTTPS is useful when the path is hostile; it is not a substitute for knowing where the queries go.

The best DNS setup is the one you can explain at 2 a.m., half awake, with a terminal open.

That is most of it. The rest is patience and a few diagrams.

Reading list: systems and silence

2026-08-30 · Reading

Three books I return to, for different reasons.

Systems Performance

A reminder that performance work starts with measurement, not intuition. The chapters on observability are worth the shelf space even if you never touch a profiler.

A Philosophy of Software Design

Short, opinionated, and useful. The central idea — that complexity is incremental and mostly accidental — matches every codebase I have enjoyed maintaining.

The Design of Everyday Things

Not about computers, which is why it helps. Affordances, feedback, and the quiet cost of a bad sign. I think about the door handles more than I expected.

None of these are new. That is part of the appeal. Good ideas tend to stay good longer than the tools that inspired them.

The case for boring infrastructure

2026-07-12 · Essay

Boring infrastructure is not the absence of ambition. It is ambition that has been through a few winters.

A boring system has one way to deploy, one place to look for logs, and one person who can explain what happens when the disk fills. It does not require a diagram to answer a question that should take ten seconds.

The exciting system is often the one that has not yet met a bad day. The boring system has met several and kept its shape. That is not a failure of imagination; it is the result of it.

I still like new tools. I just want them to earn their place before they become load-bearing.