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