улица Ленинская Слобода 26
Привет! Меня зовут Эля, я являюсь HR компании «Амбрелла – Защита Информационных Систем».
Мы ищем опытного 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, идемпотентность и replay.
- Глубокое понимание конкурентности в Rust: Send / Sync, Arc, Mutex, RwLock, parking_lot, атомарные операции, memory ordering, каналы и backpressure.
- Уверенная работа с Tokio: runtime, tasks, select!, cancellation, spawn_blocking; понимание CPU-bound и IO-bound нагрузки.
- Опыт оптимизации производительности: zero-copy, сокращение аллокаций, cache locality, false sharing, выбор hash-функций и аллокатора.
- Опыт профилирования и диагностики: perf, flame graphs, tokio-console, tracing; профилирование памяти и аллокаций.
- Опыт разработки бенчмарков с criterion и понимание методики измерения производительности.
- Уверенная работа с Linux, systemd, journalctl, Cargo, Git, clippy, rustfmt и тестированием.
- Опыт сборки production-приложений: release profiles, LTO, musl, cross-compilation, Docker, cargo audit / cargo deny.
- Опыт работы с serde, ClickHouse и Redis.
- Понимание TLS/mTLS (rustls), X509, OAuth2 / OIDC / JWT.
- Опыт работы с production-системами и разработки серверных компонентов корпоративного уровня под Linux.
Будет преимуществом:
- Опыт разработки highload / streaming-систем и сервисов 24/7 с предсказуемой latency.
- Опыт с Flink, Kafka Streams, RisingWave, Materialize, ksqlDB или другими системами потоковой обработки.
- Опыт CEP, проектирования DSL и парсеров правил (nom, pest), компиляции правил в план исполнения.
- Опыт с rhai, mlua или WASM для пользовательской логики правил.
- Опыт с tonic, prost, axum / hyper.
- Опыт с SIMD, loom, cargo-fuzz, proptest, FFI и другими low-level инструментами.
- Опыт с Prometheus, OpenTelemetry и Grafana.
- Знание правил детектирования SIEM (ArcSight, QRadar, Splunk ES), Sigma и понимание MITRE ATT&CK.
- Опыт с Tarantool, Scylla или другими системами с распределённым состоянием.
- Опыт с HyperLogLog, Count-Min Sketch, Bloom filter.
- Опыт с eBPF, io_uring, thread-per-core или другими low-level подходами.
- Опубликованные crates, контрибуции в Rust open source, публикации или доклады по Rust performance.
- Опыт C / C++ / Go / C# в системном программировании и опыт в информационной безопасности.
Обязательно:
- Ссылка на GitHub / GitLab с примерами кода: сервисы, парсеры, бенчмарки.
- Готовность к full-time работе.
Условия:
- Работа в аккредитованной IT-компании.
- Оформление по ТК РФ.
- Дружный коллектив.
- Удалённый формат работы.
Всегда рады новым талантам и новым успехам наших сотрудников!