AMD Poland ODC is looking for a software/firmware developer to join the BIOS team and help develop pre-OS BIOS firmware and silicon initialization code. As part of the role, the BIOS engineer will work closely with other firmware developers and architects in designing and implementing X86 and/or ARM firmware that spans pre- and post-silicon for all AMD business units.
Passionate about firmware development on bare-metal or close to bare-metal environment. Need strong problem solving skills, with a collaborative can-do attitude. Strong knowledge of computer architecture and low-level programming in C.
- Developing, porting, debugging, and documenting core firmware support for various DRAM technologies including DDR4, LPDDR4/4x, DDR5, LPDDR5/5x RDIMM, LRDIMM, 3DS, etc., on AMD Desktop, Mobile, and Enterprise SoCs.
- Supporting emulation/simulation teams during pre-silicon phase to validate memory hardware and firmware.
- Working closely with hardware validation teams to optimize memory signal integrity, achieve highest possible performance and robust feature support.
- Assist memory validation teams with debug from initial power-on to achieve full functionality of all features in a timely manner.
- Developing custom memory firmware features for internal and external customers.
- Engage with technical leads to understand firmware scope and work on implementation to meet schedules and milestones.
- 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.
- Desire to work and succeed on fast-paced and highly dynamic environments
Who we're looking for?
- 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.
- Excellent written and verbal communication and presentation skills.
- 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