Обязанности:
- Вести разработку полного цикла: от выявления потребностей бизнеса и сбора требований до проектирования, реализации, тестирования и деплоя.
- Взаимодействовать с продуктовыми командами, архитекторами, экспертами, сетевыми инженерами и смежными подразделениями.
- Проектировать архитектуру комплексных решений с учетом распределенной природы систем, согласованности данных и взаимодействия между сервисами.
- Разрабатывать backend-сервисы на Python с использованием FastAPI, SQLAlchemy и PostgreSQL.
- Реализовывать асинхронное взаимодействие между сервисами, работать с событийной архитектурой, очередями сообщений и паттернами согласованности данных, включая Saga и Transactional Outbox.
- Разрабатывать пользовательские интерфейсы на React, TypeScript и Next.js, проходить путь от проработки UX до готового функционала.
- Проектировать и реализовывать комплексные пользовательские сценарии, интеграции между сервисами и синхронизацию данных.
- Организовывать тестирование: писать unit-, интеграционные и end-to-end-тесты, проверять взаимодействие компонентов и дорабатывать решения.
- Развивать архитектуру, находить технические ограничения и предлагать решения для повышения надежности и скорости разработки.
- Использовать AI-инструменты, включая Claude, на этапах исследования кодовой базы, проектирования, разработки, тестирования и рефакторинга.
Требования:
- Опыт разработки сложных систем и проектирования архитектуры распределенной инфраструктуры и взаимодействия множества сервисов.
- Уверенный опыт backend-разработки на Python, понимание современных подходов к построению API и асинхронных приложений.
- Опыт работы с FastAPI, PostgreSQL, SQLAlchemy 2+ и Redis.
- Понимание событийной архитектуры, брокеров сообщений и надежного взаимодействия между сервисами; знакомство с RabbitMQ, FastStream, Saga и Transactional Outbox.
- Опыт fullstack-разработки, понимание frontend-архитектуры и практический опыт работы с React и TypeScript; знакомство с Next.js.
- Понимание распределенных систем: согласованности данных, обработки ошибок, повторных попыток, идемпотентности и управления отказами.
- Практический опыт работы с Docker и Kubernetes, умение собирать и развертывать приложения, разбираться с сетевыми проблемами и проверять работоспособность решений.
- Практический опыт использования AI в повседневной разработке и понимание ограничений таких инструментов.
Условия: полная занятость, график 5/2. Формат работы — удаленно, гибридно или в офисе. Опыт работы — более 6 лет.