Tony Wareck — Senior UX Designer
ClientWaters Corporation
Year2017 — Present
RoleSenior UX Designer
IndustryScientific instruments
TeamSolo UX, 6 product squads

Making science
buyable, quietly.

Nearly a decade leading product design at Waters Corporation — the world's largest pure-play scientific instruments company — across three intertwined workstreams: B2B e-commerce, a unified design system, and a model-assisted support triage tool now in pilot.

+25%
Checkout conversion lift
$3M+
Revenue influenced
100+
Components, 6 properties
~40%
Faster design-to-dev cycle
i.
E-commerce
Stock visibility, faceted search, single-page checkout
ii.
Design system
Tokens-first, 100+ components, dev handoff specs
iii.
AI triage
Tier-1 self-service for the top 40 failure modes

One Waters, one buying experience.

Waters builds the chromatography and mass spec instruments behind much of modern drug discovery and food safety. But the company sells two very different things: a $400 consumable column moves through a self-serve cart, while a $1.2M instrument moves through a sales conversation. For years, those paths lived in completely separate digital worlds.

Customers had to figure out which Waters they were dealing with every time they visited. The catalog, the marketing site, the account portal, and the support tool all looked and behaved differently — built by different teams, shipped on different stacks, governed by no shared visual language. A senior chemist placing a $50K reorder used three logins and four navigation patterns to do it.

The mandate, when I joined the digital team, was deliberately broad: make this feel like one company. What that turned into, over several years, was three workstreams that had to be done in roughly the right order — fix the front door first (e-commerce), build the language we'd use to fix everything else (design system), then start applying that language to the harder problems (support, AI).

Checkout that gets out of the way.

+25%
Checkout conversion lift after redesign
−28%
Order-related support inquiries post-launch
$3M+
Revenue influenced over the first 18 months

The e-commerce side was where the friction was sharpest, so we started there. Decibel session recordings and Qualtrics feedback gave us a continuous picture of where buyers were getting stuck — not just where they were dropping off, but the moments where they paused, scrolled back, or opened a support chat. Three problems showed up over and over.

Roadblock 01 — Hidden inventory and lead times

Customers routinely committed to orders before finding out what was actually in stock. Stock status lived two clicks deep in a separate "availability" tab; lead times only appeared after the order was placed. The pattern in session replays was painful and consistent: a chemist would build a cart of six items, click through to checkout, hit a wall, abandon, and call support to ask "is this actually shippable this week?"

We surfaced real-time stock and ship-window data directly in the cart row, with traffic-light visual treatment so it was scannable at a glance. Out-of-stock items now offer alternates inline rather than blocking the cart.

waters.com / cart
3 items Live stock data
ACQUITY UPLC BEH C18 Column · 1.7 µm, 50 × 2.1 mm
P/N · 186008949
In stock · Ships 1–2 days
2
$1,224
XBridge Premier BEH C18 · 2.5 µm, 100 × 4.6 mm
P/N · 186009868
Low stock · Ships in 5–7 days
1
$542
Mobile Phase Solvent Filter Kit
P/N · 700002632
In stock · Ships 1–2 days
1
$118
Subtotal
$1,884
Continue to checkout →
1
Stock badge in every row, color-coded to scan in under a second. The same component is used in search results and product detail pages, so the signal is consistent across the entire buyer journey.
Roadblock 02 — Search & faceted filtering

Waters sells tens of thousands of SKUs. A chemist looking for a specific column has to filter on chemistry, particle size, pore size, length, internal diameter, and pH range — and the legacy catalog made them do it by drilling through a tree of category pages, with no way to see how many results each filter would return until they clicked.

We rebuilt the catalog as a single faceted search surface with live result counts on every filter, query persistence in the URL, and an active-filter chip bar so customers could see exactly what they'd narrowed to and remove individual constraints without starting over. The biggest impact wasn't the filter UI itself — it was that procurement teams could now save and share a filtered view with chemists for approval.

Chemistry
  • BEH C18342
  • BEH C8118
  • HSS T387
  • CSH C18164
Particle size
  • 1.7 µm156
  • 2.5 µm92
  • 3.5 µm74
  • 5 µm20
Length
  • 30 mm28
  • 50 mm64
  • 100 mm41
  • 150 mm23
64 results · sorted by relevance
BEH C18 × 1.7 µm × 50 mm ×
ACQUITY UPLC BEH C18 · 50 × 2.1 mm
P/N 186008949 · In stock
$612
ACQUITY UPLC BEH C18 · 50 × 3.0 mm
P/N 186002350 · In stock
$648
ACQUITY UPLC BEH C18 VanGuard · 50 × 2.1 mm
P/N 186003975 · Low stock
$724
2
Live result counts on every filter option. Procurement teams now share filtered URLs for approval rather than emailing back-and-forth about part numbers.
Roadblock 03 — Multi-page checkout → single page

