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)
SELECTED WORK · 4 CASE STUDIES
What I've shipped, and why
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)
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.
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.
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 themesHow 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.
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.
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.
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.
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
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:
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."
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.
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.
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.
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.
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.
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.
ROLE
Product Designer
TEAM
PM · Research · Machine Learning · Engineering
PLATFORM
Web · iOS native app
TIMELINE
2020-2022
The problem
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.
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.
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.
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.
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.
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.
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
- 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.