описание
Навыки: Разработка программного обеспечения, C++. Специализации: Бэкенд разработчик.
**О проекте**
KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
**Об отделе**
Разработкой KasperskyOS занимается отдел Platform, состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, средства виртуализации, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.
**О команде**
Команда разработки библиотек среды выполнения ОС занимается проектированием, имплементацией и поддержкой общесистемных библиотек и сопутствующих инструментов платформы KasperskyOS.
**Задачи:**
- Проектирование системных API c учетом требований безопасности, надежности и производительности.
- Разработка и поддержка библиотек и инструментов для IPC биндингов.
- Разработка и поддержка среды выполнения подсистемы безопасности KasperskyOS.
- Тестирование кода с помощью юнит тестов, интеграционных тестов, фаззинг тестов; сбор и анализ покрытия.
- Поддержка скриптов сборки и тестирования кода, интеграция их в CI.
- Написание и актуализация документации по коду и архитектурным решениям.
- Проведение анализа пользовательских сценариев, декомпозиция целей, работа с требованиями.
- Портирование и поддержка 3rd-party кода.
- Формирование и внедрение идиоматического подхода к разработке компонентов KasperskyOS.
**Что требуется от кандидата:**
- Опыт разработки ПО на С и C++, включая использование современных стандартов, написание многопоточного кода, тестирование.
- Отличное знание классических алгоритмов и структур данных.
- Понимание устройсва ОС, работы основных сервисов ОС, выполнения системных вызовов.
- Навыки анализа производительности и оптимизации кода.
- Умение пользоваться инструментами разработки и отладки в *nix среде: bash, git, gdb, cmake, make, lcov, и т.д.
- Знание английского языка на уровне чтения и написания технической документации.
- Понимание приципов работы в команде, проведения code review.
**Желательно:**
- Опыт разработки на Rust, Python или Haskell.
- Опыт системного программирования.
- Опыт кроссплатформенной разработки.
- Опыт взаимодействия с описанными на IDL интерфейсами (MIDL, AIDL, FIDL).
- Опыт разработки сетевого взаимодействия (собственные протоколы поверх TCP/UDP или gRPC/Cap'nProto).
- Опыт разработки встраиваемых систем.
- Знакомство с особенностями микроядерных операционных систем.
- Знание теоретических основ информационной безопасности.