The legacy checkout was a four-step flow: shipping address, billing address, payment method, review. Each step had its own page with its own validation pass. Session recordings showed a brutal pattern: customers reaching the review step, finding an error in their shipping address, and getting kicked back to step one with their cart preserved but their payment information cleared. Drop-off at the review step was the single largest leak in the funnel.

We collapsed the four steps into a single-page checkout with progressive disclosure — fields validate inline, sections expand and confirm as completed, and the order summary updates live. The whole experience now fits above the fold for most customers on desktop. Order-related support tickets dropped 28% within the first quarter, mostly from the elimination of "I lost my payment info" calls.

Before

Four-step flow

  • Shipping → Billing → Payment → Review
  • Page reload between every step
  • Validation only on next-click
  • Errors at review kicked users back to step 1
  • Payment info cleared on back-navigation
After

Single-page checkout

  • One page, progressive disclosure
  • Inline validation as fields complete
  • Live order summary, sticky on desktop
  • Edits never lose adjacent state
  • Saved addresses surface based on PO number
What I'd do differently

I underweighted procurement workflows in the first round. The chemist-as-buyer was easier to design for, but the actual high-value persona was the procurement coordinator placing repeat orders for an entire lab. I'd start the next round there — with workflows for purchase orders, multi-shipment splits, and approval chains — instead of bolting them on after launch.

One system, five properties.

100+
Components, used across 6 product properties
~40%
Reduction in design-to-development cycle time
0 → 1
Built from scratch, including governance model

Once the e-commerce work was shipping, the next bottleneck was obvious: every team was rebuilding the same components in slightly different ways, and engineering was burning sprint capacity on visual debt. The catalog had its own button styles. The account portal had its own modal. The support tool had three different table treatments. Nothing rolled up.

I migrated the existing scattered Sketch libraries into Figma and rebuilt from the ground up. Tokenized variables for color, spacing, typography, and elevation. Themable modes for the eventual dark and high-contrast surfaces. Over a hundred components, all built against real product work in tandem with engineering — not in isolation, not aspirationally.

The hardest call — fighting for tokens

The single most contested decision was insisting on a tokens-first architecture when engineering wanted to ship faster with hardcoded values. Their argument was reasonable on its face: we had a hard launch date, the token layer added a week of upfront work, and "we can refactor later." I'd seen what "later" looks like at three previous companies — it looks like never.

What I pushed for, and eventually got, was this: no hardcoded color, spacing, or type values would ship in any new component. Existing legacy code could stay until its next touch, but every new line would reference a token. I made the case in cycle-time math — the upfront week would pay back the first time we needed to add a dark mode, theme a partner property, or adjust the brand. We added dark mode six months later in two days. Without tokens, that would have been a sprint.

color/ink#0A1428
color/blue/700#1F3A5F
color/blue/500#3A6EA5
color/red/600#D23A1A
color/green/600#0A8A3A
color/paper/0#E6E3DA
Component library — built against real product

The library covers the surfaces every property actually needs: form controls, navigation patterns, data tables with sticky headers, modals, toasts, badges, and a dozen specialized scientific patterns (spec tables, part-number layouts, stock indicators). Every component ships with usage docs, accessibility notes, and a list of where it's currently used in production — so when someone proposes a change, we can see what would break.

Waters Design System / Components v3.4 · 142 components
Add to cart Quote
button / primary, secondary
input / text · with placeholder
In stock Low stock Discontinued
badge / status · 3 variants
Product row
P/N · 186008949
product-row / cart, results
Dev handoff — speccing for build, not just for design

The design-to-dev cycle time problem wasn't really a Figma problem. It was a handoff problem. Engineers were getting Figma frames, eyeballing the spacing, and writing CSS that drifted within two sprints. I worked with the engineering leads to define a spec format that linked every visual property in a component back to its token name — so handoff stopped being "make it look like the mock" and started being "implement these named tokens."

component / button-primary specs.json
backgroundcolor/blue/700
colorcolor/paper/0
padding-yspace/200
padding-xspace/400
font-familyfont/sans
font-sizesize/100
font-weight500
border-radiusradius/100
hover:backgroundcolor/blue/800

Combined with a contribution model that let any product team propose new components (with a lightweight design-review step before they joined the canonical library), the system stopped being a bottleneck and started being a force multiplier. Design-to-dev cycle time on covered components dropped roughly 40%.

