Обязанности:
Разработка встраиваемого ПО на C и C++ для микроконтроллеров (STM32, ESP32, AVR, PIC, Renesas, NXP)
Написание драйверов под периферию: UART, SPI, I2C, CAN, USB, ADC, PWM, Ethernet
Работа с RTOS (FreeRTOS, Zephyr, ThreadX) и bare-metal
Разработка и поддержка высокопроизводительных приложений на C++ (STL, Boost, многопоточность)
Кросс-компиляция и сборка под целевые платформы (ARM, x86, MIPS, RISC-V)
Отладка на железе: осциллограф, логический анализатор, JTAG/SWD, GDB
Оптимизация кода по скорости, памяти и энергопотреблению
Работа с технической документацией: datasheet, reference manual, схемы
Взаимодействие с аппаратчиками, схемотехниками и продакт-менеджерами
Участие в code review, написание юнит-тестов (Unity, Google Test, CppUTest)
Требования:
Образование: высшее техническое (радиотехника, электроника, программирование, мехатроника)
Опыт: коммерческой разработки на C/C++ от 3 лет, из них Embedded от 2 лет
Уверенное знание C (указатели, память, выравнивание, volatile, bitwise-операции)
Опыт работы с микроконтроллерами и периферией
Знание C++11/14/17 (RAII, smart pointers, шаблоны, move-семантика)
Опыт работы с RTOS и многопоточностью
Понимание архитектуры процессоров и работы с памятью
Английский: Intermediate+ (чтение datasheet и техдокументации)
Часто задаваемые вопросы:
Чем Embedded-разработка отличается от обычной C/C++ разработки?
Ответ: Embedded-разработчик работает с ограниченными ресурсами (память, частота, питание) и напрямую с железом. Он пишет драйверы, работает с регистрами и периферией, отлаживает на реальном устройстве. Обычный C++ разработчик чаще делает приложения для ПК или серверов, где ресурсы не так критичны.
Какие микроконтроллеры нужно знать Embedded-разработчику?
Ответ: Базовые — STM32 (ARM Cortex-M), ESP32 (Wi-Fi/Bluetooth), AVR (Arduino), PIC. В промышленности востребованы NXP, Renesas, Texas Instruments. Важно не знать все, а уметь читать datasheet и быстро осваивать новую платформу.
Что такое RTOS и зачем она нужна?
Ответ: RTOS (Real-Time Operating System) — операционная система реального времени для встраиваемых систем. Она позволяет запускать несколько задач с приоритетами и гарантирует отклик в заданное время. Примеры: FreeRTOS, Zephyr, ThreadX. Нужна там, где важна предсказуемость.
Что важнее для Embedded: C или C++?
Ответ: Зависит от проекта. Для микроконтроллеров с малым объёмом памяти чаще используют C. Для сложных систем (автопилоты, медицинские приборы, робототехника) — C++ с RAII и шаблонами. Хороший специалист владеет обоими.
Блок 4. Как мы подбираем C/C++/Embedded разработчика (How-to)
Уточняем проект: микроконтроллеры, Linux Embedded, IoT, автопром, робототехника или промышленная автоматизация.
Ищем кандидатов с опытом коммерческой разработки на C/C++ от 3 лет и Embedded от 2 лет.
Проверяем навыки работы с периферией, RTOS и отладки на реальном железе.
Оцениваем понимание архитектуры процессоров и умение читать datasheet.








