ФГУП НПП Гамма

Ведущий программист встроенного ПО (Embedded Developer)

Не указана
  • Москва
  • Полная занятость
  • Полный день
  • От 3 до 6 лет
  • Cortex-M
  • С/С++
  • ARM
  • STM32
  • ST
  • TI
  • DSP
  • Linux
  • GCC
  • Git
  • Embedded
  • Team lead
  • Tech lead
  • Вcтроенное ПО
  • Микроконтроллер
  • ЦОС
  • Электроника
  • Ведущий Программист Разработчик

Области применения и сферы деятельности, которыми предстоит заниматься:

Разработка встроенного (embedded) управляющего программного обеспечения на языке C/C++ для приложений bare metal, RTOS (TI и FreeRTOS) и Linux для инженерных измерительных приборов СВЧ-диапазона (анализаторы спектра, векторные генераторы, свипирующие генераторы синусоидальных сигналов, осциллографы, мультиметры и пр.) под такие процессорные архитектуры как различные ARM (TI и STM), VLIW (DSP TI), RISC-V(WCH) и x86 (одноплатные компьютеры)

Мы используем в работе:

  • Среды для разработки: STM32CubeIDE, TI Code Composer Studio, MS Visual Studio Code, Visual GDB;
  • GCC/GDB под различные архитектуры
  • Систему контроля версий Git (GitLab);
  • PVS-Studio
  • Devprom ALM, MS Project
  • Процессоры: TI AM57x, STM32F4/G4/H4, в перспективе WCH32, linux/x86.

Обязанности:

  • Разработка встроенного ПО для: аппаратных блоков управления приборами и потоковой обработки данных (ЦОС);
  • Разработка тестов для отладки ПО, модульных и интеграционных, контроль соблюдения собой и подчинёнными установленных в отделе правил CI/CD и работы с системой контроля версий;
  • Запуск и отладка ПО на оборудовании совместно с разработчиками аппаратуры и разработчиками ПЛИС;
  • Документирование разработки: протоколов , алгоритмов, архитектуры ПО;
  • Обработка ТЗ, проработка архитектуры решения, декомпозиция задач для себя и подчинённых (2-4 человека в зависимости от текущего проекта), составление планов и согласование их с начальником отдела и другими ведущими специалистами.
  • Контроль выполнения подчинёнными задач, контроль качества кода и тестов (ревью);

Требования:

  • Уверенное, выше среднего, владение языком программирования С, опыт разработки для встроенных систем не менее 6 лет;
  • Успешный опыт освоения основных периферийных блоков современных 32-х разрядных MCU или SoC: UART/USART, I2C, SPI; что-либо из Ethernet, USB, PCIe;
  • Знание как работает система сборки, компилятор, линкер;
  • Умение работать с основными измерительными приборами (мультиметр, осциллограф) и находить ошибки ПО или аппаратуры на отлаживаемых платах.
  • Знание стандартных алгоритмов и архитектур построения встроенного ПО (bare metal, FSM, interrupt driven model, RTOS based), знание и понимание основ работы с многопоточностью;
  • Владение системой контроля версий GIT (или любой другой)
  • Коммуникабельность, готовность к получению новых знаний в предметной области, перечисленных в желательных требованиях, а также работе с подчинёнными и их обучению;

Знания, каждое из которых будет плюсом:

  • Знание С++, новых стандартов языка, современных шаблонов проектирования ООП;
  • Знание нескольких архитектур микропроцессоров, принципов их работы и периферии, опыт разработки кроссплатформеного кода;
  • Опыт работы с linux/ARM, FreeRTOS;
  • Опыт работы: со сложными в настройке микросхемами, инженерными образцами, например высокоскоростными АЦП, ЦАП, DDS; c параллельными интерфейсами и шинами для взаимодействия с ПЛИС; с памятью DDR;
  • Владение UML, опыт составления подробной документации;
  • Опыт составления и выполнения планов, формулировки задач, работы с подчинёнными;
  • Опыт работы с ЦОС (DSP)
  • Владение низкоуровневым программированием на ASM.
  • Владение скриптовыми языками для написания тестов с целью отладки оборудования и ПО.

Мы являемся аккредитованной IT-компанией и имеем все соответствующие льготы.