💥 Ищем дата-инженера для участия в Публичном собеседовании на Хабр Карьере. Оставить заявку можно здесь → Участвую!

Developer C (KasperskyOS, Application Lifecycle Management)

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

Можно удаленно

Компания

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

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

О компании и команде

О проекте

KasperskyOS – защищенная микроядерная операционная система. Это не очередной дистрибутив Linux, а собственная разработка, способная успешно конкурировать на международных рынках. Заложенный в KasperskyOS принцип кибериммунности позволяет разрабатывать безопасные решения из потенциально небезопасных компонентов.

Об отделе

Разработкой KasperskyOS занимается отдел Secure Platform Development (SPD), состоящий из нескольких групп, которые отвечают за микроядро ОС, драйверы, системные компоненты, подсистему безопасности, а также обеспечивают непрерывный контроль качества разработки. Сейчас у команды много новых, интересных и сложных задач, так что она продолжает расти.

Задачи группы

В команде SPD группа разработки компонентов отвечает за:

  • Инструменты разработки (GCC/Clang, Binutils, Qemu и т.д.);
  • Базовые компоненты KasperskyOS (libc, поддержка POSIX);
  • Поддержку файловых систем и систем хранения данных;
  • Поддержку сетевых стеков и средств коммуникации между устройствами;
  • Средства управления приложениями;
  • Графическую и аудио подсистемы;
  • Поддержку различных фреймворков и системных служб;

О команде

Команда Application Lifecycle Management занимается разработкой методологии и системных компонентов для реализации жизненного цикла приложений в KasperskyOS. Проблемы, которые решает команда, включают в себя следующие:

  • Доставка, установка, удаление и обновление приложений;
  • Запуск, остановка приложений/системы;
  • Перевод приложений/системы из одного состояния в другое;
  • Нотификация приложений/системы;
  • Вопросы, связанные с кибериммунностью приложений.

Ожидания от кандидата

От кандидата мы ожидаем:

  • Отличное знание языка программирования С;
  • Знание или готовность в случае необходимости освоить C++;
  • Знание базовых принципов построения современных операционных систем;
  • Опыт многопоточного программирования;
  • Знание классических алгоритмов и структур данных;
  • Знание инструментов разработки в Unix системах (Linux, BSD и пр.);
  • Опыт работы в команде, знакомство с процессами Code Review, CI/CD;

Будет плюсом:

  • Опыт разработки ПО системного уровня или желание погрузиться в данную область;
  • Знание методологических подходов проектирования программного обеспечения;
  • Знание базовых принципов построения современных операционных систем;
  • Знание систем автоматизации сборки Makefiles/automake/Cmake.

Условия работы

Основные задачи на данной позиции:

  • Проектирование, разработка нового и поддержка существующего кода на C/C++;
  • Улучшение производительности, стабильности, безопасности и масштабируемости;
  • Участие в проектировании и ревью архитектуры;
  • Участие в code review;
  • Разработка юнит тестов.