Design that holds up under a real system's constraints.

Seven years designing commerce and discovery experiences for retail, marketplace, and SaaS teams, from a first-click test to a checkout flow to the strategy that ties them together.

ROLE

Product Designer

LOCATION

Helsinki, Finland


STATUS

EU/EEA authorized, no sponsorship

CURRENTLY

Galore, London (remote)

ABOUT

Design that earns its keep inside real operational constraints

I started as a web designer building B2B storefronts, which means I learned early that a good idea is only as good as the operational reality behind it, financing rules, machine-generated content, inventory that doesn't cooperate. That's stayed with me. Most of my work sits at the intersection of a customer's decision and a business's constraints.

I lead research, strategy, and interaction design from discovery through delivery, and I partner closely with engineering, research, and merchandising teams rather than handing off a finished file. Lately I've been thinking a lot about designing for machine-generated content, layouts that stay resilient when the input is unpredictable.

LOCATION
Helsinki, Finland
STATUS
EU/EEA work authorization
FOCUS
Commerce, discovery, design systems
TOOLS
Figma, design systems, prototyping
LANGUAGES
English (native), Finnish (learning)
← All work

CASE STUDY 01 / 04 · DUFRESNE · 2022-2025

Making a high-consideration purchase feel simple

I redesigned key moments in Dufresne's furniture-buying journey so customers could understand services, financing, and delivery without losing momentum.

Dufresne product page with protection plan, shipping and financing surfaced beside the item

ROLE

Product Designer

TEAM

Product · Engineering · Operations

PLATFORM

Responsive web (Shopify Plus)

MY PART

  • Problem framing
  • Journey design
  • Stakeholder alignment

The problem

Furniture is a high-consideration purchase, people need to understand financing, availability, delivery, and protection plans before they'll commit. At Dufresne, those decisions were scattered across the journey, so customers hit a wall of uncertainty right when they were closest to buying.

Two things kept surfacing in complaints and support logs: customer support was getting pulled in constantly to explain warranty and protection-plan options that the interface should have answered on its own, and shipping and financing options were confusing enough that cart abandonment was flagged as a real problem long before I got involved.

Lifestyle photography of a furnished bedroom, representative of Dufresne's product catalog
Furniture is exactly this kind of purchase: aspirational, expensive, and full of logistics guests need to trust before they commit.

Business goals we were designing against

  • Increase service visibility, make warranty and financing options easy to discover, not something guests had to hunt for or call in about.
  • Increase paying customers, enrich the journey enough to convert more browsing guests into buyers.
  • Reduce cart click-throughs, cut the number of clicks a guest needed to select shipping, warranties, and payment options.

"Aurora wishes she knew about the options to apply for financing online so she can complete her purchase without having to go to the physical store and have a sales representative do it for her."

, guest persona built from support-call themes

How I got there

Before proposing a solution, we validated the problem in three phases: a competitive analysis benchmarking Wayfair, Home Depot, and Best Buy on how they surface services at the point of purchase; a voice-of-guest survey of 50 customers to test our assumptions against real behavior; and an ideation workshop that pulled in fulfilment, tech, and guest care, not just design, to make sure whatever we proposed was actually buildable.

Competitive analysis slide benchmarking Wayfair, Home Depot, and Best Buy
Validate, define, ideate, the three-phase approach we used before sketching a single screen.

I mapped the full path from product discovery through post-purchase service to find exactly where questions turned into blockers, then sorted the decisions into what was essential in the moment and what could wait.

Customers weren't asking for more information. They needed the right information, in plain language, exactly when the decision got consequential.

Key decisions

Keep the product in context

Service and protection choices sit beside the item instead of sending people to a disconnected page.

Sequence what's secondary

Financing, delivery, and add-ons show up when they're relevant, so the main path stays legible.

Design inside the platform

Dufresne runs on Shopify Plus, so every pattern had to work within its out-of-the-box constraints, no overriding the checkout.

The solution

The redesign surfaced a protection plan directly on the product page with a clear result of the research behind it, and let guests add or remove a protection plan right from the cart, no phone call required.

