Position Description
We are seeking individuals with experience and a passion for real-time, embedded software development to fill openings as Software Engineers. The Software Engineer II will perform diverse tasks, including software requirements analysis, design, coding, unit testing, documentation, hardware-software integration, troubleshooting, and verification testing.
Key Responsibilities
- Develop, maintain, upgrade, and port embedded product software and/or support software to enhance project/system functionality.
- Collaborate closely within the software project team and across engineering disciplines such as Mechanical, Electrical, Controls, and Systems Engineering.
- Ensure technical approaches align with established engineering principles and practices.
Required Skills
- Proficiency in object-oriented design, C++ coding, and unit testing for embedded software.
- Experience with version control and issue tracking tools.
Preferred Skills
- Experience integrating or testing software on bare metal or with real-time operating systems (RTOS) such as vxWorks and Linux/Unix derivatives.
- Familiarity with software modeling tools like Enterprise Architect or MagicDraw (Cameo) – experience can be from professional roles or university projects.
Required Experience
- Minimum of 2 years in real-time embedded software development or software testing.
Preferred Experience
- Experience in developing and troubleshooting communication protocols, device drivers, I/O functions, etc.
- Familiarity with NI TestStand.
- Knowledge of weapon systems, munitions, or combat vehicle functionality.
- Experience using GitLab or other CI/CD tools.
Required Education
- Bachelor’s degree in a STEM field.
Preferred Education
- Bachelor’s degree in Computer Engineering, Software Engineering, Electrical Engineering, or Computer Science.
EOE (Veteran/Disability)