Strong proficiency in modern C++ with hands-on experience using C++17 or later
Minimum of 5 years of professional experience in embedded firmware development, focusing on low-level microcontroller and driver development rather than application-level software.
Extensive experience developing firmware for microcontrollers, including driver-level work on interfaces such as UART, USB, SPI, and I2C.
Real-time operating system (RTOS) experience
Experience working with USB, including extending or integrating USB stacks and handling USB-based communication protocols.
Experience with Embedded Template Library (ETL) and ETL-based state machines.
Experience developing on ARM Cortex-M class microcontrollers, specifically Cortex-M4F, and working with STM32G4-series devices.
Ability to implement and maintain Device Abstraction Layer drivers for peripherals such as SPI, I2C, USB, UART, GPIO, timers, and DMA.
Demonstrated ability to meet hard real-time deadlines and design firmware that satisfies strict timing and resource constraints.
Experience with memory, timing, and power optimization in embedded systems, including use of static analysis, profiling, and on-target measurement tools.
Ability to implement error handling and fault recovery strategies that adhere to a no-exceptions and no-heap-after-initialization policy.
Good understanding of security concepts and secure firmware development
Bachelor's degree in Engineering or a related field.