Dufresne cart with a protection plan already added and a cross-sell option surfaced inline
Protection plans became something guests could add or remove right from the cart, with cross-sell options surfaced inline rather than hidden in a separate flow.
Dufresne mini-cart with a protection plan option surfaced when a guest adds an item
A second iteration surfaced the protection plan the moment a guest added an item to their cart, rather than waiting for full checkout.
Dufresne delivery options and financing screen with Fairstone financing and clear payment methods
Delivery options stayed visible with plain-language explanations, and financing became a visible payment method instead of a hidden line item.
46/50guests said the added info increased their confidence deciding
38/50guests said seeing the protection plan in mini-cart encouraged them to learn more
15%online sales increase, with cart abandonment dropping to 35% in 2 months
Final Dufresne cart and checkout with protection plan and financing options built in
The shipped cart: protection plans, financing through Fairstone, and Affirm all visible up front, no separate flow required.

What changed

  • Online sales increased 15%, with cart abandonment dropping to 35% within two months
  • 46 of 50 guests said the added service and financing info increased their confidence in deciding
  • 38 of 50 guests said the mini-cart protection plan prompt encouraged them to learn more about it
  • A noticeable drop in customer support calls asking about protection plans mid-purchase

These numbers came from the team's own reporting rather than a single dashboard I owned, so I'd want to re-verify the exact measurement window before quoting it precisely in an interview, but directionally, this is one of the clearer wins across my case studies, and it's part of why the reusable panel pattern became the foundation for later commerce work.

What I'd carry forward

The strongest move here wasn't adding a feature, it was sequencing information that already existed around how customers actually make the decision, and making operational complexity feel calm instead of overwhelming, even while working inside a fairly rigid e-commerce platform.

← All work

CASE STUDY 02 / 04 · LULULEMON · 2020-2022

Turning editorial inspiration into a shoppable moment

I designed an accessible shoppable-image system that let guests identify and buy products directly from campaign imagery, without breaking the story the image was telling.

$6.4M incremental revenue across web and app
Lululemon Shop the Look hotspot pattern on a campaign image

ROLE

Product Designer

TEAM

PM · Research · Engineering · Accessibility · DSM

PLATFORM

Web · iOS · native app

TIMELINE

2020-2022

The problem

Campaign images did their job, they created desire. But guests couldn't easily tell what the model was actually wearing, so the handoff from "I want that" to "I found that" was broken. One guest, quoted directly in our research: "I want to replicate this look but I don't know how to buy the outfit the model is wearing in this banner. Help me find the products so I can bring my inspiration to reality." People were leaving the campaign entirely to go search for something they'd already decided they liked.

How I got there

Early concept mockup of the campaign image with unlabeled question-mark placeholders where hotspots would go
We started with question marks, not answers, placeholder hotspots on a real campaign image to test whether the interaction made sense before we designed anything final.

I partnered with research on three tracks that ran in parallel rather than sequentially, so we had both breadth and depth before committing to an interaction model:

n=6Moderated usability sessions, US/Canada guests, HHI 100K+
n=100Click-test analysis across genders and shopping behaviors
n=3Accessibility interviews: alt. navigation, magnification, screen reader
Hotspot dot design pressure-tested across ten different brand colors and product photos
The hotspot dot had to stay legible on any campaign color or fabric pattern, so we pressure-tested it across the full brand palette before locking the design.
Five opacity levels of the hotspot dot tested against a skin-tone background, from 100% down to 25%
We also tested dot opacity, not just color, to find the point where it stayed visible without competing with the photo underneath.

One insight reshaped the whole direction: we'd designed two competing entry points into the same interaction, a dot hotspot and a separate garment icon. Guests recognized and clicked the dots immediately. The icon barely got used, and having both active at once didn't add a second path so much as introduce doubt about which one was "correct."

