Work with me
Voice AI and agent workflow engineering
I build the backend that keeps AI calls, texts and emails in step: who to contact, when, on which channel, what happens when a provider fails, and when a person takes over.
Problems this is for
- Calls, messages and follow-ups in the right orderMany leads at once, each on its own sequence across voice, SMS and email.
- Connecting the piecesTelephony, voice, language models and your existing backend, working as one system.
- Failures that don't become incidentsRate limits, provider outages and redelivered messages, handled without duplicate sends.
- Handing over to peopleQualified conversations reach a person, with the context they need.
What I've built
Speculo.ai
Senior AI Communication Engineer
Voice AI that calls, texts and emails real-estate leads, then hands the qualified ones to the client's human agents. My part was the Python backend that times every call, text and follow-up.
One production run sent 117K+ emails and SMS and about 10K AI voice calls in 6 hours. The work contributed to $2M+ in annual revenue.
The pipeline ran on GCP Pub/Sub with parallel Cloud Run workers. Pub/Sub delivers at least once, so every send carried an idempotency key (the lead ID plus the channel), and duplicates were prevented. A LangGraph state machine ran the qualification script.
Read the architectureThe agent backendFollow one lead, on the homepage
Demos you can watch or run
Illustrations and browser simulations
A short animated film of an AI follow-up call that books a viewing and hands it to a human agent, a 21-second demo call (fictional names, both voices AI), and Automation Studio: four agent workflow demos you can run in your browser.
What I design for
The engineering questions that decide whether an agent workflow holds up. The first five are how the Speculo pipeline handled them (see the architecture write-up); the last is a general point.
- StateEach lead's sequence is explicit, so a step isn't skipped or repeated while several agents work at once.
- Delivery that may repeatQueues deliver at least once, so each send claims a key first and a redelivered copy is skipped.
- Rate limits and outagesWorkers wait and back off instead of failing; a refused send is marked failed and retried later.
- ObservabilityEvery event in one queryable log, and an alert when a queue backlog stays high.
- People in the loopQualified conversations go to the client's human agents; the agents make first contact and qualify.
- When a retry isn't safeIf a provider times out, the message may already have gone. That case needs a check before resending.
How I'd approach a project
A proposed way of working, adjusted to each project. It isn't a fixed package.
- Map the journeyChannels, timing, qualification rules, and the moment a person takes over.
- Design the stateWhat the system records for each contact, so steps can't be skipped or sent twice.
- One channel end to endA working path with logging, before adding the next channel.
- Failure handlingRetries, back-off and alerts, tested against provider errors.
- Pilot, then scaleReal volume with human review first, then the rest.
Depending on the project, the result could be one or more of:
- a journey and state design for your contacts and channels
- a working prototype on one channel
- an integration plan for your telephony, messaging and backend
- a production implementation
Questions
- Where are you, and how do you work?
- I'm based in Pakistan (UTC+5) and work remotely, as an independent contractor since July 2026. I'm open to relocation; US roles need visa sponsorship.
- What do you build with?
- Python and LangGraph, Twilio and ElevenLabs for voice, OpenAI, Anthropic and Gemini models, GCP Pub/Sub for queues, and pgvector.
- Do the AI agents replace the sales team?
- At Speculo.ai they didn't: the agents made first contact and qualified leads, and the qualified ones went to the client's human agents.
- How do we start?
- Send one line about the project through the form, or email me. I read and answer these myself. If you're hiring for a role, choose that option in the form, or start with the resume.
Planning calls, messages or follow-ups with AI?
Tell me who you need to reach, on which channels, and when a person should take over.