As a platform software developer, you will take part in the development of a cutting-edge, high-performance, distributed, scalable storage product. Your challenge will be to develop the glue layer between the distributed software and the underlying OS, network and SSD layers.
To achieve these goals, you must have experience in software development and in Linux based systems (User and Kernel space). You need to understand how to write scalable high performance low level code, in an efficient manner. You will also need to understand how underlying layers of standard Intel architecture function and how to get the most out of them.
We seek top-notch people who can design their own features and not just implement them. We need people who are enthusiastic about software and proud of the work they are doing.
If you have implemented network protocols, high-performance systems, Linux drivers, troubleshooted complex OS and Hardware issues (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. We are seeking people who understand software development under the hood and are familiar with how CPU caching, multi-threading, context switching, interrupt handling and other architectural aspects affect software performance. Familiarity with DPDK and SPDK is a plus.
- Experience C/C++ low level high performance code writing
- Being familiar with user space vs. kernel code writing
- Being familiar with Intel server architecture (NUMA, caching, interrupts, etc)
Experience in the Following Areas is an Advantage
- DPDK and SPDK
- Storage systems and SSDs
- Kernel driver experience
- Past experience with hardware interfaces