Test screen showing both a dot hotspot and a separate garment icon on the same campaign image
The exact test screen: dots and a garment icon active at the same time, to see which one guests actually reached for.
Click heatmap showing guests overwhelmingly clicked the dot hotspots over the garment icon
The click heatmap from that test, red and orange on the dots, almost nothing on the icon. This is what made the decision for us.

Product hotspots were understood immediately. A second, competing icon suggested a second path and just added doubt, one strong invitation beat two weaker ones.

Key decisions

One invitation, not two

We cut the competing icon entirely rather than reducing its prominence, a full commit, not a compromise.

Progressive disclosure

The CTA explained the interaction before hotspots appeared, so the image stayed intact until someone opted in.

Tooltip as a system

Widths, stacking, type, and focus behavior were defined for mobile, desktop, and assistive tech, not styled per-instance.

Two states of the Shop this Look CTA button: expanded pill and collapsed icon-only circle
The CTA's two states, expanded on first view, collapsed to an icon once a guest already understands the pattern.

Designing the tooltip as a real component, not a one-off

Because this had never existed in the pattern library before, I worked directly with the accessibility council and the design systems team to define font weight, sizing, and how price and sale-price information stacked, including how it should behave when a product went on sale mid-campaign.

Multiple tooltip layout variants tested for price, sale price, strikethrough and chevron placement
We tested several tooltip layouts before settling on one that handled sale pricing without feeling cluttered, this became a reusable pattern beyond just this component.

Building it to WCAG, not just past it

We mapped a full keyboard focus order for the carousel before development started: focus stays on the arrow buttons rather than jumping into the carousel automatically, and using the pagination dots moves focus to the first item on that slide. Small decisions, but the kind that are invisible if you get them right and disqualifying if you don't.

Three interaction end-states compared: stacked multi-product tooltip, a full PDP overlay, and a complete Shop the Look grid
Three different end-states we prototyped for what happens after a guest taps a hotspot, a stacked tooltip list, a full PDP overlay, and a dedicated shop-the-look grid. We shipped a simpler version of the tooltip, but the grid concept directly informed later work.
Shop this Look modal showing three items from the campaign image, each with an Add to Bag button
The shipped "Shop this Look" modal, every item from the image in one scrollable list, each addable to bag without leaving the flow.

What shipped

A three-part system, a progressive-disclosure CTA, accessible hotspots, and responsive tooltips, that kept the campaign image visually dominant while making every featured product discoverable and purchasable.

Shipped Shop the Look feature live on the lululemon homepage, showing two campaign images each with a Shop this Look button
Live on the homepage, two campaign moments, each independently shoppable, with the surrounding editorial content still leading.

What changed

  • 33.6% increase in campaign-image engagement on homepage
  • 2 in 5 engaged guests purchased one or two featured items
  • $4.4M web + $2M app in incremental revenue

These are the numbers the team reported after launch, I don't have the exact measurement window in front of me anymore, but the direction held consistently across reporting periods.

What I'd carry forward

Accessibility has to sit inside the interaction model, not get bolted on at the end. Bringing in assistive-technology users early led to a simpler experience for everyone, not just a compliant one, and building a new pattern from scratch meant getting buy-in from the design systems team was as much a part of the job as the interaction design itself.

← All work

CASE STUDY 03 / 04 · LULULEMON · 2020-2022

Designing trust into an AI-generated outfit recommendation

The outfit pairings guests saw were generated by a machine learning model, not styled by a person, which meant the interface had to earn trust in a recommendation with no human behind it, and stay legible when the model's output was inconsistent.

Engagement increased from 2.35% to 5%
Outfit Inspiration component showing a seed item with three complementary products

ROLE

Product Designer

TEAM

PM · Research · Machine Learning · Engineering

PLATFORM

Web · iOS native app

TIMELINE

2020-2022

The problem

Product detail page for a lululemon jacket, the seed item guests would see before any outfit recommendations
The starting point: a single product page, with no sense yet of how this piece could work as part of a whole outfit.

The existing outfit module was visible but barely used, 2.35% engagement on web, 1.6% in app. Products were showing up as a row of AI-generated recommendations, but the interface did nothing to help a guest picture a coherent, head-to-toe look. Guests saw the outfit, but didn't engage further, either because they weren't inspired by the pairing or because they had a hard time visualizing it as an actual outfit rather than a list.

