Embedded Software Engineer

Position Summary:

In this hybrid position: design, write, test, document, debug, bring up, and deploy embedded software to microcontrollers and microprocessors for spacecraft subsystems.

Note: 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:

  • Work with Electrical, RF, and Software engineers to implement new subsystems or design revisions of embedded computers that communicate with core flight software.
  • Maintain and enhance existing embedded software.
  • Write C and Python drivers for integrated circuits I2C, SPI, UART or other interfaces based on manufacture datasheets.
  • Work in the lab to test and debug hardware, peripherals, and payloads.
  • Create board support packages for internal custom designs.
  • Write interface control documents (ICD) or Application Programming interfaces (API) and core flight software drivers for the embedded systems.
  • Gain a system level understanding of Astro Digital spacecrafts
  • Occasionally fill in for higher level software tasks.

Minimum Qualifications:

  • BS in Software Engineering, Computer Science, or related field.
  • Proficient in C or C++ programming. Comfort with Python.
  • Experience with Embedded-C or RTOS: threads, interrupts, concurrency, HAL.
  • Experience developing hardware drivers for SPI, UART, and I2C peripherals.
  • Comfortable with command-line environments (Linux) and scripting.Ability to work independently with minimal guidance.
  • Familiarity with network abstraction layers.
  • Good written and verbal communications skills.

Preferred Qualifications:

  • Experience with building systems like CMake, using device trees, linking libraries, etc.
  • Experience with Zephyr RTOS or TI RTO
  • Experience with MicroPython
  • Experience using version control and CI/CD system
  • Experience with Linux kernel module driver
  • Experience with Nvidia Jetson devices
  • Ability to develop board support packages (BSP) for custom hardware
  • Familiarity with HAM radio, RF Engineering or low-level protocols
  • Familiarity with GNU Radio or Software Defined Radios (SDR)
  • Xilinx Zynq/FPGA knowledge
  • General hardware stills (reading schematics, probing with instrumentation, etc.)

During the course of the application and interview process for certain engineering positions, you may be asked to perform functional activities to demonstrate your skills with parts and equipment we work with. By agreeing to engage in such skills testing, you also agree not to disclose the specific activities you are asked to engage in or any other aspect of the skills demonstration.

Astro Digital is proud to be an equal opportunity employer. Astro Digital does not discriminate on the basis of race, regional color, national origin, gender (including pregnancy, childbirth, or related medical conditions), sexual orientation, gender identity, gender expression, age, status as a protected veteran, status as an individual with disability, or other applicable legally protected characteristics.