Skip to content

Garden

Everything I've written, in reverse chronological order. Filter by type or topic.

Type
Topic
Growth
Pattern

Calm Defaults

A pattern for restraint — shipping software with a quiet first impression, restrained feature scope, and the highest number of users who never notice the product exists.

designtools
Essay

What Senior Actually Means

Seniority isn't a measure of how much you know. It's a measure of how well you know what you don't know — and how systematically you close those gaps before they become incidents.

anthropologywritingsystems
NoteSeedling

AI Assistants and the Context Window

The context window is not memory. Three habits I use to work with the constraint instead of against it — and why each is just structured omission in disguise.

aiwriting
NoteSeedling

Figma Variables Workflow

The specific workflow that made Figma variables stick for our team — and the two keyboard shortcuts that save an hour a week.

designtools
Essay

The Case for Boring Technology

Every year, the same conversation: should we use the shiny new thing? Five years in, I've learned to love the boring choice — not out of cowardice, but out of respect for the people who will maintain this code after I'm gone.

web-developmenttoolssystems
Pattern

Token-as-Grammar

A finite set of choices that constrains composition the way grammar constrains a sentence. The strong version of this pattern asks you to remove tokens, not add them.

designsystems
Essay

Design Systems Are Grammar, Not Paint

A design system isn't a component library. It's the grammar of a visual language — and like any grammar, it only becomes interesting once people start bending the rules.

designsystemswriting
Talk

The Grammar of Design

Tokens, spacing, type — not paint, but grammar. When a design system is consistent, designers and developers stop arguing about choices and start speaking the same dialect. The product feels coherent without anyone forcing it.

NoteBudding

Systems Thinking Without the Drawings

You do not need C4 diagrams to think in systems. A well-named function and a clear data model are already system thinking — diagrams are communication tools, not thinking tools.

systemsdesign
Essay

On Typography, and the Trust It Quietly Asks For

Typography is the quietest form of persuasion. Before a reader has parsed a single word, they've already decided how much to trust the sentence that follows.

designwritinganthropology
NoteBudding

Server Components, A Working Hypothesis

Why React Server Components feel awkward at first but click into place once you stop fighting the grain of the model — server by default, client only when you need browser APIs.

web-developmentsystems
Pattern

Provenance Stamps

A small piece of metadata — when something was written, who signed off, how long ago it was reviewed — does the work of an entire audit trail. Readers need stamps, not trails.

designtoolswriting
NoteBudding

Edge Functions, Mental Model

How I finally internalised edge functions: not 'servers closer to users' but 'logic that moves to where the data lives.' A data-locality optimisation, not a deployment topology.

web-developmenttools
Talk

Design Tokens at Scale

How a 3-year-old design token system stopped being a help and started being a hazard — and the slow, named-tier migration that brought it back. Names, layers, the boring tooling that holds it together.

Talk

Components Are Communication

A component isn't a UI unit. It's a message in a bottle — written by the engineer who built it, opened by every engineer who will maintain it. This talk is about the rhetoric hiding inside a `Button`.

Pattern

Progressive Sharpening

Features start optional, become ergonomic for the curious, then essential to the power user — the progression runs uphill, never the reverse.

designtools
NoteSeedling

Design Tokens at Scale

Most token systems break down at scale. Three patterns that keep them coherent across hundreds of components: tiered naming, single-team ownership, and build-time enforcement.

designtools
NoteEvergreen

Typography Is Not Decoration

Good typography is the original accessibility feature — it predates screen readers by five centuries, and it does most of the same work.

designwriting
Pattern

Failure Surfaces

Designing the failure path first so the happy path has somewhere to land when something goes wrong. Most products get this order backwards.

designsystems
NoteEvergreen

The Anthropology of Code Review

Code review is an ancient social ritual wearing modern clothes — we just swapped the potlatch for the pull request, and the gift economy for the diff.

anthropologywriting
Pattern

Soft Handoffs

Passing work between people without losing intent, context, or the original argument — the silent muscle of long-lived teams.

systemswriting
Pattern

Quiet Power-User Modes

Keyboard shortcuts, command palettes, and command surfaces that exist without ever drawing attention to themselves. The private language between a user and their tool.

designtools
Pattern

Friction Budgets

An explicit, named allowance for cognitive load on a single screen — every addition costs budget. The number is a constraint, not a target.

designsystems
Pattern

Borrowed Type

Using the visual conventions of another medium — books, paper, handwriting — to lower the read-cost of long-form digital content. The medium informs the expectation.

designwriting
Pattern

Editorial Hierarchies

Heading hierarchy carried by weight and colour, not by explosion of size — same 24px, different voice. A page that respects its reader.

designsystems
Pattern

Witnessed Drafts

Exposing unfinished work publicly to lower the activation energy to ship — and to reward the early readers who showed up while it was still rough.

writingtools
Pattern

Quiet APIs

Function and method names that don't compete for attention — small, predictable, and aligned with the rest of the surface. Names look like they were always there.

designsystemstools