AI marketing-intelligence platform
A platform that reads a client's analytics and commerce accounts, proposes campaigns against what it finds, and manages them on the ad accounts the client connects. I worked across the whole repository — the Python decisioning service, the web console, the mobile viewer, the schemas, the infrastructure and the deploy path.
The hard parts
- Nothing reaches a live ad account without two separate human approvals: one on the campaign idea, one on the finished creative. The code on that path is held to a higher review bar than the rest of the repository.
- Data residency is enforced at the call site rather than by where the box happens to sit, so the guarantee survives a migration between cloud providers instead of being re-argued.
- Around a dozen platform connectors — ads, analytics, commerce, social — each with its own token custody, refresh path and failure mode.
- Cities and sub-sectors come from closed registries. Free text there silently files a client under the wrong benchmark, and nobody finds out for a quarter.
- A seasonal calendar anchored to the Hijri year, so campaign timing is computed rather than hand-maintained every year.
- Nine CI/CD workflows and eleven architecture decision records, across two target clouds — one live, one staged for the cutover.
- Python 3.13
- FastAPI
- LangGraph
- PostgreSQL 16
- pgvector
- BigQuery
- dbt
- Cube
- React 19
- Vite
- Motion
- Expo
- Terraform
- Docker
- GitHub Actions