At a glance
- Title
- Full Stack AI Engineer
- Experience
- 5+ years in production
- Based
- Lahore, Pakistan, UTC+5
- Core
- Python, Next.js, PostgreSQL, AWS
- AI
- OpenAI, Retell AI, MCP servers
- Languages
- English (fluent), Urdu, Punjabi
- Open to
- Freelance builds and full time roles
Download résumé ↗I started in PHP in 2021, writing backend modules for client projects nobody would call glamorous. CMS features, e-commerce plumbing, database queries that had grown slow because nothing had ever been measured.
What I noticed early is that the interesting problem is almost never the code. It is that a person somewhere is doing something a computer should be doing, and everyone has stopped noticing because that is simply how it has always worked. Somebody exports a spreadsheet every Monday. Somebody re-types an address into a courier portal. Somebody keeps a private tally because the two systems disagree and they have learned not to trust either.
That became the work I chose. Over five years I moved from backend modules to owning whole systems: the APIs, the queues, the schedulers, the sync engines, and eventually the infrastructure they run on. At Maxenius I led the team that built a catalogue sync holding 300,000 listings in agreement across two storefronts, then led its migration from Laravel to Python.
The last two years pushed me into AI engineering, and it turned out to be the same job wearing different clothes. At Codiux I built and deployed a production voice sales agent on Twilio, Retell AI and OpenAI: real outbound calls, real customers, real consequences when a provider times out mid sentence. Since then I have been building MCP servers so agents can reach internal systems safely instead of through hand written glue.
I build with Claude Code, Codex and Cursor in the loop, and I would rather say so than pretend otherwise. They are very good at the mechanical half of the job. They are not a substitute for knowing why a queue is backing up at three in the morning, and everything that reaches a client is code I have read and can defend.
Calling a model is the easy part. Everything that makes it trustworthy, the latency budgets, the fallbacks, the guardrails on what an agent may actually do, the write backs that make its output useful, is ordinary systems engineering. That is the part I am good at, and it is why I describe myself as a full stack engineer who does AI rather than the other way round.