Данные из 45вакансий · 12 августа 2026

По этой профессии сейчас мало активных вакансий, поэтому рыночные цифры на странице ориентировочны. Путь входа, навыки и типовые ошибки от объёма выборки не зависят.

Как стать разработчиком встраиваемых систем: путь от нуля до первого оффера

Не «стань разработчиком за 3 месяца» — реальный путь входа на основе данных по 45 вакансий.

Мурадов ЮрийАвтор·Мурадов Юрий·Аналитик SkillStat
АВПроверено·Алексей Воронов·Технический редактор·технический редактор SkillStat по embedded, firmware и hardware-adjacent разработке · 12+ лет в embedded C/C++, STM32, ARM Cortex-M, FreeRTOS, Embedded Linux, bootloader, field diagnostics и отладке на платах
Junior-вакансий сейчас
2
4% от всех 45 вакансий
Сложность входа
Высокая
4% junior-вакансий
Senior / Junior+Intern
10x
На каждого junior+intern — 10 senior
Навыков / вакансия
5
медиана по вакансиям
Всего вакансий
45
активных в Москве

Можно ли стать разработчиком встраиваемых систем с нуля

Да. По данным SkillStat, 4% вакансий разработчика встраиваемых систем — уровня junior или стажёр. Это 2 вакансии прямо сейчас.

«С нуля» для разработчика встраиваемых систем — это без коммерческого опыта, но с платой на столе. К первому отклику нужны: C и C++ (26.7%), Linux (73.3%) — не «поставил дистрибутив», а терминал, кросс-сборка и работа с устройствами, умение читать datasheet, обмен по UART, SPI или I2C, отладка через JTAG или SWD и хотя бы одно устройство, которое ты сам довёл до работающего состояния. В вакансии в среднем 5 требований, и обманывает не длина списка, а его содержание: за строкой «C/C++, Linux» стоит железо, которое ведёт себя не так, как написано в книге.

Трудность в том, что программа перестаёт быть только программой. Код выглядит правильным, компилируется, проходит ревью — и не работает: датчик не успевает ответить за отведённое время, при включении передатчика проседает питание, прерывание пришло между двумя строчками. Такую ошибку не показывает отладчик, её показывает осциллограф. Плюс структура рынка: на одного junior приходится 10 senior-вакансии — устройство не откатишь деплоем, партию железа уже увезли к заказчику.

Как стать разработчиком встраиваемых систем: короткий план

Пять шагов от первой прошивки на живой плате до устройства, которое переживает сбой питания.

01
Плата в руках
Купи отладочную плату на STM32 (20%) или другом ARM (15.6%). Мигание светодиодом — не шутка: это первый пройденный путь «код → сборка → прошивка → железо».
02
Datasheet вместо урока
Техническое описание микроконтроллера, регистры, тактирование, карта памяти. Урок показывает готовый ответ; datasheet учит его находить — за это и платят.
03
Периферия и протоколы
UART, SPI, I2C, CAN — подключи датчик и заставь его отвечать. Дальше сеть: TCP/IP (8.9%) и HTTP (11.1%) для модулей связи и телеметрии.
04
Отладка на железе
JTAG или SWD, логический анализатор, осциллограф. Учишься отличать ошибку в коде от просадки питания, дребезга, шума на линии и разъехавшихся таймингов.
05
Живучесть
RTOS (8.9%) или свой цикл, сторожевой таймер, режим восстановления, обновление прошивки. Устройство должно вернуться в строй само — рядом с ним никого нет.

Что учить разработчику встраиваемых систем первым

Не всё сразу. Вот очерёдность по частотности в вакансиях — от самого нужного к менее срочному.

Полный список навыков с частотностью, связками и зарплатной премией — навыки разработчика встраиваемых систем →

Roadmap разработчика встраиваемых систем: от нуля до junior

