Senior Системный программист C/C++
Вам предстоит работать над самым сердцем Qrator — системой высокоскоростной обработки трафика (десятки миллионов пакетов в секунду на сервер). Задача на этом уровне формулируется так: быстро принять все хорошее и так же быстро дропнуть все плохое.
Суть DDoS сводится к тому, чтобы найти слабую точку и ударить в нее, исчерпав какой-нибудь из ее ресурсов (сетевой канал, память, процессор, возможности сетевого чипа на свитче или сетевой карте и т.п.). Соответственно, основная стратегия защиты — это распределение удара (горизонтальное масштабирование ресурса). Однако, во-первых, распределение нагрузки от некоторых умных атак — это весьма нетривиальная задача, а во-вторых, бездумное масштабирование любого железа «про запас» было бы слишком дорогим. Поэтому одна из наших постоянных задач — это изучение и тестирование всевозможного железа от свитчей и сетевых карточек до процессоров и памяти с целью сравнения железок между собой, выявления узких мест и понимания предельной производительности. И связанная задача — модификация нашего софта так, чтобы подобраться к этому пределу. Про многое о работе железа и его эффективном использовании можем рассказать (и рассказываем на конференциях). Мы постоянно совершенствуем алгоритмы для вычленения вредоносного трафика, и о своих находках в этой области мы также стараемся рассказывать на конференциях и в публикациях.
Иногда нужно вылезать из низкоуровневого ядерного и сетевого программирования и погружаться в сервера приложений, которые также нужно поддерживать и улучшать (например, сделать новый алгоритм балансировки для основных серверов или придумать схему распределения нагрузки инфраструктурных приложений).
На чем пишем?
В ядре крайне сложно писать на чем-либо, кроме C, поэтому много пишется на C. Иногда появляется Python в тех местах, где удобство важнее производительности (например, сделать биндинги для наших верхнеуровневых модулей). В userspace используется как C, так и C++.
О вас:
- Опыт разработки ядра Linux и понимание основных концепций (SKB, RCU, you name it) или опыт разработки высокопроизводительных сетевых приложений на DPDK или других низкоуровневых стеках.
- Знакомство с базовыми алгоритмами, готовность разрабатывать, исследовать и реализовывать новые сложные алгоритмы. Если вас пугает «матан» или вы считаете, что все интересные и полезные алгоритмы уже придуманы, то вряд ли вам будет комфортно с нами.
- Опыт с многопоточным программированием.
- Базовое знание HTTP, DNS, BGP, TCP/IP.
- Git.
- Глубокое знание C/C++
Пожелания:
- Знакомство с шифрованием и опыт работы использования библиотек OpenSSL/LibreSSL в проектах.
- Знакомство с основами ИБ.
- Приветствуется знакомство с Python
Что предлагаем:
- Формат сотрудничества на выбор: удаленная работа, гибридный график
- Участие в международных конференциях и профессиональное обучение
- высокопрофессиональные коллеги и интереснейшие задачи
- официальное оформление, оплачиваемые обеды в офисе, зоны отдыха и спорта корпоративный английский язык, ДМС (полная страховка)
- оклад + ежеквартальные премии = высокий доход, прозрачная система мотивации
- Гибкий график.
- Бронь от частичной мобилизации.
Обслуживать клиентов: работать со счетами, пластиковыми картами и денежными переводами. Продавать банковские и страховые продукты (кредитные продукты, карты, вклады).
Обслуживать клиентов: работать со счетами, пластиковыми картами и денежными переводами. Продавать банковские и страховые продукты (кредитные продукты, карты, вклады).