Blog
Notes on design & engineering
April 12, 2026Design
Designing with negative space
Most interfaces are afraid of emptiness. Notes on why the blank parts of a layout carry as much meaning as the filled ones.
February 3, 2026Engineering
Type systems as design systems
TypeScript's structural typing and a good design system solve the same problem from opposite ends — constraints that make freedom safer.
November 18, 2025Motion
The case for fewer, better animations
A motion budget: pick three transitions for the whole product and master them, instead of animating everything a little.
September 1, 2025Process
On working alone, and in public
Why I publish unfinished work and half-formed opinions here, and what that's taught me about finishing things.