Innogrit is aworld-leading storage company. We are looking for a Senior Firmware Engineer to design, develop, debug, and validate firmware for high-performance storage and embedded systems. The ideal candidate has strong hands-on firmware development experience, preferably with SSDs, NVMe, NAND flash, PCIe, or other storage-class devices. Experience developing firmware for embedded systems, hardware devices, or SoC-based platforms is highly desirable.
This role requires strong low-level programming skills, solid understanding of hardware/software interaction, and the ability to debug complex issues across firmware, hardware, and system software.
Key Responsibilities
- Design, implement, debug, and optimize firmware for SSDs, memory subsystems, and storage-class devices.
- Develop firmware modules for storage controllers, device initialization, command processing, error handling, power management, and performance optimization.
- Work with SSD-related technologies such as NVMe, PCIe/CXL, NAND flash, FTL, wear leveling, garbage collection, bad block management, and error recovery.
- Bring up new hardware platforms and support firmware integration with ASIC, FPGA, controller, or board-level designs.
- Debug firmware issues using tools such as JTAG, logic analyzers, protocol analyzers, oscilloscopes, crash dumps, logs, and trace tools.
- Collaborate with hardware, validation, software, ASIC, and manufacturing teams to resolve cross-functional issues.
- Develop and maintain firmware test utilities, diagnostics, and validation support tools.
- Analyze performance, reliability, and failure data to improve firmware robustness and product quality.
- Support product qualification, customer issue reproduction, root-cause analysis, and firmware release activities.
- Create technical documentation, design specifications, test plans, and debug reports.
Required Qualifications
- Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, Computer Science, or a related field.
- 5+ years of firmware or embedded software development experience.
- Strong programming skills in C and/or C++.
- Experience with low-level firmware development, device drivers, boot code, real-time systems, or hardware control software.
- Good understanding of embedded system architecture, memory-mapped registers, interrupts, DMA, timers, and hardware/software interfaces.
- Experience debugging firmware on real hardware platforms.
- Strong problem-solving skills and ability to analyze complex system-level issues.
- Familiarity with scripting languages such as Python, Bash, or Perl for automation and debug support.
- Ability to work independently and communicate clearly with cross-functional engineering teams.
Preferred Qualifications
- Experience with NVMe, PCIe/CXL, NAND flash, SATA, eMMC, UFS, or other storage technologies.
- Knowledge of SSD architecture, including FTL, garbage collection, wear leveling, bad block management, ECC, power-loss protection, and thermal management.
- Experience with embedded RTOS or bare-metal firmware development.
- Experience with ARM, RISC-V, or other embedded processor architectures.
- Experience using JTAG, protocol analyzers, logic analyzers, oscilloscopes, and firmware trace tools.
- Experience with Linux device drivers, kernel debugging, or user-space test tools.
- Experience with product bring-up, validation, qualification, and customer issue debugging.
- Knowledge of security, secure boot, firmware update, or device lifecycle management is a plus.