Description and Requirements
The Role:
We are seeking a BMC Firmware Developer to join our team. In this role, you will be responsible for designing, developing, and maintaining BMC firmware for Lenovo server platforms. As part of the role, this developer will work closely with the other Worldwide developers and architects for Lenovo server platforms.
We are looking for candidates who have experience in some (but not necessarily all) of the following technical areas.
Deep expertise in one or more domains is preferred over shallow knowledge across all areas.
Legacy / OpenBMC Platform Experience:
- Experience with Vertiv legacy BMC firmware and/or OpenBMC-based platforms
- Familiarity with OpenBMC architecture and implementation, including: D-Bus, phosphor services, systemd, Device Tree (DTS) configuration for BMC platforms
- Experience porting or maintaining firmware across legacy BMC and OpenBMC platforms
- Experience debugging boot and runtime issues using logs, traces
SoC & Low-level Hardware Knowledge:
- Familiarity with BMC SoC architectures (e.g., ASPEED AST25xx / AST26xx / AST27xx)
- Solid understanding of low-level hardware interfaces, including: I2C / I3C, SPI, UART, GPIO, USB
- Experience reading schematics and hardware design documents for bring-up and debug
BMC Core Features:
Management & Protocols
- Familiarity with server management standards, including: IPMI, Redfish, PLDM/MCTP, Firmware Update
- Experience with U-Boot, Linux kernel bring-up, and root filesystem integration
- Understanding of secure boot, PFR is a plug
Networking & Connectivity:
- Experience with BMC networking, including: Ethernet configuration, VLAN, IPv4/IPv6, DHCP/static IP
Platform & Power Management:
- Experience with Power control and sequencing, Sensor monitoring, Thermal management, Event / log handling (SEL, Redfish Events)
The detailed responsibilities:
- Bring-up, verification, develop, and debug of New Product Introduction (NPI) product
- Work with cross-functional teams to support product requirements for the products
- Contribute to all phases of the software development life-cycle
- Collaborate with the Project Manager to ensure timely task delivery, aligning with each project milestone
- Collaborate with the Project Engineering team to review product-related features, including but not limited to hardware design reviews, feature design, and issue clarification
- Write technical documentation, including specifications, API specifications, design documents, behavior block diagrams, user guides, etc.
- Conduct technical sharing sessions with the team.
- Maintain Lenovo sustaining projects and address the customer issues
What you bring:
- BS/MS degree in Computer Science, Computer Engineering, Electrical Engineering or related field, or equivalent practical experience
- Strong C/C++ debugging skills on embedded-systems
- Strong Web language skills
- Experience working with embedded processors, such as: ARM, Intel, AMD


