Python Backend Developer (Async / AI / High-Load)
Требования
Условия
Компания
Описание вакансии
📌 Что это за проект:
Разрабатываем AI-сервис психологической поддержки в Telegram
(далее — мультиплатформенность и миграция в Мессенджер Макс).
Это не «бот на 300 строк».
Это асинхронный production-сервис с архитектурой под масштаб:
- голос → Whisper → очередь → GPT
- Redis + Celery (воркеры)
- PostgreSQL (UUID, JSONB, индексы)
- Webhook-only
- Recurrent платежи (YooKassa)
- Lifecycle state machine
- Timezone-aware scheduler
- Idempotent webhook обработка
- Лимиты и защита экономики
Планируемая нагрузка:
60k+ пользователей, пики до 100 голосовых сообщений в минуту.
🧠 Требуемый стек (реальный опыт обязателен):
- Python 3.11+
- aiogram 3.x (строгий async)
- FastAPI / Aiohttp (webhooks)
- PostgreSQL (нормальная схема, индексы, JSONB)
- Redis
- Celery или RQ
- Docker / docker-compose
- Работа с webhook платежных систем
- Понимание stateless-архитектуры
Если не проектировали систему с очередями и воркерами — не подойдёт.
🛠 Что предстоит реализовать:
Архитектура
- Webhook-only бот (никакого polling)
- UUID как primary key (tg_id отдельно)
- Idempotency Telegram + YooKassa
- Connection pooling
- Stateless + горизонтальное масштабирование
AI Pipeline
- Голос → транскрипция (Whisper) → GPT
- Очереди и приоритеты
- Удаление аудио (privacy)
- Memory engine (short-term + summary)
- Ограничение токенов
Lifecycle / Доступ
Статусы:
NEW → ONBOARDING → TRIAL → ACTIVE → GRACE → EXPIRED
Доступ к AI строго через статус.
Retention
- Scheduler по локальному времени
- Daily check-in
- Streak логика
- Open loop (вечер/утро)
Billing
- YooKassa Recurrent
- Smart Retry: 2ч → 12ч → 24ч
- Grace period
- Блокировка AI после 3 неудач
Экономическая защита
- Лимиты сообщений
- Rate limit
- Anti-flood
- Crisis regex layer (без вызова GPT)
💬 Кого ищем:
- Middle+/Senior, который реально работал с async и production
- Понимает очереди, нагрузку, узкие места
- Может проектировать БД под масштаб
- Понимает, зачем DLQ, UUID и rate limiting
📩 Формат отклика (обязательно)
Ответьте коротко:
- Делали ли async Telegram-бота через webhook? Опишите архитектуру.
- Как организовывали очереди (Redis/Celery)?
- Делали ли рекуррентные платежи?
- Как реализуете idempotency webhook?
- С каким максимальным онлайном работали?
Без ответов по пунктам отклик не рассматривается.
Если вы понимаете, как не положить Redis под пиковую нагрузку — нам по пути.
1500 ₽/час · MVP 220–280 часов · Удалёнка
❗ Без сопроводительного письма по форме ниже отклики не рассматриваются.
❗ Junior / “делал простого бота” — не откликайтесь.
