A CV is a lossy compression format. It takes twenty years of decisions, incidents, rewrites, 3 a.m. packet captures and hard-won architectural opinions, and compresses them into two pages of bullet points that an ATS can parse.

This site is the decompressed version.

What you will find here

How this site is built

Deliberately boring: static HTML, one stylesheet, one script, markdown posts. No framework, no database, nothing to upgrade at 2 a.m. Adding a post means dropping a .md file into a folder and running a build script that turns it into a static page, because the crawlers that increasingly decide who gets found do not execute JavaScript, and a blog rendered in the browser is an empty page to them.

That build script is the only concession. It runs on my machine, it has two dependencies, and neither of them reaches your browser.

After two decades of building complex systems, I have strong feelings about where complexity belongs. It is not here.