SM

Command Palette

Search for a command to run...

Blog

Writing about code, design, and everything in between.

24 posts

Just In

The Brief and the Inventory

What I Learned Researching DESIGN.md and Design-System MCP Servers

18 min read

One Flag Away From Root

What I Learned Researching the LMCache Pickle RCE

13 min read

16.3.7 Is Not the Patch

What I Learned Researching the Next.js September Security Release

16 min read

You Already Gave It the Keys

What I Learned Researching Apple's Full Disk Access Crackdown on AI Agents

14 min read

The Fix Shipped 27 Days Early

What I Learned Researching the keyv Shai-Hulud npm Worm

12 min read

One Million Tokens Out

What Gemini 4 Argon's Output Cap Changes for the People Who Have to Run It

25 min read

Everyone Removed the Off Switch

What I Learned Reading the GPT-6.1 Sol, Sonnet 5.5 and Gemini 3.8 Flash Migration Guides

28 min read

Not a Ladder, a Fork

What I Learned Researching Claude Sonnet 5.5 vs Opus 5.5

28 min read

Not a Winner, a Routing Rule

What I Learned Researching Claude Opus 5.5 vs Fable 5.1

22 min read

Polydact

A Wearable Robotic Sixth Finger That Coils Like a Tentacle, and the One Spiral Behind Its Grasp

12 min read

Claude Sonnet 5 in Production

What I Liked, What Bit Me, and the Token Tax Behind the Matching Price

9 min read

What a Turborepo Monorepo Taught Me About Code Quality

The File Tree Mattered More Than the Linter

10 min read

Scaling React in 2026

7 Decisions That Mattered, and Why None of Them Were useMemo

9 min read

Scaling RAG to 10M Documents

The Hallucination Fixes That Worked Were the Boring Ones

9 min read

The Same Context, Billed on Every Turn

How to Cut Agentic AI Token Costs

14 min read

You Don't Import It, You Own It

Why shadcn/ui Beats Every Other Component Library

6 min read

The 12 AI Books That Actually Make You Better at Building (2026)

A pillar-by-pillar reading guide for engineers shipping agents, LLM systems, RAG, evals, and reliable production AI, organized by what you build, not by hype.

9 min read

The Claude Workflow That Replaced 200 Words of Context With Two Sentences

How stacking four Claude features lets you stop re-explaining yourself at the start of every chat, and just ask for the thing. Preferences, Styles, Projects, and Memory do the carrying.

7 min read

The Scanner That Refuses to Run Your Code

Inside Perplexity's Bumblebee

6 min read

The Invisible Box Around Your Text, and How to Finally Trim It

Remove the empty space CSS bakes around text. A one-line, optical fix using text-box-trim and text-box-edge, with progressive enhancement for browser support.

6 min read

The Scraper That Doesn't Get Banned

Building a Scalable Web Scraping Pipeline in Go

12 min read

Boring on Purpose

Go Basics for People Who Want to Ship

7 min read

I Spent 6 Months Tuning Claude Code. Here's the Exact Setup That Finally Worked.

The exact Claude Code setup after six months: a lean CLAUDE.md, lazy-loaded skills, subagents, hooks, git worktrees, and the five MCP servers that earn their place.

12 min read

The Bluffing Problem

What Claude Opus 4.8 Changes About Trusting AI Code

7 min read

Command Palette

Search for a command to run...