Skills/Abilities
- Curiosity-driven approach to solving complex, customer-driven problems as part of a multi-disciplinary team.
- Demonstrate an ability to learn new programming languages and technologies quickly.
- Collaborate and communicate effectively and openly with multi-disciplinary program team members, program leadership, and non-technical personnel.
- A team player able to work in a fast-paced environment with the ability to balance multiple competing tasks and demands.
Education
Requires a bachelor's in Computer Science or other related field. Master's degree is preferred.
Experience
5-10 years experience in Software Engineering or related field.
Additional Job Description
Candidate must have experience in embedded software development with
RISC-V and Ultrascale+ (Arm) processors or other low power microcontrollers (e.g. PowerPC, TMS320),
Real-time operating systems (RTOSs), such as VxWorks, Integrity, embedded Linux, Zephyr and FreeRTOS,
C/C++ and assembly programming languages
Excellent development and troubleshooting skills on embedded targets
Excellent knowledge of OS coding techniques, interfaces, hardware subsystems and driver development
Development experience with device drivers, board support package, boot code and knowledge of embedded system busses and protocols (e.g. CAN, I2C, SPI, Serial, SpaceWire, 1553)
Expertise in development tools (e.g. GCC, LLVM), static analysis tools, dynamic analysis, and QEMU based development are preferred
Knowledge and experience with software configuration management tools, defect tracking tools, and peer review processes.