👀 Дизайнеры, с какой командой вы мэтчитесь по вайбам? Проверяйте на Вайб-чеке→ vibe.habr.com

Principal Software Engineer C++

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

Санкт-Петербург, Минск (Беларусь), Нижний НовгородПолный рабочий день

Компания

Создавать передовые технологии — это наше призвание

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

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

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

Мы активно расширяемся и в связи с этим открываем поиск Principal Software engineer (C++) в Департамент обработки данных – часть большой команды разработки нашего флагманского продукта  – TATLIN.UNIFIED.
Продукт представляет собой современное хранилище, созданное для решения задач традиционных корпоративных приложений, больших данных и аналитики, которое используют в ЦОД, публичных и частных облаках. 

Команда создаёт самую сложную часть программного продукта СХД – набор высоконагруженных сервисов, реализующих сложные алгоритмы работы с данными, их кэширования, репликации, создания слепков(snapshots) и т.д. 
Наибольшая часть сервисов написана на С++ в соответствии с последними стандартами языка,  часть сервисов написана на языке C в ядре Linux в тесной интеграции с аппаратной частью. Набор сервисов, которые разрабатываются в департаменте, реализуют так называемый Data Path СХД.

Data Path СХД решает следующие задачи:

  • Кэширование данных на запись и чтение с управлением политик наполнения кэша и вытеснения данных из кэша;
  • Обеспечение консистентности данных между основной и резервной новой в режиме active-active для различных режимов работы системы;
  • Синхронная и асинхронная репликация данных на удаленные системы;
  • Создание слепков данных (снапшотов) и работа с ними;
  • Реализация собственного гибкого, конфигурируемого решения для RAID;
  • Автоматическая адаптация системы к профилю нагрузки для достижения максимальной производительности системы при различных сценариях и многое другое.

Чем предстоит заниматься:

  • Разработкой высокопроизводительных data path, control/management path, уровня data protection и кластерных компонентов для системы хранения данных;
  • Разработкой эффективных алгоритмов и структур данных для симметричного active-active кластера;
  • Разработкой высокопроизводительных алгоритмов преобразования данных и алгоритмов уменьшения избыточности данных;
  • Исследованием и решением проблем, связанных с производительностью и стабильностью;
  • Разработкой механизмов репликации данных.
  • Настройкой и доработкой различных подсистем ядра Linux, продвижением наработок в mainline ядра.

Мы ожидаем от будущего члена команды:

  • Понимание устройства современных компьютеров и операционных систем в целом;
  • Знание C++11/14/17;
  • Отличное понимание как устроен Linux и Linux/POSIX API;
  • Опыт анализа производительности отдельных приложений и системы в целом;
  • Умение тестировать собственный код;
  • Опыт написания многопоточных и/или асинхронных программ.

Также необходимо быть знакомым с классическими алгоритмами и структурами данных.

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

  • Наличие опыта разработки модулей ядра или опыт системного программирования.

Бонусы

Будем рады предложить:

    • ПРОГРАММУ ПОДДЕРЖКИ ИННОВАЦИЙ: премии за научные достижения, публикацию статей, выступления на конференциях и регистрацию патентов;
    • ЗАБОТУ О ЗДОРОВЬЕ: ДМС с первых дней работы, льготные условия страхования близких;
    • ПОДДЕРЖКУ В ЛИЧНЫХ ВОПРОСАХ: консультации юристов, психологов, экспертов по ЗОЖ и управлению финансами;
    • ОБУЧЕНИЕ И РАЗВИТИЕ: учебный портал с курсами и лекциями от экспертов, английский, участие в топовых конференциях;
    • Конкурентный уровень заработной платы (готовы по достоинству оценить ваши знания и опыт) + премирование по результатам работы.

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