Careers at WEKA
WEKA is growing and looking for driven and professional individuals who are eager to join us on our mission to solve the world’s biggest storage problems.
Senior Software Engineer, Filesystem
About The Position
Weka is a fast-growing startup developing the world’s fastest and most scalable data platform. WEKA lives anywhere the data does, whether on-premises, in the public cloud, or in a hybrid environment, and was built from the ground up to meet the diverse needs of modern data workloads.
At Weka, we are constantly putting our technology and ourselves to the test to solve today’s biggest data storage challenges while enabling heightened productivity.
We currently enable Fortune500 companies to push the boundaries of what’s possible, achieve breakthrough innovations, and solve previously unsolvable problems. Want to join the ride?
What makes a Wekkie?
If you have a positive “can-do” attitude, a relentless curiosity about all things tech, and you thrive on pushing limits and breaking barriers, you’ll fit right in at Weka!
We’re 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, we’re 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 Weka solution – our customers’ data.
As a Senior Software Engineer, you’ll:
- 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++
- A thorough understanding of concurrency, inter-process communication, threading models, and synchronization concepts, including significant experience with complex multithreaded software design
- Experience with lockless synchronization techniques
- 5+ years of hands-on experience with Linux development and debugging, along with a broad knowledge and understanding of Linux internals
- Experience identifying, reproducing, and resolving complex software defects, including root cause isolation, tracing through large source code bases, and implementing long-term fixes as well as short-term workarounds
- A strong team-oriented spirit and a highly motivated individual skilled in coordination and communication
- A positive, creative, and open-minded problem solver.
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