archive · 2026

writing.

Notes, essays, build logs — work-in-progress thoughts, written in plain text and read in any font.

$ ls /writing·5 entries·last commit 2026-06-07
// end of log rss
archive · 2026

writing.

Notes, essays, build logs — work-in-progress thoughts, written in plain text and read in any font.

$ ls /writing5 entries · last commit 2026·06·07
all 18engineering 5dev-tools 4security 3ai 2infra 2css 1linux 1
engineering2026·06·07

autoAlpha: 0 Hides the Element. Not the LCP Clock.

Traced a 2-second LCP render delay to GSAP hiding my hero subheading before animating it in. The fix was simpler than I wanted it to be.

6 min read·1,229 words
engineering2026·06·05

I Was Fetching Full Post Bodies Just to Count Words

My /writing archive was 3s slow because it fetched every post's full content to compute word count on every request. Denormalization fixed it.

6 min read·1,301 words
engineering2026·06·02

My Homepage Ranked Fine. My Other Pages Didn't Exist.

Two URL prefixes for desktop and mobile, zero canonical tags — and Google had no idea which version of my pages was the real one.

5 min read·1,186 words
engineering2026·06·01

I Matched by Title. I Forgot to Check the Description.

I built a git-style diff for resume reviews and shipped it. Then code review found that I was matching items by name without ever checking content.

6 min read·1,394 words
engineering2026·05·29

Raw SQL, Ghost Posts, and Why APIs Aren't Optional

I used raw SQL to publish a blog post. It went live. Then it vanished from my admin panel and I learned how Payload actually works.

6 min read·1,218 words
// end of log rss