Five years of building design infrastructure

Systems Design

2021 - present

Growth breaks things. When a brand scales very fast, the problem isn't growth, it's coherence.

My role

Over the course of five years, waterdrop scaled from 600k to 10M+ customers across 22 markets. I built the design infrastructure that carried that growth without the brand losing what made it worth scaling.

My role was to hold it together: through the systems, processes, and shared language that kept five teams moving in the same direction across five years.

Impact

Design and engineering execution sped up by 40%, measured on design and implementation time per feature, while the business kept growing, CVR and AOV climbing alongside it.

The starting point

The cost of no system

Every feature shipped with a handover document like this one: each gap measured by hand, no components, no variables, two to three days per spec.

When the designer before me left I took all of it over, and it quickly became obvious this would not improve on its own. I proposed a four-month roadmap to the CPO to build a design system from scratch with feature delivery continuing alongside.

Handover documentation before the system. Every value measured by hand and written down as a number.

The foundation

A shared language for design and engineering.

The system had to exist in two places at once, in Figma and in code, and stay the same in both. I proposed that the naming match across them, and that nothing in the interface be called by its value but by its intended purpose.

The brand colours changed roughly once a year, and literal names would have started lying the first time we adjusted. Using semantic naming meant we could change the entire palette without renaming anything.

Semantic naming on a product card. background-neutral resolves to neutral-50, which resolves to E2E3E6.

The debt

The migration that surfaced the debt.

For a stretch the site looked worse than before we started, with new components sitting next to legacy ones. Nothing propagated on its own: the legacy sections had never been structured to receive a system-level change, so we reapplied every one of them by hand. That took two years rather than the four months I had proposed, and it is the part of the work with nothing to show for it except that the next change took minutes.

The bar

Accessibility as an embedded part of the process.

A year before the EU accessibility directive came into effect, I started refactoring our component library with Engineering - not because we had to yet, but because we knew scale would make it harder. Waiting wasn't an option. The work moved us from reactive fixes to a built-in accessibility model.

The colour selectors, before and after. Labels, focus states, and out-of-stock indicators — all absent in the original, all now meeting WCAG 2.4.6, 1.3.1, and 2.4.7.

The extension

Applying system logic to content.

Every launch was manual coordination across teams with no shared structure. Content was being rebuilt from scratch in each market, sometimes finishing hours before go-live.

I moved the organization toward a modular data model that separated content from layout, turning the storefront into a logic-driven engine rather than a collection of static pages. E-commerce teams could now assemble and launch products from a shared template. Production lead times dropped by 50%. The company saved €300k a year in operational costs.

One content structure, defined once. References propagate through sections and templates to every market automatically.

The discipline

Validating design decisions becomes the norm, not the exception.

As a founding member of the cross-functional A/B testing squad with product and e-commerce, I owned the design direction and shifted the company from gut-feel decisions to validated iteration. The harder problem wasn't running more tests. It was guardrails.

A looping promotional banner got shipped across the site after showing a marginal CVR lift, without design review. It made the brand look like a discount retailer. Getting it removed took longer than building it did. My focus became ensuring every optimisation held up commercially and aesthetically, not just one or the other.

The result: 7–10% YoY growth in CVR, RPV and AOV won through testing. 2–3x more experiments in parallel, with roughly 50% less setup time per test.

A cross-section of the component library: navigation, product surface, error handling, flavour selection. Built once, deployed across 22 markets.

The reach

Maintaining visual direction across platforms.

At waterdrop, brand and product design weren't separate workstreams; they informed each other. I shaped decisions about visual direction, how the brand should feel across channels, and how product choices carried through to physical touchpoints.

The consistency across retail stores, performance ads in six languages, event activations, and product partnerships wasn't accidental. It came from shared decisions, made early and built into a system that held.

Reflections

Building design to outlast you

Five years of building infrastructure as the sole designer taught me that the hardest constraint isn't time or resource, it's legitimacy. Getting the DLS, the content model, the testing framework, and the accessibility overhaul adopted meant making each one feel inevitable to the people who'd have to live inside it.

If I were starting again, I'd have fought for dedicated infrastructure time from year one. Shipping systems alongside features worked. But it was a tax I was paying alone, and that's not a sustainable way to build anything that's meant to outlast you.

©2026 Teodora Gheorghe