• Design and implement real-time applications on ARM processors interfacing with multiple sensors in C/ C++.
• Participate in the team's software processes, including requirements and design documentation, test-plan generation and execution, peer design and code reviews, process feedback and improvements
• Debug complicated issues as they arise during product development
• 5 + years of experience in developing C/ C++ multi-threaded applications, ideally for Embedded Linux targeting multiple ARM cores
• Experience in low level driver development in embedded systems
• Experience developing firmware for hardware on Embedded Linux
• Experience with one or more of the following: Microcontrollers, SoC, device drivers, hardware bringup, power management, performance optimization or hardware/software integration, RTOS
• Experience with the processor architecture
• Experience working with communication protocols like I2C, SPI, UART
• Knowledge of electronics principles, including reading schematics and using logic analyzers, oscilloscope, and other test equipment.
• Experience in performance tuning, debugging tools, tests and release management