BETBY
Middle Python Developer with SQL Skills
Автоматический пересказ вакансии на русском. Полный текст на языке оригинала и форма отклика — на сайте работодателя.
Python-разработчик в команду Backoffice Reports, отвечающую за раздел отчётов в бэк-офисе. Бэкенд аналитических отчётов на async Python поверх ClickHouse, которыми ежедневно пользуются операционные команды.
Задачи
- Разрабатывать и поддерживать отчёты в бэк-офисе: фильтры, группировка, сортировка, пагинация, итоги, drill-down, экспорт в CSV и данные для графиков
- Писать и оптимизировать аналитический ClickHouse SQL: агрегации по сотням миллионов ставок, многоуровневая группировка, разбивка по периодам
- Описывать отчёты как типизированные контракты (Pydantic-модели фильтров и вывода) в общей библиотеке отчётов
- Работать с RPC-слоем между API бэк-офиса и сервисом репортера ClickHouse (RabbitMQ)
- Реализовывать контроль доступа к отчётам: scopes и роли, изоляция данных оператора/бренда, скрытие полей по роли
- Исследовать медленные отчёты: читать планы запросов, выбирать фильтры, PREWHERE, предагрегацию, работать с командой аналитики/DataFlow над дизайном таблиц
- Покрывать отчёты и SQL тестами, обеспечивать корректность данных между приложениями бэк-офиса
- Участвовать в code review и развивать фреймворк отчётов (новые типы отчётов, пресеты, кастомные сегменты)
Требования
- 3+ года коммерческой разработки на Python
- Уверенный asyncio: async/await, конкурентность, асинхронные I/O-клиенты
- Pydantic v2 (модели, валидация, сериализация) и type hints
- Сильный SQL: сложные SELECT с JOIN, подзапросами и CTE, GROUP BY по нескольким измерениям, условная агрегация, оконные функции
- Понимание, как масштабируются аналитические запросы и почему запрос медленный
- Опыт с колоночной/OLAP-БД (предпочтительно ClickHouse; Vertica, Exasol, BigQuery, Redshift, Snowflake — плюс)
- Опыт построения REST API на асинхронном фреймворке (Sanic, aiohttp, FastAPI, Starlette)
- Понимание брокеров сообщений (RabbitMQ и/или Kafka) и RPC поверх очередей
- Git, Docker, написание тестов с pytest
- Умение разобраться в бизнес-метрике (GGR, stake, payout, margin и т.д.) и превратить её в корректный запрос
Условия
- Комплексное медицинское страхование
- Оплачиваемый больничный до 10 дней без медицинской справки
- 20 дней оплачиваемого отпуска плюс дополнительный отпуск для важных жизненных событий
- Возможности обучения и профессионального развития
- Поддержка изучения языков
- Современное оборудование для работы
- Международная команда в нескольких странах
- Корпоративные мероприятия
- Программа поддержки в критических ситуациях
- Подарки и поддержка на важные жизненные этапы
Навыки
- Python
- asyncio
- Pydantic
- SQL
- ClickHouse
- Jinja2
- GraphQL
- REST API
- Kafka
- RabbitMQ
- MongoDB
- Docker
- Prometheus
- Grafana
- ELK
- pytest
- Git
- FastAPI
- Sanic
- aiohttp
- Starlette
- Pandas