AI Voice Agent Developer
A voice agent is judged in the first half second. I build real-time phone agents where the response budget, the interruption handling, and the data capture are all designed together, because on a live call you cannot fix any of them afterwards.
- Currently
- AI Software Engineer at Magic Makers Lab
- Based in
- Lahore, Pakistan, working remotely
- Stack
- Python / FastAPI / LangGraph / Google Gemini / faster-whisper / Kokoro ONNX TTS / Twilio Media Streams / PostgreSQL
Run reasoning branches in parallel, not in sequence
The agent has to sound natural while also extracting structured CRM data. Doing those in sequence blows the budget, so the LangGraph graph runs a conversational reply node and a structured extraction node concurrently on every turn. Capturing data costs nothing in perceived response time.
Barge-in is a requirement, not a refinement
People interrupt. The agent has to stop speaking mid-sentence, discard queued audio, and start listening, or it reads as a recording within two turns.
Stream the audio out, do not wait for it
A streaming TTS pipeline means first audio starts before the full response exists. That, more than anything else, is what keeps the call feeling like a conversation.
The work behind this
Built at Magic Makers Lab. Each links to a full case study.
Common questions
- What latency do you target on a live call?
- Sub-second. That is achieved through a parallel LangGraph agent graph, a streaming TTS pipeline so first audio starts early, and faster-whisper for transcription rather than a slower batch model.
- How does the agent connect to the phone network?
- Through Twilio Media Streams over a WebSocket handled by FastAPI, so audio flows in both directions in real time rather than through recorded turn-taking.
- Does the agent capture data as well as talk?
- Yes. A structured extraction node runs concurrently with the conversational node on every turn, using Gemini's structured output to populate CRM fields silently. The record is complete by the time the call ends rather than after it.
- What happens to the call afterwards?
- Every turn and its extracted fields are written to PostgreSQL, so there is a full call log and transcript alongside the qualified lead.
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.
