Инженер-программист встраиваемых систем (Embedded Firmware Engineer)
Описание от работодателя
Обязанности:
Разработка и сопровождение встроенного ПО для микроконтроллеров.
Разработка ПО для промышленных систем сбора, обработки, хранения и передачи данных на базе одноплатных компьютеров.
Разработка приложений и пользовательских интерфейсов на C++ с использованием Qt.
Участие в разработке скважинной и наземной геофизической аппаратуры и систем телеметрии.
Разработка ПО устьевого наземного регистратора: управление глубинными приборами, приём и регистрация данных датчиков.
Настройка, запуск и отладка опытных образцов совместно с разработчиками электроники.
Обеспечение устойчивой работы устройств при сбоях питания и потере связи.
Сопровождение серийных устройств и приборов, устранение ошибок и развитие функциональности.
Документирование программных модулей и протоколов обмена.
Требования:
Практический опыт программирования на C/C++.
Знание архитектуры ARM Cortex-M и опыт разработки ПО для микроконтроллеров STM32.
Опыт работы с периферией микроконтроллеров, прерываниями, таймерами, DMA и библиотеками HAL.
Опыт разработки ПО для одноплатных компьютеров под Linux / Embedded Linux.
Практический опыт разработки приложений с использованием Qt Creator: сигналы и слоты, многопоточность, обмен данными с оборудованием.
Опыт реализации сбора и регистрации измерительных данных, их локального хранения и передачи во внешние системы.
Опыт работы с интерфейсами UART, I²C, SPI, USB и RS-485
Знание цифровой схемотехники, умение читать принципиальные электрические схемы.
Навыки отладки ПО на реальном оборудовании и поиска неисправностей на стыке аппаратуры и ПО.
Опыт разработки модульных решений и библиотек.
Опыт работы с Git.
Умение работать в команде и читать техническую документацию на английском языке.
Приветствуется:
Опыт разработки промышленных регистраторов, измерительных систем или геофизической аппаратуры.
Опыт работы с RTOS.
Знание Modbus RTU
Опыт работы с сотовыми модемами и восстановления соединения после обрывов связи.
Опыт работы с базами данных.
Опыт реализации защиты данных при отключении питания, автоматического восстановления работы и обновления ПО.
Опыт разработки на Python для автоматизации испытаний и диагностики.
Знание Verilog/SystemVerilog и опыт работы с ПЛИС Altera/Intel, Xilinx/AMD или Lattice.
Условия: Оформление по ТК РФ;
Внутреннее и внешнее обучение;
Возможность карьерного и профессионального роста.