As a data path developer, you will take part in the development of a cutting-edge, high-performance, distributed, scalable storage product. Your challenge will be to implement sophisticated storage algorithms in a distributed manner, creating a design that scales to hundreds of nodes, is resilient to failure, and even maintains consistent high performance during failures. To achieve these goals, you must have experience in software development and in building high-performance distributed systems. We seek top-notch people who can design their own features and not just implement them. If you have implemented Linux hacking, storage systems, high-performance systems, distributed computing, or distributed operating systems (and gotten pleasure out of doing so), you will most likely enjoy our challenges.
The successful candidate will join a team that develops in C, Python, and D. D is a relatively new language (http://dlang.org/) that combines system-level programming with modern features such as real object-oriented programming and garbage collection. Knowing D is an advantage but not mandatory. Writing in D puts you at the forefront of software development technology.
Intensive experience of at least 3 years of C or C++ system-level programming related to high-performance systems, distributed systems, parallel computing, storage, or networking is required. We are seeking people who understand software development under the hood and are familiar with how CPU caching, multi-threading, context switching, and other architectural aspects affect software performance.
The role requires that you be able to architect a feature and come up with the right design.