arafatcro.dev // freelance cro developer

available

Freelance CRO developer building client-side A/B tests that survive production.

I write the experiment code that runs on your live revenue pages, the ones too important to break. Every test ships clean and reverts without a trace, so the only thing your visitors notice is the result.

Brands hire me direct. CRO agencies and in-house teams plug me in as their build layer.

500+tests shipped
10platforms
7+years experience
ship · pdp-cta-0421
$ab ship pdp-cta-0421
no flicker · FOOC guard8ms
waits for SPA route changeok
a11y · focus + aria preservedok
reverts clean on exitok
chrome · safari · firefox3/3
→ shipped to production50/50 split
0 regressions · live on real traffic
optimizely · vwo · convert · adobe target · dynamic yield · monetate · intelligems · ab tasty · kameleoon · abtestly

01 // selected work

Selected work

experiments · builds · writeups
shipped to production

Winning tests first, then the range: SPA-aware UI, server-load mitigation, enterprise platform quirks, and accessibility-compliant variants. Real experiments, real outcomes, shipped to production.

Radiator Super SKU

Won ×3 · CVR +13.9% · £1.87m potential

Large UK home improvement retailer

Every radiator size was a separate SKU and page. A Super SKU surfaces all sizes on one PDP, built from a reference map with live price hydration. Won, and held up across three runs.

Read the case study →

Add-to-bag interstitial CTA

Won · CVR +10.0% · £9.84m potential

Large UK home improvement retailer

The add-to-bag interstitial led with "Checkout Now", a bigger commitment than users want at that step. Relabelled to match intent, fully instrumented on a Next.js SPA.

Read the case study →

PDP image optimisation

Won · AOV +4.34% · £1.19m in-test

Large UK home improvement retailer

The PDP gallery was constrained, with no proper fullscreen inspection. A full client-side rebuild: custom carousel, fullscreen zoom modal, mobile pinch-to-zoom, all keyboard-accessible.

Read the case study →

Most-relevant USPs

Rolled out 100% · CVR +4.15% · £11.1m potential

Large UK home improvement retailer

The strongest reasons to buy, fulfilment speed and certainty, weren't surfaced near the top. A scannable USP strip, injected client-side and SPA-aware.

Read the case study →
Article Optimizely Edge

Sample Ratio Mismatch in SPA experiments

Why your GA4 split never matches the platform

GA4 shows 60:40 when the testing platform shows 50:50. Random, unstable, never matches, and the experiment code is rarely the actual cause.

Walks through the four root causes of GA4/platform Sample Ratio Mismatch on SPAs (data layer timing, beacon loss, virtual pageview context, bot traffic) and the Tealium/GTM tracking pattern (with utag.link intercept and payload mirroring) that fixes most of them.

Read the article →
Case study Convert

Quote-step redesign on a React funnel

UK vehicle scrappage and valuation service

A revenue-critical Vehicle Details step, redesigned to a cleaner single column with the offer in a banner, delivered client-side through Convert on a React single-page app with no access to the codebase.

Re-skinned React's own form rather than rebuilding it: CSS for everything it can do so it survives re-renders, JavaScript only for the banner, icon and CTA, kept idempotent and re-applied across the funnel's route changes, with the vehicle read live from localStorage. Built and in QA.

Read the case study →
Article Tooling

I built a CRO build tool

abtestrig, a CRO-specific build tool, open source on GitHub

Every CRO dev rebuilds the same Gulp/webpack rig. Hardcoded loader-script IDs, 8 to 15s rebuilds, page reloads on every CSS tweak, and no way to test interactions between two live experiments before shipping.

Built abtestrig around esbuild: sub-200ms builds, a loader that auto-discovers the active experiment and port (no script edits between experiments), CSS hot-swap via a stable <style> slot so the activated state is preserved, stack-mode that runs multiple experiments in deterministic order for conflict testing, and a shared @lib helper library so pollerLite/waitForElement stop getting copy-pasted between projects.

Read the article →
Geobear HubSpot CMS

HubSpot CMS landing page build

UK ground engineering / residential subsidence

Geobear runs a HubSpot CMS estate of 50+ pages across several brand variants, all powered by the same theme. The brief: a new residential landing page with a different layout and modules, without putting the 50+ live pages at risk.

Cloned the live theme into a parallel build via hs cms fetch / hs cms upload, then shipped nine custom modules from scratch: sticky nav, hero with background video, case carousel, get-advice flow, logos, testimonials, video gallery, CTA banner, and a Leadoo form wrapper. Deferred Swiper init via IntersectionObserver, a ResizeObserver shim for sticky-nav padding under HubSpot's overflow: hidden wrappers, CSS custom properties for the design system, and inline schema.org JSON-LD (HowTo, ItemList, Review) that passed the Rich Results Test.