What guests actually needed

Research surfaced three distinct needs, each backed by direct guest quotes:

  • Versatile outfits that solve more than one problem, "I need a variety of product suggestions that will help me pair what I already have in different ways so I can build a more stylish and versatile wardrobe for my lifestyle."
  • Style inspiration and education, "I need idea for putting outfits for different events and activities together so that I can buy the right looks and educate myself on style and how to accessorize."
  • Confidence for the occasion, "I need to put together an outfit appropriate for the season, so that I can be comfortable and ready for my activity."

How I got there

I led a brainstorming workshop to generate concepts, then a sorting exercise to surface the strongest direction. The ideas grouped into five distinct experience types before we converged on a grid-based layout, chosen because it prioritized efficiency, clarity, consistency, and scalability over the alternatives.

Evolution from the old flat product-list pattern to a model shot with a labeled hierarchy to the new grid layout
We moved from a flat product list, to a labeled model shot to define the hierarchy (hat → top → bottom → bag → socks → footwear), to the final grid that keeps that hierarchy without needing a live model shot for every outfit.

Guests wanted an outfit idea, not a row of related products. The relationship between the seed item and every recommendation had to be obvious at a glance.

Details that mattered more than they look like they should

  • A fixed seed item. Keeping the seed item static while guests swiped through outfit options reduced repetition and kept orientation clear.
  • A "current item" tag. Guests genuinely got confused about which piece was the main one they were already looking at, a small label fixed it.
  • Truncated product names, no price at this level. Given price and size are one click away, we prioritized giving guests inspiration first, not a full spec sheet, to reduce clutter.
Keyboard focus order map for the Outfit Inspiration carousel, numbered from skip link through each product tile
We mapped the full keyboard focus order before development started, including a skip-carousel link for keyboard and screen reader users, numbered end to end.
Six background treatment options tested for the Outfit Inspiration card: color gradients and blurred PDP imagery
We tested several background treatments, flat gradients versus a blurred version of the product photo, before settling on the simplest option so the products stayed the visual focus.

Designing for a model that doesn't always get it right

This wasn't styling done by a person, the flat-lay outfit images were generated by pulling real product photography together based on what the machine learning model paired with the seed item. That changes the design problem. A human stylist can be trusted by default; a model has to earn it, and the interface has to hold up on the days the model's pairing is a little off.

  • Designing for inconsistency, not the ideal case. Most component design assumes reasonably predictable content. Here, the layout rules had to survive an odd color pairing, a mismatched formality level, or a recommendation that just didn't quite work, without ever looking broken.
  • No explanation, by design. We deliberately didn't add a "why we picked this" explanation layer, at this stage it would have drawn more attention to the model's reasoning than the guest cared about. The bet was that a strong visual result would build more trust than a caption ever could, and the engagement numbers suggest that held up.
  • Honest failure states mattered as much as the ideal composition. If the model couldn't generate a confident pairing, the component needed to degrade gracefully, fall back to a simpler recommendation, rather than force a bad output onto the guest.

I don't have visibility into the model itself, that sat with the ML team, not design, so my role was entirely about the guest-facing consequences of imperfect AI output: what the interface owes the guest when the underlying system is probabilistic rather than deterministic.

Key decisions

Show a complete look

A structured flat lay reads more clearly than a generic product row.

Keep the hierarchy clear

The seed product stays visually primary while the rest reads as one coordinated outfit.

Future-proof it

Modular slots let recommendation logic evolve over 12-24 months, toward UGC, activity-based looks, and 5+ item outfits, without rebuilding the interface.

What shipped

A structured flat-lay grid that establishes the seed item first, then builds out a complete look, with an accessible carousel and modular content slots so future recommendation strategies can plug in without a redesign.

What changed

  • Engagement moved from 2.35% (web) / 1.6% (app) to 5%
  • More multi-item purchases started directly in the component

