Senior/Staff Software Engineer – Firmware, Pre/Post-Silicon Boot & Automation
ArmJob Title
Senior/Staff Software Engineer – Firmware, Pre/Post-Silicon Boot & Automation
Role Summary
Work on automation and tools that accelerate firmware development, system boot, and SoC validation across simulation, emulation, FPGA/prototyping, and post-silicon environments. The role collaborates with firmware, silicon, architecture, OS, and validation teams to improve test coverage, reliability, and time-to-boot for SoC platforms.
Based in Bengaluru with a hybrid working model. As a Senior/Staff engineer you will influence framework architecture, guide technical decisions, and mentor other engineers.
Experience Level
Senior-level. Target experience: approximately 8–15 years of relevant software and firmware validation, automation, or embedded systems experience.
Responsibilities
Design, build, and maintain automation and validation infrastructure that supports firmware and platform bring-up throughout the SoC lifecycle.
- Design and implement automation frameworks (primarily Python) for firmware testing, boot workflows, and regression testing.
- Automate end-to-end SoC boot workflows: builds, deployment, platform configuration, boot execution, log collection, failure detection, and reporting.
- Develop reusable test solutions that operate across simulation, emulation, FPGA/prototyping, and silicon.
- Validate firmware and boot components including Boot ROM, security firmware, bootloaders, UEFI, Linux, and platform initialization.
- Investigate complex failures spanning firmware, OS, hardware models, silicon, and automation; build debugging and failure-analysis tools.
- Integrate automated validation into CI/CD pipelines and maintain reliable regression and release-validation workflows.
- Collaborate with cross-functional teams, review designs, and help improve automation architecture and engineering practices.
- Provide technical leadership: shape decisions, mentor engineers, and set standards for firmware and platform validation.
Requirements
Must-have technical skills and experience for effective contribution on day one.
- Strong Python programming skills and experience building reusable automation frameworks.
- Proficiency with one or more systems languages: C, C++, or Rust.
- Practical experience with firmware, embedded systems, SoC software, system boot, platform validation, or test automation.
- Familiarity with SoC boot flows (Boot ROM, firmware initialization, bootloaders, UEFI, OS boot).
- Experience validating across simulation, emulation, FPGA/prototyping, or post-silicon platforms.
- Comfortable with Linux, shell scripting, debugging tools, source control, and CI/CD systems.
- Proven ability to investigate cross-domain technical issues and deliver maintainable software solutions.
Nice-to-have experience that will accelerate impact:
- Experience with Arm-based SoCs, FVPs, RTL simulation, hardware emulation, FPGA platforms, or silicon bring-up.
- Familiarity with Boot ROM, Trusted Firmware-A, U-Boot, EDK II/UEFI, Linux kernel or bootloader internals.
- Knowledge of secure boot, device trees, ACPI, platform security, or security firmware.
- Experience with test frameworks (Pytest, Robot Framework), container-based testing, remote lab management, or distributed test execution.
- Experience with hardware interfaces and debug tools (JTAG, serial consoles, BMC, Redfish, IPMI).
Education Requirements
Bachelor's or Master’s degree in Computer Science, Electronics, Computer Engineering, or a related field, or equivalent practical experience.
About the Company
Company: Arm
Headquarters: Cambridge, United Kingdom
ARM is a global leader in semiconductor and software design, driving innovation in computing technology. The company specializes in designing processors and systems that provide the essential building blocks for electronic devices. ARM's architecture is widely used in smartphones, servers, and IoT devices, and its collaborative culture fosters bold thinking, diversity, and high-impact benefits for its talented workforce.
