NOTE

Why does this blog exist?

I built this instead of publishing on Hashnode to experiment with TanStack Start and keep long-form engineering writing separate from my portfolio.

About this site

The Other Half of Caching

June 29, 202617 min read

I shipped cache stampede protection, then read Facebook's Scaling Memcache paper expecting to compare implementations. Instead, I found an entirely different class of problems consistency, replication, failure isolation, and why caching gets much harder once the easy problems are solved.

The click that did nothing (sometimes)

June 26, 202610 min read

A status dropdown that sometimes didn't update and the browser mechanic behind it: a click only fires if mousedown and mouseup land on the same still-mounted element. A portal + a mousedown handler broke that. Fix was deleting 23 lines.

The billing page took 4 seconds to show two text fields

June 7, 20265 min read

A billing page with just a name and email field was taking nearly four seconds to load. The obvious suspect was an external API and repeated TLS handshakes. The real culprit turned out to be a React waterfall hiding behind multiple useEffect chains.

How I Spent 30 Minutes Configuring a Tool I Could Have Downloaded in 30 Seconds

June 5, 20264 min read

Caveman compresses what Claude says. RTK compresses what Claude reads. I spent 30 minutes debugging a Rust linker issue on Windows before discovering the prebuilt binary was sitting in the README the whole time.

Turns Out Networking Class Was Worth It

May 18, 20263 min read

The Firewall Didn't Know Who It Was Messing With TL;DR: College blocked GitHub. CN exam was done. Azure had a free tier. Four hours later I was pushin

Optimizing My TanStack Start Bundle

March 7, 20266 min read

While analyzing my TanStack Start build, I discovered that highlight.js was silently bundling every language, inflating my editor chunk to over 1.3MB.