Мы - Kaspersky DDoS Protection (KDP) - отдельное подразделение «Лаборатории Касперского», международного лидера в кибербезопасности. Мы создаём единую высоконагруженную платформу для защиты онлайн-активов. В основе - защита от DDoS-атак (L3/L4), которую мы активно усиливаем решениями уровня приложений (L7): WAF, защита от ботов, а также развиваем направление CDN.
Мы ищем Senior C Developer с глубокой экспертизой в low-level и сетевой разработке, который возьмёт на себя разработку самого ответственного слоя - ядра обработки трафика. Вы будете работать в плотной связке с архитектором и станете ключевым исполнителем, реализующим высокопроизводительные компоненты защиты.
Чем предстоит заниматься:
1. Разработка ядра защиты (L3/L4)
- Создавать высокопроизводительные компоненты обработки сетевых пакетов, используя DPDK и eBPF;
- Реализовывать механизмы stateful-инспекции и пакетной фильтрации на C;
- Проектировать эффективное взаимодействие ядра с остальными компонентами платформы.
2. Разработка L7-модулей для веб-прокси
- Писать кастомные модули на C для nginx/Angie (бот-менеджмент, интеграция с ML);
- Работать с внутренней архитектурой веб-сервера: фазы обработки, пулы памяти, буферизация.
3. Интеграция и интерфейсы
- Обеспечивать связь C-ядра с сервисным слоем на Go (shared memory, gRPC, cgo);
- Передавать метрики и события в системы аналитики — ClickHouse, Kafka;
- Участвовать в проектировании API-контрактов между компонентами платформы.
4. Работа с наследием
- Анализировать существующий код на C, выделять удачные архитектурные решения и алгоритмы;
- Адаптировать и переносить отобранные фрагменты в новую кодовую базу.
5. Производительность и наблюдаемость
- Профилировать код (perf, flamegraphs, eBPF-трассировка), находить и устранять узкие места;
- Интегрировать метрики производительности в общую систему observability;
- Участвовать в нагрузочном тестировании и интерпретировать его результаты.
6. Техническое взаимодействие
- Работать в паре с архитектором: обсуждать детали реализации, давать обратную связь;
- Проводить код-ревью смежных компонентов с фокусом на производительность;
- Делиться опытом, менторить коллег в области low-level разработки.
Обязательно:
- Опыт разработки на C от 5 лет — уверенное владение языком, управление памятью, многопоточность, низкоуровневая оптимизация.
- Опыт сетевого программирования от 3 лет — практическая работа с DPDK.
- Глубокое знание Linux — сетевой стек (netfilter, tc, сокеты), системные вызовы, настройка производительности.
- Понимание сетевых протоколов — от L3/L4 (IP, TCP/UDP, ICMP) до L7 (HTTP/HTTPS, TLS).
- Навыки профилирования и оптимизации — perf, flamegraphs, lock-free структуры, работа с кеш-памятью.
- Английский язык — уровень B1 для чтения технической документации.
Будет большим плюсом:
- Опыт в сетевой безопасности (DDoS-защита, WAF, бот-менеджмент).
- Умение писать и отлаживать eBPF-программы.
- Опыт работы с ClickHouse, Kafka.
- Понимание принципов работы ML-моделей (для задач интеграции).
- Опыт с GitLab CI/CD, Docker, Kubernetes.
- Разработка модулей для nginx/Envoy/Angie.
- Опыт менторства и технического руководства.