Location: Bangalore, India
Experience: 4-8 Relevant Years
Employment Type: Full-Time
Job Summary
We are looking for a highly skilled Storage Device Driver Programmer with expertise in Linux kernel development, storage protocols, and device driver programming. The candidate will be responsible for developing, debugging, optimizing, and maintaining Linux storage drivers for NVMe devices, File System, RAID controllers and custom storage hardware.
The role requires a deep understanding of Linux block layer architecture, I/O scheduling, storage protocols, DMA operations, and performance optimization.
Key Responsibilities
Driver Development
- Design, develop, and maintain Linux storage device drivers.
- Develop drivers for:
- NVMe SSDs
- RAID Controllers
- PCIe Storage Devices
- Custom Storage Hardware
- Integrate storage devices with Linux kernel block layer.
Kernel Development
- Work on Linux kernel subsystems including:
- Block Layer
- SCSI Subsystem
- NVMe Framework
- Device Model
- DMA Engine
- Interrupt Handling
- Port drivers across different Linux kernel versions.
Performance Optimization
- Analyze and optimize:
- IOPS
- Throughput
- Latency
- Queue Depth Utilization
- Tune storage stack for high-performance workloads.
Debugging & Validation
- Investigate kernel crashes, memory leaks, and I/O failures.
- Perform root cause analysis using:
- ftrace
- perf
- blktrace
- crash
- kgdb
- dmesg
- Develop automated test frameworks for driver validation.
Collaboration
- Work closely with hardware, firmware, validation, and system software teams.
- Participate in architecture reviews and code reviews.
Required Technical Skills
Programming
- Strong expertise in:
- C
- Linux System Programming
- Shell Scripting
Linux Kernel
- Linux Kernel Architecture
- Kernel Module Development
- Device Driver Framework
- Memory Management
- Synchronization Mechanisms
- Spinlocks
- Mutexes
- Atomic Operations
- RCU
Storage Technologies
- NVMe
- SATA
- SAS
- SCSI
- RAID
- AHCI
- UFS
- eMMC
Block Layer Knowledge
- Linux Block I/O Stack
- BIO Structures
- Request Queues
- Multi-Queue Block Layer (blk-mq)
- I/O Scheduling
- Scatter-Gather DMA
Hardware Interfaces
- PCIe
- DMA Engines
- Interrupt Handling
- MSI/MSI-X
- Legacy Interrupts
Preferred Qualifications
Advanced Storage Knowledge
- NVMe Driver Development
- NVMe over Fabrics (NVMe-oF)
- Storage Virtualization
- Zoned Storage Devices
- Persistent Memory (PMEM)
Performance Tools
- fio
- iostat
- blktrace
- perf
Cloud & Datacentre
- Storage Systems
- SAN/NAS
- Ceph
- Distributed Storage
- Virtualization Platforms
Educational Qualifications
- Bachelor’s or Master’s Degree in:
- Computer Science
- Electronics & Communication
- Information Technology
- Related Discipline