🔥 Backend Python Engineer (Async / AI / Scalable Systems)
Требования
Условия
Компания
Описание вакансии
О проекте
Мы строим AI-платформу психологической поддержки в Telegram с дальнейшим масштабированием на другие мессенджеры.
Это не простой чат-бот.
Это распределённый асинхронный сервис, рассчитанный на рост аудитории и работу под нагрузкой.
Архитектурная модель:
- Голосовое сообщение → транскрибация (Whisper) → обработка → GPT
- Очереди задач и воркеры
- Redis как брокер и слой синхронизации
- PostgreSQL с продуманной схемой (UUID, индексы, JSONB)
- Webhook-подход без polling
- Подписки с автосписанием (YooKassa)
- Управление состояниями пользователя (state machine)
- Планировщик с учётом часовых поясов
- Идемпотентная обработка входящих webhook
- Ограничения на уровне экономики (rate limits, токен-бюджет)
Ожидаемая нагрузка:
60 000+ пользователей, кратковременные пики до 100 голосовых сообщений в минуту.
Технологический стек
Нужен человек с реальным production-опытом:
- Python 3.11+
- aiogram 3.x (чистый async)
- FastAPI или Aiohttp (обработка webhook)
- PostgreSQL (нормализация, индексация, JSONB)
- Redis
- Celery / RQ
- Docker / docker-compose
- Интеграция webhook платежных систем
- Понимание stateless-подхода
Если вы не проектировали системы с очередями и воркерами — эта позиция не подойдёт.
Что нужно будет реализовать
Архитектурная часть
- Telegram-бот исключительно через webhook
- UUID в качестве primary key (Telegram ID отдельно)
- Идемпотентная логика обработки входящих событий (Telegram + YooKassa)
- Connection pooling
- Горизонтальное масштабирование
AI-pipeline
- Голос → Whisper → GPT
- Разделение этапов через очереди
- Приоритизация задач
- Удаление аудио после обработки
- Память диалога (краткосрочная + summary)
- Контроль расхода токенов
Управление доступом
Жизненный цикл пользователя:
NEW → ONBOARDING → TRIAL → ACTIVE → GRACE → EXPIRED
Доступ к AI должен строго зависеть от статуса.
Удержание
- Планировщик по локальному времени
- Daily check-in
- Логика streak
- Open-loop сценарии (утро/вечер)
Биллинг
- Рекуррентные платежи через YooKassa
- Повторные попытки списания (2ч → 12ч → 24ч)
- Grace-период
- Блокировка AI после нескольких неудачных попыток
Защита системы
- Лимиты сообщений
- Rate limiting
- Anti-flood
- Crisis-слой (regex-фильтрация без вызова GPT)
Кого ищем
Middle+/Senior backend-инженера с реальным опытом асинхронных production-систем.
Важно:
- Понимание очередей и конкурентности
- Опыт работы под нагрузкой
- Умение проектировать схему БД
- Понимание DLQ, idempotency, rate limiting
Формат отклика
Ответьте коротко по пунктам:
-
Делали ли вы Telegram-бота на webhook? Опишите архитектуру.
-
Как организовывали очереди и обработку задач?
-
Есть ли опыт рекуррентных платежей?
-
Как реализовывали идемпотентность webhook?
-
С какой максимальной нагрузкой работали?
Без структурированного ответа отклик не рассматривается.
Если вы понимаете, как предотвратить перегруз Redis при пике — нам по пути.
Условия
- 1500 ₽ / час
- MVP: 220–280 часов
- Удалённый формат
Отклики без технических ответов не рассматриваются.
Junior-разработчиков не рассматриваем.
