С++ Developer

Проект

Управленияе аппаратным обеспечением серверов

Роль

С++ Developer

Грейд

Middle+

Требования

Описание проекта

Проект OpenBMC основывается на инфраструктуре проекта и состоит из большого числа компонентов: от загрузчика u-boot и ядра ОС Linux до демонов и утилит, работающих в режиме пользователя и активно использующих программную шину d-bus для меж процессного взаимодействия. Проект OpenBMC предназначен для удалённого управления аппаратным обеспечением серверов посредством протоколов Redfish, IPMI и SNMP, а также имеет интерфейс командной строки и веб-интерфейс. Задачи решаемые BMC являются абсолютно критичными для функционирования, мониторинга оборудования на котором работает базовая станция. Сейчас мы находимся в активной стадии не только разработки, но и багфиксинга, поэтому в данный момент времени нам нужны специалисты, способные быстро делать предварительный анализ багов, понимать, на чьей стороне проблема, предлагать WA или полноценные фиксы. Это требует глубокого погружения в обе области: software со стороны телекома и firmware. Мы не ожидаем от кандидата с первых дней понимания архитектуры решений и глубокой экспертизы во всех областях и самостоятельного разбора дефектов. Готовы показывать, обучать и помогать.

Ключевые компетенции: Linux, REST, Jira, TCP/IP, STL, BitBucket, Gitlab, Boost, WebAPI, C++ 17, POSIX API, LTE, i2c, PLDM, MCPT, ARM, DMTF, х-86, API POSIX, PCIe

Гражданство: РФ, РБ

Локация: РФ,Беларусь

Чем Вам предстоит заниматься в ближайшее время: Управление техническим базисом разработки и поддержки продуктов в сфере систем управления BMC на базе OpenBMC; Участвовать в диагностике возможных проблем работы системы в тестовых и полевых сценариях; Исправление дефектов; Писать техническую документацию. Чем Вам предстоит заниматься потенциально в будущем: Разработка системного ПО на C/С++ под ОС GNU/Linux; Реализация интерфейсов и API в рамках Redfish протоколов обеспечивающие взаимодействие с Telecom platform (например получение данных сенсоров и телеметрии, обновление firmware, включение и перезагрузка отдельных плат, управление ПЛИС для коммутации синхронизационных маршрутов); Реализация сервисной части непосредственно работающей с аппаратурой (fpga и другие устройства посредством i2c, gpio, …); Общением с аппаратурой на низком и среднем уровне (драйверы ядра Linux; userspace-демоны, читающие из драйверов); Доработкой демонов, участвующих процессе обновления firmware в прошиваемых компонентах системы, доступных из BMC; Разработкой интерфейса командной строки управления BMC(Bash). Что мы ожидаем от будущего члена команды: Знания Linux на уровне программирования userspace (POSIX API); Знания принципов работы systemd и d-bus; Знание стека протоколов DMTF: Redfish, PLDM, MCPT, и т. д.; Знакомство с современными архитектурами (ARM, х-86); Понимания принципов WebAPI: REST и т. п.; Знание языка C++, 17ый стандарт и выше (Библиотеки: STL, Boost); Умение читать код и навыки траблшутинга; Навыков отладки и траблшутинга с помощью gdb и иных средств; Знания сетей, базирующихся на TCP/IP; Опыт работы с системами контроля версий (BitBucket, Gitlab) и баг-трекинга (JIRA); Важно знать английский на уровне чтения и написания технической документации; Умение работать с документацией (в первую очередь читать и понимать); Знание и понимание различных уровней тестирования, умение тестировать собственный код. Дополнительно приветствуем: Знание принципов работы проекта Yocto; Знание Linux (как архитектуры драйверов ядра, так и пользовательских API POSIX); Знание стека протоколов DMTF: Redfish, PLDM, MCPT, и т. д. Опыт использования I2C, PCIe и подобных протоколов и интерфейсов для взаимодействия с оборудованием Опыт работы со встраиваемым программным обеспечением и системами реального времени; Общие знания мобильных телекоммуникационных систем LTE; Знание и опыт работы с системами виртуализации;

Обязательные требования

• Знания Linux на уровне программирования userspace (POSIX API); • Знания принципов работы systemd и d-bus; • Знание стека протоколов DMTF: Redfish, PLDM, MCPT, и т. д.; • Знакомство с современными архитектурами (ARM, х-86); • Понимания принципов WebAPI: REST и т. п.; • Знание языка C++, 17ый стандарт и выше (Библиотеки: STL, Boost); Умение читать код и навыки траблшутинга; • Навыков отладки и траблшутинга с помощью gdb и иных средств; • Знания сетей, базирующихся на TCP/IP; • Опыт работы с системами контроля версий (BitBucket, Gitlab) и баг-трекинга (JIRA); • Важно знать английский на уровне чтения и написания технической документации; • Умение работать с документацией (в первую очередь читать и понимать); • Знание принципов работы проекта Yocto; • Знание Linux (как архитектуры драйверов ядра, так и пользовательских API POSIX); • Знание стека протоколов DMTF: Redfish, PLDM, MCPT, и т. д. • Опыт использования I2C, PCIe и подобных протоколов и интерфейсов для взаимодействия с оборудованием • Опыт работы со встраиваемым программным обеспечением и системами реального времени; • Общие знания мобильных телекоммуникационных систем LTE; • Знание и опыт работы с системами виртуализации;

Формат работы: Удаленно

Продолжительность проекта: Больше года

Дополнительные условия

!!Рассматриваем сильных и надежных специалистов, в первую очередь штатных!! Прошу подавать специалистов, которых не показываете параллельно и сможете закрепить за нами на время прохождения всех этапов. Прошу прикреплять ПОДРОБНЫЙ чек лист ПО ВСЕМ задачам и требованиям вакансии. Прописывать дату рождения, номер телефона, личную почту кандидата, город проживания !! Прошу расшифровывать в чек листах (с чем работал/не работал, возможно, с чем то похожим работал, что делал/как взаимодействовал). Ставку кандидата прошу указывать включая все налоги. Стоимость один из критериев для проекта, помимо экспертизы специалиста.

Важно!

При отправке кандидата приложите информацию:

  1. ФИО
  2. Дата рождения
  3. Локация
  4. Грейд
  5. Рейт (ставка/час)
  6. Возможная дата старта на новый проект
  7. Планы на отпуск в ближайшие 3 месяца
  8. Штатный/партнерский/рынок
  9. Скрининг по заявленным требованиям к вакансии (проставить +-)