Redis · Senior UX Researcher · 2024–2026 · one of two researchers

Research that ships

Redis is an enterprise database company: developers build on it, and the organisations around them buy it, operate it and scale it. I built the research operating system for that company — a unified protocol from intake to archive, the Critical User Journey program run across four journeys, a Voice-of-Customer program with its own self-serve dashboard, and — for the hardest journey, migration — an interactive map I designed with Claude and built with Claude Code, deployed on Vercel, solo.

Three years of off-boarding responses, analyzed · ~150 insights across CUJ1–4 · 12+ monthly reports Prioritize the roadmap with evidence · safeguard usability quality · carry the user experience across the org · support high-contact accounts directly
Redis · critical user journeys · the CEOA framework

Studying journeys, not features

Brought the CUJ program to Redis · four journeys run · CEOA and the step layer are mine

Critical user journeys — the end-to-end routes customers take through a product to get something done, picked out because the business depends on them going well — are an established practice; I brought the program to Redis and ran it across four journeys. What's mine is the two layers I added — the step, a cognitive unit sitting between journey and task, and CEOA, the model that turns a journey into a benchmark you can re-run.

CEOA — a benchmark, not a verdict

Four dimensions, read at every step and weighted by insights rather than by how the room felt on the day. Where to start becomes a location, not a verdict — and every fix gets a return trip.

clarity · efficiency · orientation · aesthetics

CUJ program · the definition half

What a journey is

Four beats · ending on the layer I added

Nobody owned the route

A team owns an area. A study tests a screen. An experiment moves one number, and everything is measured on its own terms, inside its own boundary.

But getting a database into production, working out why latency spiked at 3am, moving off another vendor — every one of those crosses areas, teams and screens. Research organised by feature can tell you each piece works and still never tell you the route through them does.

01

The unit was the problem

Not that the wrong things were being measured — that the thing customers actually experience had no unit at all.

02

Same budget, more coverage

Pointed at journeys, one study produces findings several teams can act on at once instead of one.

CUJ program · the framework I built

CEOA

Clarity / Efficiency / Orientation / Aesthetics · insight-weighted

Definition first. Then you choose your instruments.

A journey is big enough that no single method covers it. I ran all eight across the four journeys, scoped per journey to what it could be seen through — migration on behavioural data, sales calls and tickets, because its failures happen off-screen; onboarding on usability testing, because you can watch it happen.

moderated usability tests · unmoderated usability tests · user interviews · stakeholder interviews · stakeholder scoring sessions · competitive analysis · behavioural data · support-ticket analysis

CUJ program · how it keeps running

The part that made it a program

Four journeys run · ~150 insights across CUJ1–4

The list stops being a research deliverable

A list of insights sitting in a research report is still a research report. The move that changes that is small, and it is the whole game: product managers add their own tickets to the insight list.

Each insight becomes a row with a ticket attached, filed by the person who owns the fix. Nothing about the research changed — but the list is no longer something research is asking product to read. It's a shared object product is writing into, and every item on it now has a name against it and a place in someone's backlog.

That's how the program recruited its own supporters. A PM who has put three of their own tickets against a journey's insights has a stake in that journey's next score, and will ask for it. Research stops chasing adoption and starts getting pulled.

where ownership changes
One insight list, two authors A column of insight rows, each drawn as an anonymous well of dotted lines standing in for text, sits under a heading reading "research writes". Beside each insight, in a second column headed "product writes", is a slot for the ticket that answers it. Three of the six slots are drawn solid and connected to their insight by an arrow, marking insights a product manager has claimed with a ticket of their own; the remaining three are dashed and unconnected, not yet claimed. The list is a single shared object that research and product both write into, rather than a report research hands over. RESEARCH WRITES PRODUCT WRITES not yet claimed
Redis · Voice of the Customer · 2025–2026

A monthly status update on our customers

Initiated and orchestrated · four instruments · 12+ monthly reports across fourteen consecutive editions

A monthly report is not a document. It's an operating rhythm — and the interesting part is what it takes to hold one for fourteen months.

In May 2025, I was asked to monitor three things: NPS, off-boarding interviews, and the win-loss program.

What I proposed was a program with a publication attached: one document a month, assembled from every instrument we had pointed at the customer. Four populations, four moments in a customer's life.

The argument it kept arriving at was that churn was structural, not emotional. Customers weren't leaving because the product wasn't valuable, but because they couldn't figure out how to get started, hit reliability issues early, or found that pricing no longer matched their growth. That moves the leverage from build more to onboarding and support. Dozens read it every month, across the CTO and product organisations.

By the time I left, the report's initial data curation had been done by AI; I did the analysis, then edited and published it.

the four instruments
01

1:1 customer interviews

The only one where a new question could enter the same month it was asked.

02

Off-boarding survey analysis

Every customer who deleted a paid subscription.

03

Win-loss interviews

The buyer's side of a deal that just closed. A population no product instrument reaches.

04

NPS

The org's existing number, finally read next to three streams that could explain it.

Voice of the Customer · the report

What's in the report

