Voice CRM · Sumeru Tech
Tellco AI
A voice CRM that had to go to production without taking customers down. I automated the cutover, audited the API for authorization leaks, wired an AI concierge through to a live phone call, and now lead the re-architecture.
- role
- Software Engineer Lead
- organisation
- Sumeru Tech
- period
- Jun 2025 – present
- 250+
endpoints cut over, no customer-facing downtime
source: CV, Sumeru Tech
- 294
endpoint × role combinations audited
source: CV, Sumeru Tech
- 2 + 5
critical and high-severity issues found and fixed before onboarding
source: CV, Sumeru Tech
- 4 min
verified live AI call through the full pipeline
source: CV, Sumeru Tech
The problem
A voice CRM only earns trust if it stays up and keeps one role's data away from another. Tellco AI carried 250+ REST endpoints over a 47-table Postgres schema with six tiers of role-based access, and it was moving into production ahead of a client's onboarding. That raised two risks: a cutover that could not be allowed to take customers down, and an authorization surface too large to review by hand.
What I built
I wrote the cutover as a program, not a runbook: a Python and paramiko script that snapshots the running configuration, issues TLS certificates, validates the new configuration before reloading, and rolls back automatically if any check fails. It shipped with no customer-facing downtime.
Before the client came on, I audited the API across 294 endpoint and role combinations. The audit found two critical and five high-severity issues, among them JWT library vulnerabilities, RBAC authorization leaks and exposed ports. All were fixed.
For an enterprise proof of concept I integrated an AI concierge (AuraAI), the CRM, a voice agent and FreeSWITCH telephony into one pipeline using tool-calling, multi-step orchestration and webhooks. I debugged across the services until it produced a verified four-minute live AI call.
I am now leading a ground-up re-architecture of Tellco for scale, and set the team's frontend conventions and CI/CD workflow along the way.
AI concierge. AuraAI acts for a user and decides which tool to call next.
Snapshot. Capture the running configuration so there is something to return to.
Diagrams are simplified from the work described above. Node colours: model, code, external service, person or result.
Screens

Call detail recordsCall detail records on a live tenant: 144 calls, a 92.4% answer rate, filters by status, direction, agent and date, and per-call sentiment, disposition, duration and cost. Auto-retry re-dials unanswered, busy and failed calls. Phone numbers are masked. 
AnalyticsThe analytics surface: KPI tiles with period-over-period deltas, answered-versus-failed volume, status and sentiment donuts, dispositions and spend, on a dark, data-dense canvas. 
Operator homeLive calls, running campaigns with progress, balance runway and a best-time-to-call heatmap. 
TV modeA read-only big-screen view with large type and auto-refreshing totals, safe to leave running on a wall display.
Engineering decisions
- 01
Make the cutover a program
A migration across 250+ endpoints has too many places for a manual slip. Encoding each step as code made it repeatable, and made rollback a property of the script rather than of someone's memory.
- 02
Validate before you reload
Configuration is checked before the reload, so a bad configuration is rejected while the previous one is still serving traffic.
- 03
Audit the matrix, not the list
Authorization bugs live in the pairing of who is calling and what they call. The audit walked endpoint × role (294 combinations) instead of reviewing endpoints one at a time.
- 04
Verify with live calls
Each hop in the concierge → CRM → voice chain is an external call with its own failure mode. The pipeline was checked against real calls, not only mocks.
Stack
- Languages
- Python
- TypeScript
- Data and API
- PostgreSQL (47 tables)
- REST (250+ endpoints)
- JWT
- RBAC (6 tiers)
- Voice and AI
- LLM tool-calling
- Multi-step orchestration
- Webhooks
- FreeSWITCH
- Operations
- paramiko
- TLS issuance
- Config snapshots
- Rollback automation
next case study
Voice Labs