Strong knowledge of OOAD (Object-oriented Analysis and Design) and programming experience (i.e. C , C#, Java)
Ability to test, debug and integrate on embedded systems
Experience with real-time OS (RTOS)
Experience using Model Based Engineering (i.e. UML, SysML)
Experience with Agile and/or rapid prototyping software methodologies
Basic understanding of various software development tools including: Vivado, Command Line, XSDK, Visual Studio, MatLab, LabView
Understanding various software development lifecycles
Track record of achieving results given rapidly changing customer requirements.
Wide degree of creativity and attitude.
Experience with development tools (such as compilers, emulators/JTAG, debuggers, etc.)
Experience with embedded Linux. Drivers, kernel builds, etc.
Familiar with bootloader, Kernel and device driver development
Able to write drivers for MCU features such as DMA, RTC, IRQs, etc.
Knowledge in Bootloader and firmware update techniques
Knowledge in ARM-M and ARM-A architecture experience
Experience working on Linux services and the Linux kernel
Android framework experience.
Ability to develop and integrate kernel source and modify HAL to an existing Android deployment.