Description:
As an Embedded Software Engineer, you will play a crucial role in designing, developing, and optimizing embedded software for our avionics systems and satellite platforms. You will collaborate with a dynamic team to develop, integrate, and test portable software modules for on-board data handling and advanced processing as part of our flight software. This role is instrumental in ensuring code reusability for future missions.
Responsibilities
- Design and develop software for avionic systems.
- Work throughout the entire software development lifecycle, from requirements definition to testing and result reporting.
- Configure and tailor Real-time Operating Systems (RTOS) on on-board computers.
- Participate in the integration and testing of flight software on avionics systems and satellites.
- Identify and support a core set of tools for performance analysis.
- Design and develop tools such as scripts, simulators, and digital twins to assist in providing high-quality flight software.
- Collaborate with other engineering teams to define system architecture and integrate software with specific hardware components and constraints.
- Support the path-to-production for developed software solutions.
- Maintain software solutions deployed to orbit, supporting flight operations throughout the satellites' lifecycle.
Essential Skills
- Bachelor’s or Master’s Degree in Computer Science, Software Engineering, or related fields.
- At least 3+ years of experience in embedded software development (8-10 years preferred).
- Proficiency in software design and development with C and C++.
- Experience with Object Oriented Programming.
- Knowledge of RTOS and real-time operating systems.
- Experience in software design techniques for multi-threading applications.
- Proficiency in using GIT or other software versioning applications.
- Familiarity with JIRA.