О компании: Lux Mentis — AI‑платформа для юристов: анализ договоров, извлечение условий и рисков с помощью LLM, сравнение редакций, семантический и полнотекстовый поиск, AI‑ассистент с контекстом документа, генерация документов по шаблонам.
Формат работы: удалёнка (full‑remote). Город: РФ, МСК. Занятость: полная. Оформление обсуждаемо (ИП / самозанятость / ТК).
Стек: Node.js, NestJS 9, TypeScript, PostgreSQL (Sequelize + sequelize-typescript), MongoDB (Mongoose 8), Elasticsearch 8, NATS, Keycloak, Swagger/OpenAPI, Docker.
Обязанности:
- Развивать существующие микросервисы: фичи, эндпоинты, интеграции.
- Писать и поддерживать REST API, валидацию, DTO, обработку ошибок.
- Работать с PostgreSQL через Sequelize: модели, миграции, запросы, индексы.
- Участвовать в интеграциях с внешними сервисами и LLM‑пайплайнами.
- Покрывать код тестами, проходить ревью, ревьюить джунов/коллег.
Требования:
- От 2 лет коммерческой разработки на Node.js.
- Практический опыт с NestJS (модули, DI, pipes, guards, interceptors).
- Уверенный TypeScript (корректная типизация, не any).
- PostgreSQL на уровне JOIN‑ов, индексов, транзакций, умение читать EXPLAIN.
- Опыт с ORM (Sequelize или аналог) в продакшене: миграции, связи, N+1.
- Опыт проектирования REST API: валидация, версионирование, коды ошибок.
- Базовое понимание асинхронности в Node (промисы, event loop, ошибки в async‑коде).
- Опыт работы с брокерами сообщений (NATS/Kafka/Rabbit) или понимание их назначения.
- Git, Docker, умение читать чужой код.
Требования по AI:
- Ежедневное использование LLM как инженерного инструмента.
- Осознанный prompt‑инжиниринг.
- Желателен опыт с Claude Code / Cursor / аналогами в агентном режиме; плюс — опыт с несколькими агентами (Claude Squad).
- Понимание ограничений AI и умение проверять его вывод.
Плюсы: опыт с MongoDB, Elasticsearch; опыт работы с очередями в продакшене; понимание микросервисной архитектуры; интерес к ML/LLM.
Процесс отбора: скрининг резюме + анкета по AI‑практикам; техническое интервью (~1ч) по Node.js, TypeScript, PostgreSQL, NestJS; live‑coding + обсуждение работы с AI; финал с тимлидом.