Software Engineer
Position Summary:

As a Software Engineer you are responsible for designing, developing, and implementing innovative satellite flight software solutions across a variety of satellite subsystems and at the system level. You are responsible to project managers for software development and testing for customer programs and internal product development efforts. You will also research and advise on the state of industry's software best practices, tools, and products in support of company software strategy. This is a hybrid position.

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 opportunities, in addition to various science and exploration applications. Astro Digital is headquartered in Santa Clara, California with infrastructure around the globe.

This position requires access to export-controlled commodities, technical data, technology, software, and services. U.S. citizenship, U.S. legal permanent resident status, or protected person status under 22 CFR §120.15 and 8 U.S.C. § 1324b(a)(3) is required.
Primary Duties and Responsibilities:

  • Develop and implement simple, reliable, and fault tolerant software for a variety of SoC's and microcontrollers in C, C++, MicroPython and Python

  • Test software in simulation and hardware-in-the-loop environments, including the development of comprehensive unit and regression tests.

  • Work with the team to establish software requirements and architecture including supporting software related business development tasks.

  • Support the Satellite Operations team in satellite commissioning, operations automation, anomaly investigation and mitigation.

  • Work with technical customers to integrate their payloads into the Astro Digital system

  • Participate in driver development, bring up hardware enablement on Linux, and other real time operating systems

  • Gain a system level understanding of Astro Digital spacecrafts

Minimum Qualifications:

  • B.S. in computer science or equivalent practical experience
  • 3+ years of related experience developing C/C++ software for high-performance embedded devices or systems
  • Highly motivated, self-starting, and able to perform duties autonomously without supervision
  • Demonstrated ability to develop and debug software or firmware
  • Familiar with one or more cross compile build environments
  • Hands on experience with satellites, robotic systems, or similar
  • Experience with build systems, package managers and SW analysis tools
  • Experience with version control tools

Additional Competencies:

  • Experience with bootloaders, Linux kernel, and buildroot
  • Experience and understanding of RTOS (Zephyr, TI RTOS, FreeRTOS)
  • Experience with Software defined radios (SDRs) like GNU Radio and qRadio
  • Experience with battery and solar based electrical power systems software or design
  • Ability to consider full-system implications of software design
  • Working understanding of RF and digital modulation schemes (FSK, QPSK)
  • Deep knowledge of the Internet protocol suite
  • Familiar with REST or other web APIs
  • Cursory knowledge of spacecraft subsystems