Revolut · AI-Ops

Revolut AIOps Platform

A single source of truth for model governance and operational safety — rebuilt from the ground up in six months, and adopted by every team shipping AI at Revolut.

Role
Senior Product Designer
Timeline
6 months
Platform
AI-Ops Platform
Company
Revolut
The model playground

The model playground — define a model, wire up tools and variables, and simulate it, all in one place.

Context

Revolut needed a single source of truth for model governance and operational safety. Over six months we rebuilt the AI-Ops platform from the ground up — fixing the information architecture, introducing a split model definition and a model playground, standardising fallback behaviour and online evaluation, and adding traces and triage tools.

It became the primary model-governance product used by every team — enabling safer releases, faster incident resolution, and consistent observability across every model-driven surface. Stakeholders sat at the top of the company: the CEO office, CEO (Nick), CTO (Vlad), the Head of AI, the Head of Product, and the data-science team.

Problem statements

We rebuilt the product to do three things: unify governance, make model behaviour predictable, and let product teams ship models with confidence.

01

A fragmented surface

The old AI-Ops UI was hard to use. Teams struggled to find features and to actually operationalise their models.

02

Testing happened elsewhere

Teams tested models with ad-hoc external tools — inconsistent quality checks and risky rollouts.

03

Failures with no safety net

Hallucinations, timeouts, and format errors caused user friction and long incident MTTR. There was no unified fallback, observability, or evaluation.

04

No governance

Versioning, routing, and rollback had no clear process — releases across dozens of teams were risky.

A traced model incident

A single model incident, traced span-by-span — the observability teams simply didn’t have before.

Primary goals

01

One place to govern

A single, discoverable platform for model management and governance.

02

Fewer failures

Reduce user-facing model failures with standardised fallback strategies.

03

Safe releases

Ship safely with online evaluation, shadowing, and canaries.

04

Faster recovery

Cut MTTR for model incidents with traces, samples, and a triage UI.

05

Faster iteration

Let product teams move quickly with a playground and split model definitions.

My role, team & process

I led product design end-to-end: discovery, IA, interaction design, prototypes, and the ops dashboards. The cross-functional team spanned PM, ML engineers, infra engineers, data scientists, QA, and ops — and executive sponsors were closely involved, which sped up decisions and alignment.

We ran a rapid six-month delivery in iterative releases: discovery (2–3 weeks), IA and prototyping (4 weeks), implementation collaboration (12–14 weeks), then rollout and stabilisation across the rest.

Discovery & key insights

Methods

  • Stakeholder interviews — product owners, Head of AI, PMs, ML and data scientists
  • Logs analysis of past incidents and support escalations
  • Shadowing ops and support during live incidents
  • Usability testing of the old platform
  • Platform benchmarking

Key insights

  • Users repeatedly couldn’t find features — IA was the single biggest blocker to adoption
  • Teams tested models outside the platform because definition and testing were disconnected
  • Ops needed fast access to example failures (sampled traces) and side-by-side fallback comparison
  • Users didn’t understand how versioning or presets worked
  • The model component was too basic to be useful, which held back adoption

What we shipped

We rebuilt the platform around three pillars.

01

Information architecture & UX

Reorganised navigation by user job — Govern → Test → Monitor → Release — not by technical component. Discoverability went up; the learning curve for new teams came down.

02

Split model definition & playground

Separated model definition (metadata, prompts, I/O schema, scoring) from execution and testing. The playground runs scenarios, swaps tools and providers, tweaks variables, and compares outputs — without touching production.

03

Operational features

Standardised fallback strategies, online evaluation with shadow traffic and ground-truth capture, traces and sampled responses for triage, and model routing and versioning (canary, traffic split, rollback).

IA redesign

Users looked for workflows — test a model, set a fallback, review an incident — but the old UI forced them to hunt through technical menus. We reorganised the whole structure around those jobs.

Current IA
01Current IAorganised by technical component — hard to navigate
New proposed IA
02New proposed IAorganised by user job: Govern → Test → Monitor → Release

LLM model flow

The end-to-end LLM model flow

The end-to-end model flow that shaped the new structure.

Designed solution

Everything below is finalised design, currently live in production. Where an approach was tried and dropped, I’ve kept the “what didn’t work” — the iterations mattered as much as the outcome.

Split model & playground

Splitting model definition from execution let teams shape a model — prompts, tools, variables, schema, scoring — and test it in the same UI, without risking production.

Model catalog
01Model catalogevery model, with team, region, health and status
Model definition
02Model definitionmetadata, prompts, and I/O schema in one place
Playground
03Playgroundswap providers, wire tools and variables
Simulate
04Simulaterun a scenario without touching production
First cut
05First cutthe tier-based model we later simplified
First cut
06First cutsystem prompt and reasoning rules
First cut
07First cutresponse and parameters
First cut
08First cutvariables, wired to the prompt
First cut
09First cuta draft, mid-edit
First cut
10First cutthe rigid layout we moved away from
What didn’t work

