Back to workFeatured in Uber’s blog
Uber overview

Making design-system adoption visible and actionable at Uber’s scale

As a Design Engineer on Uber’s Base Design System team, I redesigned and expanded an internal adoption dashboard to make Base usage, accessibility issues, and screen ownership visible across teams, while helping migrate 100+ Rider screens onto the design system.

Role
Design Engineer
Focus
UX design · Design systems · Accessibility · Internal tools
Collaboration
Design systems · Accessibility · Product design · Engineering
Timeline
2023 – 2024
100+
Rider screens migrated to Base
+17%
Average Rider Base adoption (contributed to)
01Diagnosis

Base adoption was more than a component problem

Adoption wasn’t only about whether teams reached for the right component. It could break down at several points between design intent and what actually shipped, so I mapped where those gaps lived.

Product design
Is the right Base component known and used? Screens ran across legacy, Base, and custom.
Handoff + implementation
Does the intended component carry through correctly from design into build?
Production
What is actually running in the product, regardless of how it looks?
Internal tooling marking non-Base components, Base components, and the 100% Base goal state
Internal tooling flags what a live screen is actually built from. Red is non-Base, green is Base, and the goal state is a screen that is entirely Base.

A screen could look like Base without actually using Base underneath.

02Visibility

Making adoption understandable and actionable

An early version of the dashboard made Base adoption percentages visible, but a percentage alone didn’t explain where adoption was happening, who owned those experiences, or why improving it mattered.

I redesigned and expanded the dashboard around the people who could influence adoption, bringing production screens, ownership, user flows, progress over time, and eventually accessibility issues into one view.

The Base adoption dashboard, full layout
Filtering the dashboard by platform and sorting by flow or owning manager
Filtering by platform, and sorting by flow or by the manager who owns it
Scrolling the full dashboard
Scrolling the full dashboard
One view for adoption, ownership, flows, and progress, explored by the people who own the work.

Make the state of adoption visible

The dashboard paired every percentage with the production screens behind it, so teams could see what the number was actually made of.

Connect adoption to ownership and progress

I organized it around what managers could act on: user flow, design and engineering owner, product, and platform. Deltas showed movement over time.

Educate, not just measure

Working with accessibility partners, I brought critical findings in next to adoption, so the cost of staying off shared components was visible in the same view.

Explorations from design jams on how to surface adoption and accessibility issues
Explorations from design jams: how much accessibility detail a screen card could carry before the number stopped being readable.
Dashboard screen cards showing accessibility issue severity and quarterly progress
Where it landed: severity called out on the card itself, next to adoption and quarterly progress.

The dashboard evolved from a view of adoption percentages into a shared way to understand

  • how widely Base was actually used
  • who owned each experience
  • where teams needed to pay attention
03Action

Turning adoption gaps into product changes

Alongside the dashboard, I worked with product designers, Design Managers, and engineers to turn adoption gaps into migrations. Before proposing a change, I tested the existing experience and evaluated whether a Base component could preserve its behavior, functionality, and UX.

I treated migration as a product decision, not just a component replacement.

Each migration still had to support the existing experience. When Base wasn’t enough, I worked with the team to decide whether the system should evolve or a custom solution was still justified.

Can an existing Base component support the experience?
Yes
Migrate, keeping the behavior and fixing consistency or accessibility on the way.
Partially
Take the gap to the Base team and see if an existing component should cover it.
No
Back to the Base team. A new component if it qualifies, custom if that is justified.
A tipping and rating screen before and after moving onto Base
Some migrations were intentionally subtle. With the tooling overlay on, the flags are everywhere. With it off, the screen looks almost unchanged while running on shared components underneath. The next time Base changed, this screen picked up the change without anyone reopening it.

The technical solution still needed buy-in

Each screen belonged to a team with its own priorities, so the right technical solution still needed buy-in. I reviewed migrations with owning designers and managers, redesigned screens myself when needed, and helped move approved changes toward implementation.

With engineering, I prioritized low-adoption screens and clear one-to-one replacements that could raise adoption quickly while moving more experiences onto shared components.

04Measurement

Closing the loop

The dashboard and migration work became two parts of the same effort. The dashboard made adoption gaps visible, while migrations gave teams a way to act on them and see that progress reflected over time.

Migrated screens accumulating, with improved-screen count and Base score climbing
Screens moving onto Base one at a time, with the count and the adoption score climbing behind them. Progress teams could watch, not just a single percentage.

The Base team also used the dashboard in broader organizational conversations, to show where adoption stood, how it was changing, and where teams still had room to improve.

Together, the dashboard and the migration work created a feedback loop between understanding adoption and improving it.

+17%

Increase in average Base adoption across Rider, contributed to through the dashboard and migration work.

100+  Rider screens migrated to Base.

05Reflection

What I learned designing for change at organizational scale

Migration is a product decision

The hard calls weren’t which component to use, but whether a change preserved the experience a team already relied on.

Alignment mattered as much as the fix

I expected the technical complexity to be the hardest part. Progress depended just as much on building alignment with teams I didn’t own.

Visibility and action reinforce each other

The dashboard mattered because it led to change, and change stuck because it stayed visible. Each made the other credible.