Each sees something the other three structurally cannot — that's the reason there are four

Weekly — and an AI-written brief before every call

A weekly interview, with a product manager or the relevant stakeholder sitting in.

The outline for each conversation was generated with Claude Code before the call — from behavioural data on what this person does in the console, the CRM, a year of support history read for recurring trouble, sales calls and the open web. It injects two or three tailored probes underneath the specific questions they bear on, so the research rides on the outline where it becomes relevant.

Then the part that made it a system. A product manager's question went into my notes as an open task with its own relevance condition attached, and every prep run read that register and decided per interview. One asked about cost tooling on a Monday; by Wednesday a founder's outline carried it — a standing question multiplied by this person's researched reality.

how one interview gets made
01

The invitation

Sent to the customer through a guide inside the product itself, while they're using it.

02

AI research, before I see the name

Who they are, what their company does, and what they've been doing in the console lately — including where they got stuck. Pulled from Salesforce, Zendesk, Chorus, Amplitude, Gmail and the open web — and nothing is attributed until name, company and email domain agree.

03

A persona, and its template

It fits the customer to the personas template and pulls the matching outline — one that changes which questions get asked, not just the wording.

04

Any open PM question that fits

Checked against this person's persona and their company's profile, and worked into the outline if it matches.

05

A probe, if their behaviour earned one

Something worth asking about in their own product activity gets written in under the specific question it bears on.

06

After the call

A first AI analysis pass, then my own — what survives becomes part of the monthly report.

Voice of the Customer · the dashboard

A professional analysis tool crafted with AI

Five pages, built one wall at a time · the public build runs on synthetic data throughout

It analyses and visualises the data behind the monthly report — and then it was handed over: stakeholders ran their own analysis in it, and used it to share what they found.

↗Open the dashboard in a new tab
Redis Cloud · the off-boarding survey · 2025–26

A churn survey that couldn't count churn

Diagnosed it, specified it, prototyped it · a PM and a designer shipped it · live since mid-January 2026

Every churn figure Redis quoted came out of one survey. It was optional, it arrived after the customer had already gone, and it asked a single question with sixteen answers in one flat list — among them “I want to upgrade my database.”

Monthly responses more than tripled once the redesign was live — the same instrument, now asked while the customer is still there. The root cause is still open: there is no delete account control, so a customer leaves one subscription at a time — which is exactly why the survey fires where it does.

Ask what, before you ask why

Five of those sixteen answers describe somebody who is not leaving. The instrument had a taxonomy error at its root: it collected kinds of event as though they were reasons for one.

So the whole redesign reduces to a single move — ask one question before asking for any reason at all.

shipped · captured in the Redis Cloud console
Step one, and nothing else is offered: there is no delete control on this screen at all. Only Keep database and Get expert help, both of which stay through every step that follows. Choosing one of the three cards is the only way forward.
off-boarding survey · case study

Seventeen weeks, and most of it was cut

May–Sep 2025 · roughly a dozen people across six functions · built by a PM and a designer

Nobody could say how many customers were leaving

The survey fired after the deletion. So it could answer a customer who said too expensive with a page about cheaper plans and a migration guide — addressed to somebody whose database was already gone. Everything it collected was a post-mortem and everything it offered arrived for a person who no longer existed.

It asked one question with sixteen answers in a flat list, and among them sat “I want to upgrade my database”, “create new subscription” and “I was using Redis as a proof of concept.” Those are not reasons for leaving. A deletion is often routine work — there was no way to move a database between plan tiers, so upgrading meant deleting and recreating — and the instrument was adding three different events together and calling the total churn.

And it had no denominator. A thin monthly trickle answered it; out of how many, nobody in the company could say. There was no agreed definition of a churn event at all. I chased that number for months and never found anyone who had it — which turned out to be the real finding. The survey wasn't asking badly. The organisation could not count the thing the survey existed to measure.

three faults, any one disqualifying
01

Too late

It fired after the deletion, so nothing it learned could be acted on and nothing it offered could be accepted.

02

Optional, for a good reason

Force too many answers and people abandon — or back up and change the one they already gave. That is why it stayed optional for years, and why making it mandatory had to buy something specific.

03

No denominator

A trickle of answers a month, out of an unknown total, against an undefined event. A rate with no base is not a measurement.

the flaw is legible in the option list itself — you never needed the data to see it

Redis Cloud · information architecture · 2025

Finding the shape users already carry

Initiated, designed and ran it · an open sort, three closed rounds, and an A/B tree test against the menu already live · ~100 participants across the sorts · the new structure won, and shipped

Redis Cloud's navigation had grown the way product navigation grows — one feature at a time, each addition sensible on its own, nobody asking whether the categories still made sense together. I noticed it first in interviews, in the pause before someone chose a menu item, and tested to confirm it was real rather than a thing I had started seeing. Then an AI caching service arrived with nowhere to put it, and the question stopped being deferrable.

