Staff Software Engineer

DDNPune, MaharashtraOn-siteFull-timeStaff, 8–12 yearsListed 1 hour ago

Apply now

About this role

We are seeking a Staff Software Engineer for the ongoing development and evolution of a high-performance distributed file system. The ideal candidate will possess deep system software development expertise, strong technical leadership capabilities, excellent communication skills, and a proven ability to drive complex projects independently. This role requires close collaboration with globally distributed teams to quickly learn DDN products, technologies, deployment architectures, and operational workflows. The candidate will also contribute to the integration of monitoring, health-check, observability, and alerting capabilities across the product ecosystem.
 
## Key Responsibilities

- Design, develop, and optimize the core I/O infrastructure that underpins the distributed file system, including memory management, threading models, task scheduling, resource allocation, and execution frameworks.
- Architect and implement scalable concurrency and synchronization mechanisms to support extreme performance, low latency, and high throughput under demanding production workloads.
- Design and enhance Quality of Service (QoS), fairness, prioritization, and resource management capabilities to ensure predictable performance across diverse workloads and tenants.
- Integrate and optimize SPDK (Storage Performance Development Kit) within the I/O Core to leverage direct hardware access, minimize software overhead, and maximize storage efficiency.
- Design and implement distributed locking mechanisms and concurrency models to ensure consistency, fault tolerance, and scalability across distributed system components.
- Design and develop system software in C/C++ under tight deadlines with minimal supervision.
- Lead the design and implementation of scalable, high-performance storage and file system infrastructure.
- Define, document, and communicate technical architectures, design decisions, and implementation strategies.
- Own the full software development lifecycle from design and development through testing, deployment, and production support.
- Drive technical reviews and provide architectural guidance throughout the development process.
- Architect, troubleshoot, and optimize system-level components, particularly runtime systems, file systems, storage subsystems, and performance-critical infrastructure.
- Conduct research-driven technical investigations, document findings, evaluate alternatives, and develop production-ready solutions.
- Mentor and guide engineers across the organization, promoting engineering excellence and best practices.
- Partner with cross-functional teams to ensure successful product deployment and timely resolution of production issues.
- Influence technical strategy, roadmap planning, and long-term architectural direction.

Requirements

- Accountable, highly motivated, and capable of leading through influence and technical expertise.
- 10+ years of experience in system software development and complex problem resolution.
- Expert-level proficiency in C/C++.
- Extensive Linux development and deployment experience, including file system development.
- Deep understanding of operating system principles, kernel architecture, and system internals.
- Strong experience with open-source development toolchains including GCC, GDB, G++, and Git.
- Experience designing and developing parallel and concurrent software systems.
- Excellent verbal and written communication skills in English.
- Experience with user-space I/O frameworks such as SPDK.
- Experience developing high-performance storage systems with a focus on latency, throughput, scalability, and resource efficiency.
- Proven ability to lead technical initiatives and mentor engineering teams.

Nice to Have

- Strong understanding of RDMA networking concepts, including libfabric, verbs, zero-copy technologies, and high-performance interconnects.
- Experience with performance analysis, profiling, benchmarking, and optimization.
- Experience working in Agile/Scrum development environments.
- Experience with complex network programming, including TCP/IP and RDMA-based communication.
- Experience building large-scale distributed storage, distributed file systems, or data management systems.
- Experience with distributed coordination, locking, consensus, or metadata management systems.
- Familiarity with cloud-native infrastructure, observability frameworks, and large-scale production deployments.