I build software and then try to find out whether it actually works. "It compiles" and "it's correct" are different claims, and I'm interested in the gap between them.
What I'm building
- latchkey: a learning project in event sourcing and domain-driven design, reconstructing a residential tenancy's history from an append-only log — complete and tamper-evident enough to stand as evidence in a tribunal hearing.
- treetop: a tracker for working across multiple git worktrees at once.
- snag: an FMEA-style tool that maps how code can fail — the failure modes a line-by-line review tends to wave through. Started as a CLI and collaborative backend; turned out to be a weak product, so I've cut it down to a Claude Code skill.
How I work
- Pre-registered experiments before I trust a result.
- Decision records, so later I can see why I chose what I chose.
- Honest write-ups, including when the answer is "this didn't work."
Stack
Elixir and Phoenix these days, with TypeScript and React from before. PostgreSQL throughout. Dabbling in Go on the side — treetop is where I'm learning it.




