WEKA is architecting a new approach to the enterprise data stack built for the age of reasoning. As a Senior Software Engineer, you will design and develop distributed file system components and participate in the architecture of next-generation storage solutions while ensuring customer data safety and performance.
Responsibilities:
- 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
- Constantly revisit the architecture, algorithms, and methodologies to improve productivity, reliability, and maintainability
Requirements:
- 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
- 8+ years of hands-on experience with Linux development and debugging, along with a broad knowledge and understanding of Linux internals
- 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