Направление: Бортовые системы БПЛА
О роли:
Мы ищем инженера-программиста для разработки и сопровождения отказоустойчивого ПО бортовых вычислительных комплексов беспилотных летательных аппаратов.
Работа охватывает полный стек — от драйверов нижнего уровня на «голом железе» до
middleware-сервисов на Linux и интеграции с экосистемой ROS.
Если вы способны одновременно думать фронтом сигнала на ножке МК и графиком
топика в PlotJuggler — эта позиция для вас.
Чем предстоит заниматься:
-
Проектирование и разработка firmware на C++ для микроконтроллеров STM32F4/G4 (FreeRTOS, HAL/LL, работа с регистрами напрямую).
-
Разработка и отладка конечных автоматов (FSM) для критической логики безопасности:
Fail-Safe, защита от ложных срабатываний, аппаратные и программные watchdog-таймеры. -
Написание низкоуровневых драйверов периферии без блокирующих вызовов: EXTI, DMA, таймеры Capture/Compare, I2C/SPI в неблокирующем режиме.
-
Реализация обмена по шине CAN/CAN-FD с использованием протокола
DroneCAN (UAVCAN v0/v1), включая работу с libcanard. -
Разработка bridge-сервисов на Python 3 под Linux: трансляция данных между
CAN-шиной и ROS1 (rosserial, publisher/subscriber-ноды, кастомные сообщения). -
Диагностика и устранение аномалий: HardFault, джиттер прерываний, Race Conditions, некорректная синхронизация в многозадачной среде FreeRTOS.
-
Сопровождение сборочной инфраструктуры: CMake, Ninja, кодогенерация
(парсинг DSDL, генерация C++-заголовков). -
Макетирование и сборка стендов для разрабатываемых устройств: подключение
периферии, отладочных интерфейсов и измерительного оборудования. -
Ведение проекта в GitLab: работа с ветками, MR/CR, настройка и сопровождение
пайплайнов CI/CD (сборка, прогон тестов, автодеплой артефактов). -
Участие в проведении ревью кода и формировании командных стандартов разработки.
Обязательные требования:
Языки и платформы
-
C/C++ (C++14/17) — уверенное владение; понимание специфики критических систем:
отказ от RTTI, исключений и динамической памяти в real-time контексте. -
Python 3 — написание устойчивых к сбоям системных демонов, корректная обработка исключений, управление ресурсами ОС (файловые дескрипторы, сокеты).
-
ROS1 (Noetic) — разработка нод, работа с publisher/subscriber,
кастомными типами сообщений, параметрами и launch-файлами.
Микроконтроллеры и периферия
-
Архитектура ARM Cortex-M: работа с регистрами, CMSIS, HAL/LL STM32.
-
Периферия: CAN, I2C, SPI, UART, EXTI, DMA, таймеры (PWM, Capture/Compare).
-
FreeRTOS: задачи, очереди, мьютексы, семафоры, корректная синхронизация,
предотвращение Race Conditions и дедлоков.
Сериализация и передача данных
-
Глубокое понимание упаковки данных: побитовые операции, выравнивание памяти
(padding), порядок байт и бит (Endianness, LSB/MSB first). -
Опыт работы с бинарными протоколами (CRSF, SBUS, DroneCAN, кастомные фреймы).
Инструментарий
-
GCC ARM Toolchain, CMake, Git.
- Навыки работы с логическими анализаторами (Saleae Logic и аналоги): захват и декодирование протоколов на шине — UART, SPI, I2C, CAN, CRSF, SBUS и других.
Желательные требования:
-
ROS2 (Humble/Iron) — базовое понимание архитектуры, DDS, отличий от ROS1.
-
PlotJuggler — построение и анализ временны́х рядов телеметрии; создание custom
плагинов или скриптов трансформации данных будет существенным преимуществом. -
DroneCAN/UAVCAN v1 — работа с libcanard v1, расчёт DSDL-сигнатур,
генерация кода через nunavut. -
Опыт тестирования firmware в эмуляторах (QEMU) в контуре CI/CD (GitLab CI).
-
Опыт работы с осциллографом для анализа аналоговых сигналов и временны́х диаграмм.
- Прототипирование устройств и быстрая проверка гипотез на базе Arduino.
Мы предлагаем:
- Официальное трудоустройство по ТКРФ;
- "Белую" зп до 250.000 руб. включительно (после вычета налогов) И ВЫШЕ;
- Гибридный, либо офисный формат работы;
- Технику для работы;
- Интересные проекты на переднем крае развития БЛА;
- Креативный и дружный коллектив профессионалов.
Оставляйте отклик и пишите сразу в телеграм!
Похожие вакансии
Высшее образование (профильное техническое). Знание и применение нормативной документации (СНиП, СП, ГОСТ, ЕСКД, СПДС). Умение работать в программах: Excel, AutoCAD...
Опыт построения тестовой модели/тест кейсов на основе аналитики и архитектуры приложения. Знание жизненного цикла программного обеспечения и теории тестирования.
Опыт сопровождения программного обеспечения (предпочтительно написанного на Java/C++). Уверенные знания LINUX. Опыт администрирования операционных систем семейства Linux/Unix (предпочтительно...
Высшее образование. Опыт работы с CAD и CAM-системами (Siemens NX будет приемуществом). Знание языка УП «G-кодов».
Высшее инженерно-техническое, строительное, архитектурное образование. Владение программами Revit, Архикад, Носорог, 3DS Max. Уверенный пользователь Word, Excel, Outlook.
