Staff Software Engineer – FUSE Developer
Job Description: Maintain, extend, and improve our FUSE module, and upstream changes as approporiate.Design and develop in C/C++ under tight deadlines with minimal supervisionDefine and articulate technical designs with the appropriate detailsFull application development from design to development to testing to deploymentParticipate in technical reviews throughout the course of developmentArchitecture and troubleshooting of system level components, especially the file system and related storage system components.Undertake research based technical tasks: Define research approach, document results and Derive conclusions. Should be able to design a solution based on the research conductedMentor junior developersSupport product deployment and production defect resolution in a timely mannerRequirements: 8+ years' experience system software development and complex problem resolution.Expert knowledge of the following programming languages: C/C++Excellent Linux development and deployment skills including but not limited to file system development.Full understanding of OS principles and architecture of Kernel procedures.Broad range of experience with open-source development toolchain like gcc, gdb, g++, gitExperience designing and developing parallel programGood communication skills (verbal and written English).Understanding of Linux Kernel File SystemsKnowledge of user space IO frameworks such as Fuse, SPDKNice to have: Strong understanding of RDMA network principles, libfabric, zero-copy, verbs, etc.Knowledge of performance engineering.Experience working with Scrum AgileExperience of complex network programming, TCP/IP or RDMA.