Robotics Planning/Systems Engineer
Zurich, Zurich, Switzerland
As a Robotics Planning/Systems Engineer within the Special Projects Group, you will work with a world-class team that focuses new product development of a complex system. You’ll be challenged daily with respect to your technical knowledge and apply your creativity to solving complex problems in innovative ways. The ideal candidate is an individual with a deep understanding of testing frameworks, automation strategies and technologies.
- Strong understanding of motion planning for robotics systems:
- Optimization methods- Iterative LQR
- Graph algorithms - heuristic search, breadth first search, Dijkstra’s algorithm, depth first search, spanning trees, etc.
- Sampling based methods - RRTs and variations, PRMs
- Strong understanding of decision making under uncertainty:
- Partially observable Markov decision processes and methods to model/ solve them: value iteration, etc.
- Rule based systems, modeling of costs vs constraints, providing axiomatic guarantees on models
- Finite State machines
- Information gathering approaches
- Strong C++ skills
- Modern C++- 11, 14 and 17. Proficiency with standard template library and the algorithms therein.
- Understanding of design principles, public api design, code architecture best practices, etc.
- ability to write runtime performance critical code for safety critical systems, optimize memory structure layout, redesign algorithms to be more efficient, safe approximations.
- Understanding and experience with templates, template traits, variadic template substitutions, move semantics, copy elision, etc.
- Familiarity with different tools like gdb, valgrind, intel vTune, clang.
- Must be comfortable developing under different environments like Linux, MacOS- familiarity with cross compilation, etc.
- Strong testing methodology experience - write unit tests, functional tests, must have experience using custom simulators to verify and validate development code.
- Experience with field robotics- hands on knowledge of system debugging, logging, triaging, bug fixe development workflows, etc.
- Ability to perform in a highly dynamic cross functional team with lots and lots of external dependencies- familiarity with organizational techniques such as agile development workflows like scrum, kanban, etc. ability to drive cross functional requirements, communicate them clearly and deliver outputs on time.
Develop and implement algorithms for decision making and motion planning for autonomous systems Strong understanding of the state of the art techniques for planning under uncertainty for field robotics systems Research and development of new algorithms / solutions to challenging real-world problems. Design and implement real-time performance critical large-scale software modules and understand the hardware and software interactions. Drive cross-functional efforts to prototype and explore new ideas to differentiate future products. Design of experiments to scientifically analyze the merits/demerits of many possible solutions to open-ended problems.
Education & Experience
Bachelor’s degree or equivalent in Mechanical Engineering or a related field.