Java Developer

Проект

Внедрение CRM

Роль

Java Developer

Грейд

Senior

Требования

Ищем Ведущего Java Backend-разработчика для развития корпоративного продукта: серверные API, данные, внешние интеграции, контейнерные среды и AI-функции.

Хотим видеть в команде самостоятельного инженера с опытом работы от 4-5 лет со всем backend-контуром: от обсуждения потребностей с заказчиком до реализации и запуска.

Контекст работы - “внутренний стартап” : высокие темпы, постоянное прототипирование, смена требований, накопление тех долга. Если специалиста это драйвит и заряжает, он- наш кандидат! 

Чем предстоит заниматься:

  • Развивать архитектуру модульного backend-приложения, REST API и бизнес-логику, включая валидацию, обработку ошибок и документацию;
  • Проектировать модели данных и миграции, оптимизировать запросы и кеширование;
  • Развивать аутентификацию, авторизацию и ролевую модель; контролировать доступ к внешним данным и управлять подключениями;
  • Программно управлять контейнерными средами: от создания и ожидания готовности до обработки сбоев и освобождения ресурсов;
  • Развивать AI-функции: потоковые диалоги, хранение истории, сокращение контекста, агентные инструменты и RAG — от подготовки данных до использования найденного контекста в ответах;
  • Обеспечивать проверку прав, согласованность состояния и обработку ошибок при выполнении удалённых операций и вызовах инструментов;
  • Писать тесты, диагностировать production-проблемы, развивать наблюдаемость, согласовывать API с frontend-разработчиками.

Обязательные технические требования:

  • Уверенное владение Java, опыт production-разработки на Spring Boot и готовность работать с Java 21 и Spring Boot 3.5;
  • Опыт проектирования архитектуры и REST API, самостоятельного принятия технических решений и развития существующей кодовой базы;
  • Знание Spring MVC, Spring Security, Spring Data JPA/Hibernate, валидации запросов и документирования API через OpenAPI;
  • Практический опыт PostgreSQL, SQL и Liquibase; понимание транзакций, индексов, оптимизации запросов, кеширования и пулов подключений;
  • Опыт подключения внешних реляционных источников, включая MS SQL Server, и разграничения доступа к данным;
  • Опыт реализации аутентификации и авторизации с JWT, OAuth2 и OIDC/SSO;
  • Владение Maven и Git; опыт OpenFeign для HTTP-интеграций, JGit для работы с репозиториями, MapStruct для преобразования объектов и Ehcache для кеширования;
  • Практический опыт Docker и программного управления контейнерами через docker-java;
  • Знание Docker Compose, Docker Swarm, Traefik и GitLab CI на уровне настройки окружения, понимания сборки и развёртывания, диагностики проблем;
  • Практический опыт LLM API и LangChain4j: потоковые ответы через SSE, история диалогов и управление контекстом;
  • Опыт построения RAG, работы с эмбеддингами и векторным поиском в Qdrant;
  • Опыт агентных сценариев, вызова инструментов и MCP-интеграций с проверкой прав и обработкой ошибок;
  • Опыт модульного и интеграционного тестирования с JUnit и Testcontainers, включая проверки с базами данных;
  • Навыки диагностики по логам, метрикам и трассировкам с использованием Actuator, Micrometer, OpenTelemetry и OTLP; понимание трассировки AI-вызовов;
  • Понимание React и TypeScript на уровне согласования API-контрактов и совместной диагностики frontend/backend;
  • Понимание специфики корпоративного ПО для внешних заказчиков: ролевой модели и безопасности, интеграций с их ИТ-ландшафтом, требований к надёжности и влияния изменений на процессы пользователей

Что важно:

  • Уметь общаться с бизнес-заказчиками, выявлять реальную потребность за первоначальным запросом, уточнять требования, объяснять варианты решения и переводить бизнес-задачи в техническую реализацию;
  • Готовность работать итерационно: сформулировать гипотезу, обсудить ее, проверить, скорректировать и двигаться дальше;
  • Самостоятельно прорабатывать задачи, проверять гипотезы и учитывать обратную связь, ценим не способность безошибочно угадать решение с первого раза, а способность осмысленно искать его вместе с командой;
  • Декомпозировать работу, оценивать сроки, согласовывать приоритеты и своевременно сообщать о рисках и необходимости помощи;
  • Отвечать за результат до эксплуатации, учитывать пограничные сценарии и последствия изменений;
  • Аргументировать решения, слышать коллег, конструктивно давать и принимать обратную связь;
  • Проводить code review, делиться знаниями и помогать другим разработчикам;
  • Находить баланс между пользой для пользователя, качеством, сложностью реализации, техническим долгом и сроками.

Технологический стек:

  • Java 21, Spring Boot 3.5, PostgreSQL, Hibernate, Liquibase, Maven, OpenFeign, MapStruct, Ehcache, JUnit, Testcontainers.
  • LangChain4j, LLM API, MCP, Qdrant, RAG, SSE.
  • Docker, Docker Compose, Docker Swarm, Traefik, GitLab CI, Actuator, Micrometer, OpenTelemetry, OTLP.

Дополнительные условия

Локация: РФ, РБ

Ставка: до 2000-2100 + НДС

Важные условия работы: через 4-6 месяцев переход в штат заказчика (заказчик под NDA)

Важно!

При отправке кандидата приложите информацию:

  1. ФИО
  2. Дата рождения
  3. Локация
  4. Грейд
  5. Рейт (ставка/час)
  6. Возможная дата старта на новый проект
  7. Планы на отпуск в ближайшие 3 месяца
  8. Штатный/партнерский/рынок
  9. Скрининг по заявленным требованиям к вакансии (проставить +-)