Blog
Thoughts on web development, design, and tools.
I had six brokers and no idea what I actually owned
Building a multi-broker net worth tracker taught me the hard part was never the math โ it was deciding what to trust, what to merge, and what to refuse to build.
Read post โโA wrong number gets caught. A confidently wrong number doesn't โ and in a financial tool, that's the one you have to design against.โ
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.