Вакансия: Разработчик C (KasperskyOS, Application Lifecycle Management)
Описание вакансии
О проекте
KasperskyOS защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.
Об отделе
Разработкой KasperskyOS занимается отдел KasperskyOS Platform Development , состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.
Задачи группы
В команде Platform группа разработки компонентов отвечает за:
- Инструменты разработки (GCC/Clang, Binutils, Qemu и т.д.);
- Базовые компоненты KasperskyOS (libc, поддержка POSIX);
- Поддержку файловых систем и систем хранения данных;
- Поддержку сетевых стеков и средств коммуникации между устройствами;
- Средства управления приложениями;
- Графическую и аудио подсистемы;
- Поддержку различных фреймворков и системных служб.
О команде
Команда Application Lifecycle Management Services Development занимается разработкой методологии и системных компонентов для реализации жизненного цикла приложений в KasperskyOS. Проблемы, которые решает команда, включают в себя следующие:
- Доставка, установка, удаление и обновление приложений;
- Запуск, остановка приложений/системы;
- Перевод приложений/системы из одного состояния в другое;
- Нотификация приложений/системы;
- Вопросы, связанные с кибериммунностью приложений.
Основные задачи на данной позиции:
- Проектирование, разработка нового и поддержка существующего кода на C/C++;
- Улучшение производительности, стабильности, безопасности и масштабируемости;
- Участие в проектировании и ревью архитектуры;
- Участие в code review;
- Разработка юнит тестов.
От кандидата мы ожидаем:
- Отличное знание языка программирования С;
- Знание или готовность освоить C++;
- Знание базовых принципов построения современных операционных систем;
- Опыт многопоточного программирования;
- Знание классических алгоритмов и структур данных;
- Знание инструментов разработки в Unix системах (Linux, BSD и пр.);
- Опыт работы в команде, знакомство с процессами Code Review, CI/CD.
Будет плюсом:
- Опыт разработки ПО системного уровня или желание погрузиться в данную область;
- Знание методологических подходов проектирования программного обеспечения;
- Знание базовых принципов построения современных операционных систем;
- Знание систем автоматизации сборки Makefiles/automake/Cmake.