berndt.codes

SmartOffice

Product
AI voicebot platform
At
SUSI&James
Period
07.2023 to today
Role
Lead Developer
Team
three to five developers

A platform for AI-driven phone conversations. Digital coworkers take calls, capture requests, answer questions and book appointments, and the highest-volume systems handle up to a hundred conversations an hour. I came in at version 2 and helped carry the product through to version 4.

Where it started

When I joined, SmartOffice, now Spark, already had a base of customers and had just moved to version 2. I was one of two seniors on the team, and my brief was split in two from the start: build on the product and give the team seniority. Both ran through all three years.

The layer you are not meant to notice

Voice in and voice out are the core of the product, and both come from external providers. So the demands on the layer in between were high: it has to scale to many calls at once, absorb the failure of individual providers, and take on any number of further providers, all at the lowest latency possible.

The real craft was in making that layer disappear. Between the telephony and the provider for speech-to-text and text-to-speech sits an abstraction that stays invisible during the call and is still fully steerable from the interface: voice, language, provider, speaking rate, tolerance for pauses. Setting up a digital coworker means configuring behavior, not technology.

Maturing the product and the team

At practically every touchpoint of the product, my aim was to tidy it up and make it more competitive. Over my time it has grown more modular: individual responsibilities moved into their own focused services, decoupled through events. That lays the ground to scale better in future. I protected usability throughout, even when that meant dropping features that burdened users more than they helped.

The second part of the brief was the team. I established code reviews, testing, and a dependable way of working, and I guided and coached the junior developers day to day. What has stayed is the thing I value most: the team has grown more mature and more independent. It knows what a good development process looks like, and by now it asks for one itself.

My role

Lead Developer and one of two seniors. I worked at practically every touchpoint of the product, helped carry the architecture decisions, and shaped SmartOffice across three major versions, both technically and in the way the team works together.

Results

  • Version 2 → version 4The product grew over my time and became tidier, more modular, and better set up to scale in the future.
  • Up to 100 calls/hourThat is the load the highest-volume customer systems carry in ongoing operation.
  • Provider-agnostic voice layerSpeech-to-text and text-to-speech run through an abstraction that is fully configurable from the interface.
  • A team that runs itselfIt now asks for a good development process on its own.

Built with

  • Python
  • FastAPI
  • React
  • PostgreSQL
  • Docker
  • NATS
  • OpenAI
  • Twilio
  • Vonage
  • Azure
  • Google Cloud
  • Hetzner

Back to work