Bachelor's or Master's degree in Computer Science, Electrical Engineering, or related field.
2+ years of professional experience in embedded software development.
Proficiency in C or C++ for embedded systems.
Experience developing and debugging software on embedded hardware.
Understanding of multi-threaded programming in resource-constrained environments.
Familiarity with version control and peer review workflows.
DOD Secret clearance preferred; US citizenship required.
Responsibilities
Develop and port embedded Linux applications and device drivers.
Configure and integrate the Linux kernel and bootloaders like U-Boot.
Maintain and evolve the Yocto-based Linux build system within a CI/CD pipeline.
Package and deploy software images for various embedded hardware platforms.
Create tailored Linux distributions for specific applications.
Collaborate with firmware, hardware, and systems teams for seamless integration.
Participate in design reviews and contribute to technical documentation.
Benefits
Opportunities for technical leadership and cross-disciplinary collaboration.
Involvement in the full software development lifecycle from concept to production.
Engagement with cutting-edge embedded systems and technologies.
Full Job Description
Embedded Software Engineer II with a strong background in embedded Linux development and the Yocto build system. This role is ideal for engineers with hands-on experience in embedded systems, including device drivers, kernel customization, bootloaders, and board bring-up, with a preference for experience with the Xilinx platform (experience with other platforms is also valued).
As a member of our software team, you will contribute to the full software development lifecycle, from product concept through production, participating in architecture design, implementation, testing, qualification, and in-orbit support. This role involves working closely with hardware, systems, and FPGA engineers, and provides opportunities for technical leadership and cross-disciplinary collaboration.
JOB DUTIES AND RESPONSIBILITIES
Develop and port embedded Linux applications, device drivers, and libraries.
Configure, customize, and integrate the Linux kernel and embedded bootloaders (e.g., U-Boot).
Maintain and evolve the Yocto-based Linux build system within a CI/CD pipeline.
Package and deploy software images for diverse embedded hardware platforms.
Create tailored Linux distributions for specific embedded applications.
Collaborate across disciplines (firmware, hardware, systems) to ensure seamless system integration and performance.
Participate in design reviews and contribute to customer-facing technical documentation and proposals.
JOB REQUIREMENTS AND MINIMUM QUALIFICATIONS
Bachelor's or Master's degree in Computer Science, Electrical Engineering, Computer Engineering, or related field.
2+ years of professional experience in embedded software development.
Proficiency in C or C++ for embedded systems.
Experience developing and debugging software on embedded hardware (e.g., power systems, motors, sensors).
Understanding of multi-threaded programming and resource-constrained environments.
Familiarity with version control, issue tracking, and peer review workflows.