The first cut was too rigid

My first version modelled everything as fixed tiers. It looked tidy, but the moment teams started using it the rigidity got in the way — every change fought the structure. I split definition from execution and replaced the tiers with a flexible playground (the “First cut” frames above).

Traces & sessions

For triage, ops needed to see exactly what a model did — every span, tool call, and token step — and to pull sampled failures fast.

Traces
01Tracesevery trace, searchable and filterable
Trace list
02Trace listgrouped by session, not by model
Span waterfall
03Span waterfalleach step timed — decompose, generate, sample, score
Span detail
04Span detailinput, output, vendor, and cost per span
Tool call
05Tool callthe exact request and response payloads
Sessions
06Sessionsthe missing layer above traces
Session list
07Session listclient, timing, and the models involved
Session detail
08Session detailthe full multi-model journey of one conversation
Session traces
09Session tracesevery trace a single session touched
What didn’t work

Traces grouped by the wrong thing

The first iteration grouped every trace by agent — click a model, see its traces. After launch we found that a single session often uses several models to get the best result, so “by model” hid the real story. We split the IA: traces and sessions became separate views.

Model fallback

A simple tier builder — Primary → Secondary → Deterministic — with clear precedence, so a failing model hands off predictably. Teams drag to reorder a chain, and compare the outputs of fallback models against the same input, side by side.

Tier builder
01Tier builderPrimary → Secondary → Deterministic, with clear precedence
Pick models
02Pick modelschoose fallbacks from every provider in one list
Chain set
03Chain seta base model with its fallbacks, ready to publish
Reorder
04Reordera drag-and-drop menu on every model
Reorder mode
05Reorder modegrab a model and move it up or down the chain
New order
06New orderthe reordered precedence, ready to save
Confirmed
07Confirmedthe chain, updated
Compare
08Comparefallback outputs, side by side on the same input
Unified input
09Unified inputone prompt, every model’s answer
Read across
10Read acrossscan differences at a glance
Pick a winner
11Pick a winnerchoose the fallback that behaves best

Online evaluation

A guided wizard with sensible defaults — sample size, minimum confidence, KPI targets — and templates for common evaluations. Models can be shadowed against live traffic with ground-truth capture before they take real load, and the report aggregates every metric and drills down to the trace level, so a regression is easy to explain.

Setup wizard
01Setup wizardstart an evaluation from a template
Guided defaults
02Guided defaultssample size, confidence, and KPI targets
Metrics
03Metricspick what to measure — fluency, groundedness, and more
Confidence guard
04Confidence guarda check flags samples that are too small
First cut
05First cutthe earlier evaluation surface we replaced
First cut
06First cutmetrics and traces, harder to parse
First cut
07First cutper-trace scores, without the summary
First cut
08First cutdense tables, little narrative
First cut
09First cutwhat pushed us to the report-led redesign
Evaluation report
10Evaluation reportaggregated across every metric, per cluster
Report & data
11Report & datasummary, proposed actions, and the raw data
Trace-level report
12Trace-level reportevery trace involved in the evaluation
Per-trace scores
13Per-trace scoresgroundedness, hallucination, policy, tone — trace by trace
What didn’t work

The first evaluation surface was hard to read

The earlier version buried the answer in dense tables with little narrative — you couldn’t tell at a glance what regressed, or why. We rebuilt it around a clear report, with the trace-level data one click behind it.

Versioning & publish

Every model carries a version history with aliases, an activity timeline, and one-click rollback. Releases roll out as canaries with traffic split, so a bad version never hits everyone at once. This was one of the hardest surfaces to get right — and one I’m most proud of.

Version history
01Version historyevery version, its alias, dates, and status
Publish
02Publishpromote a version behind a canary
Version detail
03Version detailwhat changed, and who changed it
Rollback
04Rollbackone click back to a known-good version
First cut
05First cutthe earlier versioning model we reworked
First cut
06First cutharder to tell versions and presets apart
What didn’t work

Versions and presets blurred together

The first versioning model made it hard to tell a version from a preset — exactly the wrong thing to be unsure about before a release. I reworked it into a clear history with aliases, an activity timeline, and one-click rollback.

Results & impact

One platform, adopted across the company.

65 teams migrated

Every team moved onto the single governance product.

Faster incident resolution

Traces, samples, and a triage UI cut the time to find and fix model incidents.

Safer releases

Canary and shadowing caught multiple production regressions before users did — and made rollbacks quick.

Higher developer velocity

Product teams reported shorter time to validate and ship models.

Organisational confidence

Central governance made executives comfortable expanding AI across the company.

I’d love to take your questions.

Revolut · AI-Ops Platform