Задача - разработка приложения для транспортных компаний.
Обязанности:
Разработка и сопровождение бизнес-логики на backend (Python, FastAPI): реализация и доработка REST API, сервисный слой, работа с БД через ORM, соблюдение изоляции данных по тенанту (tenant_id), согласованность с правами доступа.
Разработка и сопровождение пользовательского интерфейса (React, TypeScript): страницы и компоненты, формы, интеграция с API, состояние приложения, обработка ошибок и понятные сообщения пользователю.
Участие в проектировании и оценке задач: разбор требований, декомпозиция, оценка трудозатрат, согласование с техническим лидом/продактом.
Написание и поддержка автотестов: unit/integration (pytest на backend, Vitest на frontend) для ключевых сценариев и регрессии после изменений.
Работа с миграциями БД (Alembic): новые и изменённые сущности, обратимые миграции, согласование с индексами и производительностью.
Рефакторинг и технический долг: упрощение кода, выравнивание под принятые в проекте паттерны (тонкие роуты, логика в сервисах), без лишних «переписываний ради переписывания».
Code review: участие в ревью чужого кода и реакция на замечания по своим изменениям.
Интеграции и внешние сервисы: при необходимости — доработка клиентов к API (геокодирование, телематика, платежи и т.п.) с учётом таймаутов, ограничений и безопасности.
Документирование: краткое описание нетривиальных решений в коде/в репозитории документации при внедрении новых фич.
Взаимодействие с смежными ролями: уточнения у аналитики/продакта, согласование контрактов API с frontend, при необходимости — с DevOps по окружениям и деплою.
Обязательные компетенции:
Backend: проектирование и реализация REST API, слой сервисов, валидация входных данных (в т.ч. Pydantic), работа с реляционной БД через ORM, транзакции, миграции схемы.
Frontend: компонентная разработка на React, строгая типизация TypeScript, работа с формами, асинхронные запросы к API, обработка состояний загрузки и ошибок.
Совместная работа: Git (ветки, merge/rebase, code review), читаемый код, умение разбирать чужой код в существующем репозитории.
Технологический стек проекта (желательно совпадение или близкий аналог)
Инфраструктура - Совместная разработка: Git (ветки, pull request / merge request, code review), работа с удалённым репозиторием.
Окружение: по согласованию с командой — либо контейнеризация зависимостей (Docker / Docker Compose), либо доступ к общему стенду разработки; важно умение воспроизвести окружение по инструкции проекта.