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 tinkering with picopass, a TinyGo experiment for turning a Raspberry Pi Pico 2 W into a small USB keyboard that can type the current time, a configured password, or a freshly generated TOTP code. I’m especially interested in the practical edges of combining Wi-Fi time sync, serial output, HID input, and a few physical buttons in a deliberately simple hardware project.
I also shipped CsvToMarkdownTable 2.0.0, continuing to make the CSV-to-Markdown converter more useful both as a library and at the command line. That included renaming the CLI to csv2md, which makes the command a bit more direct when I just want to turn delimited data into a table I can paste into documentation.
More generally, I’ve been enjoying small, focused tools that make everyday development work a little less frictionful—whether that means moving structured text between formats or giving a tiny microcontroller a tangible interface.
I’ve been thinking about AI as a tool that can make substantial refactors much cheaper, while still leaving people responsible for understanding and reviewing the code they merge. Codebases may be more mutable than they used to be, but architecture still matters when I expect to keep building on top of them.
Last update: 2026-09-30






