Network Device Driver Programmer

Location: Bangalore, India
Experience: 4-8 Relevant Years
Employment Type: Full-Time

Job Summary

We are seeking a skilled Network Device Driver Programmer with strong expertise in Linux kernel development, network protocols, and device driver programming. The candidate will be responsible for developing, debugging, optimizing, and maintaining network interface drivers and related kernel components for Ethernet and custom networking hardware.

Key Responsibilities

  • Design, develop, and maintain Linux network device drivers.
  • Implement and enhance drivers for Ethernet, Wi-Fi, PCIe, USB, or custom networking hardware.
  • Work with Linux kernel networking subsystems including:
    • Netdevice framework
    • NAPI
    • Socket layer
    • DMA operations
    • Interrupt handling
  • Analyse and optimize network performance, latency, and throughput.
  • Debug kernel-level issues using tools such as:
    • ftrace
    • perf
    • tcpdump
    • Wireshark
    • kgdb
    • crash
  • Port drivers across Linux kernel versions and embedded Linux distributions.
  • Collaborate with hardware, firmware, and system software teams.
  • Develop test plans and automate driver validation.
  • Contribute to code reviews and maintain coding standards.

Required Skills

Technical Skills

  • Strong programming skills in C.
  • Deep understanding of:
    • Linux Kernel Architecture
    • Device Driver Development
    • Network Stack Internals
    • Open vSwitch
    • Open Flow
  • Experience with:
    • Ethernet protocols
    • TCP/IP
    • VLAN
    • IPv4/IPv6
    • UDP/TCP
  • Knowledge of:
    • PCIe
    • DMA
    • Interrupts (MSI/MSI-X)
    • Memory management
  • Familiarity with:
    • Kernel build system (Kbuild)
    • Git version control
    • Cross-compilation environments

Linux Networking Knowledge

  • Linux networking subsystem
  • Network packet flow
  • NAPI polling mechanism
  • Traffic shaping/QoS
  • Netfilter/IPTables/eBPF (preferred)

Preferred Qualifications

  • Knowledge of ARM, ARM64, x86 architectures.
  • Experience with DPDK, XDP, or SR-IOV.
  • Familiarity with Wi-Fi (802.11) driver development.
  • Understanding of virtualization technologies (KVM, Docker).

Educational Qualification

  • Bachelor’s or Master’s degree in:
    • Computer Science
    • Electronics & Communication
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