🎂 Экосистеме Хабра — 19 лет!

Исследуйте все эпохи IT в игре-музее ко дню рождения. Соберите 19 артефактов, получите звание Архивариуса Хабра 19000 и участвуйте в розыгрыше мерча от компаний, которые делают будущее вместе с вами.

Поздравить нас → 19.habr.com

Software Architect

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

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

Компания

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

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

О проекте:

Отдел развития архитектуры операционной системы отвечает за формирование технического видения для микроядерной ОС Лаборатории Касперского. Мы определяем, как должна работать современная ОС общего назначения, чтобы эффективно конкурировать с продуктами крупных компаний на мировом рынке.

Отдел владеет процессом архитектурного ревью и осуществляет архитектурный надзор, выравнивая архитектуру компонентов системы под стратегические цели бизнеса, осуществляет арбитраж при принятии трудных решений.

Мы работаем над моделью безопасности будущей KasperskyOS, переориентированной на сценарии общего назначения: мобильные устройства, рабочие станции. Это серьезная переработка, затрагивающая практически каждый системный компонент, ведь не так давно система ориентировалась преимущественно на встраиваемое применение, где возможна статическая конфигурация политик безопасности. В столь широкой переработке системы важно учитывать аспект производительности, который вступает в техническое противоречие с безопасностью.

Для успешной конкуренции на рынке операционных систем критически важно добиваться высоких показателей производительности в типовых пользовательских сценариях. Сегодня это один из фокусов проекта KasperskyOS и нашего отдела. Нам предстоит трансформировать процессы разработки KasperskyOS, чтобы уделять производительности значительно больше внимания: отслеживать ключевые метрики производительности релизов, ставить конкретные цели по производительности подсистем, компонентов и приложений, вести прицельные работы по их оптимизации.

В нашем отделе работают архитекторы ПО и исследователи, специализирующиеся в области информационной безопасности и формальных методов.

Обязанности:

  • Разработка методологии по улучшению производительности операционной системы общего назначения;
  • Выработка ключевых метрик производительности;
  • Выполнение и координирование проектов по улучшению производительности сценариев использования системы, её подсистем и копонентов;
  • Архитектурный надзор с фокусом на производительности и энергопотреблении.

Что нам важно:

  • Способность выстроить методологию систематического улучшения производительности для большого проекта (операционная система общего назначения);
  • Способность сформулировать ключевые метрики производительности, нефункциональные требования относительно производительности конкретных подсистем и компонентов;
  • Понимание типовых причин просадки производительности, знание тактик оптимизации производительности;
  • Опыт оптимизации производительности системного программного обеспечения;
  • Опыт использования профилировщиков, счетчиков производительности, трейсеров, отладчиков и других инструментальных средств, позволяющих находить код, нуждающийся в оптимизации;
  • Способность разработать недостающий инструментарий с нуля;
  • Глубокое понимание и опыт использования многопоточного программирования, примитивов синхронизации, барьеров памяти, lockless-алгоритмов, SIMD-оптимизаций;
  • Глубокое понимание архитектуры современных операционных систем и системного программного обеспечения;
  • Понимание основ архитектуры вычислительных систем: иерархия пямяти, разделение на пространство ядра и пространство пользователя, виртуальная память, механизмы когеррентности кэшей;
  • Знание типовых алгоритмов и структур данных, навык асимптотического анализа алгоритмов;
  • Хорошее знание языков программирования C и C++;
  • Базовое знание ассемблера для armv8 или x86_64;
  • Базовое владение языком Python 3.x;
  • Опыт работы в GNU/Linux, владение POSIX shell и типовыми инструментами командной строки, способность настраивать и поддерживать Linux-систему в рабочих сценариях;
  • Понимание принципов работы компиляторов и линкеров, оптимизаций на уровне компилятора, ABI;
  • Знание типовых сетевых протоколов, модели OSI;
  • Аналитический склад ума, внимание к деталям, самостоятельность;
  • Способность грамотно формулировать мысли на письме;
  • Умение читать и писать технические тексты на английском языке.

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

  • Знание устройства современных микроядер: seL4, NOVA, Fiasco, Zircon, Managarm;
  • Знакомство с архитектурой ОС на базе микроядер, например Sculpt OS (Genode OS Framework), Fuchsia;
  • Знание архитектуры современных мобильных ОС: iOS, Android, Tizen, Sailfish OS/ОС Аврора, Chrome OS;
  • Знание основ информационной безопасности;
  • Базовые знания в криптографии;
  • Понимание причин типовых уязвимостей в программном обеспечении и способов их митигации;
  • Знакомство с языками Rust, Dart, Haskell.