Понимает O-нотацию и базовые алгоритмы в контексте embedded: сортировка, поиск с учётом ограничений памяти MCU. Выбирает подходящие алгоритмы.
Роли · Embedded Developer · Junior
Что должен уметь Junior }
23 ключевых навыков, всего 57. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, DevOps и CI/CD, Тестирование и QA.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 6
Понимает асинхронную модель в embedded: прерывания, callback-и, event-driven архитектура. Реализует простые ISR-обработчики на STM32.
Следует coding standards: именование переменных, форматирование, комментирование в embedded C/C++. Использует clang-format для единообразия.
Понимает основы многопоточности для встраиваемых систем: создание и планирование задач RTOS, базовое использование семафоров и мьютексов для защиты ресурсов, прерывания и взаимодействие с потоками. Следует командным конвенциям паттернов конкурентного проектирования прошивки.
Знает базовые структуры данных для embedded: массивы, связные списки, очереди. Понимает ограничения динамической памяти на MCU.
Понимает модель памяти MCU: Flash, RAM, stack, heap. Знает linker script секции (.text, .data, .bss). Мониторит использование памяти.
DevOps и CI/CD · 1
Понимает концепции CI/CD для встраиваемой разработки: сборка, тестирование, деплой для прошивки. Использует существующие воркфлоу для кросс-компиляции и hardware-in-the-loop тестов. Может добавить шаг для валидации прошивки. Читает логи неудачных сборок для проблем тулчейна.
Тестирование и QA · 1
Понимает основы юнит-тестирования встраиваемого кода: основы фреймворков CUnit/Unity, мокирование уровня аппаратной абстракции, простые assertions значений регистров. Следует командным паттернам тестирования модулей прошивки на хосте перед прошивкой на целевое устройство.
Контроль версий и коллаборация · 2
Участвует в code review: проверяет форматирование, именование. Учится давать конструктивную обратную связь по embedded-коду.
Использует Git для embedded: commit, push, pull, базовое branching. Понимает .gitignore для build artifacts и IDE-файлов.
Embedded и IoT · 10
Понимает bare-metal разработку: startup-код, linker script, таблица векторов прерываний. Пишет простые программы без ОС на STM32.
Понимает основы BLE: advertising, connection, GATT profile. Использует nRF Connect для отладки. Реализует простой BLE peripheral на nRF52.
Знает основы C для встраиваемых систем: типы данных, указатели, работа с регистрами. Пишет простые драйверы под руководством наставника на STM32/ESP32.
Понимает основы управления памятью C++ для микроконтроллеров. Пишет простые драйверы и код доступа к периферии. Следует стандартам кодирования для встраиваемых safety-critical систем.
Использует базовые инструменты отладки: JTAG/SWD через ST-Link, breakpoints в IDE, printf-отладку через UART. Анализирует простые баги.
Понимает работу GPIO, ADC, DAC на MCU. Настраивает пины через HAL, считывает аналоговые значения. Использует мультиметр для проверки сигналов.
Понимает основы MQTT: publish/subscribe, topics, QoS levels. Подключает устройство к брокеру (Mosquitto) с простыми топиками.
Понимает разницу между hard/soft real-time. Знает основы планирования задач, deadline-ов и jitter. Измеряет latency с помощью осциллографа.
Понимает концепции RTOS: задачи, приоритеты, семафоры, очереди. Создаёт простые multi-task приложения на FreeRTOS под руководством наставника.
Понимает основы SPI, I2C, UART протоколов. Использует готовые HAL-драйверы для общения с периферией на STM32. Анализирует сигналы логическим анализатором.
Performance Engineering · 3
Использует базовое CPU профилирование: DWT cycle counter, GPIO toggle + осциллограф для измерения времени выполнения функций на MCU.
Понимает источники latency в embedded: interrupt latency, context switch, bus wait states. Измеряет response time осциллографом.
Понимает ресурсные ограничения MCU: Flash, RAM, CPU cycles, power. Оптимизирует размер бинарника через compiler flags (-Os, LTO).
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
57 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Качество кода и рефакторинг: Осведомлённость → Применение
- Многопоточное программирование: Осведомлённость → Применение
- Структуры данных: Осведомлённость → Применение
- Управление памятью: Осведомлённость → Применение
- Bare Metal Programming: Осведомлённость → Применение
- BLE и Wireless: Осведомлённость → Применение
- C для Embedded: Осведомлённость → Применение
- C++ для Embedded: Осведомлённость → Применение
} в открытой матрице компетенций: 57 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.