Embedded Software Engineer
Littleton, Arapahoe County, Colorado, 80161, USA
Listed on 2026-06-15
-
Software Development
Embedded Software Engineer, Embedded Systems/ Firmware/ IoT, Unix/Linux, C++ Developer
Astro Digital designs, builds, and operates a diverse range of small satellite systems supporting space-based turnkey missions for several business applications, including earth observation, communications, in-orbit demonstrations, risk reduction, science, and exploration. Astro Digital is headquartered in Littleton, Colorado with roughly 100 employees and infrastructure around the globe.
We move fast, deliver on time, and continuously improve systems in orbit and on the ground. We value engineers who take ownership, think in systems, and iterate toward robust solutions.
Position SummaryWe 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.
PrimaryDuties & Responsibilities
- 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
- 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:
- 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
- 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,…
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).