If you have a positive can-do attitude, a relentless curiosity about all things tech, and you thrive on pushing limits and breaking barriers, youll fit right
Were a super friendly bunch who support each other, promote best practices, and we always encourage collaboration and sharing ideas. Even on rainy days, our sunny spirits shine through. And as we grow, were inviting those who are like us to join in the fun!
What you’ll be doing:
The filesystem group is a high-powered team responsible for implementing algorithms at scales of 100s of PBs. The team also manages the core filesystem components, including blocks and metadata management, snapshots, RAID logic, object-store tiering, unique cloud disaster recovery features, and more. And most importantly, they skillfully handle the most delicate part of the solution our customers data.
As a Senior Software Engineer, youll:
Design and develop distributed file system components to support data management features such as snapshots, replication, tiering, and advanced data reduction algorithms;
Participate in the design, architecture, and implementation of next-generation storage architecture;
Assist in technically managing initial storage implementations including proofs-of-concept;
Diagnose bottlenecks and implement clean and performant solutions to achieve unbeatable performance;
Design algorithms and data structures to make sure customer data is safe and coherent across our solution in a wide variety of failure modes; and
Constantly revisit the architecture, algorithms, and methodologies to improve productivity, reliability, and maintainability.
Mastery of low-level and performant programming in C or C++/ Rust
A thorough understanding of concurrency, inter-process communication, threading models, and synchronization concepts, including significant experience with complex multithreaded software design
Experience identifying, reproducing, and resolving complex software defects, including root cause isolation, tracing through large source codebases, and implementing long-term fixes as well as short-term workarounds
5+ years of hands-on experience with Linux development and debugging, along with a broad knowledge and understanding of Linux internals
It’s nice if you have:
Experience in data-path design and development
Experience with development of highly-distributed systems
Deep familiarity with concepts and features from the storage industry, including snapshots, replication, transparent data migration, and data reduction techniques
Experience with ZFS, XFS, or other file systems or with enterprise storage solutions
Experience working with the Linux filesystem community
Contribution, upstreaming, or maintaining of filesystem code
Experience playing a significant role in the implementation of a concurrent, long-running performant server