This is the first post on this blog. I plan to write about engineering leadership, frontend craft, and the occasional rabbit hole. More soon.
Moving from writing code full-time to leading a team is one of the stranger transitions in a software career. The skills that made you good at the first job — deep focus, strong opinions, moving fast — are only partially useful in the second. What changes is the unit of output: it's no longer your…
There's a pattern I keep seeing: a team adopts an AI coding tool, velocity feels higher for a few weeks, then something subtle shifts. PRs get longer. Review takes more time. Bugs show up in places nobody touched. The tool didn't cause this. The workflow did. AI tools are amplifiers. They make fast…
The best hire I ever made had half the experience of the other finalists. What stood out was how she talked about a side project she'd abandoned. Most people either skip failed projects or apologize for them. She walked me through every decision — what she learned, what she'd change, what she'd keep…
The handoff model is broken. Designer produces spec, engineer implements spec, product ships. Everyone did their job. The product still feels off. The problem is that a lot of UX lives in the gaps — in the loading states, the error messages, the transitions, the edge cases that never made it into…
In an office, trust accumulates passively. You see someone stay late to fix a bug. You overhear them helping a colleague. You share a bad coffee and complain about the deploy pipeline together. Remote removes all of that. Trust has to be built intentionally or it doesn't build at all. The most…