О РОЛИ
IT Департамент КФФ развивает внутренний продукт для автоматизации и оптимизации процессов федерации. Ищем Middle backend-разработчика на Python и FastAPI, который будет проектировать и развивать серверную часть системы, реализовывать бизнес-логику и интеграции, обеспечивать надёжность и производительность API, а также участвовать в архитектурных решениях.
ОСНОВНЫЕ ОБЯЗАННОСТИ
Разработка API и бизнес-логики
Разрабатывать и поддерживать REST API на Python и FastAPI
Реализовывать бизнес-логику, вычисления, проверки данных и ролевую модель доступа
Разрабатывать асинхронные операции и фоновые задачи
Данные и интеграции
Проектировать структуру PostgreSQL, писать и оптимизировать запросы, поддерживать миграции схемы
Интегрировать сервис с брокерами сообщений, объектным хранилищем и внешними системами
Реализовывать загрузку, хранение и безопасную выдачу файлов
Качество, архитектура и инфраструктура
Писать unit- и integration-тесты для бизнес-логики, API и слоя данных
Участвовать в проектировании архитектуры, декомпозиции задач и code review
Настраивать структурированное логирование и обработку ошибок
Участвовать в контейнеризации сервисов и базовых CI/CD-процессах
ЧТО МЫ ОЖИДАЕМ
Высшее техническое образование (информационные технологии, прикладная математика или смежные направления)
Не менее 3 лет коммерческого опыта backend-разработки на Python
Уверенное знание Python: модель данных, type hints, коллекции, итераторы и генераторы, декораторы, контекстные менеджеры и обработка исключений
Понимание устройства CPython, reference counting, управления памятью и работы garbage collector
Уверенное понимание asyncio: event loop, coroutines, tasks, futures, cancellation и обработка ошибок в конкурентном коде
Понимание различий между конкурентностью и параллелизмом, I/O-bound и CPU-bound задачами; умение не блокировать event loop
Практический опыт разработки REST API на FastAPI
Уверенное знание Pydantic v2 и опыт проектирования моделей валидации и API-контрактов
Понимание REST, HTTP, JSON, кодов ответа, идемпотентности и документирования API через OpenAPI
Уверенное знание PostgreSQL и SQL: проектирование схемы, ограничения, индексы, транзакции, уровни изоляции, блокировки и анализ планов запросов
Практический опыт с SQLAlchemy 2.x, включая ORM, Core, транзакции и асинхронный API
Практический опыт с Alembic: создание, проверка и применение миграций
Опыт реализации аутентификации по логину и паролю с JWT, а также ролевой модели доступа и проверки прав на backend
Практический опыт с Celery и брокерами сообщений RabbitMQ и/или Redis
Понимание retries, идемпотентности, подтверждения сообщений, маршрутизации очередей и обработки неуспешных фоновых задач
Опыт работы с S3-совместимыми объектными хранилищами: Amazon S3, MinIO или аналоги
Понимание безопасной загрузки файлов: ограничения размера и типа, проверка MIME, контрольные суммы и безопасная выдача файлов
Опыт написания unit- и integration-тестов с pytest
Опыт тестирования асинхронного кода и FastAPI-приложений с pytest-asyncio или AnyIO и HTTPX
Понимание ООП, функционального программирования, SOLID, модульности и разделения ответственности; умение применять эти подходы уместно
Уверенное использование type hints, статической проверки типов, линтинга и форматирования
Опыт работы с pyproject.toml и современными инструментами управления зависимостями, включая uv или Poetry; опыт с Poetry приветствуется
Практический опыт с Ruff и mypy либо аналогичными инструментами
Базовое понимание безопасности web-приложений и API: контроль доступа, SQL injection, валидация входных данных и защита чувствительной информации
Опыт работы с Git и участия в code review
Практический опыт с Docker и Docker Compose, умение самостоятельно написать Dockerfile, понимание multi-stage build, переменных окружения, networks, volumes и health checks
Базовые знания CI/CD: автоматический запуск линтеров и тестов, создание Docker-образов, применение миграций и развертывание по окружениям; конкретная платформа не важна
Грамотная письменная и устная речь на русском языке; английский - на уровне чтения технической документации
БУДЕТ ПРЕИМУЩЕСТВОМ
Опыт работы в продуктовых IT-командах или крупных организациях
Опыт построения event-driven решений с Apache Kafka
Опыт использования Testcontainers для integration-тестов с PostgreSQL, Redis или RabbitMQ
Опыт точечного использования raw SQL или asyncpg для сложных и высоконагруженных запросов
Опыт генерации PDF- и XLSX-документов в фоновых задачах
Опыт настройки централизованного логирования, мониторинга, метрик и distributed tracing
Опыт разработки систем с аудитом изменений, историей версий и чувствительными данными
УСЛОВИЯ
Официальное трудоустройство, г. Астана
Испытательный срок - 3 месяца
Уровень заработной платы обсуждается по итогам собеседования
Техническое собеседование проводится офлайн в офисе
Квартальные премии в размере оклада
* Мы готовы рассмотреть другие варианты заработной платы в случае если вы превзойдете наши ожидания на техническом этапе собеседования
Будьте осторожны: если работодатель просит войти через Google, iCloud или Госуслуги, прислать код или пароль, запустить ПО или перевести деньги — это мошенники.
ЖмитеГайд по безопасности