Ведущий программист информационных систем
Описание
Обязанности: Требуется back-end разработчик в Национальную электронную библиотеку. Мы предлагаем работу над федеральным проектом с реальной аудиторией и уникальными данными. Команда НЭБ разрабатывает обновленную платформу на собственном стеке: поисковую подсистему, CMS, микросервисы. Система разрабатывается с нуля, поэтому легаси скоро не останется. • Развивать поисковую подсистему на OpenSearch: релевантность, автодополнение, фасетные фильтры, сниппеты сущностей. Строить гибридный поиск: полнотекстовый (BM25), векторный (по эмбеддингам) и реранкинг. • Проектировать модель сложной многоуровневой классификации: иерархические рубрикаторы, тематические и видовые классификаторы, пересекающиеся схемы. • Моделировать взаимосвязи документов: произведение - издание - экземпляр, части и целое, переводы, переиздания, серии, связи с персонами и темами. • Реализовывать дедупликацию, слияние записей, версионирование и контроль качества справочных данных. • Проектировать и разрабатывать собственную CMS: справочные статьи, подборки, разводные страницы, витринные блоки. • Разрабатывать микросервисы платформы на Go и NestJS: API каталога, карточек документов, пользовательских сервисов. Прорабатывать продуктовые требования и декомпозировать задачи. Проводить код-ревью, влиять на архитектурные решения и качество кода. Работать в связке с разработчиками, ML-специалистами, DevOps. Команда разработки: более 10 человек. Технологический стек в процессе формирования, рекомендации соискателя будут учтены. Текущий стек: • Backend: Go, TypeScript (NestJS) • Frontend: TypeScript, Vue 3, Nuxt 3 • Данные и поиск: OpenSearch, PostgreSQL, ClickHouse, Redis, MinIO, Kafka, Redpanda Connect, Airflow • Инфраструктура: Docker, Kubernetes, GitLab CI/CD, Keycloak, Sentry У нас в проекте можно использовать любой ИИ: Qwen, Docling, vLLM, эмбеддинги. Требования: Разработка бэкенд-сервисов от 3-5 лет. Разработка на Go от 2 лет. Профильное техническое образование. Понимание принципов построения распределённых систем и микросервисов. Опыт проектирования сложных моделей данных в PostgreSQL: иерархии, графы связей, версионирование. Желателен опыт работы с очередями сообщений. Желателен опыт с OpenSearch: маппинги, анализаторы, настройка релевантности. Желателен опыт разработки CMS или редакционных систем. Желателен опыт работы с высоконагруженными системами, Kafka, ClickHouse. Личные и деловые качества: Коммуникативность, ответственность Самостоятельность и проактивность: предлагаешь решения поставленной задачи. Желание разбираться в предметной области и создавать продукт, а не просто писать код. Условия: Заработная плата по результатам собеседования. Оформление по ТК. Возможны премии по результатам работы. Социальный пакет.