> Markdown version of [/jobs/ext/1247217-bmc-firmware-engineer](https://www.wearedevelopers.com/jobs/ext/1247217-bmc-firmware-engineer). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # BMC Firmware Engineer - **Company:** Focus LLC - **Location:** Nashville, TN, United States - **Experience:** Experienced - **Contract:** Permanent contract - **Skills:** Board Bringup, Agile Methodology, Intelligent Platform Management Interface, C++ (Programming Language), Communications Protocols, Computer Programming, Computer Engineering, Data Centers, Software Debugging, Linux, Embedded C, Linux on Embedded Systems, Event Logging, Firmware, Hardware Design, Python (Programming Language), Kernel-Based Virtual Machine, Transport Layer, PCI Express, System on a Chip, Systems Integration, Universal Asynchronous Receiver/Transmitter, Scripting, Serial Peripheral Interface, Hardware Infrastructure - **Published:** July 12, 2026 - **Apply:** https://www.indeed.com/viewjob?jk=a20d3623285fe62d ## About the Role * 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, * 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. * Physical Requirements: (Example of requirement) * Ability to access and navigate various departments within the organization's facilities. ## Description 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., * 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. ## Related Videos - [Into the hive of eBPF!](https://www.wearedevelopers.com/videos/1199-into-the-hive-of-ebpf) - [JavaScript? No. Java Scripts! - Scripting with Java](https://www.wearedevelopers.com/videos/2094-javascript-no-java-scripts-scripting-with-java) - [Docker network without Docker](https://www.wearedevelopers.com/videos/1418-docker-network-without-docker) - [Playing Pong on a shoulder press machine](https://www.wearedevelopers.com/videos/100140-playing-pong-on-a-shoulder-press-machine) - [Gentle Introduction to eBPF](https://www.wearedevelopers.com/videos/789-gentle-introduction-to-ebpf) - [A Hitchhikers Guide to Container Security - Automotive Edition 2024](https://www.wearedevelopers.com/videos/1119-a-hitchhikers-guide-to-container-security-automotive-edition-2024) ## Related Articles - [Everything a Developer Needs to Know About MCP with Neo4j](https://www.wearedevelopers.com/magazine/604-everything-a-developer-needs-to-know-about-mcp-with-neo4j) - [Highest Paying Tech Companies for Developers](https://www.wearedevelopers.com/magazine/220-highest-paying-tech-companies-for-developers) - [The Best Software Developer Blogs to Read](https://www.wearedevelopers.com/magazine/156-the-best-software-developer-blogs-to-read) - [From developer to manager – what does it take to become an engineering manager?](https://www.wearedevelopers.com/magazine/42-from-developer-to-manager-what-does-it-take-to-become-an-engineering-manager) - [The Best X (Twitter) Accounts for Developers](https://www.wearedevelopers.com/magazine/294-the-best-x-twitter-accounts-for-developers) - [Why Upskilling And Reskilling is Important For Developers](https://www.wearedevelopers.com/magazine/428-why-upskilling-and-reskilling-is-important-for-developers)