/  Notes & essays
Subscribe via RSS

Writing

Working notes on the parts of full-stack development I find hard or interesting — architecture, performance, and the tools in between.

all abstraction ai architecture career developer-experience edge lessons-learned microservices performance react refactoring reflection tooling tools vite
You're Not Falling Behind — You're Witnessing the Future Too Early Why AI-generated code makes seasoned developers feel small, and why that feeling is measuring the wrong thing. aideveloper-experiencecareerreflectiontools Your Shared Library Is Wearing a Trench Coat How I rebuilt one shared package three times and learned that abstraction has to earn its keep. architectureabstractionmicroservicesrefactoringlessons-learned Designing for the edge: state without a server Where do you put application state when there is no long-lived server? A field guide to durable objects, signed cookies, and the new shape of "session". architectureedge The cost of a re-render, measured I profiled a real dashboard to find out what re-renders actually cost — and which of the usual fixes move the needle versus which are folklore. performancereact A Vite config I actually understand Rebuilding my build tooling from an empty file, one option at a time, until I could explain every line out loud. toolingvite Type-safe forms without the boilerplate One schema, three jobs: validation, types, and the form itself. A pattern that's served me from tiny inputs to multi-step wizards. architecturetooling