Skip to content
All work
EnterpriseWeCrunch

FMCG Multi-Country Data Platform

A multi-country FMCG strategy team needed market-share dashboards they could trust to be current. The catch: their source data arrived as a steady drip of spreadsheets that field teams dropped into SharePoint, in a different shape for every market. I built the platform that turns that mess into governed, near real-time reporting without anyone touching a file by hand.

Role
Data Engineer
Timeline
2024 to present
Headline result
70% faster pipeline triggers
AzureDatabricksDelta LakeEvent GridPySparkPower BI
The problem

What was actually broken

Ingestion was manual, slow, and easy to get wrong. Someone had to notice a new upload, pull it, reshape it, and load it before a dashboard could refresh, which meant reporting always lagged reality by hours or days. Re-uploaded and corrected files quietly created duplicate rows, and every new country meant another bespoke load script to maintain.

Architecture

How it fits together

01

Autonomous ingestion

Logic Apps watch the SharePoint libraries, push every new file into Blob Storage, and Event Grid fires the pipeline the moment a file lands. No human in the loop.

02

Bronze, raw and audited

Files are captured into Delta exactly as received, with source, market, and load-time columns so every row is traceable back to the spreadsheet it came from.

03

Silver, clean and idempotent

Config-driven PySpark jobs on Databricks standardize each market to a shared schema, dedupe on business keys, and validate before promotion.

04

Gold, ready to serve

Conformed market-share models feed Power BI directly, so the dashboards read from a single trusted layer.

What I built

The parts that did the work

  • Idempotent pipelines that can re-run on the same file safely, so a correction overwrites cleanly instead of doubling the numbers.
  • Per-country schema mapping handled in config, not code, so onboarding a new market is a config change rather than a new deployment.
  • Event-driven triggers that collapsed the gap between a file landing and a refreshed dashboard from hours to minutes.
Challenges

The hard parts, and how I got past them

The challenge

Field teams uploaded inconsistent spreadsheet layouts that changed from market to market.

How I solved it

A config-driven mapping layer normalizes each source to one shared schema and validates it before anything reaches Silver, so a format quirk in one country never breaks the rest.

The challenge

Re-uploaded and corrected files risked duplicating rows in the warehouse.

How I solved it

Merge logic keyed on stable business identifiers makes every load idempotent, so reprocessing a file updates in place rather than appending.

Results

What changed for the business

70%faster pipeline triggers
Hours to minutesreporting freshness
Zeromanual ingestion steps
What I took away

The hardest part of a multi-country platform is rarely the compute, it is the variance in the inputs. Pushing that variance into config and making every load idempotent is what let the platform scale to new markets without scaling the maintenance.

More work

View all

Let's build something that ships.

Hiring for a senior Data/AI role, or need a data platform that actually holds up in production? Let's talk.

or email me directly at muhammaduzairkhan329@gmail.com