I build developer tools and dependable systems. For the past two decades, I’ve helped teams make complex software easier to understand, change, and operate.
Now I’m turning that experience into open-source libraries, release tooling, and practical writing about architecture, domain design, and engineering judgment.
Building
- ACK
Preserving why software changed from the first commit through the artifacts that shipped.
- Go libraries
Production-minded foundations for services, protocols, data, and operations in Go.
- Serein
The Hugo site you’re reading, built for calm typography, fast static pages, and focused writing.
Projects
- CDX
A strict local-first terminal interface for finding and resuming Codex conversations.
- Stackctl
A local development control plane for repeatable Laravel environments on macOS and Linux.
- Go Queue
One worker-queue model with owned integrations for the brokers teams actually operate.
Writing
- Coverage Tells You What Ran, Not What Your Tests Would Catch
Here are two PHPUnit suites for the same shipping-fee rule. Both report …
- Choose the Test Boundary from the Defect
Four test boundaries protect the same reservation flow. Then four …
- An Interface Does Not Make a Fake Substitutable
An HTTP product catalogue and an in-memory fake both implement this …
Now
Turning two decades of software work into practical essays on architecture, domain design, APIs, and engineering judgment.
Building ACK so the reason behind a change survives the trip from commit and pull request to changelog and release evidence.
Hardening a growing family of Go libraries around explicit contracts, bounded behavior, and proof that survives production.