02 · Brand Engagement Network, Jul 2024 to present
What I've been building at BEN.
BEN builds LLM-powered conversational assistants with speech for customers. My work sits in the AI backend: the services that turn a user's utterance into a spoken, grounded, context-aware reply, and the platform that runs them.
speech in→
streaming chat API→
dialog manager→
retrieval+
user memory→
LLM→
parallel TTS→
speech out
services I architected or co-designed
Shared LLM dialog library
Architected the asynchronous Python library that all of the company's dialog managers build on: text generation, embeddings, emotion classification and conversation state.
Decoupled speech synthesis from dialog logic across six customer assistants, so multi-sentence responses are synthesised in parallel. That cut response latency by roughly 40% and simplified deployment.
PythonasyncioLLM APIsTTS
Streaming chat API
Designed and shipped a streaming chat API over WebSocket and Server-Sent Events with typed event frames, automatic language switching, per-voice text-to-speech routing and multilingual fallbacks.
Brought the service to a typed, linted codebase with an 80% coverage gate in CI.
FastAPIWebSocketsSSEPydantic
Retrieval (RAG) service
Built the retrieval service on PostgreSQL and pgvector: per-tenant databases, pluggable dense and sparse embeddings, background re-embedding and parallel query decomposition.
Co-designed metadata-aware reranking and table and image retrieval from scientific papers, with RAGAS-based evaluation to measure changes.
PostgreSQLpgvectorEmbeddingsRAGAS
Data-service migration
Led a coordinated breaking change that replaced direct database access in five microservices with a single typed data-service client.
That made schema ownership explicit and unblocked the move to a multi-tenant deployment.
MicroservicesAPI designMulti-tenancy
Observability and operations
Added end-to-end trace IDs, Prometheus metrics and structured logging with Loki and Grafana across the AI stack.
Own the Kubernetes deployments and releases for the services I work on, including an event-driven Celery task service for conversation, summary, retrieval and analytics persistence.
KubernetesPrometheusLokiGrafanaCelery
Long-term user memory
Co-designed a memory system that builds long-lived user profiles from conversations through per-turn LLM extraction over Redis-backed sessions, so assistants remember what matters across sessions.
Built Streamlit chat, speech and retrieval testers that engineers and domain experts use to try changes before they ship.
RedisLLM extractionStreamlit