I'm on my third design system now. I built one entirely from scratch, and rebuilt the other two on top of systems that already existed. Across all three, I learned what actually matters and what doesn…
It's December, retrospective season again. This year stretched me wider, both personally and at work. Here's a look back built around the experiences that stuck with me most. A New Team, A New Design …
This time I want to revisit rendering, but through the lens of performance. So how should you actually approach optimizing it? Web performance optimization isn't about building the single fastest rend…
Intro I recently tuned up the rendering performance on a side project, and while I was at it, I mapped out how browser rendering actually works: what was really behind the slowdown, and what fixed it.…
I feel like every year's retrospective opens with "this year was special," but this time I really mean it. A lot changed, big and small, at work, in my career, and in my personal life. So I've organiz…
My FEConf2022 talk, "Design Systems, Beyond Form", left out a bunch of the thinking behind linear, the design system I built. This post picks up where that talk left off. Table of Contents Principle T…
The React Context API lets you share global data across a React component tree. Any component below a Provider can read that Context's value. Another way to say "components below a Provider can use it…
Intro What do you expect from a Select component when a design system provides one? Here I'll go through the features I want out of a Select, how to build them, and example code along the way. ⚠️ Ever…
React 17 shipped a new JSX Transform, and this post digs into the RFC behind it to work out what that change actually means. I've thrown in my own commentary and some guesswork along the way. If you'v…
What I wrote last year This year didn't go where I expected. Looking back, I ended up on a pretty different path than the one I mapped out in last year's retrospective. Studying infrastructure was one…