Java Developer (AI / GenAI)
Описание
О проекте: Мы развиваем платформу, в ядро которой встраиваются возможности генеративного ИИ. Нам нужен сильный бэкенд-разработчик уровня Middle/Senior, который не просто пишет на Java, но и глубоко понимает механику работы LLM, умеет строить RAG-пайплайны и проектировать сложных агентов. Задачи: Проектирование и разработка микросервисной архитектуры на Java 17+ с использованием Spring Boot (MVC, Data JPA, Security). Построение пайплайнов Retrieval-Augmented Generation (RAG): от парсинга сырых данных до индексации эмбеддингов. Разработка и поддержка векторных баз данных Qdrant: проектирование схем шардирования, настройка гибридного поиска (BM25 + Dense Vectors) и оптимизация запросов к векторному пространству. Создание мультиагентных систем на базе LangChain/LangGraph для автоматизации бизнес-процессов (классификация, извлечение сущностей, принятие решений). Глубокий промт-инжиниринг: написание промптов с нуля под разные user-case'ы одного агента, внедрение техник Few-shot, Chain-of-Thought (CoT) и структурированного вывода (JSON mode). Отладка семантики моделей: снижение энтропии ответов, управление вариативностью через параметры инференса (temperature, top_p, штрафы), реализация механизмов самовосстановления (self-healing) при деградации внешних провайдеров LLM. Оптимизация производительности PostgreSQL: тюнинг сложных SQL-запросов, работа с индексами (B-tree, GIN/GIST, триграммы), проектирование транзакционной изоляции. Вынос вычислений в контейнерную среду: Docker, Kubernetes (Helm), построение отказоустойчивых CI/CD-конвейеров в GitLab CI/Jenkins. Наши ожидания от кандидата: Уверенное владение Java 17+. Понимание многопоточности (CompletableFuture, виртуальные потоки Project Loom — будет плюсом). Экспертный уровень владения стеком Spring: глубокое понимание жизненного цикла бинов, аспектно-ориентированного программирования, тонкая настройка пулов соединений БД и параметров безопасности. Опыт проектирования реляционных моделей в PostgreSQL, умение читать EXPLAIN ANALYZE, бороться с блокировками и писать эффективные миграции (Liquibase/Flyway). Практический опыт работы с векторными СУБД (Qdrant) или Weaviate/Pinecone/Milvus. Понимание метрик близости (Cosine Similarity, Dot Product, Euclidean Distance). Опыт разработки с библиотеками LangChain и/или LangGraph. Навык построения графов состояний (State Machines) и интеграции внешних инструментов (tool calling). Навык написания эффективных промптов (Prompt Engineering) и управления поведением LLM без изменения весов модели. Опыт работы с Docker и Kubernetes (написание манифестов, Helm-чартов). Знание Linux shell на уровне уверенного пользователя. Настроенные процессы CI/CD (GitLab CI или Jenkins): сборка Maven/Gradle, покрытие тестами (JUnit 5, Testcontainers), статический анализ кода.