Software Engineer
Senior (L3) systems engineer in DDN's Pune office designing, developing, and optimizing UBLK-based userspace block devices on Linux — working close to the kernel, io_uring, and storage subsystems to build high-performance, low-latency storage. Requires strong C and deep Linux internals (8+ years).
- Compensation
- Not disclosed
- Location
- Pune, IN
- Work setup
- Not specified
- Seniority
- Not specified
- Employment
- Full time
- Experience
- 8+ years
- Category
- Software engineering
- Posted
Skills
Must have
- 8+ years of software development experience with strong C programming
- Solid experience with Linux internals
- Good understanding of the Linux block device subsystem
- Good understanding of io_uring
- Understanding of system calls, memory management, and concurrency
- Experience with userspace-kernel interaction (netlink, ioctl, sysfs)
- Strong debugging skills using gdb, perf, strace, ftrace, bpf
- Experience working in multithreaded and high-performance environments
- Familiarity with POSIX APIs and low-level I/O mechanisms
- Good understanding of data structures and algorithms
- Development experience in high availability clustering solutions
- Hands-on experience with UBLK, SPDK or other storage frameworks
- Strong problem-solving and analytical skills
Nice to have
- Prior experience contributing to Linux kernel or storage-related open source
- Knowledge of file systems (ext4, xfs, btrfs)
- Experience with virtualization or container storage (KVM, Docker, Kubernetes CSI)
- Working experience with RDMA, NVMe, NVMe-oF
- Experience in performance tuning on production systems
- Scripting experience (Python, Bash)
- Good communication skills for cross-team collaboration
- Ability to work independently on complex system-level problems
Full description
Software Engineer III
Department: Department
Location: Pune Office
Employment Type: FullTime
Job Summary :
We are looking for a skilled Software Engineer III to design, develop, and optimize userspace block devices on Linux. The role involves working close to the Linux kernel, io_uring, and storage subsystems to build high‑performance, reliable, and scalable storage solutions.
Roles and Responsibilities:
- Design, develop, and maintain UBLK-based userspace block devices on Linux
- Work with Linux block layer, io_uring, and kernel interfaces
- Implement high‑performance I/O paths with low latency and high throughput
- Debug and resolve issues across user space and kernel space
- Optimize storage performance, memory usage, and CPU utilization
- Collaborate with kernel, platform, and application teams on storage architecture
- Write clean, maintainable, and well-documented code
- Review code and contribute to design discussions and technical decisions
- Participate in performance benchmarking and regression analysis
- Guide and assist QA group with creating & executing the test cases.
- Provide insight into the system behaviour by analysing system logs & debugging software
Skills:
· Software development with strong C programming.
Candidate should have 8+years of experience.
· Solid experience with Linux internals
- Good understanding of:
- Linux block device subsystem
- io_uring
- System calls, memory management, and concurrency
- Experience with userspace–kernel interaction (netlink, ioctl, sysfs, etc.)
- Strong debugging skills using tools like:
- gdb, perf, strace, ftrace, bpf
- Experience working in multithreaded and high‑performance environments
- Familiarity with POSIX APIs and low‑level I/O mechanisms
- Good understanding of data structures and algorithms
- Hands-on experience with UBLK, SPDK or other storage frameworks