- Office in Saratoga
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.