You are a professional software engineer with robotics experience or a roboticist with extensive software engineering experience. You will work both individually and in a small team to develop software for our autonomous mobile robots. You are able to write software at multiple levels of abstraction: from low-level drivers and behaviors that interface directly with the sensors and actuators, all the way to task-level decision making and high-level control. Most importantly, you are passionate about playing a key role in the development of a revolutionary robot.
Development of autonomous navigation and operation capabilities (localization, path and motion planning, recovery behaviors, user interaction, etc.)
Building of high-fidelity maps of the robot’s environment using SLAM techniques.
Development for embedded Linux and microcontroller environments.
Testing in simulation, in our office’s testbed, and in the field.
Source code management, documentation, unit testing, continuous integration.
B.S. / M.S. / Ph.D. in Robotics, Computer Science, or related field.
At least 2 years of C++ development experience.
Substantial experience with the Robot Operating System (ROS).
Extensive practical experience with robotics, especially mobile robot navigation.
Training and / or experience in software engineering and related activities (version control, unit, integration, acceptance tests, etc.)
Experience working and developing in a Linux environment.
Applicants must be authorized to work in the U.S.
Experience developing for an embedded Linux environment.
Experience developing code for AVR and / or ARM microcontrollers.
Substantial Python development experience.
Exposure to Agile software development practices.
HOW TO APPLY
Send resume and letter of interest to email@example.com. Subject your email as following, Robotics Software Engineer Application, First Name and Last Name. Please note that only short-listed candidates will be contacted for an interview.