Growth & Acquisition | Dubai
Twelve years growing fintech and e-commerce across the Gulf, reporting at CEO level. $53M in assets under management. App revenue tripled. Ten times the leads at a third of the cost. Budgets up to $500K a month.
Available immediately | Arabic native, English fluent
Marketplace, luxury retail, robo-advisory, B2B fintech and regulated trading, across markets from Riyadh to Cairo.
Bought personally, in live accounts. Not managed through an agency.
| Organisation | Roleand period | What it was | What came out of it |
|---|---|---|---|
| UEXO | Regional Head of Growth & Acquisition2026 | Dubai | GCC online trading platform, CFD, restricted ad category | Spend scaled 4x, $25K to $100K a month, with efficiency improving as it scaled. Built the daily attribution pipeline the business did not have. Team of five. |
| Qashio | Head of Growth & GTM2024-25 | Dubai | B2B spend management fintech | Doubled the leads moving through the funnel in twelve months, and put Marketing, Sales and CSM on one set of stage definitions. Team of four. |
| Tamra Capital | Digital Marketing Growth Lead2023 | KSA | Saudi robo-advisory, retail investing | Acquisition behind $53M in assets under management, on $133K a month, sustained 10% month-on-month customer growth. Built the martech stack from nothing. |
| Chalhoub Group | Growth Marketing Manager2020-22 | Dubai | Luxury fashion and beauty e-commerce | Tripled app revenue across the brand portfolio including Molton Brown, Faces and Level Shoes, lifting active users 20%. Merged offline and online CRM into one customer view. |
| Souq.com | App Marketing Manager2014-19 | UAE | The region's largest marketplace, acquired by Amazon | Up to $500K a month on app acquisition including White Friday, and Project Sunrise, the post-acquisition rebuild of the app. Promoted twice in six years. |
| Channel | Souq.com2014-19 | Chalhoub2020-22 | Tamra2023 | Qashio2024-25 | UEXO2026 |
|---|
Blank means it was not part of that remit.
| Layer | Tools run in production |
|---|---|
| Attribution & MMP | AppsFlyer, Adjust, Singular, server-to-server postbacks, Meta CAPI, Google Tag Manager and server-side tagging |
| Analytics | GA4, Looker Studio, cohort and payback modelling, Shopify analytics, BigQuery exports |
| Lifecycle & CRM | HubSpot, Klaviyo, WebEngage, lead scoring, stage architecture, onboarding and reactivation journeys |
| Automation | n8n, MCP servers wired into Claude for daily refreshing dashboards, Python reporting pipelines |
| Compliance | Financial product certification on Meta and Google, risk-warning disclosure, pre-flight creative and landing page review |
Not prompts. Working systems that take a person out of a loop. All of this is running now.
Meta Ads, Google Ads, GA4 and Shopify wired into Claude through MCP servers, so the data is queryable in plain language instead of exported into a spreadsheet first.
The dashboard rebuilds itself on a schedule, no analyst in the loop. Asking which campaigns lost money last week after returns takes a sentence, not an afternoon.
n8n and Python jobs that pull every source on a timer, reconcile them against the commerce back end, and write one dashboard Finance and Marketing both read.
Every row is tagged actual, estimated or input, so a modelled number never gets mistaken for a measured one. That tagging is the part most automated reporting skips.
Built end to end. It drafts positioning content strictly from verified source material, with fabrication designed out of the architecture rather than prompted against.
Output you can put in front of a client without fact-checking every claim. The constraint is the product.
Landing pages and funnel steps read against the performance data to rank what to test next, so the roadmap is ordered by likely impact rather than by whoever shouted loudest.
A test programme that keeps moving instead of stalling every time the team runs out of ideas.
Every figure here is one I can walk through line by line. The dashboards on the other two tabs are demonstration builds, marked as such: they show method, not a client's results. Figures in USD; originals were SAR and AED.
Most e-commerce accounts are optimising against numbers that are quietly wrong.
So I start with the measurement layer, not the bids.
Most accounts I inherit have none of this, which is why their numbers disagree with the bank.
| Layer | What I set up | Why it matters |
|---|---|---|
| Source of truth | Commerce back end as the master record, reconciled against analytics and every ad platform | One number the business plans against |
| Web tracking | GA4, Google Tag Manager, server-side tagging, Meta CAPI, deduplicated purchase events | Clean signal for the bidding to learn from |
| App tracking | AppsFlyer, Adjust or Singular on server-to-server postbacks, iOS and Android held to the same standard | Install source tied to purchase, not to installs |
| Catalogue | Merchant Center feed carrying brand and full attributes, cost of goods pushed per product | Shopping and PMax bid with margin awareness |
| Lifecycle | Klaviyo flows on browse, cart, post-purchase and winback | Retention stops being a paid media problem |
| Reporting | Looker Studio or a Python pipeline, refreshed daily across platforms, analytics and back end | Nobody argues about whose number is right |
| Campaign | Platform | Type | Objective | Audience | Bid strategy | Target |
|---|---|---|---|---|---|---|
| Convert PMax | Full catalogue | Performance Max | Purchase value | Signals: converters, high-AOV list | Target ROAS on profit value | POAS 1.8x | |
| Convert Shopping | Hero SKUs | Standard Shopping | Purchase value | Top-margin SKUs, split out for budget control | Target ROAS on profit value | POAS 2.4x | |
| Capture Search | Brand | Search | Purchase | Brand and misspellings, exact | Target impression share | 90% abs. top | |
| Capture Search | Category | Search | Purchase | Non-brand category and competitor | Target CPA | CPA at 0.6x contribution | |
| Reach Awareness | Broad | Meta | Reach / video views | Impressions, reach | Broad, market-wide, no interest stacking | Lowest cost | CPM floor, frequency < 2 |
| Consider Consideration | Category | Meta | Traffic / engagement | Clicks, PDP views | Engagers, video viewers, category interest | Cost cap | Cost per PDP view |
| Convert Catalogue | Evergreen | Meta | Advantage+ catalogue | Purchase value | Broad plus dynamic retargeting | Highest value | POAS 1.6x |
| Convert UGC | Ad hoc | Meta | Sales, manual | Purchase | Pointed at one brand, category or hero SKU | Cost cap | Beat evergreen CPO |
| Retain Flows | Lifecycle | Klaviyo | Triggered | Repeat purchase | Browse, cart, post-purchase, winback | n/a | Revenue per recipient |
One mega PMax gives the algorithm the most signal. Splitting at campaign level gives me budget control per category. Volume and appetite for control decide it.
Actual step conversion against benchmark | where the money is leaking
Google Shopping CPC sitting at $2.00 with weak impression share on the products that mattered. Bids were not the problem.
The product feed was reaching Google without brand and several attributes Google scores against. Rebuilt the feed to carry them properly.
CPC fell to $0.70, a 65% cut, and the catalogue picked up free listings on the organic Shopping surface at the same time.
GA4 reporting roughly 1.5x the sessions the commerce back end recorded, and almost exactly 2.0x the revenue on single-order days.
Sessions running high can be a definition difference. Revenue at exactly double on a one-order day cannot. The purchase event was firing twice, the native platform integration running alongside a manual tag. Removed the duplicate.
Clean conversion signal back to Google, which is what the bidding algorithms actually learn from, and a revenue number Finance could use.
GA4 was capturing 81% of orders but only 31% of revenue against the commerce back end, measured over seven months.
Order capture at 81% is normal. Revenue at 31% is not. The high-ticket items were not completing through the tracked checkout, so the gap was concentrated entirely in the orders that mattered most.
Anyone reading ROAS off GA4 had been seeing a third of the money. Reporting moved to the back end as source of truth and the bidding targets were reset against real revenue.
Growth Marketing Manager | Luxury fashion & beauty e-commerce, Dubai
Paid and organic across the group's luxury portfolio, Molton Brown, Faces and Level Shoes among them. Tripled app revenue by targeting at segment level instead of broad.
App Marketing Manager | E-commerce, acquired by Amazon | UAE
App acquisition and re-engagement at marketplace volume, up to $500K a month, including White Friday.
Amazon acquired Souq and the app was rebuilt from scratch. Most of the budget went to install networks, and installs were the metric everyone bought against.
Installs are the cheapest thing to buy and the easiest to fake. I moved allocation onto the link between install source and actual purchase, reading engagement at day 1, 3 and 7 by network and shifting budget to the sources whose users were still there and buying.
Budget moved off high-volume, low-quality networks and onto sources producing repeat buyers. At marketplace volume, the gap between an install and a buyer is most of the budget.
In B2B the money arrives months after the click.
So anything optimised on the first session buys you the wrong customers.
In B2B the CRM is the measurement layer. Get it wrong and every conversion rate in the business is fiction.
| Layer | What I set up | Why it matters |
|---|---|---|
| CRM | HubSpot, every stage written down and agreed by Marketing, Sales and CSM, with scoring on channel, company size, title and seniority | One shared definition of a lead |
| Closed loop | Offline conversion import back to Google and Meta on the GCLID, carrying the sales outcome | Algorithms chase deals that closed, not forms that filled |
| Web tracking | GA4, Google Tag Manager, server-side tagging, source captured on the record and carried through to contract | Attribution survives the whole sales cycle |
| App tracking | For consumer fintech, Adjust or AppsFlyer on server-to-server postbacks, funded events sent back as conversions | Optimise on funded accounts, not installs |
| Lifecycle | WebEngage or HubSpot sequences, one per angle, triggered the moment a lead lands | Nobody sits in a CRM waiting to be noticed |
| Reporting | Looker Studio from CRM entry to signed contract, cohorted by acquisition month | Payback becomes visible, so it can be managed |
A message break between the ad and the page is the most expensive thing in the funnel. Each angle runs its own page and sequence, so lead quality traces back to the angle, not just the channel.
A signed contract that never goes live is not revenue, so the funnel does not stop at the signature.
Deals arrive months after the click, so the funnel and the cohort only make sense read together. Both come from one model.
Volume, cost per stage and step conversion | 2025
On these numbers. Client figures are confidential. Budget, cost per lead and CAC are real. Funnel volumes are representative: the rates and the trajectory are what the account did, the counts are adjusted.
Deals closed, by the month the lead arrived | absolute counts
Read a row: every deal that came from January's 100 leads, and the month it closed. Half land in month zero, a quarter the month after, the rest grind out over the following six to eight. Later cohorts still have deals open, which is why their rows are short. The bottom row is deals closed per calendar month, and it ties to Deal won in the table above.
qashio.com. Budget went up 3.3x. Cost per lead fell by two thirds. Lead volume went up ten times.
Feed a sales team hiring ahead of its pipeline. The buyer: a CFO or finance manager at a UAE company big enough to have a real expense problem. Long cycle, sold to a committee.
Head of Growth and GTM, reporting to the CEO, four people across media, lifecycle and content. I owned the budget and where it went, and the funnel definition itself, which mattered more than the media did.
Budget sat on LinkedIn and Google, because that is where B2B is supposed to live. Cost per lead was $300, it was not moving, and the plan was to scale into it.
Tested Meta properly instead of writing it off as a consumer channel, and let the cost curve decide the split. LinkedIn stayed for what it is genuinely best at: company size, seniority, title.
Cost per lead fell from $300 to $100 while monthly budget went from $30K to $100K. Tripling spend usually costs you efficiency. Here it improved, because the money moved to where the leads actually were.
Leads were cheap to buy even in a restricted category, but most registrations never funded and never traded. Cost per lead looked fine. The business saw nothing.
Four angles run as four separate funnels, each with its own creative, page and sequence. Measured on funded accounts and trading volume per user, not on leads.
Kept the angles producing repeat traders, cut the ones filling the CRM. Spend scaled 4x, $25K to $100K a month, and efficiency improved as it grew.
First-time investors in Saudi: salaried people with savings and no investment account. New product, new category, so day-one ROAS pointed at exactly the wrong channels.
Built the stack from nothing, with GTM set up so new tools plug in without engineering work, and Adjust and WebEngage on server-to-server postbacks. Then moved budget against blended payback instead of platform-reported returns.
$53M in assets under management on $133K a month, with 10% month-on-month customer growth held all year.
That is most of what I do. Happy to walk through any figure on this site, line by line.