Понимание архитектуры и принципов организации встраиваемых решений на базе ОС Linux: загрузчик, ядро и модули ядра, Device Tree, файловая система, компиляция и кросс-компиляция, отладка и т. д.;
Опыт работы с системами автоматизации сборки программного обеспечения из исходного кода (Autotools, CMake и др.);
Опыт программирования прикладных программ на С, C++;
Умение работать с технической документацией;
Умение работать с системами контроля версий (Git);
Знание английского языка.
Обязанности
Разработка прикладного ПО для изделий, содержащих компоненты со встроенным Linux
Работа со сторонними модулями, в том числе с различными коммуникационными драйверами
Сборка системы с внесением изменений в ядро
Составление эксплуатационной документации на программные модули
Сопровождение, рефакторинг и реинжиниринг программных модулей
Отладка прикладного ПО на изделии с использованием осциллограф
Работа с выводом звука и изображений (FFMPEG, gstreamer)
Желательно
Знание скриптовых языков (Shell, Python и др.);
Опыт программирования на C++;
Опыт создания прошивок с помощью инструментов Yocto/OpenEmbedded, OpenWRT и др.;
Понимание принципов работы интерфейсов передачи данных (UART, SPI, I2C, PCI-E и др.);
Умение читать и понимать принципиальные схемы для печатных плат;
Понимание принципов функционирования сетей TCP/IP, опыт программирования сетевых приложений.
Готовы рассмотреть различные варианты условия и графика работы