The navigation taxonomy the card sorts arrived at Thirteen Redis Cloud terms on the left resolve into four groups on the right — Management, Services, Monitoring and Financial. Each term carries the share of the twenty participants in the third closed round who placed it there. Data pipeline is the one term that did not settle: fifty per cent placed it in Management and forty-five in Services. 13 terms, as the product names them the four groups they resolved into Access Management 95 Data Access Control 80 Databases 75 Clusters 75 Data pipeline 50 LangCache AI 95 Vector search 80 Metrics 90 Usage Report 85 Logs 85 Alerts 75 Payment Methods 95 Billing History 90 MANAGEMENT SERVICES MONITORING FINANCIAL 45

Measure the structure, don't propose one

The temptation is to sit down and design a better menu. The people who know where a thing belongs are the people who go looking for it — so the whole method follows from taking that literally.

Thirteen of the product's own terms, handed to forty engineers with no categories at all. Then three rounds of putting the answer back in front of strangers to see whether it held.

the map at left is round three · the number on each term is how many of twenty put it there

navigation IA · case study

How the shape was found

Feb–Jul 2025 · run on the panel, and on the design team first

When the users are lost

The menu before the restructure.

The product's main navigation bar was confusing and unintuitive. Users couldn't find their way around.

Nobody assigned this. It surfaced sideways — in interviews, and in watching people work the console while we were there for something else, the same small hesitation appearing in front of the menu. So before proposing anything I ran usability tests, to check it was a real problem and not a thing I had started noticing. It was. That is when I opened the ticket and started the study.

the question, as it was written down
01

Restructure

How should the cloud pages' menu be reorganised to improve navigation efficiency and reduce user confusion?

02

Absorb

Where does a brand-new capability belong inside a structure that predates it? The question that forced the study is a question the study has to keep answering.

03

Prove

Measured how — and decided before the first card moved. Task success and time-to-completion in a tree test, which is a commitment to a number that could come back wrong.

the hypothesis was written before the method ran, and it named its own failure condition
then the route: an open sort · three closed rounds · the result tested against the menu already live

Redis · CUJ3 — migration

Mapping an entire problem space — then shipping the map

→Open the live demo synthetic data throughout
Discovery, synthesis, design, agentic build and deploy — solo · in use by PMs and C-level execs

CUJ3 was migration — one of the four journeys in the Critical User Journeys program I ran at Redis. Migration is a complex journey. So many paths run under the word that at some point I realized different people mean different things when they say it. I triangulated behavioral analytics, recorded sales calls, support tickets, user interviews, competitive analysis, and interviews with TAMs and CloudOps — and the synthesis surfaced reliability and discoverability gaps that reframed the roadmap.

A static report would have flattened it

The space has three dimensions, and a document has one. So I designed it with Claude, built it with Claude Code, and shipped it on Vercel.

4 steps · 16 entry paths · 3 layers

Steps across, entry paths down, each path's layers as bands in its row. From the public demo — every figure in frame is generated.
CUJ3 · case study

How the map was made

What is migration, anyway?

Migration is an umbrella term: moving a user's database assets from one place to another. Every part of that definition is vague — what counts as an asset, what counts as the place they leave, what counts as the place they arrive. That vagueness is not an accident of phrasing. When I talked to stakeholders, nobody held the same boundaries for the word.

So the first deliverable was not a map. It was a definition — what a migration is, what its subtypes are, and what all of them have in common.

one definition, three places it goes vague
Where the definition of migration goes vague The working definition — moving a user's assets from one place to another — is shown with three of its terms marked: assets, one place, and another. Each is listed below with the competing readings it turned out to carry. Assets could mean the data, the infrastructure under it, or only the billing relationship. One place could mean another vendor, another cloud, or elsewhere on this same platform. Another could mean a new database, new infrastructure, or the same database paid for a different way. Three terms, three readings each, and no two functions of the organisation picked the same combination. moving a user's assets from one place to another assets the data the infrastructure under it only the billing relationship one place another vendor another cloud elsewhere on this platform another a new database new infrastructure the same one, paid for differently
CUJ3 · the live demo

Or just use it

The public build · synthetic data throughout · opens in a new tab
↗Open the live demo in a new tab
Redis · closing

Evidence first, then the craft to ship it

Two years · one of two researchers · a research operating system, and the artifacts it produced

That's what research leadership looks like when it builds.

01 · the operating system
A protocol, from intake to archive
The chapters above are outputs. The thing underneath them was a unified way of working: how a question gets taken in, run, synthesized, reported and stored so the next person can find it.
That's what made a two-person research function legible to an org that wanted answers monthly.
02 · influence without authority
Research that changed the product surface
The off-boarding survey and the console's navigation are both shipped product, and neither was mine to ship. Documenting the problem, prototyping the fix, and handing it to the people who own the surface is its own craft.
The evidence has to be good enough that agreeing is easier than arguing.
03 · building the artifact
And when nobody could ship it, shipping it
The migration map needed to be an interface or it would not have been true. Designed with Claude, built with Claude Code, deployed solo — and still in use by the people who plan the roadmap.
I teach this workflow now.
And the rest of the portfolio
←Portfolio end of the Redis page · next in the portfolio · Miscellaneous works