Выберите текущую позицию

Укажите роль и уровень — система покажет путь развития, навыки и gap-анализ.

Путь развития

Junior

0-2 года

Текущий

Ответственность: Написание firmware на C/C++. Работа с GPIO, UART, SPI, I2C. Отладка с помощью JTAG/SWD. Написание unit-тестов.

Ключевые навыки:

Bare Metal Programming Нужно
BLE и Wireless Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Review Нужно
CPU Profiling Нужно
Embedded Debugging Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GPIO, ADC, DAC Нужно
Latency Optimization Нужно
MQTT Protocol Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
SPI / I2C / UART Protocols Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Структуры данных Нужно
Управление памятью Нужно

Middle

2-5 лет

Следующий

Ответственность: Проектирование firmware архитектуры. Работа с RTOS (FreeRTOS). Оптимизация energy consumption. Драйверы устройств.

Ключевые навыки:

Bare Metal Programming Нужно
BLE и Wireless Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Review Нужно
CPU Profiling Нужно
Embedded Debugging Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GPIO, ADC, DAC Нужно
Latency Optimization Нужно
MQTT Protocol Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
SPI / I2C / UART Protocols Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Структуры данных Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Senior

5-8 лет

Ответственность: Архитектура embedded-систем. Bootloader. OTA обновления. Безопасность firmware. Проектирование протоколов связи.

Ключевые навыки:

Bare Metal Programming Нужно
BLE и Wireless Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Review Нужно
CPU Profiling Нужно
Embedded Debugging Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GPIO, ADC, DAC Нужно
Latency Optimization Нужно
MQTT Protocol Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
SPI / I2C / UART Protocols Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Структуры данных Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Lead / Staff

7-12 лет

Ответственность: Embedded platform. Стандарты разработки. Hardware-software co-design. Координация с hardware командой.

Ключевые навыки:

Bare Metal Programming Нужно
BLE и Wireless Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Review Нужно
CPU Profiling Нужно
Embedded Debugging Нужно
Git Advanced Нужно
GPIO, ADC, DAC Нужно
Latency Optimization Нужно
MQTT Protocol Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
SPI / I2C / UART Protocols Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Структуры данных Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Principal

10+ лет

Ответственность: Embedded strategy. IoT platform architecture. Security certification. Standards compliance.

Ключевые навыки:

Bare Metal Programming Нужно
BLE и Wireless Нужно
C для Embedded Нужно
C++ для Embedded Нужно
Code Review Нужно
CPU Profiling Нужно
Embedded Debugging Нужно
Git Advanced Нужно
GPIO, ADC, DAC Нужно
Latency Optimization Нужно
MQTT Protocol Нужно
Real-Time Systems Design Нужно
Resource Optimization FinOps Нужно
RTOS Fundamentals Нужно
SPI / I2C / UART Protocols Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Качество кода и рефакторинг Нужно
Многопоточное программирование Нужно
Структуры данных Нужно
Управление памятью Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Gap-анализ: навыки для развития

Для перехода на следующий уровень необходимо развить:

Bare Metal Programming

Самостоятельно разрабатывает bare-metal firmware: настройка PLL, конфигурация периферии через регистры, реализация boot sequence на Cortex-M.

BLE и Wireless

Самостоятельно разрабатывает BLE-устройства: custom GATT services, bonding/pairing, connection parameter optimization. Анализирует пакеты через sniffer.

C для Embedded

Самостоятельно пишет драйверы периферии на C для STM32/nRF52. Использует volatile, битовые маски, прямой доступ к регистрам через CMSIS.

C++ для Embedded

Применяет C++17 для embedded: constexpr-вычисления, type-safe обёртки над регистрами, CRTP для HAL. Избегает dynamic allocation и exceptions.

Code Review

Проводит review embedded-кода: проверяет memory safety, interrupt correctness, peripheral configuration. Даёт аргументированную обратную связь.

CPU Profiling

Применяет продвинутое профилирование: Segger SystemView для task profiling, ETM trace для instruction-level analysis, hotspot detection.

Embedded Debugging

Применяет продвинутую отладку: ITM trace, SWO viewer, Segger RTT, watchpoint на memory access. Использует осциллограф для timing-анализа.

Git Advanced

Применяет Git workflow: feature branches, interactive rebase, cherry-pick для hotfix. Использует git submodules для HAL/SDK зависимостей.

GitHub Actions / GitLab CI

Проектирует CI/CD pipelines с нуля. Настраивает caching для ускорения builds. Использует matrix builds для тестирования на разных версиях. Настраивает deployment pipelines (staging → production). Работает с secrets и environment variables.

GPIO, ADC, DAC

Самостоятельно конфигурирует GPIO alternate functions, ADC с DMA multi-channel scan, DAC с timer trigger. Калибрует ADC для точных измерений.

Latency Optimization

Оптимизирует latency: приоритизация прерываний, размещение кода в RAM (ITCM), tail-chaining прерываний, cache configuration.

MQTT Protocol

Реализует MQTT-коммуникации: QoS 1/2, retained messages, last will, topic hierarchy design. Оптимизирует reconnect и keep-alive для нестабильных сетей.

Real-Time Systems Design

Проектирует soft real-time системы с предсказуемым поведением. Анализирует worst-case execution time, применяет Rate Monotonic Scheduling.

Resource Optimization FinOps

Оптимизирует ресурсы: code size через dead code elimination, RAM через static allocation, power через sleep modes и peripheral clock gating.

RTOS Fundamentals

Самостоятельно проектирует multi-task системы на FreeRTOS/Zephyr. Применяет mutex, event groups, software timers. Отлаживает race conditions через трассировку.

SPI / I2C / UART Protocols

Самостоятельно конфигурирует SPI/I2C/UART на уровне регистров. Реализует DMA-передачу, обрабатывает ошибки bus collision, настраивает baud rate.

Unit-тестирование

Пишет unit-тесты для embedded-модулей: mocking HAL через function pointers, тестирование state machines, protocol parsers. Достигает > 60% coverage.

Алгоритмы и сложность

Применяет алгоритмы для embedded: ring buffers, state machines, CRC-расчёты. Оценивает сложность с учётом тактов процессора и cache miss.

Асинхронное программирование

Применяет асинхронные паттерны: DMA completion callbacks, timer-driven state machines, event-driven архитектура с очередями сообщений.

Качество кода и рефакторинг

Применяет статический анализ (cppcheck, PC-lint), пишет doxygen-документацию. Проводит self-review, следует MISRA C guidelines.

Многопоточное программирование

Применяет продвинутую многозадачность: priority inheritance, event groups, task notifications в FreeRTOS. Отлаживает deadlock через трассировку.

Структуры данных

Применяет embedded-специфичные структуры: static pool allocators, circular buffers, fixed-size hash maps. Избегает heap fragmentation.

Управление памятью

Управляет памятью на embedded: custom allocators, memory pools, stack watermark monitoring. Избегает fragmentation, анализирует map-файл.