The design system

An enterprise design system in Figma - variables, tokens, and a full component library - kept in sync with a shared React library through Code Connect. It covers everything from atomic elements to complex UI, and it's shared across three product and dev teams.

Color, spacing, and type tokens as Figma variables, mirrored in code.
Color, spacing, and type tokens as Figma variables, mirrored in code.

Color, spacing, and type tokens as Figma variables, mirrored in code.

From atomic elements to complex components for data-heavy internal tools.
From atomic elements to complex components for data-heavy internal tools.

From atomic elements to complex components for data-heavy internal tools.

Challenge
Three teams, three products, and a design-to-code handoff that drifted every sprint.
Approach
One source of truth in Figma, structured to match the React library one-to-one, with Code Connect linking the two.
Key decision
Governed but flexible. We built one token and component system that every designer and developer could use and extend within clear rules.
Outcome
Faster, cleaner handoffs across three teams. The system became the base for all the product work below.

A prototyping kit for AI tools

As the system matured, I built an AI design framework and a brand-specific component kit that works in Figma Make, Claude Design, and other prompt-to-UI tools. Product teams could generate on-brand, system-accurate prototypes themselves instead of waiting in the design queue.

Claude Design generating a prototype, next to the design system's markdown reference.
Claude Design generating a prototype, next to the design system's markdown reference.

Claude Design generating a prototype, next to the design system's markdown reference.

A prompt-generated prototype using real system components.
A prompt-generated prototype using real system components.

A prompt-generated prototype using real system components.

Challenge
Demand for prototypes outgrew the design team, and headcount wasn't growing.
Approach
Package the system so AI tools could use it correctly, and give PMs and engineers a framework for prompting it.
Key decision
Don't bet on a single tool. I translated tokens, components, and guidelines into markdown files and code, so the system works with any current or upcoming AI design tool.
Outcome
Dramatically increased prototyping capacity across product teams with flat headcount.

Consumer payment flow A/B test

The consumer-facing flow where people set up payment plans for their debt. We tested UX changes in production, kept what worked, and moved the flow fully onto the design system.

Plan selection, redesigned for clarity.
Plan selection, redesigned for clarity.

Plan selection, redesigned for clarity.

Challenge
A high-stakes flow for an anxious audience, plus a growing maintenance cost from the legacy UI.
Approach
Customer interviews and usability studies with PMs and researchers, then iterative testing of individual UX changes.
Key decision
Customers in financial stress prefer clean UI and clear up-front messaging when presented with options. Fancy designs aren't helping.
Outcome
+5% conversion to payment plans, and lower ongoing maintenance cost after integrating with the design system.

Client onboarding

Onboarding new clients used to cross three separate interfaces: the consumer experience, client tools, and internal operations. Much of it lived in backend tools with dated UI that only a few people knew how to use. I designed one experience that connects all three.

Setting up a new client during onboarding.
Setting up a new client during onboarding.

Setting up a new client during onboarding.

Adding assets as part of client onboarding.
Adding assets as part of client onboarding.

Adding assets as part of client onboarding.

The internal team's view of a client during onboarding.
The internal team's view of a client during onboarding.

The internal team's view of a client during onboarding.

Challenge
Onboarding took too long because it was split across tools and teams, and every client needed hands-on help from specific internal team members.
Approach
Map the whole journey across consumer, client, and internal interfaces, then design them as one flow.
Key decision
Replace specialist hand-holding with guided self-serve. Specialists also moved into the same interface clients use - just a different admin level, not a separate internal tool.
Outcome
3x reduction in client onboarding time.

Internal and client tools

The less glamorous backbone: login and authentication, user management, and account tools for internal admins. Dense, permission-heavy interfaces that people use all day.

Client user management, with roles and permissions.
Client user management, with roles and permissions.

Client user management, with roles and permissions.

User activity events in the internal tool.
User activity events in the internal tool.

User activity events in the internal tool.

Multichannel messaging CMS with AI assist

A tool for clients to write the messages they send to consumers by email, voicemail, and SMS. One WYSIWYG editor covers all three channels, with pre-built and client-created variables, plus AI-assisted content creation.

One editor for email, voicemail, and SMS.
One editor for email, voicemail, and SMS.

One editor for email, voicemail, and SMS.

The SMS channel in the messaging editor.
The SMS channel in the messaging editor.

The SMS channel in the messaging editor.

AI-assisted drafting in the messaging editor.
AI-assisted drafting in the messaging editor.

AI-assisted drafting in the messaging editor.

Back to portfolioNext: G/O Media →