Master’s degree or foreign equivalent in Computer Engineering, Electrical Engineering, or related field.
Education and/or experience must include each of the following skills:
Utilize C and Advanced Risc Machines (ARM) Assembly language (32 bit) for firmware development.
Use of Real-Time Operating System Kernel (RTOS) to develop software for safety-critical systems.
Expertise in developing code for interaction with devices such as buses, memory and device driver development.
Embedded Software Development with resource (such as limited memory) and performance constraints.
Set up and use debuggers such as GNU debugger to investigate complex problems.
Use of kernel level programming principles, including resource management, scheduling, dependability and safety along with their implications to multi-core platforms.
Utilize version control programs such as Git and Perforce.
Profiling of kernel commands for parameters such as memory bandwidth, utilization and other performance parameters.
Expertise in computer memory organization and memory management.
Usage of static and dynamic code analysis tools such as Valgrind to profile code to create portable and secure code which adheres to the required standard of coding.