ФГУП НПП Гамма
Ведущий программист встроенного ПО (Embedded Developer)
Не указана
- 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-компанией и имеем все соответствующие льготы.