Embedded Systems Software Engineer (3 yrs exp req)
Role summary
We are seeking a Flight Software Engineer to design and deliver CubeSat flight software, with a strong emphasis on GNC integration, autonomy, and real-time systems. The role involves owning core flight software architecture and implementing mode logic, timing, sensor/actuator integration, and autonomous behaviors for on-orbit operations. Experience with NASA F´ (F Prime) or similar component-based flight software frameworks is highly preferred. Responsibilities include developing flight software, integrating GNC algorithms, interfacing with avionics and payloads, supporting hardware bring-up, and maintaining build/release pipelines. The position requires strong C/C++ skills in embedded or real-time systems, experience with flight software frameworks, GNC/ADCS integration, and hardware debugging.
Role Summary
We’re hiring a Flight Software Engineer to design and deliver CubeSat flight software with a strong focus on GNC integration, autonomy, and real-time systems.
You will own core flight software architecture and work closely with GNC to implement mode logic, timing, sensor/actuator integration, and autonomous behaviors for on-orbit operations.
Experience with NASA F´ (F Prime) or similar component-based flight software frameworks is strongly preferred.
ResponsibilitiesFlight Software Development
- Develop flight software using NASA F´ (or similar): components, ports, topologies, deployments, and mission state/mode logic
- Own core spacecraft services:
- Command & Data Handling (C&DH)
- Telemetry, events, logging, and timekeeping
- Fault detection, isolation, and recovery (FDIR) / safe mode
- Configuration and parameter management
GNC Integration
- Integrate GNC algorithms into flight software (interfaces, scheduling, data flow)
- Implement sensor/actuator pipelines:
- Sensors: IMU, magnetometer, sun sensors, star tracker, GPS
- Actuators: reaction wheels, magnetorquers, propulsion
- Support ADCS/GNC modes:
- Detumble → Sun-point → Inertial → Target tracking
- Implement timing, synchronization, and state transitions across modes
Embedded Systems & Integration
- Interface with avionics and payloads (I2C, SPI, UART, CAN, etc.)
- Support hardware bring-up, debugging, and integration
- Develop and execute HIL / flat-sat testing and fault injection
Engineering Discipline
- Maintain build and release pipelines (CMake, CI/CD, static analysis)
- Contribute to ICDs and system architecture with cross-functional teams
Required Qualifications
- Strong C/C++ in embedded or real-time systems
- Experience with flight software frameworks (F´, cFS, or similar)
- Experience integrating GNC/ADCS into flight software
- Strong understanding of:
- timing, scheduling, and state machines
- sensor/actuator interfaces
- Comfortable with hardware debugging (JTAG, logs, lab tools)
- Solid software engineering fundamentals (testing, CI, version control)
Preferred
- Direct experience with NASA F´ (components, topology, ground interfaces)
- CubeSat or spaceflight experience (FDIR, safe modes, radiation considerations)
- Experience with RTOS or embedded Linux (FreeRTOS, RTEMS, etc.)
- Familiarity with spacecraft comms / telemetry concepts (CCSDS or similar)
Bonus: Vision & Autonomy
- Vision-based navigation (feature tracking, optical flow, pose estimation)
- Onboard autonomy (planning, event-driven systems, robust state machines)
- Experience with proximity operations / rendezvous concepts
Pay: $120,000.00 - $150,000.00 per year
Experience:
- Embedded software: 3 years (Required)
- Computer vision: 3 years (Preferred)
- F prime: 3 years (Preferred)
- System design: 3 years (Preferred)
Ability to Commute:
- Huntsville, AL 35802 (Required)
Work Location: Hybrid remote in Huntsville, AL 35802