SoC Firmware Engineer
| Verified Pay check_circle | Provided by the employer$150,000 - $220,000 per year |
|---|---|
| Hours | Full-time |
| Location | Saratoga, California |
About this job
Job Description
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.
· 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.
· 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.
We may use artificial intelligence (AI) tools to support parts of the hiring process, such as reviewing applications, analyzing resumes, or assessing responses. These tools assist our recruitment team but do not replace human judgment. Final hiring decisions are ultimately made by humans. If you would like more information about how your data is processed, please contact us.