We are seeking an experienced Senior Robotics Software Engineer to join our team.

Job Title: Senior Robotics Software Engineer

Location: London Office (Leyton) or Remote

Reporting To: Head of Robotics

Department: Robotics

As a senior robotics software engineer you will be responsible for supporting the Robotics team in managing feature requests, bugfixes and developments that are part of the Robotics Roadmap. Your expertise will be critical in tasks which are reliant on a deep understanding of robotic systems, especially kinematics and path-planning related, in addition to supporting other teams and customers.

As a senior engineer, it is expected that once you gain a familiarity with the codebase you will be able take ownership of portions of the code and make decisions on restructuring based upon the goals of the product roadmap.

Job Responsibilities

  • Developing new algorithms for path-planning robotics systems in the context of 3D printing. In particular, working with 6DOF robots operating in combination with multi-DOF systems.
  • Deriving and refining our internal kinematics solver for various configurations of robotic systems.
  • Implementation of additional limits checks (axis, reach, singularities) and other robotics control tools for various systems in a generic, reusable manner.
  • Refining and refactoring the software infrastructure to be a more extensible, clean architecture, with the intention of supporting much more varied systems and processes.
  • Improving the accuracy and robustness of our existing robotic simulation structure.
  • Collaboration with the product manager and Head of Robotics to provide task estimations for projects in the roadmap.
  • Taking ownership of certain parts of the codebase, improving them, performing code reviews, managing bugfixes etc.

Requirements

  • Bachelor’s degree in Computer Science, Software Engineering, Maths or a related field
  • Strong mathematical background, intuitive understanding of linear algebra, rotation matrices, kinematics
  • Experience developing software used for controlling machines, particulary robotics.
  • Problem-solving mindset, with an ability to explore and solve difficult unknown challenges, particularly those related to robotics
  • 5-10 YoE in software development
  • Use of Git

Optional Requirements

  • Java is highly preferred, although more typical robotics languages such as C++ may be acceptable.
  • Experience working on existing robotic simulation software.
  • Research into advanced path planning with robotics systems
  • Knowledge of web development, particularly backend and the Dropwizard and Hibernate frameworks
  • 3D printing knowledge
  • Direct experience controlling robotic hardware, e.g. on a factory floor, during research projects

Open positions

We're always on the look out for the latest talent!