Порядок опирается на частотность навыков по данным вакансий. Первые 4–5 этапов — минимум для первого оффера.

  1. 01
    C/C++ и системное программирование 26.7% вакансий

    Указатели, управление памятью, bare-metal программирование, основы RTOS.

    Подробнее →
  2. 02
    Платформы и микроконтроллеры 20% вакансий

    STM32, ESP32, Raspberry Pi, Linux Embedded — настройка периферии, HAL/BSP.

    Подробнее →
  3. 03
    Linux и скриптинг 73.3% вакансий

    Embedded Linux, кросс-компиляция, Bash/Python для автоматизации тестирования и сборки.

    Подробнее →
  4. 04
    Протоколы и интерфейсы

    UART, SPI, I2C, CAN, TCP/IP — конфигурация, отладка, анализаторы протоколов.

  5. 05
    CI/CD и тестирование 53.3% вакансий

    GitLab CI, unit-тесты на C++ (Google Test), статический анализ, сборка в Docker.

    Подробнее →

Junior-вакансии разработчика встраиваемых систем: что реально требуют работодатели

Срез построен на 45 активных вакансий.

Junior-вакансий
2
inc. стажировки
Доля junior
4%
от всего рынка
Senior / Junior+Intern
10x
соотношение
Навыков / вакансия
5
медиана
Распределение вакансий по грейдам
Junior — 5.7% (2)
Middle — 37.1% (13)
Senior — 57.1% (20)
Что значат эти цифры. 2 вакансии для junior из 45 — вход конкурентный. Embedded — маленький и медленный рынок: устройство разрабатывают годами, команда прошивки на проекте редко больше нескольких человек, а ошибка новичка уезжает в партию железа, которую не отзовёшь кнопкой. Отсюда и структура: берут неохотно и надолго. Зато на одну вакансию откликается заметно меньше людей, чем в вебе, — порог входа отсекает сам. И зайти сюда чаще получается сбоку: через тестирование устройств, стенды, производство или аппаратную команду.

Какие проекты сделать для портфолио

Портфолио embedded-разработчика — это не репозиторий, а устройство. Работодателю нужно увидеть, что код доехал до железа: плата, подключённая периферия, лог отладки и история ошибки, которую ты поймал не в отладчике, а на осциллографе. Веб-приложение или сервис с базой тут не считаются вообще — они не отвечают ни на один вопрос, который задаст этот работодатель.

Устройство с датчиком и передачей данных
Средняя · 2–3 недели
Стек: C++, STM32, I2C или SPI, UART
GitHub: Схема подключения, фото стенда, распиновка, README со сборкой и прошивкой, лог обмена, видео работы
Ценность: Доказывает главное: код доехал до железа и заработал, а не остался в симуляторе
Драйвер периферии по datasheet
Высокая · 2 недели
Стек: C/C++, регистры, тактирование
GitHub: Ссылка на техническое описание, разбор нужных регистров, осциллограмма или лог анализатора с работающим обменом
Ценность: Показывает, что умеешь читать техническое описание, а не подключать чужую библиотеку
Прошивка, которая переживает отказ
Высокая · 2–3 недели
Стек: RTOS, сторожевой таймер, C++
GitHub: Сценарии отказа: сбой питания в момент записи, потеря связи, зависшая задача. Что делает устройство в каждом случае
Ценность: RTOS — в 8.9% вакансий. Показывает, что думаешь про отказ, а не только про счастливый путь
Стенд автотестов на Python
Средняя · 1 неделя
Стек: Python, Linux, Git, Bash
GitHub: Скрипт прогона, разбор логов устройства, отчёт по итогам, запуск в CI
Ценность: Python — в 28.9% вакансий, Linux — в 73.3%. Показывает верное понимание роли Python в embedded: стенды и логи, а не прошивка

Как оформить GitHub и резюме

Профиль GitHub
  • GitHub тут не единственная витрина: репозиторий с прошивкой, а рядом — фото стенда, схема подключения и видео работающего устройства
  • В README: плата и микроконтроллер, распиновка, чем собрать прошивку и чем прошить. Без этого код невоспроизводим в принципе
  • Логи и осциллограммы прямо в репозитории — по ним видно, что ты отлаживал железо, а не только писал код
  • Скрипты стенда на Python (28.9%) и Bash (8.9%): показывают, что умеешь проверять устройство автоматически, а не тыкать кнопку руками
  • Если проект закрытый — опиши словами: что за устройство, какая была проблема, чем поймал, что изменил. В embedded это нормальная практика, и её понимают
