Flight Software Engineer
Argotec
San Mauro Torinese, Italy
To support our Company’s growth, we are looking for an enthusiastic Flight Software Engineer who will be part of our Software Unit, contributing to the development of our flight software, targeting products, such as our small satellite platforms for a variety of space applications, and avionics systems, such as on-board computers, radios, attitude control systems and many others.
We foster a collaborative environment where every Argonaut can contribute with their ideas and expertise, create meaningful value together, and transform feedback and mistakes into opportunities for learning and innovation — growing both professionally and personally, as individuals and as a team.
DUTIES
As a Flight Software Engineer, you will be responsible for you will play a crucial role in designing, developing, and optimizing embedded software our avionics systems and satellite platforms.
You will collaborate with the rest of the team to develop, integrate and test portable software modules for on-board data handling and advanced processing as part of the Argotec flight software, while aiming at code reusability for future missions.
The activities will include (but are not limited to):
- Design and develop software for our avionic systems;
- Work throughout the whole software development lifecycle, from requirements definition to test and result reporting;
- Configure and tailor the Real-time Operating Systems on our on-board computers;
- Participate in the integration and testing of the flight software on the avionics systems and satellites;
- Identify and support a core set of tools for performance analysis;
- Design and develop tools (e.g. scripts, simulators, digital twins, etc.) that help the team in providing high-quality flight software;
- Cooperate with other Engineering teams to define the system architecture and integrate software with specific hardware components and constraints;
- Support the path-to-production for the developed software solutions;
- Maintain software solutions deployed to orbit throughout the whole lifecycle of the satellites, supporting also the flight operations of our missions.
GENERAL REQUIREMENTS
- MSc in Computer Science, Software Engineering, or related fields (any other proven experience in software design and development will be considered as well);
- Excellent communication skills and ability to collaborate with cross-functional teams;
- Excellent written and oral communication in English.
REQUIRED EXPERIENCE & SKILLS
- Good skills in software design and development with C and C++;
- Familiarity of real-time operating systems and software design techniques in multi-threading applications;
- Knowledge of GIT or other software versioning applications;
- Familiarity with electronics equipment and tools (Power Supplies, Multimeters, Oscilloscopes, Signal Generators, etc.);
- Analytical mind and problem-solving;
- Continuous learning attitude;
- Excellent attitude for teamwork and cooperation;
- Flexibility and adaptability to changing requirements and stakeholders needs;
- Ability to listen and understand, willingness to share information.
ADDITIONAL ASSETS
- Good familiarity with common architecture and software design patterns (best practices);
- Experience with CI/CD tools (BitBucket, Jenkins, SonarQube);
- Familiarity with scripting languages (Python, Ruby, bash, etc.);
- Knowledge of communication interfaces and protocols (UART, SPI, I2C, CAN, Ethernet, SpaceWire, etc.);
- Knowledge of Cybersecurity principles and practices;
- Knowledge of Machine Learning and development of AI-based applications;
- Understanding of software and hardware development lifecycle, system design, and agile methodologies.
Don't forget to mention Space-Careers when applying.