Blog
On software development, technical decision-making, and building production systems.
Building for musicians isn't just a UI challenge — it requires understanding a domain with its own vocabulary, workflows, and professional expectations
Hard-won opinions on REST conventions, error handling, and pagination from building APIs across a lot of different projects
What to test, what not to test, and why 100% coverage is a vanity metric
Why reaching for familiar tools usually beats chasing new ones
The decision to take on technical debt is a resource allocation call, not a lapse in discipline — and treating it like one leads to worse outcomes
Where AI tools genuinely help in development, where they fall short, and what it means for the quality of work you receive.
Why PHP and Joomla systems persist for rational reasons, when modernization actually makes sense, and what good technical advice looks like.
The case for working with a solo senior developer over an agency — and an honest account of where the model falls short.
Treating your website as a case study rather than a brochure — and why the site itself demonstrates competence better than any list of client logos.