Build real-time flight control software on embedded real-time Linux platforms, driving architectural decisions, ensuring deterministic execution, and overseeing the full software lifecycle from design through verification and validation.
Develop, maintain, and extend embedded software solutions for safety-critical applications.
Implement and refine software models and control algorithms, including sensor interfaces, actuator drivers, communication protocols, and environmental abstraction layers.
Build and integrate software tools and test utilities to support SIL and HIL test configurations on embedded Linux platforms.
Define, decompose, and manage system and software requirements.
Generate clear, structured, and technically rigorous documentation, covering software architecture, design assumptions, validation results, and verification evidence.
Produce and execute test cases for requirement verification across multiple integration levels (SIL, HIL).
Work cross-functionally with Systems Engineering, Hardware, GNC, and Flight Dynamics teams to ensure software correctness, determinism, and alignment with system needs.
Participate in design and technical reviews, presenting software architectures, integration outcomes, and known limitations.
Support GNC teams by providing embedded software environments, driver interfaces, and validation scenarios.
Actively contribute to continuous improvement of internal software capabilities, toolchains, and development workflows.
Requirements
MSc in Software Engineering, Automation Engineering, Aerospace Engineering, or a related field.
3-5 years of experience as Software Engineer on embedded systems.
Proven experience with embedded Linux development.
Proven experience working on flight systems (UAVs, rockets, missiles)
Proven experience with embedded C, Rust highly valued.
Experience with SIL and HIL simulations and verification processes.
Strong technical writing skills and experience producing advanced engineering documentation.
Ability to work collaboratively in multidisciplinary teams and communicate complex technical topics clearly.
Proactive attitude, good problem-solving skills, and willingness to take ownership of software tasks and development.