Резюме без коммерческого опыта
  • Раздел «Проекты» вместо «Опыт работы»: устройство, микроконтроллер, периферия, что в итоге заработало
  • Называй железо конкретно: плата, микроконтроллер, датчики, интерфейсы, протоколы. Embedded нанимают под платформу, а не «вообще на C++»
  • Опиши хотя бы одну найденную ошибку железа: что наблюдал, какая была гипотеза, чем проверил, что оказалось на самом деле. Это самая читаемая строчка твоего резюме
  • Навыки — только те, что трогал руками: Linux, Git
  • Профильное образование или опыт с приборами выноси наверх: в embedded это читают внимательнее, чем в вебе
Слабое резюме

«Знаю C и C++, изучал микроконтроллеры, читал про RTOS, собирал схемы по урокам»

Сильное резюме

«Собрал устройство на STM32: опрос датчика по I2C, передача на хост по UART, разбор ошибок связи и повторная отправка. Поймал сбой, который повторялся примерно раз в час: при включении передатчика проседало питание и шина зависала — нашёл осциллографом, вылечил развязкой и повторной инициализацией. Добавил сторожевой таймер и режим восстановления. Прошивка, схема подключения, фото стенда, логи и видео: [ссылка]»

Самостоятельно, курсы или вуз — какой путь выбрать

Самостоятельно
Отладочная плата дешевле любого курса, а обратную связь даёт само устройство: работает или нет, спорить не с кем
Без отладчика и анализатора часть ошибок просто не видна — придётся докупать железо или искать доступ. И спросить, почему сигнал странный, будет не у кого
Если есть техническая база и терпение: тут одна ошибка разбирается неделю, а не вечер
Курсы с ментором
Редкий случай, когда курс окупается: в комплекте бывает железо, а ментор смотрит не только код, но и схему подключения
Дорого, программ мало, и часть заканчивается там же, где начинается работа — на мигании светодиодом
Если нужна структура и доступ к железу. Перед оплатой спроси, есть ли отладка на плате и работа с datasheet
Вуз / колледж
Самая «вузовская» из разработки: радиотехника, приборостроение и автоматика дают физику, схемотехнику и вход в отрасль, куда иначе не попасть
4 года, а софтовая часть в программах часто отстаёт от того, что реально стоит в вакансиях
Если целишься в приборостроение, телеком-железо, медтехнику или предприятия с закрытым контуром
Ловушка embedded: учиться на симуляторе и по урокам. В симуляторе не бывает просадки питания, дребезга контактов, шума на линии и таймингов, которые сходятся только на реальном кварце. Урок всегда заканчивается работающим примером — и создаёт ощущение, что так и бывает. Пока твой код не отправлен на живую плату и не сломался там по причине, которой в уроке нет и быть не может, обучение ещё не началось.

Что спрашивают на собеседовании

Железо и периферия
Типовые вопросы
  • ·UART, SPI, I2C: чем отличаются и что выбрать под задачу
  • ·Датчик не отвечает — твои действия по шагам
  • ·Прерывание: что можно делать внутри обработчика, а что нельзя
  • ·Как тактируется твой микроконтроллер и что будет, если ошибиться
Как показать проектом

Покажи драйвер, который писал по datasheet: какие регистры и почему

Память и ограничения
Типовые вопросы
  • ·Стек и куча на микроконтроллере: почему динамическое выделение опасно
  • ·Как узнать, сколько памяти реально осталось
  • ·volatile: зачем и когда обязателен
  • ·Что произойдёт при переполнении стека и как это заметить
Как показать проектом

Покажи, где в прошивке ты считал память и как убедился, что её хватает

Отладка на плате
Типовые вопросы
  • ·Как искать ошибку, когда отладчик подключить некуда
  • ·JTAG и SWD: что дают и чем отличаются
  • ·Как отличить программный сбой от проблемы с питанием
  • ·Что покажет логический анализатор, чего не покажет лог
