Job Responsibilities
The Software Simulation and Test Environments Group at the organization designs and builds high-fidelity workstation-based and hardware-in-the-loop simulators for supporting the development and testing of the avionics systems. It is a part of the organization's Autonomous Systems Division that designs, builds, and pilots spacecraft to explore remote destinations in our solar system. Looking for an experienced and self-driven software engineer with a passion for writing simulation and ground support equipment software. As a software engineer in this group, you will design, build, and test software that simulates complex avionics hardware and physical environments.
Specific Responsibilities Include
- Working with the project lead, system engineers, and product users to generate software requirements and design for the simulation and ground support equipment software components
- Implementing software components in C/C++ and Python per the requirements and design
- Developing embedded real-time application programs utilizing Real-Time Operating Systems
- Testing software and verifying requirements and design by using well-established unit testing and functional testing methodologies
- Preparing and conducting requirements reviews, design reviews, code reviews, and test reviews throughout the software development cycle
Required Skills
- Bachelor's degree in Computer Science, Computer Engineering, or related field
- 3+ years of software engineering experience using C/C++ and Python
- In-depth knowledge of Object-Oriented Programming concepts
- Knowledge and hands-on programming experience in writing simulation software
- Experience with low-level software/hardware interfaces
- Experience with developing and debugging real-time embedded software systems
- Good understanding of concurrent programming, multithreading, and inter-process communication mechanisms
- Strong verbal and written communication, presentation, and interpersonal skills with ability to work in a team environment
- Experience with continuous integration and modern source configuration control
Desired Skills
- Background in dynamics simulation and integration methods
- System engineering experience in generating, tracking, and proving successful implementation of requirements
- Experience with driver development for real-time embedded applications
- Hands-on experience in developing embedded real-time application programs using the Green Hills Integrity RTOS and the associated software tool chain
- Experience with continuous integration and modern source configuration control