Rust-разработчик для разработки ядра потоковой обработки событий SIEM.
Сервис в реальном времени применяет правила к потоку нормализованных событий. Основные задачи связаны со stateful-обработкой при высоком EPS, предсказуемой latency (p99) и жёстком ограничении по памяти.
Разработка исключительно продуктовая — без legacy-проектов. Использование AI-инструментов приветствуется при условии полного понимания генерируемого кода и обязательного code review.
Зона ответственности
- Разработка движка исполнения правил над потоком событий в реальном времени: окна, последовательности, таймеры, детект отсутствия событий, долгоживущие списки сущностей.
- Проектирование stateful-обработки: keyed state, TTL, вытеснение и ограничение памяти при миллионах ключей.
- Проектирование формата описания правил, их компиляции в план исполнения и горячей перезагрузки без рестарта.
- Работа с потоковым источником событий: шардирование, позиции чтения, семантика доставки, реплей и перераспределение нагрузки между узлами.
- Обеспечение корректного failover и восстановления состояния без дублирующихся и потерянных алертов.
- Оптимизация CPU, аллокаций, памяти и latency; работа с бюджетами производительности EPS, p95 / p99.
- Профилирование CPU, памяти и async-задач в dev и production, диагностика contention и деградаций.
- Разработка бенчмарков и нагрузочных тестов, контроль регрессий производительности в CI.
- Разработка gRPC-интерфейсов, unit- и интеграционных тестов, проведение code review.
- Сборка и поставка статических бинарников как systemd units, graceful shutdown и обработка сигналов.
- Диагностика production-инцидентов: рост памяти, отставание от потока, деградация производительности.
- Подготовка технической документации и взаимодействие с SIEM-инженерами, системными аналитиками, DevOps и техническими писателями.
Требования
- Отличное знание Rust (edition 2021 / 2024): ownership, borrowing, lifetimes, traits, generics, trait objects, Result, thiserror / anyhow.
- Глубокое понимание stateful stream processing: keyed / partitioned state, sliding / tumbling windows, таймеры, event time vs processing time, out-of-order и late events.
- Понимание структур данных для состояния: hash tables, ring buffers, очереди таймеров, TTL и управление памятью при высокой кардинальности ключей.
- Опыт работы с Kafka или аналогами: шардирование, позиции чтения, at-least-once / exactly-once, идемпотентность.