Системный разработчик (группа микроядра, команда разработки KasperskyOS)

Требования

Разработка ПОLinuxC

Местоположение и тип занятости

Москва

Компания

ТОП-3 международная компания в области IT безопасности. Один из лучших работодателей России

Описание вакансии

О проекте
KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
О команде
Разработкой KasperskyOS занимается команда Secure Platform Development (SPD), состоящая из нескольких групп, которые отвечают за микроядро ОС, драйверы, приложения, подсистему безопасности, средства виртуализации, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.
О группе
Группа разработки микроядра отвечает за системный уровень KasperskyOS – ядро, его сервисы, API для работы с ними, а также за разработку драйверов и поддержку аппаратных платформ. 
Задачи
•    Изучение всего нового, что происходит в области разработки операционных систем;
•    Проектирование и реализация системных сервисов и библиотек;
•    Обеспечение работоспособности KasperskyOS на различных аппаратных платформах.
Что требуется от кандидата
•    Отличное владение языком программирования C;
•    Знание архитектур современных процессоров;
•    Знание языка assembler по крайней мере для одной из архитектур (x86, ARM);
•    Отличное понимание принципов построения операционных систем;
•    Понимание того, как работает «железо»;
•    Знание классических алгоритмов и структур данных;
•    Git, Make, GCC;
•    Практика тестирования и документирования написанного кода;
•    Умение писать грамотные и понятные технические документы;
•    Английский язык на уровне чтения технической документации.
Желательно
•    Знание и понимание работы различных подсистем ОС, таких как управление памятью, межпроцессное взаимодействие, синхронизация, планирование задач, специфика работы multicore и принципов работы различной аппаратуры (PCI, USB, SATA и т.д.);
•    Знакомство с особенностями микроядерных операционных систем;
•    Опыт написания драйверов устройств;
•    Знание специфики разработки под специализированные ОС (real-time, embedded);
•    Опыт разработки под различные архитектуры (ARM, PowerPC, MIPS);
•    Навыки оптимизации кода под конкретную аппаратную платформу;
•    Знания в области информационной безопасности;
•    Хорошее знание языка программирования C++.