I fix inconsistent UI systems so teams can ship faster.
Twenty years at the seam between design and engineering, building the component libraries, tokens, and documentation that make the right output the natural result of using the system. Structure over tooling. Clarity over more.
- 20 yrs in production UI
- WCAG 2.2 built in, not bolted on
- 1 open-source library, built in public
Good product experiences do not happen by accident.
They depend on clear decisions, consistent patterns, accessible interactions, and a shared understanding between design and engineering.
I help teams make sense of messy interface problems. Sometimes that means improving a design system. Sometimes it means clarifying a workflow. Sometimes it means making sure a component isn't just reusable, but understandable, accessible, and useful in the hands of real product teams.
Clarity over complexity. Structure in service of experience.
I help teams improve the systems behind the experience.
Product teams often struggle in the space between an idea and a shipped interface. Designs look polished in Figma; the implementation drifts. Components exist; teams don't know how to use them. Accessibility gets discussed late. Small interface decisions pile up until the product feels harder to use than it should.
Clarify the experience
I turn confusing flows, vague requirements, and inconsistent interface decisions into clearer product experiences — reviewing user journeys, identifying friction, simplifying interaction patterns, and helping teams make decisions that are easier for users to understand.
Strengthen the system
I improve the reusable pieces that shape the product experience — component behavior, accessibility guidance, design tokens, documentation, usage rules, and the patterns teams rely on every day.
Bridge design & engineering
I reduce the translation loss between design intent and implementation. I work comfortably with designers, engineers, product owners, and stakeholders so interface decisions aren't only thoughtful — they're buildable, maintainable, and accessible.
-
A button label can reduce confusion.
-
A form pattern can prevent errors.
-
A focus state can make a workflow usable.
-
One system decision can save dozens of teams from re-solving the same problem.
The interface is where strategy becomes real.
A product can have a smart roadmap, strong research, and talented teams — but users only experience what makes it to the screen. That means small details matter.
Good UX isn't only about big ideas. It's also about the small, repeated choices that shape how a product feels over time. My work focuses on those choices.
I care about the space between people, patterns, and code.
I started as a designer who learned to code. Over time, that turned into 20 years of building interfaces, component libraries, and design systems for real product teams.
That background taught me something important: experience problems are rarely just design problems or engineering problems. They usually live in the handoff, the assumptions, the missing details, the unclear patterns — the places where teams think they agree but don't.
I like working in that space.
-
Is this interaction clear to the user?
-
Does the interface behave the way people expect?
-
Can teams reuse this pattern without misusing it?
-
Are we solving the actual experience problem, or only making the screen look better?
-
Will this still make sense when another team has to build on it six months from now?
That's the work I want to keep doing.
A shift to precision work
Writing about UX engineering, accessibility, and design systems.
I write about the parts of front-end work that sit closest to the user: accessible components, design systems, interface patterns, AI-assisted development, and the changing role of front-end developers.
Practical, reflective, and grounded in real work. I'm interested in how teams make better decisions, not just which tools they choose.
Read the blogTools that show how I think.
Three interactive pieces, free to use — and a quick way to see how I approach systems work. Each one is accessible by construction and token-driven.
Design System Scorecard
Score your system across the five dimensions of a healthy design system in about ten minutes. Walk away with a clear picture of your biggest gaps.
Take the scorecardWhat an audit finds
A working sample of the audit deliverable: inspect a specimen of drifted UI and read findings ranked by severity, each paired with its remediation.
Open the demoWhat a token does
Change one primitive and watch it propagate through every component at once. The playground makes token indirection visible.
Open the demoWant the full set? Explore all the tools .
Designer by origin. Engineer by practice. Experience-focused by choice.
I've spent my career working between design and engineering — building marketing sites, product interfaces, design systems, component libraries, and internal tools across a range of teams and industries.
The common thread is simple: I care about making interfaces clearer, more accessible, and easier for teams to use well. I'm not interested in complexity for its own sake — I'm interested in the kind of structure that helps people move through software with more confidence and less friction.
Teams I've worked with
Have an inconsistent UI system that's slowing you down?
Whether you're hiring for a design systems or UX engineering role, or want a second pair of eyes on a component library, send a note. I reply within one business day.