RASA Chatbot Platform
Production chatbot platform with 75+ automated workflows and intents, Python action-server frameworks, and Java service integrations.
At a major European bank, I joined a team responsible for customer-facing conversational banking experiences. The chatbot platform was already serving real users, but each new intent was being built as a one-off inside the RASA framework. That made the codebase hard to reason about and slowed releases.
I focused on two things: reliability and reuse.
Generalized action-server classes
I extracted common action patterns — fetching account data, updating preferences, routing to agents — into reusable Python classes. New intents could now inherit from a base action and only override the specifics, which reduced duplicated code and made reviews much faster.
Production issue triage
Over two years I resolved more than 100 production issues. Most followed the same pattern: ambiguous logs, multiple upstream services, and a user message that didn’t surface cleanly. I built a habit of writing root-cause notes after every incident, which became the seed of a team runbook.
Java integration work
Not every part of the platform lived in Python. I implemented Java service changes for 10+ production workflows, mostly around hand-off to back-office systems. The constraint was always the same: no downtime during deployment windows.
This project taught me that conversational systems are 20% NLP and 80% plumbing. If the data flow, fallback paths, and observability are solid, the bot feels simple even when it isn’t.