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."
FreeRTOS internals, IPC primitives, priority inversion, deadlock, DMA, LwIP Ethernet, SystemView profiling, and fault handlers. Builds on existing STM32 + Ethernet support experience.
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.
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.
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.