Как показать проектом

Расскажи про ошибку, которую поймал осциллографом: гипотеза, проверка, вывод

RTOS и живучесть
Типовые вопросы
  • ·Зачем RTOS, если есть цикл с опросом
  • ·Задачи, приоритеты, инверсия приоритетов
  • ·Сторожевой таймер: зачем и как его правильно кормить
  • ·Сбой питания в момент записи — что станет с устройством
Как показать проектом

Покажи режим восстановления в своей прошивке и объясни, что его запускает

Linux и инструменты
Типовые вопросы
  • ·Embedded Linux и микроконтроллер: когда что выбирают
  • ·Кросс-сборка: как собрать под ARM на своей машине
  • ·Зачем Python в embedded и где проходит граница
  • ·Git и версии прошивки: как понять, что залито в устройство на столе
Как показать проектом

Скрипт стенда: как ты проверяешь прошивку автоматически

Сколько времени нужно, чтобы стать разработчиком встраиваемых систем

Минимум
9–12 мес
С профильной базой (радиотехника, автоматика) или опытом на C++: остаётся периферия и отладка на плате
Медиана
18–24 мес
Самостоятельно с нуля: тут два предмета вместо одного — язык и железо, и второй набирается только руками
Реалистично
24–36 мес
При совмещении с работой и без доступа к отладчику и анализатору на старте

Почему embedded дольше остальной разработки. Тут два предмета вместо одного. Язык можно закрыть за год, но чтение datasheet, тайминги, питание, прерывания и отладка на плате набираются только через устройства, которые ты сам заставил работать. Каждое такое устройство — это недели, а не вечера, и пропустить их нечем: симулятор не воспроизводит физику.

Скорость решают три вещи: есть ли профильная база (радиотехника, приборостроение, автоматика), есть ли доступ к железу — плата, отладчик, логический анализатор, нормальное питание, — и сколько раз ты уже находил ошибку, которой в коде нет.

Ошибки новичков

Учат C и C++ без платы

Почему мешает: Симулятор не воспроизводит просадку питания, дребезг, шум на линии и тайминги. Человек год учит язык и на первой же плате обнаруживает, что не умеет ничего из нужного

Как исправить: Плата на столе с первой недели. Она дешевле курса, а мигание светодиодом — это первый пройденный путь от кода до железа

Отлаживают выводом в лог вместо отладчика

Почему мешает: Вывод меняет тайминги и прячет ровно ту ошибку, которую ищешь. А на боевой плате часто и выводить некуда: свободного интерфейса нет

Как исправить: JTAG или SWD, логический анализатор, осциллограф. Сначала посмотри, что на линии физически, потом ищи ошибку в коде

Забывают про питание

Почему мешает: Заметная часть «программных» сбоев — это просадка при включении нагрузки, помеха или плохая земля. Код при этом переписывают неделями и ничего не находят

Как исправить: Правило простое: сбой невоспроизводим и «плавает» — сначала смотри питание и землю осциллографом, потом всё остальное

Пишут так, будто памяти много

Почему мешает: Привычка из большого софта: динамическое выделение везде, буферы с запасом. На микроконтроллере это фрагментация кучи и переполнение стека, которое проявится у заказчика через месяц

Как исправить: Считай память заранее, обходись статическим выделением, проверяй остаток стека. На плате нет того, кто добавит памяти

Считают Python заменой C

Почему мешает: Python стоит в 28.9% вакансий разработчика встраиваемых систем, и это сбивает с толку. Но он там для стендов, автотестов, генерации данных и разбора логов, а прошивку пишут на C и C++ (26.7%)

Как исправить: Python учи как инструмент вокруг устройства. Ядро профессии — язык, регистры, периферия, память и отладка на плате

Игнорируют Linux

Почему мешает: Linux — самый частый навык профессии: 73.3% вакансий. Он тут и рабочая среда с кросс-сборкой, и целевая система на устройствах помощнее микроконтроллера

