Мы — технологическая команда, создающая инновационные решения для спортивной аналитики. Наш продукт направлен на трансформацию и объективизацию судейства в спорте. Мы ищем опытного разработчика для участия в продуктивизации наших решений.
Наша платформа судейства на основе видеоаналитики соревнований готовится к запуску. API написан, есть спроектированная схема данных, но собрать и наполнить хранилище данными справочников, перенести данные аналитики из json-ов и собрать аналитические витрины только предстоит.
Вы становитесь основным владельцем серверного слоя. Расчёт оценок целиком находится в сервисе видеоаналитики, который делает отдельная команда, и результаты приходят в платформу по API уже готовыми. Бэкенд не интерпретирует правила судейства — он принимает результаты, гарантирует их сохранность и прослеживаемость и обеспечивает вокруг них рабочие процессы: загрузка и показ видеоповторов с AI-оценками и комментариями, обработка откликов, формирование отчётности и так далее.
Обязанности
Слой данных — с нуля до продакшена:
- развернуть хранилище с нуля: DDL, ограничения целостности, индексы, миграции на Alembic, окружения dev/stage/prod, бэкапы, пулинг
- наполнить и версионировать справочники в хранилище данных
- перенести существующие данные из файлового хранилища в реляционную схему — с ETL и сверкой полноты переноса
- спроектировать аналитические витрины (лидерборды, срезы по спортсменам)
- вести контракт приёма результатов из сервиса аналитики: идемпотентность, валидация, версионирование, аудит
- развивать API платформы: заявки, фазы соревнований, судейские действия, апелляции, экспорт, real-time по SSE
- профилировать и оптимизировать горячие пути
- отвечать за наблюдаемость и эксплуатацию серверной части
Требования
Обязательные
- 4+ лет коммерческой разработки бэкенда на Python, из них не менее 2 лет — на async-стеке (FastAPI / Starlette или аналоги)
- PostgreSQL: проектирование схем, стратегия индексов, транзакции и уровни изоляции, блокировки, партиционирование, оконные функции
- практический опыт развёртывания хранилища с нуля с миграциями, бэкапами и процедурой выката в нескольких окружениях
- опыт построения агрегатов и аналитических витрин над OLTP-базой
- SQLAlchemy 2.0 в async-режиме и Alembic на уровне уверенного владения (async-сессии, границы транзакций, autogenerate и его ограничения)
- проектирование REST API: контракты, версионирование, идемпотентность, коды ошибок, валидация через Pydantic 2
- Redis (кеш, pub/sub), S3-совместимые хранилища
- Docker, настройка CI/CD
- тестирование как часть разработки: pytest, интеграционные тесты против реальной инфраструктуры, не только моков
- способность работать с унаследованным кодом: прочитать, измерить, выделить реальные дефекты, починить, не переписывая все с нуля
Будет плюсом
- аналитические СУБД и ETL/ELT (ClickHouse, dbt, Airflow)
- интеграция с ML-сервисами: асинхронные пайплайны, callback-и, очереди, обработка частичных и повторных результатов
- работа с видео и медиа-пайплайнами, обработка больших объектов
- Real-time-доставка (SSE, WebSocket) на нагрузке
- ClickHouse, dbt, Airflow, Kubernetes, IaC, PgBouncer в проде
- опыт переезда с legacy-системы при живом проде
- опыт работы в спортивных или трансляционных продуктах
Условия
- комфортный современный офис - м. Кутузовская
- ежегодный пересмотр зарплаты, годовой бонус
- корпоративный спортзал и зоны отдыха
- более 400 образовательных программ СберУниверситета для профессионального и карьерного развития
- расширенный ДМС, льготное страхование для семьи и корпоративная пенсионная программа
- гибкий дисконт по ипотечному кредиту, равный 1/3 ключевой ставки ЦБ
- подписка Прайм с возможностью совместного использования на трёх близких
- вознаграждение за рекомендацию друзей в команду Сбера
- корпоративная пенсионная программа.