// embedded systems self-training programme

From support engineer
to embedded software developer

A structured full-time curriculum built while job searching to bridge the gap between STM32 support and validation work and the architecture and design experience that embedded software development roles expect. Covers layered C, FreeRTOS internals, bare-metal bootloader design, and a full automotive communication stack — CAN-FD, ISO-TP, and UDS firmware update over CAN.

5 Phases
33 Weeks
~1,320 Hours total
4 Portfolio projects
// phases — click to open
PHASE 01
Foundations
6 weeks · 240 hrs · Mon–Sat

Layered C architecture, HAL design, state machines, memory management, and unit testing habits. Closes the gap between "C that works" and "C you'd show in a code review."

Modern C — Gustedt Embedded SW Design — Beningo C Pointers — Reese
PHASE 02
RTOS and real-time design
8 weeks · 320 hrs · Mon–Sat

FreeRTOS internals, IPC primitives, priority inversion, deadlock, DMA, LwIP Ethernet, SystemView profiling, and fault handlers. Builds on existing STM32 + Ethernet support experience.

Hands-On RTOS — Amos Embedded RT OS — K C Wang Making Embedded Systems — White
PHASE 03
Bootloader design
9 weeks · 360 hrs · Mon–Sat

Flash memory internals, linker scripts, jump mechanism, CRC-verified firmware headers, dual-bank A/B update, rollback on failure, anti-brick golden image, and a UART firmware update protocol with Python host flasher.

AN2557 — STM32 IAP memfault — Zero to main() Making Embedded Systems — White
PHASE 04
CAN bus and automotive protocols
9 weeks · 360 hrs · Mon–Sat

CAN 2.0B and CAN-FD on STM32, ISO-TP segmentation, and UDS diagnostic services for firmware update. Capstone: a CAN-based UDS firmware update node wired to the Phase 3 bootloader — the complete automotive flash stack.

Bosch CAN spec 2.0B Vector UDS intro AN5348 — STM32 FDCAN
PHASE 05
Professional readiness
5 weeks · 200 hrs · Mon–Sat

MISRA-C 2012 compliance, Ceedling+Unity test suites, GitHub Actions CI, portfolio documentation, and interview preparation covering embedded C, RTOS, bootloader design, and automotive protocol questions.

Art of Designing ES — Ganssle MISRA-C 2012 TDD for Embedded C — Grenning
// reference material
🔧
Hardware & Resources

Full hardware BOM with prices, recommended STM32 boards, tools, software links, and free reference materials.

// full timeline overview
Wk 1–6
Phase 1 — Foundations (240 hrs)
Modern C · Beningo architecture · layered UART driver · FSM framework · memory pool · unit tests with Unity · Capstone 1
Wk 7–14
Phase 2 — RTOS (320 hrs)
FreeRTOS internals · IPC · priority inversion/deadlock · DMA · LwIP Ethernet · SystemView · fault handlers · Capstone 2
Wk 15–23
Phase 3 — Bootloader design (360 hrs)
Flash internals · linker scripts · jump mechanism · dual-bank A/B · rollback · golden image · UART update protocol · Python flasher · Capstone 3
Wk 24–32
Phase 4 — CAN bus and automotive protocols (360 hrs)
CAN 2.0B · CAN-FD · bxCAN/FDCAN · filters · ISO-TP · UDS flashing services · python-udsoncan · Capstone 4: UDS firmware update over CAN
Wk 33–37
Phase 5 — Professional readiness (200 hrs)
MISRA-C · Ceedling CI · portfolio polish · interview prep · embedded C · RTOS · bootloader · automotive protocols