End-to-end embedded firmware engineering — bare-metal startup code, linker scripts, memory-mapped I/O, interrupt handling and low-power modes, moving up to FreeRTOS. Written in C, modern C++ and Rust with hardware-level debugging (GDB/OpenOCD, JTAG/SWD) rather than hiding everything behind a vendor HAL.