Senior UX Designer · Design Systems

Richard Andhika

My favourite design decision is usually the one that removes something.

Utrecht, NL
About

10 years in product design and UX. Built and scaled design systems across 4 countries at Aegon NL (5M+ customers), unifying 60+ products on one component architecture.

Indonesian by birth, Dutch because worstenbroodjes.

Outside work
Skiing. Alps when budget allows, dry slopes when not
Emerging tech. Currently building things with AI I didn't know I needed
Gym. Miss a week and the thinking gets worse
Photography. Animals, forests, things I don't want to forget
Expertise
Token architectureHTML / CSSWCAG 2.2 AAComponent API designSystems thinkingAdoption strategyStakeholder mgmtContent designProduct strategyAI prototypingData analysis (GA360, Hotjar)Saying no to feature requests, politely
Contents

Two case studies. One feature deep-dive. Common thread: adoption.

Case Study 01 · Design Systems · Aegon · 2022–2023

Aeon Design System
60+ products, one system. Actually used.

Role
Design System Designer
Company
Aegon NL · 5M+ customers
Team
2 senior UX designers + 3 engineers + PO
The Problem

47 button variants. Three platforms. Zero shared components.

Each platform built independently. No shared components, no token language, no documentation. Every team solving the same problems in isolation.

Scope · What I owned
Component audit + architecture
Auto-layout + conditional logic
Stakeholder alignment
Component brief template
Adoption strategy
Documentation guidelines
Semantic color tokens
drag to reveal
AIP · Before & After
The same portal. Four years apart.
Left: AIP 1.0, each business unit shipping its own patterns. Right: AIP on Aeon, one token system, one component set, 22,000 advisors on a consistent interface.
Aeon Design System
From 47 variants to one shared language.
Buttons, fields, date pickers, step indicators. Every component documented with states and usage rules. Built for three platforms.
Buttons
Hypotheek Portaal
Before · Fragmented state
Aeon · Buttons
Text Input
Beleggingsplatform
Before · Fragmented state
Aeon · Text Input
Naam
Postcode
IBAN
Dropdown
Life & Pensions
Before · Fragmented state
Aeon · Dropdown
Badges
Pensioenportaal
Before · Fragmented state
Aeon · Badges
Status badges
Primair Secundair Fout Geldig Waarschuwing
Filter pills
Toggles
Zorgverzekering
Before · Fragmented state
Aeon · Toggles
Aanvullende vergoedingen
Betalingsfrequentie
Interactive slide. Click any card to reveal the Aeon version.
Architecture

Three platforms. One component.

Platform-specific Field variants were replaced with a single component driven by context flags. Reduced build surface, eliminated drift, and cut load times by 25%.

Input component properties
Alert and notifications component properties
File upload component properties
Documentation & Adoption

Docs nobody read. Then docs that moved teams four times faster.

Scattered, inconsistent, rarely referenced. We restructured the system documentation: usage guidelines, do/don't examples, token mapping, team contribution notes. 89% of adopting teams cited it as the primary reason they moved 2× faster.

Aeon documentation overview
Documentation overview screenshot
Documentation detail screenshot
Stamps illustration overview
Illustration System
Stamps
A stamp communicates a single action or fact. Stripping illustration to its minimum keeps it legible at 120px. Below that, use an icon.
Outcomes
Customer outcome
+40%
Average form completion rate increase across rebuilt forms
Measured · Analytics
i
Average increase in form completion rate across customer-facing forms rebuilt on Aeon components. Measured via product analytics, baseline window vs. post-rollout window of equal length.
Efficiency
−40%
Development time for new features built on system components
Dev team-reported
i
Reported by dev leads across three onboarded teams. The component brief template eliminated most one-off build requests before design started.
Adoption
85%
Component adoption rate across tracked screens
Measured · 3 teams
i
Measured across the screens of three onboarded teams in the rollout's first phase.
Reflection

What worked. What I'd change.

What I'd keep
Component brief template
Forcing teams to articulate requirements before design eliminated most custom requests before a pixel was touched.
Documentation as a design artifact
89% of adopting teams cited it as the primary reason they moved 2× faster. Structured, designer-led guidelines. Not afterthoughts.
Framing in business terms
Load time = retention. Consistency = support costs. That kept the team funded through two org changes.
What I'd change
Brief template before the audit
No structured format in round one. Brief first, audit second would have saved weeks of rework.
Measure adoption from week one
Started tracking months in. A week-one baseline would show trajectory, not just endpoint.
Case Study 02 · Design System Adoption · Aegon · 2022–2023

When your biggest team won't adopt your system.

Building Aeon took 18 months. Getting Hypotheek to use it took another six.

