Backend-инженер (Rust, графовые данные)
GitLab — платформа для DevSecOps. В команду GitLab Orbit требуется Intermediate Backend Engineer для разработки и поддержки сервиса графовых данных, который используется агентами GitLab Duo, аналитикой и функциями архитектурного уровня в GitLab.com, Dedicated и Self-Managed.
Сервис Knowledge Graph — это бэкенд на Rust, который строит property graph из данных жизненного цикла разработки ПО (SDLC) и кода GitLab. Использует ClickHouse, NATS JetStream и Data Insights Platform. Предоставляет безопасные графовые запросы и инструменты MCP для ИИ-агентов и продуктовых функций.
В первый год вы возьмете на себя ответственность за конкретные компоненты или функции (например, части пайплайна индексации SDLC или пути запросов), поможете снизить количество единых точек отказа с помощью тестов и runbook'ов, а также поможете команде выпускать аналитические сервисы, которые проще поддерживать и развивать.
Задачи:
- Реализация и доработка бэкенд-функций в сервисе Knowledge Graph на Rust, включая изменения в движке запросов, потоках индексации SDLC и кода, API-эндпоинтах (включая MCP) под руководством старших инженеров.
- Поддержка интеграций между Knowledge Graph и остальной платформой GitLab, работа с GitLab Rails, Data Insights Platform (Siphon, NATS, ClickHouse) и GitLab Duo Agent Platform.
- Участие в обсуждениях системного дизайна: предложение вариантов, постановка вопросов, документирование решений с фокусом на надежность, масштабируемость и поддерживаемость аналитических графовых нагрузок.
- Повышение операционной зрелости сервиса: добавление и улучшение метрик, логирования, runbook'ов, алертов, небольших задач по готовности, участие в on-call дежурствах в соответствии с уровнем и опытом.
- Асинхронное взаимодействие с продуктом, данными, инфраструктурой, безопасностью и ИИ-командами для уточнения требований, согласования объема работ и безопасного выпуска функций.
- Ответственное использование рабочих процессов разработки с помощью ИИ (например, агентов на основе Knowledge Graph и внутренних инструментов Duo), обмен лучшими практиками с командой при сохранении фокуса на качестве и корректности кода.
- Участие в код-ревью, сессиях обмена знаниями и парном программировании.
- При необходимости работа по всему стеку, включая эпизодические задачи на Ruby для интеграции с Rails и путей авторизации, или небольшие изменения фронтенда, связанные с функциями Knowledge Graph (например, UI Software Architecture Map).
Требования:
- Профессиональный опыт создания и поддержки бэкенд-систем в продакшене, понимание надежности, поддерживаемости и того, как поддерживать сервисы с течением времени (например, реагирование на инциденты и последующие действия).
- Владение как минимум одним современным бэкенд-языком и сильный интерес к Rust, с предыдущим опытом работы с Rust или явными доказательствами способности быстро освоить и эффективно работать в производительном коде на Rust.
- Некоторый опыт работы с распределенными данными или аналитическими системами (например, OLAP-базы данных, обмен сообщениями в стиле Kafka или NATS, пайплайны CDC) или сильная мотивация развивать эти навыки.
- Интерес к модели графовых данных.