Обязанности:
1. Разработка и поддержка микросервисов
-
Участие в декомпозиции монолитного приложения на отдельные микросервисы с выделением bounded contexts.
-
Проектирование и реализация REST API с учетом требований к безопасности и устойчивости.
2. Управление фоновыми задачами и интеграциями
-
Вынос фоновых процессов в Celery, обеспечение надежной доставки задач с применением idempotency и outbox-подхода.
-
Настройка интеграций с внешними сервисами, обеспечение устойчивой работы через ретраи и лимиты.
3. Работа с базами данных и миграциями
-
Моделирование данных в PostgreSQL с учетом мультиарендности, планирование и проведение миграций.
-
Оптимизация запросов, индексов и кэширование с использованием Redis.
4. Обеспечение надежности и мониторинга
-
Настройка метрик и алертов через Prometheus и Grafana для контроля SLA.
-
Ведение логирования и трассировки для быстрого выявления и устранения проблем.
5. Поддержка CI/CD и инфраструктуры
-
Работа с Docker и GitHub Actions для автоматизации сборки и деплоя микросервисов.
-
Обеспечение безопасности и стабильности при публикации образов в Yandex Container Registry.
6. Взаимодействие и развитие проекта
-
Сопровождение существующего API и обеспечение устойчивости к ошибкам интеграций.
-
Участие в код-ревью, написании технической документации и улучшении процессов разработки.
Требования:
1. Профессиональные навыки
-
Уверенное владение Python и фреймворками Django, DRF и FastAPI.
-
Опыт проектирования микросервисной архитектуры и работы с REST API.
-
Знание PostgreSQL, включая моделирование данных, транзакции, индексы и миграции.
-
Навыки работы с Celery и Redis для реализации фоновых задач.
-
Понимание принципов мультиарендности и устойчивых интеграций (retry, backoff, timeouts).
-
Опыт работы с Docker, CI/CD пайплайнами (GitHub Actions) и мониторингом (Prometheus, Grafana).
2. Личные качества
-
Ответственность и внимательность к деталям.
-
Умение работать в команде и эффективно коммуницировать.
-
Проактивность и желание развиваться профессионально.
-
Стрессоустойчивость и способность решать сложные технические задачи.
3. Опыт работы
-
Минимум 3 года коммерческого опыта разработки на Python.
-
Практический опыт декомпозиции монолитов и разработки микросервисов.
4. Языки
-
Знание английского языка на уровне, достаточном для чтения технической документации.
Условия:
1. Условия и вознаграждение
-
Конкурентное вознаграждение, соответствующее опыту и вкладу в развитие продукта.
-
Возможность гибких форм сотрудничества и пересмотра условий по результатам работы.
-
Прозрачный подход к оценке эффективности и личного вклада.
2. Формат и организация работы
-
Удалённый формат с возможностью гибкого планирования рабочего времени.
-
Современные инструменты коммуникации и проектного взаимодействия.
-
Минимум бюрократии и максимум автономии в принятии решений.
3. Профессиональное развитие
-
Работа с современным технологическим стеком и нестандартными задачами.
-
Возможность влиять на архитектуру и продуктовые решения.
-
Поддержка инициатив, обмен опытом и внутренние эксперименты с новыми подходами.
4. Командная культура и взаимодействие
-
Небольшая сплочённая команда, где ценится ответственность и открытость.
-
Прямая коммуникация без лишних уровней иерархии.
-
Атмосфера доверия, где мнение каждого имеет значение.
5. Подход и ценности
-
Фокус на качестве, скорости и реальном результате.
-
Ориентация на инновации, постоянное развитие и готовность к изменениям.
-
Возможность быть частью продукта, который формируется здесь и сейчас.