Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or a related technical discipline.
Significant hands-on experience developing low-level embedded software in C and C++.
Proven experience with bare-metal embedded development, including direct hardware interaction.
Experience developing and maintaining bootloaders, BSPs, device drivers, and processor initialization software.
Practical experience working with Real-Time Operating Systems (RTOS) in embedded applications.
Experience with multicore processors, embedded architectures, or ARM-based systems.
Strong understanding of hardware/software interactions, memory architectures, interrupts, and processor-level debugging techniques.
Experience performing software integration and troubleshooting in embedded environments.
Background in low-level embedded software development for avionics or other safety-critical systems.