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.

Concierge to live callThe proof-of-concept pipeline. Click a step to see what it does.
model

AI concierge. AuraAI acts for a user and decides which tool to call next.

Production cutoverWhat the automation did on every run.
code

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

  • Tellco AI call detail records: filters, auto-retry notice, summary tiles and a table of calls with status, sentiment, disposition, duration and cost.
    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.
  • Tellco AI analytics dashboard: KPI tiles, answered-versus-failed volume, status and sentiment donuts, dispositions and spend.
    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.
  • Tellco AI operator dashboard with live calls, campaign progress and a best-time-to-call heatmap.
    Operator homeLive calls, running campaigns with progress, balance runway and a best-time-to-call heatmap.
  • Tellco AI TV mode: a read-only big-screen view with auto-refreshing totals.
    TV modeA read-only big-screen view with large type and auto-refreshing totals, safe to leave running on a wall display.

Engineering decisions

  1. 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.

  2. 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.

  3. 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.

  4. 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