Finds what could cost a store sales before its next busy period — explained in plain language and ranked by what to fix first.
Shopify
Shopify is where I spend most of my time. I like taking friction out of a webshop, for the customers and for the people running it: good UX, and integrations that handle the boring handovers. This is roughly what that looks like.
What I work on
UX on the storefront
Good UX starts with knowing who it’s for. The first-time visitor exploring the range, the returning customer who knows what they want and the gift buyer who doesn’t all need something different. So do the people behind the shop who keep the catalogue up to date or answer support. I use personas like these to decide what to improve first.
Friction can show up anywhere along the way: navigation and filters that don’t match how people look, slow pages, product information that doesn’t answer the question, a checkout that asks for too much. I change one thing at a time, preview it on a real store, test it, and compare speed, accessibility and checkout before and after, so it’s clear whether it helped.
Search and product data
A catalogue is full of things people already search for: materials, colours, sizes, styles, occasions. Product tags and metafields can turn that into landing pages. Someone searching for “black leather wallet” lands on a page made for it, and someone browsing can narrow down by what matters to them. Only the combinations worth ranking get a page of their own. The rest stay out of search results.
With several markets or languages, search engines also need to be told which page is meant for which market. That is what hreflang does, and it follows from how the stores are set up, whether that is one store with several Markets or several stores. The market setup and the SEO setup are best planned together. Structured data and canonicals do the rest: they make sure search engines understand the product information as well as shoppers do.
Being found by AI assistants (AEO and GEO)
More people now ask an AI assistant instead of searching, and assistants are starting to shop on their behalf. From what I’ve read, optimising for that is mostly good SEO done more strictly: accurate product data, consistent structured data, content in the HTML rather than behind scripts, and clear answers to real questions. I treat the catalogue, the feeds and the storefront markup as one surface that should tell the same story everywhere, and I’m keeping an eye on how Shopify’s own agentic channels build on it.
Integrations that remove manual work
A webshop is only as good as the systems around it, and a lot of friction hides in the handovers: copying data between tools, waiting for the next step, re-checking what should already be right. I build the event-driven and scheduled jobs that move product data, content, stock, fulfilment and reviews between Shopify and everything else, so processes run on their own. I like them serverless, observable and robust, so a hiccup in one system doesn’t spread to the next.
Small admin tools help too. My app Option sorter sorts product options naturally, so S/L/M becomes S/M/L without anyone doing it by hand.
Many stores, one way of working
Selling globally means lots of storefronts, markets and languages that should still feel like one brand. I build tooling that treats them as a fleet, with shared conventions and checks that catch drift or missing data before a customer does.
Data, feeds and email
Product data quality, translations, ratings and reviews, product feeds and customer emails all depend on the same underlying data. I like replacing opaque setups with code that can be tested and reviewed.
How I like to work
- Remove friction. For customers and for the team behind the shop, the goal is fewer steps, fewer surprises and less manual work.
- Bespoke over generic. Off-the-shelf tools are built for the average business, and rarely fit how a given business actually works. I’d rather build something small and shaped around the real need, which is easier to understand, change and own.
- Small, safe steps. Preview, test, measure, release. Fix the biggest thing first and check that it helped. Fix first does the same for a whole store: it finds what could cost sales and ranks it by what to fix first.
- Shopify as the source of truth. Integrations format and move data; they don’t invent it.
- Automate the boring checks. So people can spend their time on judgement, not on re-checking the same thing in every market.
- Plain language. The best fix is the one everyone understands.
Shopify apps
I also build apps for merchants.
Finds and naturally sorts product options, such as S/L/M to S/M/L, right in the Shopify admin.