E-Space

Senior Embedded Software Engineer

E-Space • US
C++
Ready to make connectivity from space universally accessible, secure and actionable? Then you’ve come to the right place!

E-Space is bridging Earth and space to enable hyper-scaled deployments of Internet of Things (IoT) solutions and services. We are building a highly-advanced low Earth orbit (LEO) space system that will fundamentally change the design, economics, manufacturing and service delivery associated with traditional satellite and terrestrial IoT systems.

We’re intentional, we’re unapologetically curious and we’re 100% committed to innovate space-based communications and deliver actionable intelligence that will expand global economies, protect space and our planet and enhance our overall quality of life.

As a Senior Embedded Software Engineer you will be responsible for designing, developing, and maintaining software for embedded systems. This role requires a deep understanding of hardware-software interactions, experience working on SoCs inside of FPGAs, experience with the PCIe bus, and the ability to work closely with cross-functional teams to deliver high-quality products.
 
This position will report to the Senior Director, Product & Systems Integration Semiconductor Development team. This position is based in our Saratoga, CA office.

What you will be doing:

  • Design, develop, and debug software for embedded systems
  • Collaborate with hardware engineers to define software requirements and specifications
  • Implement software solutions in C/C++ or other relevant programming languages
  • Perform system integration, testing, and validation of embedded systems
  • Optimize software performance and memory usage
  • Develop and maintain documentation for software design and implementation
  • Participate in code reviews and provide constructive feedback to team members
  • Troubleshoot and resolve software issues in a timely manner
  • Stay updated with the latest industry trends and technologies in embedded systems
  • Prepare and manage a Linux OS running on an embedded SoC inside FPGA
  • Configure PCIe hard IP inside FPGA, write custom Linux kernel modules, and optimize performance for PCIe transfers
  • What you bring to this role:

  • Proven experience in embedded software development
  • Proficiency in programming languages such as C/C++
  • Strong understanding of microcontrollers, microprocessors, and embedded operating systems
  • Experience with real-time operating systems (RTOS) and embedded Linux
  • Familiarity with hardware interfaces and protocols (SPI, I2C, UART, etc.)
  • Knowledge of software development tools and debugging techniques
  • Excellent problem-solving skills and attention to detail
  • Strong communication and teamwork abilities
  • Bonus points for the following:

  • Bachelor’s or master’s degree in Computer Science, Electrical Engineering, or a related field
  • Experience with ARM Cortex-M or similar microcontroller architectures
  • Familiarity with version control systems (e.g., Git)
  • Understanding of hardware design and schematics
  • Knowledge of wireless communication protocols (Bluetooth, Wi-Fi, etc.)
  • Experience with Agile development methodologies