Job Summary:
As a passionate Firmware Engineer (Development & Verification), you will develop, validating and optimize low-level firmware for CPU, GPU, Data Fabric, HSIO, and designing verification solutions to ensure firmware quality throughout the SoC development lifecycle. You will contribute from pre-silicon development to post-silicon bring-up and validation.
This position is ideal for engineers who enjoy both firmware development and quality-driven verification.
Key Responsibilities:
- Responsible for firmware development and feature enablement in the Data Fabric/GPU/CPU /HSIO/ component, including design, documentation, unit testing and debug for pre and post silicon support.
- Work closely with architects and other IP leads to determine firmware scope and implementation details to meet firmware deliverables schedules and milestones
- Engage with various teams to provide debug support in the emulation, simulation and post-silicon environment
- Work with internal and external teams to ensure highest level of quality and satisfaction throughout firmware lifecycle.
- Must be well-organized, technically oriented, and a self-starter with a demonstrated ability to work collaboratively and coordinate activities with geographically distributed technical teams.
- Develop automated test cases for firmware sub-components
- Execute firmware test plans on wide range of pre-silicon platforms, capturing results
- Design, develop and maintain test frameworks towards improving efficiency of firmware verification.
- Support debug and triage of failures within test frameworks, and automated workflows.
- Stay up to date with emerging technologies and industry best practices.
- Desire to work and succeed on fast-paced and highly dynamic environments.
Qualifications:
Bachelor's or Master's degree (preferred) in Computer Science, Computer Engineering, Electrical Engineering, or equivalent with 1-5 years of experience
Preferred experience:
- Good understanding of firmware development cycle, integration and verification/validation for pre-si and post-si for SoC designs.
- Expertise in low-level C programming & debugging for embedded systems.
- Strong background in computer architecture with familiarity in memory interleaving, system memory maps and NUMA domain concepts.
- Ability to methodically root-cause complex failure mechanisms at the IP, subsystem and/or system level.
- Prior experience and/or exposure to testing platforms (Simulation and/or Emulation)
- Prior involvement in board, processor, or ASIC bring-up.
- Experience in hardware/software interfaces and debugging sophisticated issues in CPU and firmware using JTAG, source code debuggers and other tools.
- Experience with source control systems including git/gerrit
- Expert with software QA concepts, best practices, and procedures
- Comfortable with a wide range of scripting environments, such as: Python, Windows PowerShell, Linux, Bash, PHP.
- Experience reviewing verification requirements and test plans.
- Experience with software development tools such as Jama, GitHub and Jira.
- Strong problem-solving, analytical and troubleshooting skills.
- Excellent communication and collaboration abilities.
- Bachelor's degree in Software/Computer Engineering, Computer Science or other relevant fields