What I'd do differently

I'd invest in visual regression testing in CI from day one. We caught most token drift in design review, but a small number of components quietly drifted in production for months because no automated check was watching them. Storybook + Chromatic would have paid for itself ten times over.

Triage that reads the lab.

~40
Failure modes covering most of inbound support volume
2
Entry paths: guided selector or free-form description
Pilot
In limited rollout — measuring deflection, not declaring victory yet
Status: in pilot. This is in-progress work. Numbers below are projections from the pilot cohort, not full-launch results — I'd rather show this honestly than oversell it.

Waters fields hundreds of thousands of support cases a year. A surprising amount of that volume — by our analysis, well over half — concentrates around the same forty or so failure modes: baseline drift, pressure spikes, mobile-phase contamination, lamp aging, fitting leaks. These are problems an experienced lab manager could often diagnose in five minutes, but an early-career chemist will, reasonably, open a case for.

The triage tool gives customers two ways in, because we learned early that one path doesn't fit. Some customers know exactly what's broken and want the fastest path to a known fix. Others can describe symptoms but can't classify them — they need the system to help them name the problem before solving it.

i
Guided path
Customer selects their product, then picks from a curated list of common issues for that model. Surfaces targeted troubleshooting steps from the support knowledge base.
Select productpick issuewalk through fix
ii
Free-form path
Customer describes the problem in their own words. The model matches against the support knowledge base, surfaces likely causes, and asks a clarifying question if confidence is low.
Describe problemreview matchesfix or escalate
The free-form path in practice

The free-form path is the more interesting design problem. A chemist saying "baseline drift on UPLC after we swapped the mobile phase yesterday" doesn't want a chatbot personality — they want a fast read on what's likely wrong, ranked by probability, with a clear way to either try the fix or get to a human. The interface had to communicate the model's confidence honestly without making the customer do calibration math.

Case 24-AC-118 · UPLC support
Match confidence
0.92
Customer · 2:14 PM
"Baseline drift on UPLC after we swapped the mobile phase yesterday — about 0.3 AU over 20 min."
Triage assistant · likely matches
Two issues match this signature with high confidence. Both are common after a mobile phase change and resolve with the same first step.
Likely · Detector contamination · Mobile-phase contamination
1
Confidence is shown as a calibrated bar with the numeric value, not hidden behind a single classification. Customers can see when the system is unsure — which is the moment it should hand off, not push harder.
What I'm watching, what's still open

The honest answer about an AI feature in pilot is that the design questions and the model questions are intertwined, and we're still learning. A few things I'm specifically watching:

Calibration over precision. A 70%-confident match shown honestly is more useful than a 90%-confident match shown with no context — because the second one trains customers to ignore the system the first time it's wrong. The visual treatment of confidence is doing real work and we're testing several variants.

Escalation timing. The right moment to hand off to a specialist isn't when the model gives up — it's when the customer's frustration signal crosses a threshold. We're instrumenting that, but it's open how we use it.

Knowledge-base feedback. The triage tool is only as good as the support content it pulls from. We've started using mismatches as a signal back to the documentation team — the questions the model can't answer well are the gaps in the knowledge base.

What I'm holding loosely

I'd be lying if I said I had a clean post-launch number for this one. What I have is a pilot, a working hypothesis, and a measurement plan. The senior judgment call here was not pre-announcing a number — the temptation was to commit to a 35% deflection target in the kickoff deck. The tool will ship better because we didn't.

Outcomes after 18 months.

+25%
Checkout conversion lift
−28%
Order-related support inquiries
100+
Components in design system, 6 properties
~40%
Faster design-to-dev cycle on system components

What this work taught me.

i.

The cheap fix usually compounds.

Hardcoding values to hit a launch date isn't a tradeoff between speed and quality — it's a loan with a high interest rate. The dark mode that took two days with tokens would have taken a sprint without them. I'll fight for the foundational layer every time.

ii.

Surface the system at the moment of decision.

Stock data existed before we touched the cart — it just lived two clicks away. Most of the conversion lift came from moving information, not creating it. The same lesson held for confidence in the AI triage UI.

iii.

Honest uncertainty beats confident wrongness.

Especially with AI, especially with B2B customers who'll burn an entire experiment if they trust the wrong recommendation. Showing the model's confidence was more important than maximizing it.

iv.

Design systems are governance problems wearing UI clothing.

The components were the easy part. The hard parts were the contribution model, the deprecation policy, and the conversation with engineering about what "done" meant. The visual library was downstream of those.