I make websites easier to find, better at converting, and simpler to manage.
I'm a growth and digital marketer with 15+ years of experience across digital marketing, analytics, UX, and web engineering. I bring a foundation in CRM and e-commerce measurement and enough hands-on technical expertise to follow any problem to its root and identify the fix.
Web marketing · CRO · Experimentation · Analytics and attribution · SEO/AEO

Selected work
01 · Conversion
Checkout, testing, and the path to purchase.
E-commerce beauty brand
Checkout conversionCoupon-attributed revenue fell. Total revenue held.
An open promo code field was sending buyers who had already decided to purchase off to find a discount, giving away margin on sales that would have happened anyway.
The question
Why were coupon redemptions outrunning the codes the brand had sent?
Read the case study →
Google Merchant Center
A/B testingWinning layouts shipped across three markets.
Multiple rounds of layout and structure tests, with GA4 tracking consistent enough across every variant that analysts could choose winners with confidence.
The question
How do you compare two layouts when the thing you're counting moves?
Read the case study →
Google Chromebook Plus
Retailer click-throughPartner clicks rose sharply in the first month.
The site's conversion was a click to a retailer or manufacturer, and the comparison table I architected helped visitors in 15 markets choose a device before clicking out. Zero post-launch defects, and a Webby Official Honoree.
The question
How do you help someone choose a device when every market has a different lineup?
Read the case study →
02 · Acquisition
Being found in search and in AI answers.
Black Sea Tattoo, Regina
Organic searchTop five organic results within a month.
Without touching its Google Business Profile, changes to the site alone put the studio in front of people searching for a tattoo in Regina and into Google AI Overviews, and the owner reported more calls and inquiries.
The question
Why wasn't a Regina tattoo studio showing up when people in Regina searched?
Read the case study →
03 · Measurement
Knowing which channels actually drove the sale.
Luxury tableware group
AttributionAffiliate commissions moved to line items.
Three brand sites shared one cart, so affiliates were being paid on whole orders they had only partly driven. Tracing cross-brand orders changed what the program paid for.
The question
What happens when a visitor arrives through one brand's site and shops the other two?
Read the case study →
How I test a hypothesis
- The number
- An e-commerce beauty brand's coupon-attributed revenue kept climbing, far past how widely the codes had been sent. My first thought was that there was no way all those people had those promo codes.
- Hypothesis
- The open promo code field at checkout was sending customers who had already decided to buy off to find a discount.
- Evidence
- Before taking it to the client, I checked it four ways: redemptions against distribution, affiliate credit going to coupon sites, sessions that left checkout and came back through a coupon site, and codes used outside their intended audiences.
- Change
- With everything pointing the same way, I made the case to the client, and their team collapsed the field behind a text link.
- Result
- Coupon-attributed revenue fell and total revenue held, which showed the discounts hadn't been producing the sales.
About
I'm a Toronto native who has been asking "but why?" since well before it was in my job description.
I studied marketing communications because I wanted to understand how companies know whether their marketing is working, and I chose digital and direct marketing over mass because that was where the measurement was.
That question took me from CRM and email at lululemon, Wunderman, and Track DDB into analytics and attribution at The JAR Group, writing tracking specifications for consumer brands, and then into engineering in 2017, because I wanted to understand the systems I'd been writing specifications for. On Google's marketing sites at Huge, I never left marketing; I was building the places where it happens.
I'm strongest where the website does most of the selling, the data exists but nobody has asked it the right question yet, and the job is to find the exact problem and explain it well enough that the right team can fix it.
I will fly around the world for art and architecture, but I read the Business & Finance section first. I'm on a mission to see all the Vermeers (current tally: 18/35). Never met a noodle I didn't like.
............ .. . .. ... .. .. . .. . ...... ..... ... .. . .. ........ ............... ........... . . .......... .. .... .... ........... . ... . . ..........'........''......... .. ..... ............................ ............. ...... .......... . . ......'''''''.......'.......... ..............................''.......................................... .. .....''''..'.'............................ .. .....................'..................................... ..''''''...''''''''''.''..''............. . ..... ..........'''..'..........................''........ . ...'..'...''''''''''''''...'.............. ............. .....'... ......'''''..'............''''''...... . ..''.'''''''''''''''....''.....................................`,:--;:,``'...'''''........''.'''.......... . ..'''''''''''''''''''''''............. .....................';+*oooo####%o*~;`''''......''...''.........'. .. .''.'''''''''''''''''''''''''''................'''''... ..':*ooo%*=o&@@@@@@&o+~:`''...'....''....'''....... .. ..'''''''''''''''''''''''''''''''''''''''.'.''''....'':~+%&@@@@@&#%%####&&&&#o=-;:`''''''...''''''''.'.... .. ...''''''''''''''''''''''''''''''''''''''''....',;~=++o%%%%oo%##&@@#%%%%o++o%#*-:::,`''''....'''''...'.... .. ..''''''''''''''''''''''''''''''''''''''''.',~*o%#&##%%%o%%o*+===+%&&#%%%o****o%+-;,,`'''''.'''''''........ .. ...''''''''''''''''''''''''''''''''.'''''':+#&&&&####%%%%%%oooo*+=~~=*o%#%*=++=~+=;;,,`''...'''''.'........... ...'''''''''''''''''''''''''''''''.''''.,*&&#####&#&#%%oooooooooo**+~---=*%*~-~-;o~:;,,`......''........ .. .. ...'''''''''''''''''''''''''''''.'''''`~%##&&&&#&###%%%%ooooooo***oo*--;::;++=-::**::,``'.''''.'..'....... . .''''''''''''''''''''''''''''''''''''`o&############%%%%oo%ooooo****++-;;:,,;-=-:*%=:::``'................. . .'''''''''''''''''''''''''''''''''''`*&%%%%#####%%#%++*ooo%%ooo+*o**~;;;;;;;:,:--%&*::~:''................. .. ..''''''''''''''''''''''''''''''''''~oo%######%%%%%*====+*++o%*;-~+=:::::;:;;:;::o#*;:-~``. ............... .''''''''`''''''''''''''''''''''''''-%@@@@@@@@#%ooo*+**~----~+=,,,,:::,,,:;:::::,*#*;:;=-,'. ................ ...'.'''''''''''''''''''''''''''''',#@@@@@@@@@@@&#o*==*o;::;;;;;:,,:;:;;::::;;::`=#*;::=~,'`. ............. .....''''''''''''''''''''''''''''',%@@@@@@@@@@@@@&&#o+~-;:,,:::::::,:;;;::::::::,;#o;;:~~,'`' .. ........'.. .....'..'''''''''''''''''''''''''';###&@@@@&&&&#&&&###o+-;::,`''``,,`,,:::::;:::,,%%-;:-=:`''... .......... .. ..''.'..''''''''''''''''''''`''''``-%o+%@@&%ooo*o%####%o+-;:::,``,,,,`'`,,::;:;:``*%~-:-o~``''............... ...''..'''''''.''''''''''''''`'''`'+@=,~@@#****%#%*+*oo*=-;::,::::,,,,,``,:::::,`'+#+~:;*+,:``'............... ...'''''''''''''''''''''''''```''';&#%o%@@o+*%%@@#`,:;~~----;:::;;:,`,:,`,,,,,,``.-&*=,;=+;,`,'..'............ ...''''''''''''''''''..''''''``'`'+@@&&@@#***#&&&%=~-;=++==-;;;:::;:,,,,:,`,,```'':#*%-,==~:`,`............... ...''''''''''''''''''...''''''''`'*@@@@@&o***%&&##%ooo%#%o+~;;;;;:::::,,,::,,,`''':#o#+,~+-::,`.. ............ ...'''''.''''''''''''''''''''''''.*@@@@&o*+++%&&&&&&&#%%o+=-;;;;;;:::::::,,````'''`%o%*:;*-,;:`'. ............ ...'''''.'..''''''''''''.'..''''''-@@@&o*+===%&&&&&&#%%o*=-;;;;;;;;;:`,:::,`''''```o%%o::o=,:;`... ........... ...'''''....'''''''''''''....'''''`#@@%~--~~;~#&&###%o**=-;;;;;;;;;::::::`'''''''''+#%%;:o%:,-;`'' ........... ...'........''''''''''.''....''''''+@@@&+--~==%####%%o*+~-;;;;;;;;;;;-:,`'.'''''.''=#%%-:o@=,:=:'`............ .............''''''''''''.....'''`':&&#@#**o%%%##%%oo*+=~-----;;;::::,`'''.''''''''+@@#~;*@%,,-~`''........... ...'..'.....'''''''''''''.'''''''``'~@*~~=+=++**%oo*++==~~~~~---;;:,:,``'''''''''''+@@#=;=@@-,;=-`'........... ..'''''.''..'''''''''''''''''''''''`'+&o**+~~-+oooo++==~~~==~~~--;-*-:,``''''''''''~@@&+~~@@o,:~~,`'.......... .'''''''''..''''''''''''''''''''`'''`'%@#%+===*ooo*++=====++==~-;;=&=::,'''...'''''-@&&o+-&@&::-+;'`.......... .'''''''''.'''''''''''''''''''''''''`';@@&#o*+++**+++++++++==-;---;-=-;,,:;;;;-;;:,:#%#%%-o@@-:;~+,`'......... .'''''''''''''''''''''''''''''''''''''';%&&#%o*+++++======~--;;;;;--=+*o##%%%oo+~~-:o%#o&*~@@+,;-+~'`''''.'... .''''''''''''''''''''''..''''''''''''''.',;~~~--;::-*==~~~~=+*o##@@@@@@@&%+=~---;;::%#%o##;%@#,:-~=,'`'..'.... .''''''''''''''''''.'..'''''''..''''''''''...''''..'=#%oo%&@@@@@@@@&%*=-:,:::::::::,+&%&o#~+@@;,;-=~'`'.'''.. .''''''''''''''''''''''''''''..''''''''''''''''''''. =&@@@@@@@@o+~-;::::,,:::::,::,`-#o&%o+~%@+`:~=+`''''''... .''''''..'''''''''''''''''''''''''''''''''''''''''..=@@@@@@&%*+==---;;:::::::,,,,,,`:%%#&*%~+&%,,==+;'`'''.... .'..'.'.........'''''''''.'''''......''''''''''''.,%@@@&#oooooo*+-;-;::,:::,,,,,:,,``*&&&o&o-*#;`-==*:``''.... .................''''''.'..'.'''.......'''.'''''.,@@@&oo%%%%oo*+~-;;;:,,,,,,,,,,,:,``+&&&o##-=o~:-~;%*;,'''... ................'......'''.....''......'....''''.%@&**o%%%ooo*=~--;;;,,,,,,,,:,,,,:,`~&&@#%&==%+;-**&&~:`''... ...............'.....'..''...'.''.'...........'.`oo+*oooo%%%o*++~-;::,:,,,,,:,::,,,,`;&&&#%#==%+--%@@&+;`''... ....... .......'.....'''''''..................`=+oo*o%%oooo***+=-;::,,:,,,,,,,,,,,`':#&&#%#+~%o=;*@&@o~:''... ........ ......'''......'..'...............'..'=**%o*o******oo***+;::::,,,,,,,,,,```',o%%#&&o-*#o;-&&&#=;''... . ...... .......''.'.''..'...................'~++*o*++***o%%%%%ooo=;;;;;::,,,,,,,```':o%#%&@%~~#%-~#@#%-`''... . ...... ........''...........'............'~++*++++***oo%%o%ooo*=;;;;-;-;::::,,,``':*oo*o#%~;:``,:;,''''.''. ...................'........................-++**+**oooooooo*oooo*+~;;;-;;;;;;;::,``':*****%%-:`......'''''''. ...................................'...''...~+****oooooooo*********+~-;;;:;;:;:;;::,':++*****;,`''''''''''''.. ........................................''..~***oo%%o%%o**+++***+***+~-;::::;;:;:;;::,,,``''`'..''''.''.'''... .. ....................................''.:***oo%%%%%%o+++++++*+++++=--;;::;::::;:;;:,'....'..'..''....''.... .................................''.....'.:oo**o%%%#%%o*++==+++++=+++=~;:::::::,::;:::::,''.'.....'''...'..... ...................... ...........'''.;oo***o%%%oooo+============+=~;::,:::::::-;,::::,'....''.''.'........ ...................... .........''.:oo***o%+===+*++===========++=-:,:,:;::;:,;-:,;;::,....'..''''...... .....................'... ........'.:oo**oo%*-~~~=+++===~=~~~~=+++=~;:,,:;;:::,;-;,:::::,'.....''........ ...........'....'...................'':oo**o%%%+-~~==+*++==~~~~~=++++=~-;:::::::,:---;,:::::`................ ...................................'.:*o**o%%%o+~--~++*++=~~~~~~=++++=~;;::,:::::;---;::::;:`......''......... . ... .................. ..''.;****o%%%%*+~--~++*++=~~~--~=++++=~;;::,,:,,:;;;;;:::,,,`'........ ....... ... ... . .........................:****o%%%o**+=---+*+++~~~~-~~~+++==~-;:::,,::,,:,:::::,:,``'.'......... .. ..... . .. .... .. ......`+****%%%o***+=~-;~+++=~~~~-~-~==+==~-;:,,:,,::::,,,,,,,::,`'....... ..... ........ .... . . . ....`=****o%%oo**++=~-;-=++==~~~---~====~;;;,,,,,,,::,,,,`,,,::,``.''..... ..... ... ................. . '~*++*oooo*+++==~--;;-====~~~---~===~-;;:,,`,,,,,```````,,:,,`'''''..'....''..
How I use AI
I use AI to move faster through research, analysis, and testing, allowing me to evaluate and build more quickly.
- Research
- Broad market and category research, and sorting analytics exports, search queries, and checkout paths into patterns, each checked against the source data.
- Testing
- Turning a funnel problem into hypotheses and variant copy, to support decisions about what runs and how it's measured.
- AEO
- Asking AI answer engines how they describe a business, before and after changes, to see whether a site is being read the way it should be.
- Building
- Working tools like Undersigned, and presentations and visuals that turn findings into clear action items.
Tools
- Analytics and search
- GA4 · Google Tag Manager · Google Search Console
- CMS and website platforms
- WordPress · Webflow · Squarespace · Contentful · Brightspot · Headless CMS
- CRM and marketing automation
- Salesforce · Salesforce Marketing Cloud · HubSpot
- Design and build
- Figma · HTML · CSS · JavaScript · TypeScript · React · Git
- AI and prototyping
- Claude · ChatGPT · Perplexity · Lovable · Netlify
- Planning and collaboration
- Notion · Miro · Slack · Google Workspace · Jira · Trello · Asana · Airtable
Other work
- A Google marketing site's build time, cut from three hours to 25 minutes, so content across 51 localized versions published faster.
- A design system for a six-product Salesforce suite, cutting custom component build time by more than half.
- partialhistory.com, from positioning through launch.
- Undersigned, an app built with AI that lets people send a shared form letter from their own email.
- Product notification emails and a store Facebook page that grew its followers by more than 500% in four months, at lululemon.