About the Role
About the Role
The Software Engineer - Yocto/Linux role involves developing software for satellite systems, focusing on embedded Linux and low-level protocols. The engineer will collaborate with the Electrical Engineering team to ensure effective software-hardware integration and maintain existing products while adapting to fast-paced design and implementation methodologies.
What You’ll Do as a Embedded Linux/Software Engineer:
- Maintain and develop daemons that interface with embedded systems using low-level protocols and higher-level protocols for business logic.
- Implement communication interfaces between embedded systems and higher-level processes.
- Integrate C libraries 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.
- Spin up new designs and maintain existing products with Yocto, focused on Xilinx MPSoC systems.
Key Skills:
- C/C++, Bash and Python.
- Proficiency working with the Yocto framework.
- Knowledge of a Linux-based development environment (Ubuntu).
- Experience with real-time communication protocols (CAN/UART/SPI/I2C).
- Understanding of electronics and ability to communicate effectively with hardware engineers.
Preferred Skills:
- Working knowledge of Rust would be a bonus.
- Familiarity with safety-critical embedded systems.
- Knowledge of version control systems, particularly Git and GitHub.
- Familiarity with CI/CD pipelines.
- Understanding of cybersecurity principles for embedded systems.
Global Perks
- Name Your Satellite Program (NYSP).
- Launch Attendance.
- Generous Time Off Policy.
- Education Assistance Program.
- Employee Assistance Program (EAP).
- Employee Stock Purchase Program (ESPP).
- Family Leave.
- Fitness Reimbursement.
- Employee Referral Program.
- Healthy snacks & beverages in every office.
Requirements
C/C++ proficiency
Strong skills in C and C++ programming languages are essential.
Yocto framework experience
Experience with the Yocto framework for application design and OS modifications is required.
Linux development knowledge
Familiarity with a Linux-based development environment, particularly Ubuntu, is necessary.
Real-time communication protocols
Experience with low-level communication protocols such as CAN, UART, SPI, and I2C is important.
Nice to Have
Familiarity with Rust programming language is a plus.
Experience with safety-critical embedded systems in any industry is beneficial.
Knowledge of Git and GitHub for version control is preferred.
Benefits
Generous Time Off
Enjoy a generous time off policy.
Education Assistance
Access to an education assistance program to support your learning.
Employee Stock Purchase
Participate in the employee stock purchase program.
Fitness Reimbursement
Receive reimbursement for fitness-related expenses.