Opinionated, long-form narrative writing with an agenda
Loose notes on things I don't entirely understand yet
A catalogue of design patterns gathered from observation and research
Interesting links, papers, and tiny thoughts
Conference talk slides, transcripts, and videos
Podcast episodes I've been a guest on
Books I've read and recommend
Books I like the idea of having read
Frontend Forward, Seattle
AI Engineer Europe, London
UX Brighton, Brighton +2
The technical layer is easy. The agreement between people is the hard part
An old paper that deserves a second life now that every product ships with a model inside it...
On notification fatigue, ambient signals, and the case for tools that respect your attention
Chat boxes make everything possible and nothing obvious
Strange Loop, St. Louis
Creating a subtle, peripheral, and synchronous sense of shared space on the web
Declarative systems reward a different kind of thinking
The most successful end-user programming environment ever built, and what we keep failing to learn from it
Notes on who command palettes are really for
On making the invisible machinery of software visible enough to argue with
Giving people a visible, useful trail of where they have been over an exploratory journey
Treating every input field as a question you are asking a stranger
Applying interaction design principles to the most expensive software your company runs: people talking
If language models can drive any screen, what is left for a designer to design?
Notes on vocabulary, metaphors, and the words that leak into the interface
Command bars you can summon from anywhere with a keyboard shortcut
Small areas within a graphical interface where users can read and write simple programmes
JSConf, Berlin
Latency is not always a bug. Sometimes it is the only thing giving you room to think
Revealing complexity only as someone demonstrates they are ready for it
Making every action reversible so people can explore without fear
Defining terms where they appear instead of sending people to a glossary
Showing where collaborators are looking and working in real time
Pretending an action succeeded before the server agrees, and recovering gracefully when it does not
Using the moment before any data exists to show people what the tool is for