Domain
Embedded & IoT
Skill Profile
C for embedded: volatile, bitwise, memory-mapped I/O, MISRA, HAL
Roles
3
where this skill appears
Levels
5
structured growth path
Mandatory requirements
11
the other 4 optional
Embedded & IoT
Embedded Programming
3/17/2026
Choose your current level and compare expectations. The items below show what to cover to advance to the next level.
The table shows how skill depth grows from Junior to Principal. Click a row to see details.
| Role | Required | Description |
|---|---|---|
| Embedded Developer | Required | Knows C basics for embedded systems: data types, pointers, register operations. Writes simple drivers under mentor guidance on STM32/ESP32. |
| IoT Engineer | Writes simple C programs for ESP32/STM32 microcontrollers. Understands register operations, pointers, and basic memory management in embedded context. | |
| Systems Programmer (C/C++) | Understands the fundamentals of C for Embedded. Applies basic practices in daily work. Follows recommendations from the team and documentation. |
| Role | Required | Description |
|---|---|---|
| Embedded Developer | Required | Independently writes peripheral drivers in C for STM32/nRF52. Uses volatile, bitmasks, direct register access through CMSIS. |
| IoT Engineer | Develops peripheral drivers and interrupt handlers in C for IoT devices. Uses DMA, timers, and watchdog. Optimizes RAM usage down to 64 KB. | |
| Systems Programmer (C/C++) | Independently applies C for Embedded in practice. Understands trade-offs of different approaches. Solves typical tasks independently. |
| Role | Required | Description |
|---|---|---|
| Embedded Developer | Required | Designs HAL layer in C for MCU families. Optimizes code for Flash/RAM constraints, applies DMA and interrupts for high-performance tasks. |
| IoT Engineer | Required | Designs embedded firmware architecture in C for IoT gateways and edge devices. Implements OTA updates, secure boot, and fault-tolerant mechanisms. Optimizes power consumption for battery-powered devices. |
| Systems Programmer (C/C++) | Required | Has deep expertise in C for Embedded. Designs solutions for production systems. Optimizes and scales. Mentors the team. |
| Role | Required | Description |
|---|---|---|
| Embedded Developer | Required | Defines C coding standards for the embedded team. Introduces static analysis (PC-lint, Polyspace), establishes platform porting strategy. |
| IoT Engineer | Required | Defines embedded C development standards for an IoT team of 10+ engineers. Establishes coding guidelines, HAL abstractions, and reusable libraries for the device lineup. |
| Systems Programmer (C/C++) | Required | Defines C for Embedded strategy at team/product level. Establishes standards and best practices. Conducts reviews. |
| Role | Required | Description |
|---|---|---|
| Embedded Developer | Required | Shapes C language strategy for the embedded platform: coding standards (MISRA C compliance level), toolchain selection, compiler optimization strategy. Evaluates C vs Rust adoption trade-offs. |
| IoT Engineer | Required | Defines embedded C development strategy at organizational level. Builds platform SDK for IoT product family. Evaluates new MCU architectures (RISC-V) for product roadmap. |
| Systems Programmer (C/C++) | Required | Defines C for Embedded strategy at organizational level. Establishes enterprise approaches. Mentors leads and architects. |