Embedded Software Engineer
Role details
Job location
Tech stack
Job description
We are seeking an Embedded Software Engineer to develop low-level software that directly interfaces with hardware across spacecraft subsystems and supporting electronics.
This role is well-suited for an engineer with solid foundational experience who can operate independently on day-to-day tasks, while continuing to grow in system design and large-scale integration efforts with guidance from senior engineers.
Candidate will be expected to deliver working software quickly, contribute to hardware bring-up and debugging, and build a deeper understanding of how individual components interact within larger systems. This role is primarily on-site at our Littleton, Colorado headquarters or at our facility in San Jose, California, with limited remote work flexibility., * Develop and maintain embedded software for spacecraft subsystems, including sensors, actuators, power systems, and communication interfaces
- Write and debug low-level drivers and board support code
- Interface directly with hardware (SPI, I2C, UART, GPIO, DMA)
- Support hardware bring-up and debugging using lab equipment and standard tools
- Deliver working implementations quickly and iterate to improve reliability, performance, and maintainability
- Debug embedded systems using tools such as GDB, JTAG, and SWD
- Collaborate with cross-functional teams to define and refine system interfaces
- Participate in integration, HIL testing, and system validation
- Contribute to Python-based test, automation, and data analysis workflows, * Ownership of day-to-day work: Candidate reliably executes assigned tasks and follows issues through to resolution
- Growth mindset: Candidate actively develops technical depth and takes on increasing responsibility over time
- System-oriented thinking: Candidate seeks to understand how components interact within a larger system, including trade-offs and dependencies
- Curiosity and critical thinking: Candidate asks "why" when appropriate-challenging assumptions, clarifying requirements, and improving designs
- Bias toward action: Candidate delivers working solutions quickly and iterates based on testing and feedback
- Collaboration: Candidate works effectively across disciplines and incorporates feedback from more experienced engineers
Requirements
- Bachelor's degree in EE, CE, CS, or related field
- 5 years of embedded software experience
- Proficiency in C and modern C++
- Experience developing firmware in bare-metal or minimally abstracted environments
- Strong understanding of:
- Interrupt-driven design
- Memory-mapped I/O and peripheral configuration
- Timing and resource constraints
- Experience writing low-level drivers and interfacing with hardware peripherals (SPI, I2C, UART, GPIO, DMA)
- Ability to work from datasheets/reference manuals to configure and debug hardware
- Experience debugging embedded systems using:
- Software tools (e.g., GDB, JTAG/SWD)
- Lab equipment (oscilloscope, logic analyzer, multimeter)
- Familiarity with RTOS concepts (threads, scheduling, synchronization)
- Exposure to embedded Linux development environments
- Experience with Git-based workflows
- Ability to execute well-scoped tasks independently and deliver reliable results, * Experience developing firmware for resource-constrained microcontrollers in bare-metal environments
- Comfort working at low levels of abstraction, including direct register manipulation and hardware bring-up
- Experience with RTOS frameworks (e.g., Zephyr, FreeRTOS) and associated design trade-offs
- Experience working across abstraction layers (bare-metal, RTOS, embedded Linux)
- Familiarity with embedded Linux tools and workflows (e.g., cross-compilation, build systems)
- Experience bringing up new hardware, including initialization and early-stage debugging
- Experience optimizing firmware for memory, timing, or power constraints
- Familiarity with ARM-based platforms (Cortex-M, Cortex-A) or similar
- Experience with integration, HIL testing, or cross-subsystem debugging
- Exposure to CI/CD or automated testing workflows
Benefits & conditions
Pulled from the full job description
- Health insurance
- Paid time off
- Stock options, Astro Digital employees are provided with a comprehensive benefits package that includes company stock options, healthcare, 401k retirement plan, and PTO. The range of possible compensation for this role is $130k-$175k annually, depending on experience and alignment.
Physical Demands
This position may require lifting up to 20 lbs and occasional standing, bending, and working with lab equipment.