I don't have the exact evaluation window handy, I'd want to confirm the dates before quoting this in an interview, but the lift was consistent across the reporting I saw.

What I'd carry forward

Designing around machine-generated content means designing for inconsistency. Clear layout rules, resilient states, and honest empty states mattered just as much as the ideal-case composition, and future-proofing a component is a design decision, not just an engineering one.

← All work

CASE STUDY 04 / 04 · LULULEMON · FY21-FY22

Building a system for complete looks, not isolated items

I built an end-to-end product strategy connecting inspiration, discovery, and multi-item purchase behavior across the guest journey, the framework that Shop the Look and Outfit Inspiration were both built on.

Foundation for two shipped products
Outfit inspiration mobile concept with Look 1, 2, 3 tabs and a You May Also Like section

ROLE

Product Designer

TEAM

Product designers · Product Manager · UX Researcher

PLATFORM

Cross-platform strategy

TIMELINE

Q2 FY21-Q3 FY22

The problem

Guests didn't see lululemon as a destination for head-to-toe looks, they bought single items from the franchise or category they already loved, then went elsewhere for outfit inspiration and styling advice. Single-product journeys made it hard for guests to build a complete look, and just as easy for different teams to ship disconnected outfitting features that didn't add up to a coherent experience.

Dealing with ambiguity

Strategy work with this much ambiguity can go off the rails fast, so before anything else I partnered with our Product Manager to set milestones, define roles, and put a system in place to keep senior leadership looped in on progress every two weeks. We broke the guest base into four archetypes to shape which research questions we'd prioritize:

Everyday Sport

Wants comfortable, versatile clothes ready for "anything", can get overwhelmed by too many options.

Performance Player

Wants function-first gear influenced by tested products from friends and family.

Cultivated Casual

Prioritizes style and dressing for the occasion, routinely browses and stays up to date on trends.

Active Model

Looks for inspirational, influencer-driven styles for an active lifestyle; needs variety and availability.

Research question prioritization matrix sorted by Now versus Later and by value
Before writing a single survey question, we sorted every open question the team had by value and urgency, Now versus Later, so research time went to what actually mattered.

Outfitting isn't one component. It's a connected behavior that starts with inspiration and needs continuity all the way through purchase.

Generating and testing ideas

I led a brainstorming workshop that produced five distinct concept directions, Collage View, Grid View, Vary Combinations, Mannequin, and Shop the Image, then ran a sorting exercise with the team to weigh each against guest impact and feasibility before taking a shortlist to senior leadership for a vote on which opportunity areas to prioritize.

Five outfitting concept directions compared: Collage View, Grid View, Vary Combinations, Mannequin, Shop the Image
Five concept directions, each pressure-tested against real-world examples from other retailers, Suit Supply, Outdoor Voices, Nike, before we picked directions to build on.

Key decisions

Treat it as a journey

Connected discovery, product detail, and purchase instead of isolating outfitting in one place.

Define shared capabilities

Reusable imagery, product relationships, and patterns that multiple experiences could draw on.

Stage the future state

A phased roadmap separated near-term fixes from longer-term investment.

What it enabled

Five-stage roadmap: Introduce Outfits, Outfit Shoppability, Uniquely lululemon CX, Increase Outfit Visibility, Personalized Outfits
The roadmap staged five phases: introducing outfits on the PDP, making them shoppable, building a uniquely-lululemon experience, increasing visibility, and eventually fully personalized outfits.
  • Aligned product, merchandising, research, and engineering around one shared model
  • Directly became the foundation for Shop the Look and Outfit Inspiration

Both of those projects have their own metrics, documented on their own pages, I'm not attributing their numbers to this one, since this was the framework, not the feature.

What I'd carry forward

A useful strategy is specific enough to guide real decisions and flexible enough to survive a changing roadmap. Tying the principles to concrete components, not just a slide of values, is what made this one actionable instead of aspirational. Influencing stakeholders to break from the norm took real persuading, and I learned that this kind of ambiguous, org-wide work is never a one-and-done process.