The role involves developing and maintaining Linux kernel drivers and storage protocol stacks for a storage array, focusing on Fibre Channel, NVMe, and networking protocols, while debugging complex storage attachment issues and optimizing performance in a collaborative team environment.
Key Responsibilities
Develop and maintain Linux kernel drivers for storage and networking components such as Fibre Channel, NIC, and NVMe initiator stacks.
Debug and resolve complex storage attachment and driver issues for Linux and VMware environments.
Create and update compatibility documentation for Purity and related storage protocols.
Optimize Linux initiator behavior and storage protocol performance for Pure Storage FlashArray.
Maintain and enhance Fibre Channel SCSI FCP target driver and NIC drivers, including bug fixes and hardware support.
Contribute bug fixes and performance improvements to upstream Linux kernel code.
Analyze and debug difficult storage protocol and kernel system issues.
Evaluate and improve storage protocol stack implementations, including multipathing and link health management.
Requirements
Strong experience writing device drivers and or kernel development for Linux/Unix.
Minimum of 5 years of development experience in Linux/Unix kernel or device driver development, with typical candidates having around 10 years of experience.
Experience designing and implementing significant components in storage protocol stacks and storage systems.
Experience with storage protocols such as SCSI, FC-SCSI, iSCSI FCP, NVMe Fabrics (NVMe ROCE, NVMe TCP, NVMe FC).
Experience leading other engineers technically, mentoring junior engineers, and leading overall projects.
Demonstrated ability to deliver projects on time with high quality.
Experience with performance analysis and optimization for storage systems or protocols.
Experience with VMWare, including understanding of their initiator stack.
Experience writing Linux storage device drivers, including Fibre Channel, NVMe, ROCE, block, and multipath modules.