Highly technical programming position emphasizing multi-threaded and multi-component runtime systems designed for modularization of complex code bases.
You will work as part of the Framework team, whose responsibilities are to build and maintain a system for integration of advanced algorithms into an operational whole. In addition to writing code, you will be responsible to do outreach with the algorithm developers, help them understand the integration system, work with them in a pair programming context where needed, and to be an aggressive evangelist for the highest quality of coding practices in the broader community. This evangelism will include both the manner in which our own internal tools and systems are used, as well as more generic good coding practices.
Extensive programming experience a must
Extensive experience with C++ a must
Unusual level of familiarity with multi-threaded systems and intra-thread IPC systems required.
Familiarity with software build and development tools such as, CMake, Git etc. required.
Experience with message passing architectures (e.g. Zero-MQ) is highly desirable.
Experience with existing modularization frameworks (e.g. ROS) is desirable.
Experience with professional coding practices a must. This means code review, incremental and unit testing, Agile/Scrum type processes, etc.
Good communication skills required. (We mean it, you will be talking to a lot of people, they will not only need to understand you, you will need to be able to sell your ideas and see to it that they are adopted.)
BA/BS in Computer Science or comparable field strongly preferred, MA/MS in Computer Science preferred. However, overwhelming weight will be given to experience and prior accomplishments.