About me

If you think hard enough, sometimes the work is easier.

Thinking

I am at my happiest when I can dive into a complex problem domain, explain it to others, and help make complex decisions within its constraints. Here are some of my public explanations:
Screenshot of Adam in purple hair, gesturing dynamically, while presenting this talk. How do we build great embedded UIs?
<iframe>able finance, a talk presented at Fintech Devcon 2023, shares advice and war stories for building embeddable UIs and SDKs using iframes.
How can we collaborate on complex UIs?
Pure UI Control is an essay on how teams can communicate and organize their work when building complex UIs. Also see: What are the important problems in UI engineering?
Sequence diagram of Concurrent ML communication How should we structure UI concurrency?
Synchronizable abstractions for understandable concurrency is an explanation of the Concurrent ML event system, which inspired React Fiber.
How does React work?
Diagram visualizing the Preact lifecycle Preact in Pictures is a talk I gave in 2017 that fully explained the core virtual DOM diffing algorithm, following the code in Preact but with explanations of how it compares to React. I also wrote a Preact Internals series.
In 2014, I gave an early talk on React + Om (a ClojureScript wrapper for React) and wrote an experience report on working with them.
How do we make websites faster?
Slide with stylized network waterfall discussing site performance best practices The new fast is a talk I gave several times in 2016 to share advanced web performance techniques that were fairly new at the time. I covered HTTP/2, server push, advanced CDN usage, and streaming responses.
What should we learn from the history of UI engineering?
Constraint programming in the browser was a talk I gave at JSConf 2013. See also: Being inspired by Sketchpad and its constraint-oriented UI.

Work

Payments
My primary work for the past six years has been building UIs and APIs for payments.
Design tools
From 2011–2017, I primarily worked on in-browser WYSIWYG design tools for websites and images.
Full resume on Linkedin

Projects

Open-source and volunteering
Screenshot of Reading Japanese Literature blog page Read Japanese Literature is a podcast and blog run by my partner, Alison. I help with the website and sound design.
Pyret is an in-browser programming language and environment for use in the Bootstrap curriciulum. In 2020 and ’21, I updated their IDE to be shinier, faster, and easier to use.
Federated Wiki Screenshot of Smallest Federated Wiki UI model is a new, personal version of the wiki being developed by Ward Cunningham. In 2011, I collaborated with him to design and build the core UI paradigm that still powers it today.