Overview
Skills
Job Details
Maxonic maintains a close and long-term relationship with our direct client. In support of their needs, we are looking for a BMC Firmware Engineer
Job Description:
Job Title: BMC Firmware Engineer
Job Type: Fulltime
Job Location: Fremont, CA or Nashville, TN
Work Schedule: Onsite
Salary: $00/Yearly
The BMC (Baseboard Management Controller) Firmware Engineer is responsible for the design, development, and debugging of embedded firmware for servers and data center platforms. This role focuses on enabling independent, out-of-band management capabilities, ensuring systems can be monitored and controlled remotely even when the host operating system is offline.
This position is part of the Engineering Services team, which works across departments to support the engineering and operation teams with technical expertise in electronics, operational software, and systems integration.
Responsibilities:
- Design, develop, and maintain BMC firmware solutions using embedded C and C++ in a Linux based environment.
- Implement industry specifications and protocols such as OpenBMC, Redfish, IPMI, and other Distributed Management Task Force (DMTF) standards.
- Develop firmware to interface with server hardware components, including sensors (voltage, temperature, fan speed), power supplies, and peripherals, using protocols such as I C, SPI, and UART.
- Implement key BMC features including remote monitoring, power management, event logging (System Event Log/SEL), and remote keyboard-video-mouse (KVM) access.
- Collaborate with hardware design and platform architecture teams to ensure proper BMC integration during hardware bring-up and validation.
- Maintain security measures for BMC access, including user authentication, secure firmware updates, and vulnerability prevention.
- Use debugging tools and methodologies to diagnose and resolve system-level issues related to BMC and hardware interaction.
- Prepare and maintain technical documentation, including design specifications, test plans, and release notes.
- Provide guidance to junior engineers and take ownership of small to mid-sized projects.
Qualifications:
- Proficiency in C and C++ programming for embedded systems.
- Hands-on experience with embedded Linux and OpenBMC framework.
- Strong understanding of server hardware architecture and communication protocols (I C, SPI, UART, PCIe).
- Ability to troubleshoot and debug complex system-level interactions.
- Effective communication skills for cross-functional collaboration.
- Ability to work independently on most assignments and provide technical leadership on smaller projects
- Preferred qualifications:
- Familiarity with DMTF standards such as Redfish, MCTP (Management Component Transport Protocol), PLDM (Platform Level Data Model), and SPDM (Security Protocol and Data Model).
- Experience with System-on-a-Chip (SoC) architectures, particularly ARM-based systems.
- Knowledge of scripting languages (e.g., Python, Shell) for automation and testing.
- Exposure to Agile development methodologies.
- Understanding firmware security principles.
- Bachelor s or Master s degree in Computer Engineering, Electrical Engineering, or a related
technical field. - 2 5 years of hands-on embedded firmware development experience, specifically with BMC
systems. - Demonstrated ability to lead tasks or small projects with limited supervision.
- Prolonged periods of sitting at a desk and working on a computer.
- Ability to access and navigate various departments within the organization s facilities.
About Maxonic:
Since 2002 Maxonic has been at the forefront of connecting candidate strengths to client challenges. Our award winning, dedicated team of recruiting professionals are specialized by technology, are great listeners, and will seek to find a position that meets the long-term career needs of our candidates. We take pride in the over 10,000 candidates that we have placed, and the repeat business that we earn from our satisfied clients.
Interested in Applying?
Please apply with your most current resume. Feel free to contact Saurav ( / ) for more details.