Summary
Firefly Aerospace is a space and defense technology company developing launch, landing, and space systems. The Platform Engineer II will lead development of C++ platform software and firmware across the onboard software stack, building SDK components and systems that connect perception algorithms with cameras, sensors, compute hardware, and flight software. The role also involves integrating and testing embedded systems, supporting spacecraft operations, diagnosing system-level issues, and mentoring engineers.
Responsibilities
- Design, develop, integrate, and test critical features within our onboard C++ software stack
- Build and maintain core components of the Sol3 SDK, including reusable C++ libraries, APIs, tools, and abstractions used across engineering teams
- Write general systems software involving inter-process communication (IPC), device and sensor interfaces (GMSL, I2C, SPI), and networking (TCP/IP, UDP, Spacelink, CCSDS)
- Develop and optimize multithreaded, low-latency software for compute-, memory-, and bandwidth-constrained embedded environments
- Integrate cameras, sensors, heterogeneous compute platforms, and networking interfaces into reliable end-to-end systems
- Partner with hardware teams to test user flows from their perspective and implement solutions that can be integrated into the SDK
- Help integrate the perception team's algorithms into Sol3 SDK core components, defining maintainable interfaces between algorithmic and platform code
- Develop onboard applications supporting perception, navigation, and mission operations
- Support software-in-the-loop, hardware-in-the-loop, spacecraft integration, mission simulation, and flight operations activities
- Diagnose complex system-level issues spanning software, firmware, and hardware; contribute to architectural decisions, conduct technical reviews, and mentor other engineers
Skills
- Bachelor's degree in Computer Science, Software Engineering, Computer Engineering, Aerospace Engineering, Robotics, or a related technical field; equivalent practical experience may be considered
- 3+ years of professional software engineering experience developing complex production systems
- Experience developing and debugging software in embedded Linux environments and integrating software with hardware, sensors, and external systems
- Strong proficiency in modern C++, including multithreading, memory management, debugging, and performance optimization
- Experience writing general systems software: IPC mechanisms, hardware buses and sensor interfaces (e.g., GMSL, I2C, SPI), and network protocols (e.g., TCP/IP)
- Experience designing reusable libraries, APIs, platform services, or SDK components used across engineering teams
- Strong understanding of software architecture, algorithms, automated testing, and maintainable software design
- Demonstrated ability to resolve complex system-level issues and communicate effectively across software, algorithm, hardware, and systems engineering teams
- Master's or PhD in Computer Science, Robotics, Aerospace Engineering, Electrical Engineering, or a related field
- Experience developing software or firmware for spacecraft, aerospace, robotics, autonomous vehicles, defense systems, or other mission-critical applications
- Experience integrating cameras or perception sensors with embedded Linux, GPUs, FPGAs, or other heterogeneous compute platforms
- Familiarity with computer vision, visual navigation, state estimation, localization, mapping, or perception pipelines
- Experience with 3D geometry, coordinate transformations, camera models, or spatial data structures
- Proficiency in Python for tooling, automation, and testing
- Experience with flight software interfaces, telemetry and commanding, software- or hardware-in-the-loop testing, vehicle integration, or mission operations
Qualifications
Must Haves
- Bachelor's degree in Computer Science, Software Engineering, Computer Engineering, Aerospace Engineering, Robotics, or a related technical field; equivalent practical experience may be considered
- 3+ years of professional software engineering experience developing complex production systems
- Experience developing and debugging software in embedded Linux environments and integrating software with hardware, sensors, and external systems
- Strong proficiency in modern C++, including multithreading, memory management, debugging, and performance optimization
- Experience writing general systems software: IPC mechanisms, hardware buses and sensor interfaces (e.g., GMSL, I2C, SPI), and network protocols (e.g., TCP/IP)
- Experience designing reusable libraries, APIs, platform services, or SDK components used across engineering teams
- Strong understanding of software architecture, algorithms, automated testing, and maintainable software design
- Demonstrated ability to resolve complex system-level issues and communicate effectively across software, algorithm, hardware, and systems engineering teams
Nice to Haves
- Master's or PhD in Computer Science, Robotics, Aerospace Engineering, Electrical Engineering, or a related field
- Experience developing software or firmware for spacecraft, aerospace, robotics, autonomous vehicles, defense systems, or other mission-critical applications
- Experience integrating cameras or perception sensors with embedded Linux, GPUs, FPGAs, or other heterogeneous compute platforms
- Familiarity with computer vision, visual navigation, state estimation, localization, mapping, or perception pipelines
- Experience with 3D geometry, coordinate transformations, camera models, or spatial data structures
- Proficiency in Python for tooling, automation, and testing
- Experience with flight software interfaces, telemetry and commanding, software- or hardware-in-the-loop testing, vehicle integration, or mission operations
Benefits
- Generous health, dental and vision plans with low plan deductibles
- Parental leave
- Educational reimbursement
- Short term disability
- Flexible PTO options