Обязанности:

  • Вести разработку полного цикла: от выявления потребностей бизнеса и сбора требований до проектирования, реализации, тестирования и деплоя.
  • Взаимодействовать с продуктовыми командами, архитекторами, экспертами, сетевыми инженерами и смежными подразделениями.
  • Проектировать архитектуру комплексных решений с учетом распределенной природы систем, согласованности данных и взаимодействия между сервисами.
  • Разрабатывать 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 лет.