
Senior Embedded Software Engineer - Flight Software
E-Space
Posted 2 days ago
Core Development
-
Embedded Software Development: Architect/Design, write, debug, and maintain efficient software for real-time embedded systems, including mission critical Flight Software and communication with other space-specific software subsystems/modules, such as TTC (CCSDS protocol), Power, Thermal, GNC, FDIR, CFDP.
-
Communication Protocols and Specifications: Implement protocols used in space-grade software such as UART, CAN, SpaceWire, SPI, I2C, and Ethernet. Experience with Linux bridging, DSA (Distributed Switch Architecture), and L2 protocols such as RSTP/MSTP, HSR, or FRER for redundant network fabrics is highly valued
-
Networking and Avionics Fabrics: Design and implement L2 Ethernet networks for inter-board communication on spacecraft, including switch bring up, PHY configuration, and topology design. Configure and debug L2 redundancy protocols (RSTP, HSR, FRER) for fault-tolerant fabrics. Implement deterministic networking using TSN features where mission profiles require bounded latency.
-
Application Integration: Integrate and manage provided applications on top of the customized platform software. Design and bring up Ethernet-based avionics networks, including PHY/MAC initialization, switch configuration, and L2 redundancy protocols.
-
Operational Management: Design and implement efficient memory management, process management, software updates, reprogramming and power saving modes for embedded systems. Experience with multi-board Ethernet fabrics (mesh, ring, or tree topologies) for inter-subsystem communication is a plus.
Testing and Support
-
Test Framework Development: Create and maintain automated testing frameworks for embedded systems, including HIL, SIL, PIL.
-
Support: Provide support for debugging of real-time and critical faults.
-
Debugging and Validation: Use tools like oscilloscopes, logic analyzers, and protocol analyzers to test and debug embedded software and hardware interfaces.
Collaboration and Documentation
-
Hardware Interaction: Work closely with global software teams to contribute to the new designs and ensure seamless software-hardware integration.
-
Documentation: Prepare and maintain technical documentation.
-
Hands-on: Proven record of designing and developing significant working software in aerospace applications.
-
Programming Languages: Proficiency in C/C++ and scripting languages like Shell or Bash; familiarity with Python.
-
Embedded Systems: Experience with embedded and multicore platforms and their toolchains. Experience with Yocto is a big plus.
-
Communication Protocols: Knowledge of key hardware and software protocols such as UART, CAN, SPI, I2C. TCP and UDP.
-
Upgrades: Experience with secure firmware updates and reprogramming mechanisms.
-
Debugging Tools: Proficiency with debugging tools like JTAG, GDB, and serial debuggers.
-
Version Control: Expertise with Git or similar version control systems.
-
Education: Bachelor’s or Master’s degree in Computer Science, Electronics Engineering, or a related field.
-
-
Familiarity with wireless communication technologies (e.g., Wi-Fi, Bluetooth, Zigbee, LoRa).
-
Familiarity with hardware simulation tools and flatsat environments for testing.
-
Familiarity with CI/CD pipelines and automated build/test workflows.
Key Attributes
-
Strong analytical and debugging skills.
-
Passion for quality and attention to detail in software development and testing.
-
Ability to work collaboratively in cross-functional and global teams.
-
Commitment to staying updated with the latest in IoT, embedded systems, and testing automation technologies.
-
A willingness to undertake further relevant training.
-
An understanding and commitment to equal opportunities.
-
Time management, self-reliance and willingness to learn.
-