Spacecraft Embedded Software Engineer (Rust)
Role details
Job location
Tech stack
Job description
We are seeking an experienced Embedded Software Engineer (Rust) to join our Platform team (folks looking after the spacecraft). The successful candidate will play a crucial role in developing software for our satellite systems, contributing to the expansion and enhancement of our space-based data collection capabilities.
Ideal candidates will embrace the commercialization of nanosatellite systems and adapt to low-cost, fast-paced systems design, development, and implementation methodologies that set Spire apart from our competition. In this fast-paced environment, the design to launch cycle is measured in weeks and months, not years!
What You'll Do as a Spacecraft Embedded Software Engineer:
- Develop daemons in Rust that interface with embedded systems using low- level protocols
- Implement communication interfaces between embedded systems and higher-level processes
- Integrate C code for specific hardware interfaces
- Contribute to the design and implementation of fault-tolerant systems
- Collaborate closely with the Electrical Engineering team to ensure optimal software-hardware integration
- Create and maintain comprehensive documentation for APIs and system architectures
- Contribute to the continuous improvement of our development processes and tools
Requirements
- Proven experience in embedded systems development using Rust
- Knowledge of or adaptability to Linux-based development (Ubuntu)
- Proficiency in integrating C code with Rust projects
- Experience with real-time communication protocols
- Experience with inter-process communication protocols
- Understanding of electronics and ability to communicate effectively with hardware engineers
- Excellent documentation skills
Preferred Skills:
- Familiarity with safety-critical embedded systems in any industry
- Experience with Yocto for embedded systems
- Knowledge of version control systems, particularly Git and GitHub
- Familiarity with CI/CD pipelines
- Experience with project management tools
- Proficiency in scripting languages like Python and Bash
- Understanding of cybersecurity principles for embedded systems
- Knowledge of telemetry and command systems
- Experience with formal verification methods for critical software components
- Experience in implementing Fault Detection, Isolation, and Recovery (FDIR) systems for embedded applications
Tools and Technologies: Rust, C | Scripting languages (Bash/Python) | Ubuntu (development environment) | Yocto (target environment) | Version control using Git