Описание
Navio — разработчик технологии автономного вождения, совместимой с различными видами транспорта: от легковых автомобилей до грузовиков. Navio объединяет культуру автопроизводителей и IT-компаний. Каждый день мы работаем над тем, чтобы доставка грузов стала быстрее и эффективнее, а городской транспорт — безопаснее и комфортнее.
Задачи
•Разрабатывать и сопровождать серверные приложения на Python с использованием FastAPI или Django — в зависимости от сервиса
•Проектировать и развивать REST API, поддерживать их документацию и обратную совместимость
•Создавать интеграции с внутренними сервисами, Kafka, PostgreSQL, Redis, ClickHouse и S3-совместимыми хранилищами
•Реализовывать фоновые и событийные процессы, корректно обрабатывать повторные сообщения, временную недоступность зависимостей и частичные сбои
•Проектировать модели данных, писать миграции, запросы и индексы, разбирать причины медленной работы базы данных
•Писать модульные, интеграционные и контрактные тесты на pytest
•Участвовать в разборе ошибок и происшествий по журналам, метрикам и идентификаторам прохождения запроса
•Готовить сервис к контейнерному запуску, поддерживать Dockerfile, Docker Compose
•Участвовать в оценке задач, обсуждении технических решений и проверке кода коллег
•Поддерживать в актуальном состоянии описание API, интеграций и принятых технических решений
•Замечать риски безопасности, совместимости и потери данных и поднимать их до выпуска изменения
Требования
•Коммерческий опыт разработки на Python 3 от 4 лет: типизация, асинхронность, проектирование поддерживаемого кода
•Уверенное владение FastAPI, Pydantic и SQLAlchemy
•Опыт с Django, DRF и Django ORM или готовность работать с существующим кодом на этом стеке
•Опыт проектирования REST API и работы с PostgreSQL: транзакции, индексы, миграции, оптимизация запросов
•Практический опыт с Kafka или другим брокером сообщений; понимание повторной доставки, порядка событий и идемпотентности
•Умение выстраивать тестирование с pytest, работать с Git, CI/CD, Docker и Linux
•Понимание основ Kubernetes
•Понимание аутентификации, авторизации и разграничения прав
•Способность самостоятельно вести сложные задачи от проработки решения до проверки после развёртывания, объяснять технические решения и заранее обозначать риски
Условия
Условий в вакансии нет