Running a Telegram bot as a single pod is easy. Scaling it to multiple replicas is where things get interesting. This talk follows the real evolution of a production bot for a language-learning platform. Each step was driven by a concrete problem: polling breaks when two instances race for the same update, so you switch to webhooks and introduce an ingress. In-memory sessions disappear between replicas, so Redis shows up. Reminder workers block the webhook handler, so they become separate binaries running as CronJobs. You add a second language pair and suddenly the same Helm chart needs to deploy two isolated bots — and a subtle bug surfaces where one bot answers for the other. We'll also cover how LLM calls made cost invisible (and how a small in-cluster usage-tracking service fixed that), plus encrypted secrets in git with SOPS across a multi-chart monorepo.
Vasil Kulakov is a Staff Engineer in Site Reliability Engineering with a strong focus on building and scaling production infrastructure. Currently at snappyloop.work, he has helped establish the backbone for an AI-driven language learning platform, supporting rapid user growth. Previously, he led SRE teams at CHECK24, combining hands-on engineering with leadership across high-performance systems. His work spans Go, PHP, and modern cloud-native tooling, with a practical, execution-first approach to reliability and scale.