Senior Staff Software Engineer, Distributed Filesystem
Job Description
About Druva
Druva is the resilience foundation for the AI enterprise, helping organizations secure and recover from connected risk across data, cyber, identity, and AI. The Resilience Cloud is a fully managed, cloud-native SaaS platform that delivers air-gapped and immutable protection across cloud, SaaS, on-premises, endpoint, and edge environments. Powered by Dru MetaGraph, Druva’s graph-powered intelligence layer, the platform connects critical business context so customers can understand risk, respond faster, recover cleanly, and govern data with greater confidence.
Trusted by nearly 7,500 customers, including 75 of the Fortune 500, Druva helps safeguard the critical information and systems businesses depend on in an increasingly connected world.
Visit druva.com and follow us on LinkedIn, X and Facebook.
The Foundation team at Druva is responsible for designing a highly performant and scalable cloud file system on the Druva cloud in AWS. This file system is used to back up billions of files per day, translating to millions of metadata requests per second across regions. To build this petabyte-scale, distributed, services-oriented cloud file system, various key concepts like file system metadata, versioning, and eventual consistency are used along with leveraging various AWS services like S3, DDB, and Kinesis. A purpose-built key-value store is used for managing these metadata requests. While the core file storage engine provides the backup storage for all the Druva products, allied components like the indexing engine, key-value store, and big data pipeline provide scalable search, analytics, and compliance services. The team diligently keeps track of newer services, storage tiers, and various aspects of existing AWS services to take advantage of the continuous evolution of services and use them effectively in the background.
As a Sr. Software Engineer in the filesystem team, you will be providing technical ownership to create high-quality software by owning the design and implementation of features within the filesystem. This role will require excellent communication skills as you will collaborate with architects and other senior engineers to refine requirements, and other product owners to drive features to completion with good quality.
Some of the key areas the team is working on
• Improving resiliency of the filesystem with periodic incremental consistency checks, both for petabytes of metadata and hundreds of petabytes of data residing in the cloud. Metadata versioning and change tracking.
• Third-party secondary storage appliance integration for data centre data protection.
• Extend the filesystem to store a variety of workloads beyond files/folders, e.g., emails and messages
• Optimise the filesystem for cost using strategies and algorithms to reduce cloud cost (eg. leveraging cheaper cloud storage tiers and reducing IO requests)
• Develop tools that help debug production issues more efficiently
Key Skill
• 6+ years of experience, preferably in a product company with exposure to storage architectures.
• Strong demonstrable experience in systems programming, especially in multithreading, synchronization, fault tolerance and data consistency at scale.
• Hands-on experience in the design and development of complex products.
• Extensive hands-on experience in Go/Python/C/C++/Java on Unix/Linux platforms.
A strong understanding of complex concepts related to computer architecture, data structures, algorithms, design concepts, and programming practices.
• Experience in working with SoA (Service-oriented Architecture), especially in the service’s backend.
Desirable Skills:
• Excellent written and verbal communication skills
• Experience in Cloud Technologies (preferably AWS) will be advantageous
• Working knowledge of Docker and Kubernetes will be an advantage
• Working knowledge of storage and file systems, including file system consistency checks.
• Hands-on experience using generative AI for codegen
Role and Responsibilities:
• The Sr. Software Engineer's role is to be the technical owner in building enterprise-grade, scalable, performant systems which deliver the required functionality
• Should be able to design and implement sufficiently large and complex features and/or architectural improvements to the product.
• Suggest and propose solutions to complex design problems.
• Identify areas of engineering improvements to the product and work with product architects and the team to address them.
• Should be able to technically guide junior engineers with feature design and implementation.
• Review the design and implementation done by junior engineers.
• Should be able to independently handle complex escalations and guide others as required.
• Be able to write technical blogs and make technical presentations in internal and external forums
Qualification
• B.Tech / B.E / M.E./ M.Tech (Computer Science) or equivalent
Requirements
Department: Foundation Technology