Rust developer
Описание
Привет!Меня зовут Эля, я являюсь 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-компании.- Оформление по ТК РФ.- Дружный коллектив.- Удалённый формат работы. Всегда рады новым талантам и новым успехам наших сотрудников!