Product & E-Commerce Manager · Sydney
Nearly 3 years driving digital growth for luxury beauty brands - from Shopify Plus storefronts to product roadmaps. Driven by a natural curiosity and a multicultural background, I thrive on learning from others’ perspectives.
About
I've spent the past three years at the intersection of product, e-commerce and marketing - managing the online storefronts of Serge Lutens (Shiseido), Bon Parfumeur and One Step on Shopify Plus, and shaping the features and roadmaps behind them.
My sweet spot is translating a brand's ambition into shipped functionality: writing the user stories, aligning designers, developers and clients, and measuring what happens after launch. If you're building something cool in SaaS, beauty, gaming or travel - let's grab a coffee.
Experience
Brands & companies I've worked with
Own the e-stores of Serge Lutens (Shiseido), Bon Parfumeur and One Step on Shopify Plus. Define requirements, user stories and acceptance criteria for new site features; run backlog prioritisation; coordinate designers, developers and clients; and track post-launch adoption to iterate. Also lead marketing roadmaps, e-merchandising, and KPI reporting across the portfolio.
Built and ran the brand's social presence across Instagram, TikTok and Facebook - from campaign creation and Facebook Ads funnels to copywriting, A/B testing and KPI reporting.
Supported local campaigns aligned with global brand strategy, helped plan in-store activations, and analysed customer insights to adapt communications to the local market.
Expertise
Backlog prioritisation, user stories & acceptance criteria, cross-functional delivery, post-launch analysis and iteration.
Shopify Plus store management, e-merchandising, UI/UX optimisation, catalog and category performance analysis.
Marketing animation plans, Klaviyo lifecycle campaigns, paid social funnels, KPI reporting with Google Analytics.
Case Study
Overall sales looked healthy, but leadership suspected the holiday Gift Sets category was quietly losing mobile shoppers. Shopify's dashboard shows revenue by product, not by step of the buying journey - so there was no way to confirm it, let alone see where people were dropping off.
I pulled six weeks of session data into a spreadsheet, broken down by device and journey step: how many people landed, added to cart, reached checkout, and completed their purchase.
WITH funnel AS (
SELECT
device_type,
COUNT(DISTINCT CASE WHEN event_type = 'session_start' THEN session_id END) AS sessions,
COUNT(DISTINCT CASE WHEN event_type = 'add_to_cart' THEN session_id END) AS add_to_cart,
COUNT(DISTINCT CASE WHEN event_type = 'checkout_start' THEN session_id END) AS checkout_start,
COUNT(DISTINCT CASE WHEN event_type = 'purchase' THEN session_id END) AS purchases
FROM shopify_events
WHERE product_category = 'Gift Sets'
AND event_date BETWEEN '2025-11-01' AND '2025-12-24'
GROUP BY 1
)
SELECT
device_type, sessions,
ROUND(100.0 * checkout_start / NULLIF(add_to_cart,0), 0) AS pct_reach_checkout,
ROUND(100.0 * purchases / NULLIF(checkout_start,0), 0) AS pct_complete_purchase
FROM funnel
ORDER BY pct_reach_checkout ASC; -- this is what powers the spreadsheet above
Row 2 tells the story: on mobile, only 34% of shoppers who added a Gift Set to their cart made it to checkout, versus 63% on desktop. A quick look at real sessions showed why - shoppers couldn't see what was inside a bundle without leaving the cart, so most gave up rather than dig for detail on a small screen.
I wrote the user story and acceptance criteria for an in-cart bundle preview on mobile, prioritised it in the holiday roadmap, and briefed design and dev. We shipped it as an A/B test two weeks before Christmas - row 4 shows the result. The pattern was strong enough that we rolled it out to Bon Parfumeur and One Step right after.
Bon Parfumeur's model runs on $19 Discovery Sets that introduce people to custom scent combinations - the real value comes when they return to buy a full-size bottle. Nobody could tell whether the post-purchase email flow was actually driving that return visit, or just landing in inboxes unread.
I joined order history with our Klaviyo flow data in a spreadsheet, segmented by how each customer first found us, to see who opened the follow-up email, who clicked through, and who actually came back to buy full-size within 60 days.
WITH cohort AS (
SELECT
acquisition_channel,
COUNT(DISTINCT CASE WHEN order_type = 'discovery_set' THEN customer_id END) AS discovery_buyers,
COUNT(DISTINCT CASE WHEN email_event = 'opened' AND flow_name = 'discovery_followup' THEN customer_id END) AS opened_email,
COUNT(DISTINCT CASE WHEN email_event = 'clicked' AND flow_name = 'discovery_followup' THEN customer_id END) AS clicked_email,
COUNT(DISTINCT CASE WHEN order_type = 'full_size' AND days_since_discovery <= 60 THEN customer_id END) AS repurchased
FROM customer_journey
WHERE first_order_date BETWEEN '2025-07-01' AND '2025-09-30'
GROUP BY 1
)
SELECT
acquisition_channel, discovery_buyers,
ROUND(100.0 * opened_email / NULLIF(discovery_buyers,0), 0) AS pct_opened,
ROUND(100.0 * clicked_email / NULLIF(discovery_buyers,0), 0) AS pct_clicked,
ROUND(100.0 * repurchased / NULLIF(discovery_buyers,0), 0) AS pct_repurchased
FROM cohort
ORDER BY pct_repurchased ASC; -- this is what powers the spreadsheet above
Paid-social customers opened the follow-up email at the same rate as organic ones - the problem wasn't the email, it was the timing. It went out 10 days after delivery, by which point interest in the scent had cooled. Organic and referral customers already trusted the brand enough to come back anyway; paid-social customers needed a nudge while the scent was still fresh.
I rebuilt the flow to trigger 3 days after delivery instead of 10, personalised to the exact scent combination the customer bought. Shipped as an A/B test to the paid-social segment - row 4 shows the result.
One Step's return rate was sitting above the category benchmark, but nobody could say whether it was quality, fit, or something else - the return report only showed totals, not a breakdown by product category or reason.
I pulled three months of orders and returns into a spreadsheet, split by category and return reason, to see exactly where the rate was highest and why.
WITH returns AS (
SELECT
o.product_category,
COUNT(DISTINCT o.order_id) AS orders,
COUNT(DISTINCT CASE WHEN r.order_id IS NOT NULL THEN o.order_id END) AS returned,
COUNT(DISTINCT CASE WHEN r.return_reason = 'size' THEN o.order_id END) AS returned_size
FROM orders o
LEFT JOIN returns r USING (order_id)
WHERE o.order_date BETWEEN '2025-09-01' AND '2025-11-30'
GROUP BY 1
)
SELECT
product_category, orders,
ROUND(100.0 * returned / NULLIF(orders,0), 0) AS pct_returned,
ROUND(100.0 * returned_size / NULLIF(orders,0), 0) AS pct_returned_size
FROM returns
ORDER BY pct_returned DESC; -- this is what powers the spreadsheet above
Kids Outerwear had by far the highest size-related return rate of any category. The size guide it linked to used adult logic - chest and waist measurements - for a category parents actually shop by their child's age and height, so people were guessing.
I briefed a new size guide built around age and height with a simple fit visual, and had it placed directly on the product page instead of buried in a linked help article. Row 4 shows the result after the first six weeks.
Languages
Education
BBA / Master 1 - Business Administration & Management · Paris
BBA / Master 1 - Business Administration & Management · Singapore
Semester exchange - Business Administration & Management · Japan
Contact
Currently based in Sydney and open to Product Management, E-Commerce and Marketing roles - on site here, or hybrid and fully remote anywhere in Australia. Particularly keen on SaaS, beauty, gaming and travel.
Opens Google Calendar with Bianca invited. Pick a slot, add Google Meet, and send.