Blog
Thoughts on web development, design, and tools.
The AI email parser worked. It was also expensive and kind of stupid.
Building a portfolio tracker that reads Gmail for broker confirmations โ and the AI harnessing pattern that made it cheap to run at scale.
Read post โโYou're not replacing AI with rules. You're using AI to write better rules than you'd ever write by hand.โ
The end of a chapter, and what I'm building next
I was laid off recently. It wasn't dramatic โ just a restructure, a meeting, and then suddenly two years of work became the past tense.
Read post โโThe work mattered. The ending being out of my hands doesn't change that.โ
React Has Always Been Bigger Than the Browser
Finding React inside a terminal CLI cracked open a question I'd stopped asking: what does React actually do? The answer is narrower and more elegant than years of browser work had led me to believe.
The Ghost in the Browser
A story about a bug that doesn't exist, a user who's always right, and what happens when your framework has been quietly doing things for you for years.
useEffect is the drop shot of React
Like the drop shot in badminton, useEffect is a brilliant tool โ but it should be rare, earned, and never your default.
Creating a simple full-stack application with monorepo using pnpm, React, Express, and Docker
A walkthrough of building a full-stack monorepo with pnpm workspaces, React, Express, and Docker โ from setup to running everything with a single command.
How to build a simple Autocomplete with React
A step-by-step guide to building an autocomplete component with React โ covering the server, client, caching, debouncing, and keyboard navigation.