Why Work at Lenovo
Description and Requirements
We are looking for passionate and driven firmware developers who are willing to learn and want to make an impact in a fast-paced global technology environment. Our Infrastructure Solutions Group is currently seeking a Switch Firmware Developer to join a Firmware Development Team.
Job Description: As a Switch Firmware Engineer, you will be primarily responsible for developing, maintaining, and testing PCIe switch firmware for our next-generation server and storage systems. Your primary focus will be on the development of firmware for x86 platforms, ensuring high-quality, reliable, and secure solutions. In this role, you will also have the opportunity to support the UEFI firmware development for THINK system servers.
Key Responsibilities:
- Design, develop, and maintain PCIe Switch firmware for servers.
- Collaborate with cross-functional, cross organizational and external vendor teams to integrate PCIe switch firmware with system software and hardware.
- Conduct thorough testing and debugging of firmware to ensure high-quality and reliable solutions.
- Stay abreast of industry trends and advancements in UEFI firmware, GPU technologies and accelerators.
- Contribute to the improvement of our firmware development processes and tools.
Basic Qualifications:
- BS degree in Computer Science, Software Engineering or Computer Engineering
- 6 years' minimum experience in Embedded Firmware/Software Development
- Knowledge of Network topologies
- Experience with the PCIe architecture, testing and integration
- Experience with firmware programming and debugging
- Previous experience with hardware and firmware bringup
- Proficient with Git source version control system.
- Proficient with Build and Automation process
- Batch and Bash scripting capability
- Experience with translating schematics to source code
- Experience integrating source code from external vendors
- At least 1 year experience with armcc DS-5 or similar
Preferred Qualifications:
- At least 2 years experience with UEFI (Unified Extensible Firmware Interface) or BIOS
- At least 2 experience with x86 and ARM processors
- Experience with Windows and Linux operating systems
- Experience with OpenEDK
- Intimate knowledge of software development processes expected
- Knowledgeable of Agile methodologies and tools.
- Strong analytical and debug methodology skills expected
- Proficient at recognizing complex problems related to functional objectives.
- Applies creativity and judgment to developmental work on different projects within the business environment
- Analyze situations and implement solutions, or develop new system elements, procedures, or processes