Read the case study →
View all work

02 // how i work

How I work

hand-written test code
QA'd · accessible · reverts clean

In plain terms, your variation does exactly what was designed, on every browser and device, with no flicker and no page-speed hit. The panels below are how.

stack.js // implementation
1Vanilla ES6 IIFEs, BEM-scoped SCSS
2Custom DOM polling for late-rendering elements
3MutationObserver & IntersectionObserver for SPA-aware behaviour
4React-aware DOM updates (native input descriptor patterns)
5Focus-trap implementations with AbortController cleanup
6ARIA-compliant component patterns
qa.checks QUALITY BAR
Self-QA every variant across browsers and devices
Accessibility checks before handover: focus order, keyboard parity, ARIA semantics, screen-reader sanity
Code reviewed against client engineering conventions where they exist
Written to pass review where they don't
platforms.config 10 supported
Optimizely Edge VWO Convert.com Adobe Target Dynamic Yield Monetate Intelligems · Shopify AB Tasty Kameleoon ABTestly

Comfortable with Tealium, GA4, Adobe Analytics and most consent-management providers. Familiar with Magento, Shopify Plus, Next.js, and AEM host stacks. Also build custom HubSpot CMS modules (HubL) where the brief calls for it.

engagement.md // how we run it
01Direct with brands or as overflow capacity for CRO agencies
02Short sprints, retained capacity, or one-off complex builds
03Async-first; UK and US business hours covered
04Plain communication for non-technical stakeholders; engineering-grade detail when required

03 // clients & partners

Clients & partners

retailers · insurers · DTC
direct + via agencies

Experiments and builds shipped for retailers, insurers, charities, and DTC brands, both directly and through agencies and CRO partners.

// experiments shipped for

  • Screwfix
  • Travis Perkins
  • Howdens
  • Boots
  • Specsavers
  • Travelodge
  • EasyJet
  • OVO Energy
  • GoCardless
  • Hotel Chocolat
  • Mamas & Papas
  • HSS Hire
  • AVEVA
  • Neom
  • British Red Cross
  • Avon
  • HomeServe
  • Comparitech
  • S&P Global
  • Dr. Woof Apparel
  • VitaHustle
  • Luxury Flooring
  • National Scrap Car
  • Key Group
  • 123drogisterij
  • Le Olive
  • Invincible Shoes
  • Inner Well
  • LifeDirect
  • MiniMeis

// agency & direct partners

  • Brainlabs
  • FunnelEnvy
  • Convertex
  • MoreConversion
  • Raketech
  • BrowserToBuyer
  • adShaker
  • CommerceSense
  • Growganic
  • Lunalogic
  • Experity

05 // recommendations

Recommendations

from people who
managed me directly

  • Hands down, one of the best developers I've worked with. From a technical perspective Arafat is really strong, but that's not even what I liked most about working with him. He was always extremely reliable and dependable. His estimations were almost always accurate, which made planning really easy. When unexpected things did happen, Arafat was absolutely brilliant at communicating. He's really got everything you'd want in a developer, so I would highly recommend!
    Carrie Tudsbury
    Carrie Tudsbury Service Design Lead
  • I worked with Arafat for nearly 2 years on a number of different projects. Arafat is an excellent dev: very knowledgeable, calm and thorough. He gives confidence to those around him, has an excellent grasp of process, and his communication is superb as well. All in all, I wouldn't hesitate recommending Arafat at all.
    Andy Seaton
    Andy Seaton IT, web & CRO
  • Arafat is a person with great skills and always has a can-do attitude. He has excellent communication and programming skill (JavaScript). He is extremely hard working and is always ready to deal with difficult situations and solve problems on time. Throughout his time at Fiftytwo, we worked on various projects and I was impressed by his manner of doing a great job. I absolutely would recommend him as a Frontend Developer.
    Andreas Graae
    Andreas Graae Product & change management
  • For almost a year now, I've had the pleasure of having Arafat as part of my team. He's a hard-working person who always delivers, and his work is always spot-on. I'm sad to see him go, but I wish him all the best with his new adventures.
    Martin Haakansson
    Martin Haakansson Software Developer
See the recommendations on LinkedIn

06 // get in touch

Get in touch

open to new projects
UK + US business hours

For project enquiries, overflow capacity, or to hire an A/B test developer for a conversion rate optimisation build. I respond within one UK business day.