Разрабатываем системное и низкоуровневое ПО для наземных роботов и стационарных объектов: навигация, связь, управление исполнительными подсистемами, телеметрия, диагностика, контроль АКБ, коммуникации.
Работа «по-взрослому»: real-time, сеть, надежность, отладка на железе, понятные интерфейсы и документация. Большой плюс — сочетание embedded-разработки с алгоритмами навигации/управления.
Обязанности:
- Разработка встроенного ПО под MCU (в т.ч. STM32/ARM и RISC-V) для роботов и стационарных контроллеров.
- Проектирование архитектуры модулей: драйверы, сервисы, коммуникации, диагностика, обновление, логирование.
- Интеграция и поддержка RTOS (FreeRTOS): задачи, очереди, таймеры, синхронизация, работа с ISR.
- Реализация протоколов обмена и сетевого взаимодействия: CAN/Ethernet, маршрутизация данных, очередность, статусы/подтверждения.
- Драйверная разработка: UART/SPI/I2C/CAN, ADC/DMA, таймеры/PWM, GPIO, watchdog, EEPROM/Flash.
- Надежный сбор телеметрии и диагностики: события, метрики, коды ошибок, журналирование, “черный ящик”.
- Поддержка подсистем питания/АКБ: измерения, пороги, алгоритмы защиты, состояния, деградации, аварийные сценарии.
- Реализация загрузчика и безопасного обновления прошивки: проверка целостности, откат, версионирование, протокол апдейта.
- Оптимизация по памяти/скорости/энергии: профилирование, анализ узких мест, предсказуемость таймингов.
- Реализация базовых DSP-цепочек: фильтрация, детекторы, оценка сигналов (в рамках задач датчиков/телеметрии).
- Системная отладка на железе: JTAG/SWD, чтение ассемблера, анализ падений, гонок, редких зависаний.
- Написание и поддержка документации: API, протоколы, состояния, требования, схемы взаимодействия, инструкции для интеграции/производства.
- Поддержка стендов и тестов: HIL/bench-тесты, симуляторы обмена, регрессионные проверки ключевых функций.
- Участие в интеграции робототехнических подсистем: навигация/управление/связь (как развитие роли и зона роста).
Требования: - Отличное знание C (embedded).
- Понимание ассемблера на уровне чтения/отладки для STM32/ARM.
- Знание архитектуры RISC-V (база + ключевые особенности).
- Понимание цифровой схемотехники на уровне разработчика ПО (тайминги, уровни, подтяжки, причины ошибок).
- Интерфейсы и протоколы: UART/SPI/I2C/CAN/Ethernet (+ понимание сетевого взаимодействия).
- FreeRTOS: задачи, очереди, синхронизация, ISR, гонки, тайминги, профилирование.
- Оптимизация кода (память/скорость/энергия), соблюдение требований надежности и предсказуемости.
- Опыт написания загрузчиков/обновления прошивки (bootloader, безопасный апдейт, откат/проверка).
- DSP: цифровые фильтры и базовые алгоритмы обработки сигналов.
- Умение оформлять документацию на ПО (модули, протоколы, API, требования).
- Должен уметь разработать простую плату или уверенно читать/обсуждать схемы (МК + питание + базовые интерфейсы).
- Уверенное понимание модели памяти/прерываний/периферии MCU, работы DMA и таймеров.
- Опыт работы с сетевыми стеками/концепциями: сокеты/пакеты, очереди, таймауты, подтверждения, повторные передачи (на уровне embedded-систем).
- Умение проектировать состояния и протоколы: state machine, версии, совместимость, обработка ошибок и деградаций.
- Владение инструментами отладки: GDB/LLDB, JTAG/SWD, анализ дампов/stack traces, логирование и трассировка.
- Понимание требований к надежности: watchdog, brownout, безопасные режимы, защита от “плохих” данных, контроль времени выполнения.
- Опыт работы с Git и инженерной дисциплиной: код-ревью, релизы, ведение изменений, воспроизводимые сборки.
Условия: - Конкурентоспособный уровень заработной платы, обсуждается на собеседовании и зависит от вашего опыта и компетенций.
- График работы: пн. - пт. с 9 до 18 (возможны варианты с 8 до 17 и с 10 до 19).
- Режим работы: офис
- Трудоустройство согласно ТК РФ.
- Испытательный срок 3 мес.
- Офис в р-не ст. м. Румянцево (БЦ Румянцево).
- Креативная и дружелюбная среда, поддержка инициатив и отсутствие бюрократии.