How Random Walks Find the Bugs You Won't
Traditional tests encode what you think the machine does. Random walks surface what it actually does under sequences you didn’t imagine. →
AI Made My Expertise Economically Viable
Vibe Coding works for throwaway apps. But what about the systems that accumulated 15 years of implicit decisions? AI didn't replace my domain expertise, it made it worth deploying again. →
Rewriting a 12-Year-Old JavaScript Library in TypeScript
How Erlang's gen_fsm inspired a JavaScript state machine library, why I rebuilt it in TypeScript 12 years later, and why finite state machines still matter. →
Appreciation & Awe
Reflections on five years of leading the LeanKit development team →
The Cult of the Toxic Hero
How firefighting culture and toxic heroes undermine teams, and what leaders can do about it →
UMD For Everyone
A response to 'UMD is a lie' — examining the trade-offs of Universal Module Definitions →
It's Not Hard: Making Your Library Support AMD and CommonJS
A practical guide to writing Universal Module Definitions (UMD) for JavaScript libraries →