> Markdown version of [/jobs/ext/2849688-firmware-engineer](https://www.wearedevelopers.com/jobs/ext/2849688-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). --- # Firmware Engineer - **Company:** SILICON MOTION INC. - **Location:** Rancho Cordova, CA, United States - **Experience:** Expert - **Salary:** $150,000.0 - $210,000.0 - **Contract:** Permanent contract - **Skills:** C++ (Programming Language), Communications Protocols, Protocol Stack, Computer Programming, Computer Engineering, Data Transmissions, Data Structures, Software Debugging, Linux, Electronic Data Interchange (EDI), Serial ATA, Firmware, Flash Memory, Interoperability, Multi-protocol Systems, Joint Test Action (IEEE Standards), PCI Express, Queue Management Systems, Data Streaming, Git, Information Technology, Software Version Control, Nvme - **Published:** September 11, 2026 - **Apply:** https://www.thejobnetwork.com/job/fe440629-d2f4-4a1c-96c0-cb34fb3bb780/senior-firmware-engineer ## About the Role * Master's degree in Electrical Engineering, Computer Engineering, Computer Science, or related fields. * At least 3 years work experience in each of the following: * Software/firmware applications engineering * Experience in SSD controller/firmware architecture * Strong experience in C/C++ programming and data structure * Hands on experience with JTAG/ICE debuggers * Experience with version control software like Git. * Competent to work independently as well as in a small team collaboration environment. * Must be willing to learn fast and execute as a team player. * Good oral, written and presentation skills for communication and documentation. * Ability to work independently with a minimum of day-to-day supervision. Preferred Qualifications: * The ability to operate logic analyzer, oscilloscope and bus protocol analyzer is valuable. * Familiar with SATA/PCIe (NVMe) protocols * Familiar with NAND flash protocols * Linux system debug experience. * Fluent in reading and writing Mandarin preferred. ## Description Protocol Stack Design and Maintenance * Design and maintain the NVMe protocol stack, including Admin and I/O command processing, and Submission/Completion Queue management. * Ensure full compliance with the latest NVMe specifications and PCIe Gen5 protocol requirements. * Design and implement SMBus and I3C communication protocols, ensuring reliable and accurate data exchange with the host controller. Command Processing and Flow Control * Implement NVMe command parsing, data transfer mechanisms, and completion flows, supporting multi-namespace operations. * Implement SMBus/I3C read/write commands and data flow, including status monitoring, temperature/voltage reporting, and control command handling. Error Reporting and Recovery * Implement proper status code reporting, Asynchronous Event Notification (AEN), and error recovery flows to ensure host compatibility. * Handle timeout, abort, and reset scenarios to maintain system stability and minimize host impact. * Design SMBus/I3C error detection and retry mechanisms to prevent transmission errors from causing system failures. Compliance and Interoperability * Verify compatibility with industry-standard NVMe compliance tools and host platforms. * Validate SMBus and I3C communication against JEDEC/MIPI specifications to ensure broad interoperability with different host systems and controllers. Debug and Validation * Capture and analyze PCIe/NVMe transactions using protocol analyzers, logic analyzers, and firmware logs. * Monitor SMBus/I3C transfers, analyze timing and error conditions, and ensure firmware implementation is stable and reliable. * Collaborate with validation teams to execute compliance, stress, and corner-case tests, including hot-plug, power management, error injection, and multi-protocol concurrency tests. * Provide root-cause analysis and implement fixes for protocol-related issues found during validation or in customer systems. ## Related Videos - [Software stack under and over the hood of the fastest accelerating car in the world](https://www.wearedevelopers.com/videos/221-software-stack-under-and-over-the-hood-of-the-fastest-accelerating-car-in-the-world) - [Docker network without Docker](https://www.wearedevelopers.com/videos/1418-docker-network-without-docker) - [How a Small Team Shrank a Microsoft Monorepo by 94%](https://www.wearedevelopers.com/videos/1236-how-a-small-team-shrank-a-microsoft-monorepo-by-94) - [More efficient software for more efficient microchips](https://www.wearedevelopers.com/videos/1164-more-efficient-software-for-more-efficient-microchips) - [Docker exec without Docker](https://www.wearedevelopers.com/videos/1094-docker-exec-without-docker) - [Git for Code Reviews](https://www.wearedevelopers.com/videos/429-git-for-code-reviews) ## Related Articles - [How software is steering vehicle technology](https://www.wearedevelopers.com/magazine/515-how-software-is-steering-vehicle-technology) - [What is Software Engineering?](https://www.wearedevelopers.com/magazine/289-what-is-software-engineering) - [Software Engineer Career: Things You Should Know](https://www.wearedevelopers.com/magazine/143-software-engineer-career-things-you-should-know) - [Highest Paying Tech Companies for Developers](https://www.wearedevelopers.com/magazine/220-highest-paying-tech-companies-for-developers) - [How We Built a Worry-Free System That Runs for 10+ Years – And What We’d Do Again](https://www.wearedevelopers.com/magazine/751-how-we-built-a-worry-free-system-that-runs-for-10-years-and-what-we-d-do-again) - [Is Software Engineering Hard?](https://www.wearedevelopers.com/magazine/448-is-software-engineering-hard)