Backend Engineer
I build the services that sit under AI products: event-driven pipelines, multi-tenant data isolation, and search that has to return something useful on a misspelled query.
- Currently
- AI Software Engineer at Magic Makers Lab
- Based in
- Lahore, Pakistan, working remotely
- Stack
- Python / FastAPI / NestJS / PostgreSQL / Elasticsearch / Celery / Redpanda / Redis / Docker
Isolation belongs in the database
On a multi-tenant platform, every tenant's data has to stay provably invisible to every other tenant. I enforce that with PostgreSQL Row Level Security rather than in application code, because application-level checks are the ones that get forgotten.
Decouple the stages that fail differently
Catalogue import, normalisation, and conflict matching each fail for different reasons and at different rates. Separating them behind a Redpanda bus with Celery workers means a slow import never blocks matching, and a failed match never loses the record.
Search needs a path forward, not just a result
The trademark matching engine runs bidirectional fuzzy matching on Elasticsearch with confidence scoring, designed with an upgrade path to native kNN vector search rather than as a dead end.
The work behind this
Built at Magic Makers Lab. Each links to a full case study.
Common questions
- How do you enforce multi-tenant isolation?
- PostgreSQL Row Level Security, so the constraint lives in the database rather than in every query an application developer writes. Trademark Guard uses this for merchant catalogue data.
- Why an event bus rather than direct calls?
- Because the stages fail independently. Catalogue import, normalisation, and trademark matching sit behind a Redpanda bus consumed by Celery workers, so back-pressure in one stage does not cascade and a failure is retried rather than lost.
- Which frameworks do you reach for?
- FastAPI for Python services, especially anything with an AI component or async work, and NestJS where the team is TypeScript-first. PostgreSQL for relational data in both cases.
- How do you handle deployment?
- Docker Compose, with the full stack brought up by a single command. Trademark Guard is containerised end to end for exactly this reason.
Need this on your team?
I am open to AI engineering and backend roles, and to contract work on vision, agentic, or event-driven systems.