Как исправить: Терминал, сборка, права, работа с устройствами, Bash (8.9%). Дальше — кросс-сборка под ARM (15.6%)

Читают уроки вместо технического описания

Почему мешает: Урок даёт готовый ответ для одной платы. На работе платы другие, а вопрос всегда один: что написано в datasheet про этот регистр и этот тайминг

Как исправить: Возьми любой датчик и подключи его только по техническому описанию, без чужой библиотеки. Один раз больно, дальше — навык на всю карьеру

Рассчитывают на удалёнку

Почему мешает: Плата, отладчик, анализатор и осциллограф лежат на столе, а стенд и заказчик — в лаборатории. Часть работодателей ещё и с закрытым контуром, куда удалённо не пускают

Как исправить: Считай офис нормой на входе. Доли форматов работы и вилки — на странице зарплат разработчика встраиваемых систем

Как SkillStat считает данные

Источник: 45 вакансий в московском сегменте. Навыки и грейды извлекаются автоматически из текста каждой вакансии.

Грейды: определяются по требованиям вакансии — уровню опыта, упоминанию «junior», «intern», «стажёр». Это рыночная оценка объявления.

Сложность входа: рассчитывается по доле junior-вакансий и медиане навыков на junior-уровне. Это индикатор, а не гарантия.

Обновление: данные пересчитываются регулярно. Текущий срез — 12 августа 2026.

Частые вопросы

