Notes on building, connecting, and operating useful systems. Choose a reading path or browse the latest writing.
Agents & MCP
Connect assistants to useful systems, then make their behavior bounded and reviewable.
Deployment & Operations
Decide what your team should operate, then explore development environments, delivery, configuration, and recovery.
- Why Our Two-Person Infrastructure Team Moved 150 Users to Microsoft 365
- A Dev Container Is a Contract with the Project
- Containerizing Applications Without Hiding the Development Environment
- Docker Containers Are Not a Deployment Strategy
- GitLab Builds the Change; Salt Makes It Real
- The Pipeline Is Executable Documentation
- Make Deployments Boring
- Configuration Is Not a Secret Store
- The Distribution Is Part of the Constraint
- When a Cron Job Takes Four Hours
Home Infrastructure
Understand the networks and services behind a dependable home lab, then explore automation that can tolerate failure.
- The Home Lab Is a Network, Not a Pile of Containers
- How I Manage a Home Lab with Ansible
- Fast Internet Does Not Fix a Bad Network
- Pi-hole Is Infrastructure, Not Just an Ad Blocker
- Giving Bind9 a Practical Interface with Snap-DNS
- Home Assistant Automations Should Fail Gracefully
- Why I Moved from X10 to Lutron and Home Assistant
Latest writing
- Why Our Two-Person Infrastructure Team Moved 150 Users to Microsoft 365
- Building MCP Servers for Systems We Actually Use
- The Home Lab Is a Network, Not a Pile of Containers
- How I Manage a Home Lab with Ansible
- The Pipeline Is Executable Documentation
All current posts · Projects behind the writing · Subscribe with RSS