Обязанности:
Вам предстоит работать над самым сердцем 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 Что предлагаем: Формат сотрудничества на выбор: удаленная работа, гибридный график Участие в международных конференциях и профессиональное обучение высокопрофессиональные коллеги и интереснейшие задачи официальное оформление, оплачиваемые обеды в офисе, зоны отдыха и спорта корпоративный английский язык, ДМС (полная страховка) оклад + ежеквартальные премии = высокий доход, прозрачная система мотивации Гибкий график. Бронь от частичной мобилизации.