I am a PHP, Go and TypeScript developer based in Minneapolis.
I work across the entire stack, but I’m happiest in the backend. Moving data, pushing bytes around, making things fast.
I ❤️ tiny reusable parts with single responsibilities and no side effects. I keep code simple, clear, and easy for anyone to read.
I’ve spent fifteen years in EdTech keeping old systems running and new ones from catching fire. Before that I built industrial and B2B tools where things had to work because people depended on them.
I’ve been pushing MDDoc forward as a more useful PHP documentation generator. My newest work is adding a table of contents to recursive documentation, so large generated API pages can offer stable, explicit links to documented classes, interfaces, and methods instead of making readers hunt through a long class list.
I’m also teaching MDDoc to find declarations hidden inside conditionals, try blocks, functions, and methods through documenting declarations nested inside statements. The goal is simple: valid classes, enums, interfaces, traits, and functions should not quietly vanish from generated docs just because of where they appear in a source file.
I also shipped a pair of MDDoc releases that make it friendlier in real Composer projects: it can discover project and dependency classes through Composer’s autoloaders, document backed and unbacked enums and their cases, and offer a dry-run mode for checking whether generated documentation is current.
I’ve been reminded how deeply keyboard habits stick around: old shortcuts can stay in my hands for decades, then instantly come back the moment I sit down at a different operating system.
Last update: 2026-10-22






