Have you considered using our job search? Click here to search our current jobs.

Have you considered using our job search? Click here to search our current jobs.

Embedded Software Engineer (Applied Robotics)


Malmesbury - United Kingdom


Showcasing the cutting-edge robotic technologies of the future involves bringing together talented people who share common ambitious goals and visions, rethinking problems and framing them properly, utilising the right tools and resources, and doing all of this at the right time. That’s our goal: to build a world class robotics team with a focused vision of robots solving concrete problems in the real world.

We want to create a team that is able to work alongside our roboticists to develop innovative software systems that turn theory into practice. It is this culture of ambition and excellence paired with an enjoyable and healthy work-life balance that makes Dyson different! It’s a place to unleash your passion, talent, ideas and show what robots can do for the world.

Dyson’s Robotics Research Software Team specialises in creating early stage proof-of-concept systems that utilise state-of-the-art software algorithms, frameworks, techniques, and tooling. We need software developers that are at home programming parallel, distributed, and heterogeneous compute systems – from embedded devices up to the cloud.


  • Lead and develop a high-performance software culture within Robotics research by: advocating software best-practices, mentoring junior software developers, and championing the use of state-of-the-art software methodologies and tools across the wider robotics research team.
  • Architect our next generation robotic software stack; ensuring that it works robustly on both simulated and real-world robots.
  • Work alongside our roboticist tech-leads to help define and scope the robotics technology roadmap.


  • Masters or PhD in computer science (or similar).
  • A curiosity for new technologies.
  • Experience in Systems Engineering – SysML, UML 2.0, Enterprise Architect
  • Experience working with complex systems – especially concurrent, distributed, or parallel systems – e.g. compilers, operating systems, messaging systems.
  • Strong experience in systems programming – C++ (2011)
  • Experience implementing distributed-systems – DDS, 0MQ, Protobuf or gRPC
  • Good understanding of the software lifecycle.