Можно ли стать разработчиком встраиваемых систем с нуля?
Можно, но это самый долгий вход в разработке, и входных позиций мало: junior и стажёров среди вакансий разработчика встраиваемых систем — 2 из 45, по данным SkillStat. Причина в том, что учить приходится два предмета сразу: язык и железо. Зато и конкуренция за место ниже — большинство отсеивается на том, что нужно купить плату и разобраться с datasheet.
Нужно ли уметь паять и знать электронику?
Паять на уровне «подключить датчик и не спалить плату» — да, этому учатся за выходные. Разводить платы не нужно, этим занимается аппаратный инженер. А вот читать схему и datasheet придётся постоянно: «знание схемотехники» в вакансии обычно значит именно это. Понимать, что такое подтяжка, развязка и просадка питания, нужно — иначе половина ошибок будет выглядеть как мистика.
С какой платы начать?
С отладочной платы на STM32 (20%) или другом ARM (15.6%) — это то, что стоит в вакансиях, и вокруг них больше всего материалов. Плюс сразу возьми простой отладчик: без него ты будешь угадывать вместо того, чтобы смотреть. Дальше — датчик по I2C, модуль связи по UART и что-нибудь по SPI.
Нужен ли Linux embedded-разработчику?
Да, и это самый частый навык профессии: Linux — в 73.3% вакансий (33 из 45). Он тут в двух ролях сразу: рабочая среда, где ты собираешь прошивку кросс-компилятором, и целевая система на устройствах помощнее микроконтроллера — шлюзах, контроллерах, панелях. Минимум: терминал, сборка, права, устройства, Bash (8.9%).
Зачем embedded-разработчику Python?
Python стоит в 28.9% вакансий разработчика встраиваемых систем — второй по частоте после Linux и Git. Но прошивки на нём не пишут: он для стендов, автотестов, генерации тестовых данных, разбора логов и обвязки вокруг устройства. Если увидел Python в вакансии embedded — это про проверку устройства, а не про его код.
C или C++?
Оба, и граница проходит по платформе: C++ стоит в 26.7% вакансий, C/C++ — в части. На маленьких микроконтроллерах чаще чистый C и работа с регистрами; на устройствах помощнее и в embedded Linux — C++. Учить стоит C сначала: он ближе к железу и в нём негде спрятаться. C++ добавляется поверх.
Нужна ли RTOS?
Не на старте: RTOS стоит в 8.9% вакансий разработчика встраиваемых систем. Сначала научись писать управляющий цикл с опросом и прерываниями — половина устройств так и живёт. RTOS появляется, когда задач становится много и у них разные сроки. Спрашивать будут не про конкретную систему, а про задачи, приоритеты, инверсию приоритетов и что делать в обработчике прерывания.
Нужен ли Rust в embedded?
Пока нет: Rust стоит в части вакансий разработчика встраиваемых систем — это единичные позиции. Язык интересный и в отрасли про него много говорят, но вход в профессию через него не строят: работу дают C и C++ (26.7%). Как второй язык из любопытства — почему нет; как первый — потеряешь год.
Нужны ли сети и TCP/IP?
Всё чаще: TCP/IP стоит в 8.9% вакансий разработчика встраиваемых систем, HTTP — в 11.1%. Устройства перестали быть автономными — они отдают телеметрию, получают обновления, ходят на сервер. Глубоко в сети погружаться не нужно, но понимать, что происходит при обрыве связи и как устройство переживает потерю пакета, придётся.
Чем embedded-разработчик отличается от C++-разработчика?
Язык общий, а работа разная. C++-разработчик пишет для сервера или большой системы: производительность, сеть, данные, многопоточность. Embedded пишет для конкретного устройства: регистры, периферия, ограниченная память, тайминги, отладка на плате. Разница видна по ошибкам: там ловят утечку и гонку, тут — просадку питания и прерывание, пришедшее не вовремя.
Почему в embedded так мало junior-вакансий?
Рынок маленький и медленный: 45 вакансий всего, из них для junior — 2. Устройство разрабатывают годами, команда прошивки на проекте редко больше нескольких человек, а ошибка уезжает в партию железа, которую не откатишь кнопкой. Поэтому берут неохотно и надолго. Практический вывод: заходи сбоку — через тестирование устройств, стенды или производство.
Можно ли работать удалённо?
Реже, чем в вебе, и причина физическая: плата, отладчик, анализатор и осциллограф лежат на столе, а стенд стоит в лаборатории. Часть работодателей — предприятия с закрытым контуром, куда удалённо не пускают в принципе. Удалёнка появляется на старших грейдах и в задачах вокруг устройства. Точные доли форматов — на странице зарплат разработчика встраиваемых систем.
Обязательно ли профильное высшее образование?
Формально не везде, но здесь оно весит больше, чем в любой другой части разработки. Радиотехника, приборостроение, автоматика дают физику и схемотехнику, которые иначе набирать негде, а часть работодателей — предприятия с формальными требованиями. Без диплома заходят через устройства в портфолио и через смежные роли: тестирование, стенды, производство.
Какие проекты сделать для портфолио?
Устройства, а не программы. Минимум три: работающее устройство с датчиком и передачей данных, драйвер периферии, написанный по datasheet без чужой библиотеки, и прошивка со сторожевым таймером и режимом восстановления. Плюс стенд автотестов на Python (28.9%). Используй ключевые навыки профессии: Linux, Git, Python. Веб-проект в этом портфолио не значит ничего.
Что писать в резюме без коммерческого опыта?
Устройства как опыт: какая плата, какой микроконтроллер, какая периферия, что заработало. Обязательно — одна найденная ошибка железа: что наблюдал, гипотеза, чем проверил, что оказалось. Это самая читаемая строчка. Инструменты — только те, что трогал руками: Linux, Git. Профильное образование выноси наверх.
Что спрашивают на собеседовании?
Периферия и протоколы (UART, SPI, I2C), прерывания и что в них можно делать, память и почему опасна куча, отладка на плате, RTOS и живучесть, Linux и кросс-сборка. Почти всегда есть вопрос-сценарий: датчик не отвечает — что делаешь по шагам. Подробнее — в разделе «Собеседование» на этой странице.
Сколько зарабатывает начинающий Embedded-разработчик?
Ориентир для junior — 103 500–149 500 ₽ при медиане по профессии 230 000 ₽. Разбивка по грейдам, форматам работы и премии за навыки — на странице зарплат разработчика встраиваемых систем.
Где посмотреть навыки разработчика встраиваемых систем?
На странице навыков разработчика встраиваемых систем — частотность по 45 вакансий, разбивка по грейдам и связки инструментов. Порядок изучения виден там же: Linux → Git → Python → C++.