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

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

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

Embedded-разработчик на C++ в команду OpenBMC

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

МоскваПолный рабочий день

Компания

Компания, которая развивает самую популярную в России поисковую систему и десятки других сервисов

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

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

Больше 15 лет Яндекс строит собственные дата-центры, совместно с партнёрами создаёт и дорабатывает оборудование для дата-центров: серверы, полки для устройств PCIe, дисковые полки, устройства для резервирования питания. За всеми этими устройствами нужно следить, удалённо управлять ими и собирать метрики.

Для этих целей уже много лет мы используем OpenBMC — опенсорсный Embedded Linux для контроллера серверной материнской платы. С его помощью можно удалённо узнать всё о состоянии сервера, получить доступ к ОС, а также управлять сотнями тысяч серверов.

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

Мы ждем, что вы:

  • Уверенно пишете на C++
  • Знаете классические алгоритмы, структуры данных и шаблоны проектирования
  • Занимались разработкой под Embedded Linux
  • Разрабатывали клиент-серверные приложения, знаете сетевые протоколы
  • Любите искать решения нетривиальных задач и доходить до первопричины проблемы (совместно с командой)
  • Работали с системами контроля версий
  • Умеете работать в команде
  • Читаете документацию на английском языке

Будет плюсом, если вы:

  • Имеете опыт системного программирования для Linux или baremetal на стыке программного кода и железа;
  • Работали над открытыми проектами;
  • Читаете принципиальные схемы.

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

*Какие задачи вас ждут*

Разработка архитектуры программно-аппаратных решений
Время не стоит на месте, у нас появляются новые устройства, для которых надо разрабатывать архитектуру. При этом нужно учитывать нюансы эксплуатации и управления и закладывать возможность для измерения различных параметров. Важно не забывать про design for manufacturability: тестировать устройства во время производства не менее важно, чем смотреть на метрики во время эксплуатации.

Поиск проблем на стыке программной и аппаратной части
Embedded software — та самая прослойка, которая обеспечивает абстрагирование высокоуровневых интерфейсов от железа. Когда появляются ошибки на графиках, это далеко не всегда ошибка в коде. Иногда необходимо использовать все инструменты дебага: начиная c дебажных принтов и GDB, заканчивая помощью со стороны схемотехников с осциллографом и вдумчивым чтением схемы устройства.

Взаимодейcтвие с опенсорс-сообществом
Вы будете регулярно делать синхронизацию нашего форка OpenBMC с upstream и взаимодействовать с сообществом и мейнтейнерами проекта OpenBMC.

Бонусы