улица Льва Толстого 16
Больше 15 лет Яндекс строит собственные дата-центры, совместно с партнёрами создаёт и дорабатывает оборудование для дата-центров: серверы, полки для устройств PCIe, дисковые полки, устройства для резервирования питания. За всеми этими устройствами нужно следить, удалённо управлять ими и собирать метрики. Для этих целей уже много лет мы используем OpenBMC — опенсорсный embedded linux для контроллера серверной материнской платы. С его помощью можно удалённо узнать всё о состоянии сервера, получить доступ к ОС, а также управлять сотнями тысяч серверов. А ещё всё — вообще всё — можно автоматизировать.
Какие задачи вас ждут
Разработка архитектуры программно-аппаратных решений
Время не стоит на месте, у нас появляются новые устройства, для которых надо разрабатывать архитектуру. При этом нужно учитывать нюансы эксплуатации и управления и закладывать возможность для измерения различных параметров. Важно не забывать про design for manufacturability: тестировать устройства во время производства не менее важно, чем смотреть на метрики во время эксплуатации.
Поиск проблем на стыке программной и аппаратной части
Embedded software — та самая прослойка, которая обеспечивает абстрагирование высокоуровневых интерфейсов от железа. Когда появляются ошибки на графиках, это далеко не всегда ошибка в коде. Иногда необходимо использовать все инструменты дебага: начиная c дебажных принтов и GDB, заканчивая помощью со стороны схемотехников с осциллографом и вдумчивым чтением схемы устройства.
Взаимодейcтвие с опенсорс-сообществом
Вы будете регулярно делать синхронизацию нашего форка OpenBMC с upstream и взаимодействовать с сообществом и мейнтейнерами проекта OpenBMC.
Мы ждем, что вы:
- Уверенно пишете на C++;
- Знаете классические алгоритмы, структуры данных и шаблоны проектирования;
- Занимались разработкой под Embedded Linux;
- Имеете опыт разработки клиент-серверных приложений, знаете сетевые протоколы;
- Любите решать неожиданные задачи и докапываться вместе с коллегами до причины проблемы;
- Работали с системами контроля версий.
Будет плюсом, если вы:
- Имеете опыт системного программирования для Linux или baremetal на стыке программного кода и железа;
- Работали над открытыми проектами;
- Читаете принципиальные схемы.