
A MENA-region AI startup shipping two consumer-facing products
Two AI products (one retrieval-heavy, one vision-heavy) were being built as separate backends. Duplicated auth, duplicated RBAC, duplicated observability, and diverging fast.
The startup was standing up two products — one retrieval-heavy, one vision-heavy — as separate FastAPI backends. Auth was duplicated, RBAC was duplicated, observability was duplicated, and the two codebases were already diverging in subtle ways. Any cross-cutting fix needed to be applied twice.
The instinct on day one was microservices. The reality was a four-person engineering team that could not afford the operational overhead of two deploys, two auth systems, and two observability stories.
We consolidated onto a modular monolith: one FastAPI app, 11 route groups, 36 endpoints, one set of migrations. RS256 JWT auth (10-minute access, 30-day refresh) with token versioning so a password change invalidates every session without growing a revocation list. 4-role RBAC enforced via FastAPI dependency injection. Prometheus metrics and OpenTelemetry spans are emitted across every route.
The key containment pattern: per-product routers and per-product ARQ workers. Shared infra, isolated blast radius. A slow vision job cannot starve the retrieval product, and a bad migration in one product’s models cannot take the other down. Deployed as Docker multi-stage images to AWS ECR (me-central-1), fronted by Traefik.
Shared infra components
Time to add new product surface
Observability coverage
Blast-radius isolation
Finance — A Gulf-region tax and compliance advisory firm
Advisory staff were answering the same 40-50 recurring UAE corporate-tax questions by hand, each pulling 2-3 regulatory PDFs. Turnaround averaged 6 hours and junior staff frequently missed cross-references between VAT and CT documents.

Retail — A UAE home-furnishing retailer with a 40k-SKU catalogue
Customers shared Pinterest-style inspiration photos over WhatsApp and expected matching SKUs in return. Manual matching cost 20-30 minutes per enquiry; most customers dropped off before the retailer could respond.
Technology — B2B Analytics Startup
A B2B startup's original jQuery dashboard was becoming unmaintainable and couldn't support new features customers were demanding. They needed modernization without disrupting existing users or their development velocity.
Let's discuss how we can help transform your business.