Аккредитованная ИТ-компания реализует динамично развивающийся проект в сфере здравоохранения. Легаси-кода и готовой инфраструктуры нет — всё предстоит построить. Нам нужен опытный Python-разработчик, который умеет проектировать надёжные асинхронные REST-сервисы на FastAPI, работать с очередями сообщений и базами данных, и готов включаться в разработку микросервисной платформы с нуля.
Чем предстоит заниматься
- Разработка и развитие сервисов на Python/FastAPI.
- Реализация синхронных и асинхронных сценариев обработки запросов, включая работу с очередями сообщений (RabbitMQ / AMQP, aio-pika).
- Интеграция сервисов с объектным S3-совместимым хранилищем.
- Реализация и поддержка механизмов аутентификации/авторизации на основе OIDC (Keycloak).
- Разработка сервисов, работающих с реляционными базами данных (PostgreSQL): проектирование схем, миграции, оптимизация запросов.
- Работа с Kubernetes: взаимодействие сервисов с кластером через kubernetes-client.
- Обеспечение наблюдаемости сервисов: экспорт метрик в Prometheus, структурированное логирование для агрегации в Loki.
- Проектирование и соблюдение внутренних контрактов взаимодействия сервисов.
- Участие в проектировании архитектуры новых сценариев и сервисов платформы, написание тестов.
Ключевые требования
Обязательные
- Опыт коммерческой разработки на Python от 2 лет.
- Опыт создания REST API на FastAPI (или аналогичном асинхронном фреймворке).
- Уверенное владение асинхронным программированием в Python (asyncio).
- Опыт работы с PostgreSQL: проектирование схем, написание запросов, миграции (Alembic).
- Опыт работы с брокерами сообщений (RabbitMQ, Kafka или аналоги) в продуктивных системах.
- Понимание принципов работы объектных хранилищ (S3-совместимых).
- Понимание основ протоколов аутентификации/авторизации: OAuth 2.0, OIDC, JWT.
- Опыт написания unit- и интеграционных тестов, знакомство с CI/CD.
- Умение проектировать взаимодействие между несколькими микросервисами с учётом отказоустойчивости и идемпотентности операций.
Желательные
- Опыт работы с медицинскими данными и стандартом DICOM, знакомство с pydicom и/или Orthanc.
- Опыт разработки и эксплуатации сервисов в Kubernetes, понимание базовых сущностей (Deployment, Service, Job, ConfigMap/Secret).
- Опыт использования kubernetes-client для программного управления объектами кластера.
- Опыт работы с Prometheus/Grafana и Loki для мониторинга и логирования.
Стэк
- Backend: Python 3, FastAPI
- Асинхронность / очереди: RabbitMQ (AMQP), aio-pika
- Хранилища данных: PostgreSQL, MinIO (S3 API)
- Аутентификация: Keycloak, OIDC, OAuth 2.0, JWT/JWKS
- Инфраструктура: Kubernetes
- Наблюдаемость: Prometheus, Loki
Условия работы
- Удалённый формат;
- Фиксированный проект, но с возможностью дальнейшего продолжения сотрудничества.