Portfolio
People sometimes ask what I've worked on and how I work. This page is a quick answer: some things I've shipped, the tools I've built, and the talks and writing where I've shared my learnings. It leans toward design systems and developer experience.
Design systems, in practice
- I helped maintain Canvas Kit, Workday's open source design system. My focus wasn't just the components, but the adoption: onboarding new contributors, growing the internal developer community, and making Canvas Kit the easy path so thousands of developers used it by their own choice.
- I turned Canvas Kit's contribution story around. I started with stalled PRs that couldn't be merged. I rebuilt the process into one where contributors were supported, PRs were merged successfully, and new components were made by the community.
- I helped developers level up by pairing directly with them on their product work, teaching workshops, and holding weekly office hours where anyone could bring questions and get direct support.
- I've talked publicly about what makes that kind of adoption work, most recently in a talk called "What makes a design system win" at React Day Berlin and Wey Wey Web in 2024.
Deep technical work
- When a principal engineer's three-month feature landed as a single 16,000-line pull request, nobody on the team wanted to review it. It was also one of the most technically challenging features we'd shipped, hard to fully understand let alone review. So I took it on, found hundreds of issues that would have broken parts of our documentation, and helped get it shipped two weeks later: Canvas Kit #1962.
- Full-stack work on Workday Assistant, which wasn't just a chat interface; it doubled as an application component and a comments engine for documents in Workday Drive. I joined the team to keep working with one of my mentors, and when they left three months in, I inherited much of the technical leadership as the most senior UI developer on the team. We launched internally, then to 55M users, with zero major issues. I'll credit that to having a well-rounded team and a fair bit to solid software design and robust test automation.
- Micro-frontends before they had the name: at Rally Software (agile project management software, which unfortunately lost to JIRA), I was on the team that moved our app to React in 2014, then became the liaison helping other teams get onboarded and productive as the framework transition spread. We built a "core page framework," our own 2015-style micro-frontend architecture, so non-React pages could live within our React shell. That work led into modernizing our UI testing stack. While still on Selenium and WebdriverIO, we built abstractions that made tests less flaky and failures easier to debug.
- There's something to the idea that 10,000 hours builds real mastery, and my first full-time role gave me a head start: building a real-time motion capture / augmented reality simulation from scratch, mapping real-world movement and props into a virtual world using off-the-shelf infrared camera hardware. I wrote my own networking protocol, worked out the math to map real-world coordinates to virtual ones, and built tools to calibrate both spaces to match with full fidelity. And it performed in real-time! The project never went further than that role, but augmented reality technology has since caught up.
Tools I've built
- I recently released Playscape, a sandbox-like Storybook addon for forking existing stories, creating a local library of demos and examples, and sharing them with others. In its first week of release, it has the most weekly downloads for playground/sandbox addons. I'm a little embarrassed because it's still in early development, but attracting over 500 downloads already is very encouraging.
- A browser extension that adds a table of contents to GitHub READMEs and Markdown files. Years later, GitHub shipped the same idea themselves.
- ASTsareAwesome.com, a little site I built to teach developers how to write their own dev tools, including parsers, linters, and codemods. This ties into several other talks and workshops, including "Start Building Your Own JavaScript Tools" (video) and the "Become a JavaScript Toolmaker" workshop.
Content
I write and speak about design systems and developer tooling regularly. The full list is on my speaking page. A few of my favorites:
- "What makes a design system win" — React Day Berlin & Wey Wey Web, 2024
- "Testing our way to a better developer experience" - React Day Berlin & Wey Wey Web, 2024
- "Start Building Your Own JavaScript Tools" - JSNation, 2023 (video)
- "How Linters, Compilers & Other Cool Things Work" - CascadiaJS, 2018 (video)
- "How to Win Developers and Influence Adoption" — CascadiaJS, 2025 (video)
Community Building
Beyond the work I've shipped, I've organized meetups and community events to bring developers together.
- I organized React Denver for several years, co-ran DenverScript, and founded HartfordJS — local developer communities built from scratch and run on a monthly cadence.
- I organized local workshops for Global Diversity CFP Day and mentored new speakers giving their first meetup or conference talk.
Current exploration
- I wanted to get back to hands-on design systems and UI work, so I started PuzzleUI, a component library for puzzles (it has a Storybook, if you want to poke around). It's early with just three components, and I'm building my first app using one of them now. It's my sandbox for exploring design systems work, component development with AI, and building applications using these tools.
-
I also build a lot of small "personal software" assisted by AI. This
has given me a lot of practice and learnings around how to develop
with LLMs effectively. A few from the last few months:
- Tabfinity, my personal tab manager — right now it shows a summary of how many browser tabs I have open, broken down by window.
- PeakBadges, a badge tracker for the game Peak — my three kids and I have collected a lot of them, and I needed a way to keep track.
- Satisfactor, for the game Satisfactory — it tracks what our factories need to manufacture and our progress toward major game milestones.
- A notes app — more traditional, but built and tuned for how I actually take notes.
If you want more context on any of this, or want to talk about a role, let's chat.