Timeline note: CS1 and CS2 ran concurrently. Hypotheek adoption began in the final 6 months of the Aeon build — not after it completed. Both case studies are correctly dated 2022–2023.
The Situation

Largest revenue team. Openly resistant.

"Our tables are too complex for your system."
"We can't wait weeks for approvals."
"We'll miss deadlines if we have to conform."
The Reframe
"I'm not asking you to simplify mortgages. I want to simplify everything that isn't mortgage-specific."
Analysis

70–80% was standard. Just wasn't packaged for them.

Shared fundamentals
Sorting, pagination, selection, bulk actions, accessibility, keyboard behavior
Mortgage-specific complexity
Conditional columns, inline calculations, warning states, expandable rows
The Contract

Clear ownership. Neither team steps on the other's toes.

Hypotheek
layer
Business logicDomain rulesCustom renderingConditional columnsExtension contentUser actions
API
boundary
renderCell()renderExpandedRow()isVisible()
Design
System
UI infrastructureInteraction patternsVisual designAccessibilityPerformance
Solution

Composable, not rigid.

We evolved the Data Table into a composable core with explicit extension points. Structure, behaviour, and accessibility shared; cell rendering, expansion slots, and conditional columns owned by Hypotheek.

Their edge cases stayed. No fork required.

①–⑦ DS infrastructure·⑧ Team extension slot
drag to reveal
Hypotheek · Before & After
The same flow. Before and after Aeon.
Left: the legacy in-aanvraag UI, custom-built and detached from the system. Right: rebuilt on Aeon components.
Hypotheek in Aanvraag · Aeon
Domain-specific row expansion slots.
Custom cell renderers, custom mortgage-specific logic. The spacing, animation, and behavior are handled by the design system.
drag to reveal
Klant Documenten · Before & After
Process Change

The biggest fear wasn't standards. It was waiting.

01
Direct weekly sync
Every open question gets a live answer that week. No ticket, no queue, no waiting to find out if you're blocked.
02
Every request gets a clear answer
Yes, not now, or no. Always with a reason. No ambiguity about where things stand or what comes next.
03
Exceptions documented, not blocked
Edge cases get a temporary exception and a note. The system stays intact. The team ships on time.
Outcomes
Consolidation
3 → 1
Custom tables replaced with the shared Data Table
Measured
i
Three separate custom-built table implementations replaced with one shared Data Table component.
Quality
−62%
Table-related accessibility defects (keyboard + focus)
Verified · Audit
i
Defect-ticket count, pre and post adoption. Accessibility-tagged tickets opened against the Hypotheek table screens in the 6 months before vs. 6 months after adoption. Most of the reduction came from focus indicators, keyboard nav, and role semantics handled by default in the shared component.
Adoption
~90%
Data Table coverage on Hypotheek screens by end of rollout
Measured · End of rollout
i
Share of Hypotheek table screens running on the shared Aeon Data Table at the end of the rollout window. Started near zero — the team had three custom-built table implementations and no shared components in use.
Reflection

What worked. What I'd change.

What I'd keep
Reframe before redesign
"We can't conform" was data, not pushback to overcome. Listening first turned a hostile team into a design partner.
Ship the contract before the components
The swimlane (DS / API boundary / Hypotheek) was the artifact that won them over. Architectural clarity beat visual polish.
Weekly sync, not Slack
Synchronous trust beat async tickets every time. The fastest path through resistance was a calendar invite.
What I'd change
Engaged Hypotheek six months too late
Should have been embedded with them from week one of the DS, not after they'd built three custom tables. Resistance is cheaper to prevent than to reverse.
No baseline of stakeholder sentiment
Started measuring adoption months in. Without a "hostile to advocate" baseline, the trust shift only lives in stories, not in data.
Selected Feature · Accessibility
WCAG 2.2 AA

Zero accessibility regressions. Two consecutive quarters.

Audited all components against WCAG 2.2 AA: focus indicators (2.4.11), target sizes (2.5.8), dragging alternatives (2.5.7). Updated contrast tokens for every semantic state.

Contrast token map
Let's work together
Richard
Andhika
Frequently asked
Do you need visa sponsorship?+
No. Dutch citizen, full EU work authorization. No sponsorship needed. I do need a sponsor for my cheese addiction.
Are you open to working on-site?+
Yes. Based in Utrecht, well-connected to Amsterdam, Den Haag, Eindhoven, and Rotterdam. Hybrid is my natural default, happy to negotiate the on-site split. Face-to-face is preferred for collabs.
What's your availability?+
1-month notice period, as per usual terms.
Do you work well in organizations without an existing design system?+
Both case studies in this deck are from orgs where I and the team built a design system from scratch while managing active stakeholder resistance. Starting from zero is familiar territory—sometimes preferable. That said, mature design systems looking to integrate LLMs is where my current interest sits.