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