Portfolio
People sometimes ask what I've worked on and how I work. This page is a quick answer: a few shipped things, the tools I've built, and the talks and writing where I've thought out loud about it. It leans toward design systems and developer experience. My work follows a pattern: figure out a problem, teach the solution, and build the process around it to make it stick.
Design systems, in practice
- I helped maintain Canvas Kit, Workday's open source design system. My focus wasn't just the components — it was adoption: onboarding new contributors, growing the internal developer community around the system, and making Canvas Kit the easy path so thousands of developers used it by choice rather than by mandate.
- 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 even understand let alone review. 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 — the payoff of solid software design and robust test automation.
- Micro-frontends before they had the name: at Rally Software (agile project management software — spoiler, we 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 alongside 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 far more useful 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 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. The project never went further than that role, but augmented reality technology has since caught up to prove the idea out.
Tools I've built
- 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 — parsers, linters, codemods — through 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 that are most relevant here:
- "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 mentor 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 — a couple of components live, more advanced ones planned — and right now I'm heads-down on testing infrastructure and productionizing it before I go further. It's my sandbox for exploring design systems work, component development with AI, and building applications on top of what I make.
-
I also build a lot of small "personal software" — tools for
genuinely mundane problems, mostly built with AI as a way to learn
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.