Storage Device Driver Programmer

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
Job Category: Engineering
Job Type: Full Time
Job Location: Bengaluru

Apply for this position

Maximum allowed file size is 5 MB. Allowed Type(s): .pdf