SoC Firmware Engineer
@ E-SpaceSoC Firmware Engineer
This job is still taking applications, but it's been up a while.
About the job
E-Space is advancing space-based communications, building space systems to enable IoT, enhance global connectivity, and create innovative satellite solutions. We focus on secure, scalable LEO satellite tech and need embedded firmware engineers passionate about space tech development.
Requirements
- Embedded C programming
- Scripting experience (Python, Bash)
- Familiarity with ARM architectures
- Debugging tools proficiency
- Automation and CI/CD experience
Qualifications
- Bachelor's or Master's in CS or EE
- Experience with space or satellite systems
- Strong problem-solving skills
- Team collaboration skills
- Passion for space technology
Full job description
What you will do:
Core Responsibilities
· Embedded Software Development: Plan, implement, and verify low-level software for embedded systems, including BSP, firmware drivers, and ROM code.
· RTOS Application and Driver Development: Develop device drivers for accelerators and heterogeneous multi-processor platform applications, as well as system services for operating systems such as Zephyr RTOS or FreeRTOS.
· Software/Hardware Co-design: Plan hardware accelerator usage models and software interfaces, including register definitions, task orchestration, and data flows.
· System Verification: Perform verification tasks related to firmware and hardware interactions, such as data flow profiling and hardware benchmarking.
· Embedded Security: Design and implement security mechanisms at the firmware level, including secure boot, trusted execution environments (TEE), and control flow integrity to ensure robust protection across the platform.
Testing and Automation
· Hardware Simulation and Emulation: Verify software functionality and hardware interactions using simulation and emulation environments, including Hardware-in-the-Loop (HIL) setups and hardware debugging tools.
· Continuous Integration and Test Frameworks: Develop and maintain test frameworks and test vectors for embedded systems; integrate automated testing pipelines with CI/CD tools such as Jenkins, GitLab CI, or Azure DevOps.
Collaboration and Documentation
· Hardware Interaction: Work closely with hardware teams to ensure seamless software-hardware integration and accurate testing scenarios.
· Documentation: Prepare and maintain technical documentation, including testing procedures, logs, and reports for software and hardware validation.
What you bring to this role:
· Embedded C Programming: Strong proficiency in C for embedded systems development; experience with Rust is a plus.
· Scripting: Practical experience with scripting tools and languages such as Bash, awk, Python, Makefiles, and Tcl.
· Embedded Architectures: Familiarity with ARM Corstone reference designs, ARM Cortex processors, and their associated toolchains.
· Low Power Design: Understanding of low-power design principles, energy-efficient algorithms, and power profiling tools.
· Debugging Tools: Proficiency with debugging tools like JTAG, GDB, and serial debuggers.
· Automation Tools: Experience with CI/CD pipelines, Jenkins, GitLab CI, or similar tools.
· Version Control: Expertise with Git or similar version control systems.
Bonus points for the following:
· Experience with TrustedFirmware-M and MCUboot.
· Familiarity with PSA certification processes and requirements.
· Experience with secure firmware updates (OTA) and bootloader development.
· Knowledge of AMBA interconnect protocols (AXI, AHB, APB).
· Knowledge of hardware protocols such as SPI, I2C, UART, and GPIO.
· Familiarity with hardware simulation tools and mock environments for testing.
· Knowledge of embedded security and cryptographic algorithms, including Post-Quantum Cryptography (PQC).
· Familiarity with 3GPP network protocols.
· Education: Bachelor's or Master's degree in Computer Science, Electrical Engineering, or a related field.