Программист встраиваемых систем (middle)
Коротко
Develops firmware for microcontrollers (STM32, GD32, AVR, ESP32), works with peripherals, displays, and logic chips; creates custom protocols; develops · Needs: Proficient in programming STM32, GD32, AVR, ESP32; experience with peripherals (GPIO, timers, UART, SPI, I2C, ADC/DAC, DMA); debugging with debugger
Описание от работодателя
Обязанности: Разработка прошивок для микроконтроллеров (STM32, GD32, AVR, ESP32).
Настройка и отладка периферии, подключение цифровых и аналоговых датчиков и узлов.
Работа с логическими микросхемами: сдвиговые регистры, расширители портов и т.п.
Работа с дисплеями: 7-сегментные, символьные и графические ЖК.
Проектирование логики устройств любой сложности в рамках МК.
Разработка собственных протоколов обмена верхнего уровня (кадры, проверка целостности, защищённый канал) для общения разрабатываемых устройств между собой
Разработка несложного ПО под Windows как интерфейса к устройствам на МК.
Разработка ПО для одноплатных компьютеров (Raspberry Pi и аналоги) как верхнего уровня систем, в которых МК отвечают за работу с «железом» в реальном времени.
Интеграция одноплатников с микроконтроллерами и периферией (UART, SPI, I2C, USB, GPIO).
Интеграция одноплатных компьютеров с микроконтроллерами и периферией через UART, SPI, I²C, USB, GPIO и другие интерфейсы.
Отладка программно-аппаратного взаимодействия совместно со схемотехником.
Настройка стабильной работы устройств в реальных условиях эксплуатации.
Требования: Микроконтроллеры
Уверенное программирование МК семейств STM32, GD32, AVR, ESP32.
Работа со всей периферией: GPIO, таймеры, UART, SPI, I2C, ADC/DAC, DMA, прерывания и т.п.
Отладка с помощью отладчика, осциллографа, логического анализатора.
Умение использовать готовые библиотеки и разбираться в чужом коде.
Умение строить архитектуру со сложной логикой: конечные автоматы, неблокирующие алгоритмы, планировщики или RTOS.
Опыт разработки собственных прикладных протоколов: формат пакета, CRC, подтверждения, повторные передачи, защита канала.
Знание Git.
Одноплатные компьютеры
Уверенные навыки работы с Linux: терминал, SSH, systemd-сервисы, права доступа, сеть, автозапуск приложений, диагностика проблем.
Умение писать приложения под одноплатники на Python и/или C/C++, работать с GPIO, шинами и интерфейсами (libgpiod, spidev, i2c-tools, pyserial и т. п.).
Понимание разделения задач: что отдавать микроконтроллеру (реальное время, быстрая реакция), а что одноплатнику (сеть, интерфейс, база данных, тяжёлая обработка), и умение выстроить обмен между ними по собственному протоколу.
Windows
Опыт разработки несложного desktop-ПО под Windows.
C#/.NET, Python, C++/Qt или аналогичные технологии.
Создание GUI.
Работа с COM-портами, USB и сетевыми интерфейсами.
Визуализация данных и телеметрии.
Приложения могут использоваться как конфигураторы, сервисные программы, диагностические инструменты, интерфейсы управления и средства обновления прошивки.
Общее
Умение настраивать надёжную работу устройства «в поле»: автозапуск, watchdog, защита от повреждения SD-карты и сбоев питания.
Умение строить системы со сложной логикой и несколькими одновременно выполняемыми задачами.
Понимание неблокирующей архитектуры программ.
Умение использовать конечные автоматы, событийную логику, программные таймеры, планировщики и RTOS там, где это необходимо.
Умение разделять проект на логические модули и поддерживать достаточно крупную кодовую базу embedded-проекта.
Личные качества
Самостоятельность и ответственность за результат.
Умение работать в связке со схемотехником.
Будет плюсом
Понимание принципов работы нейросетей, обучения моделей, запуска ML на МК (TinyML),
Опыт работы с RTOS (FreeRTOS, Zephyr).
Умение читать схемы и базово разбираться в аппаратной части.
Опыт запуска моделей машинного обучения на одноплатниках (TensorFlow Lite, ONNX Runtime, OpenCV, Jetson), в том числе с камерой.
Опыт использования Docker и контейнеризации на встраиваемых платформах.
Опыт сборки кастомных образов Linux (Buildroot, Yocto) и настройки Device Tree.
Условия: Работа в развивающейся R&D-компании;
Оформление в соответствии с ТК РФ;
Конкурентный уровень заработной платы;
Премиальные выплаты;
ДМС после испытательного срока;
Испытательный срок - 3 месяца;
Комфортный офис в шаговой доступности от метро Сокол
График работы пн-пт 10:00-19:00;
Возможность профессионального и карьерного роста.