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 systemsCollaborate with hardware engineers to define software requirements and specificationsImplement software solutions in C/C++ or other relevant programming languagesPerform system integration, testing, and validation of embedded systemsOptimize software performance and memory usageDevelop and maintain documentation for software design and implementationParticipate in code reviews and provide constructive feedback to team membersTroubleshoot and resolve software issues in a timely mannerStay updated with the latest industry trends and technologies in embedded systemsPrepare and manage a Linux OS running on an embedded SoC inside FPGAConfigure 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 developmentProficiency in programming languages such as C/C++Strong understanding of microcontrollers, microprocessors, and embedded operating systemsExperience with real-time operating systems (RTOS) and embedded LinuxFamiliarity with hardware interfaces and protocols (SPI, I2C, UART, etc.)Knowledge of software development tools and debugging techniquesExcellent problem-solving skills and attention to detailStrong communication and teamwork abilities
Bonus points for the following:
Bachelor’s or master’s degree in Computer Science, Electrical Engineering, or a related fieldExperience with ARM Cortex-M or similar microcontroller architecturesFamiliarity with version control systems (e.g., Git)Understanding of hardware design and schematicsKnowledge of wireless communication protocols (Bluetooth, Wi-Fi, etc.)Experience with Agile development methodologies