Dyson

Senior Software Engineer – Robotics

28 March 2024
Apply Now
Deadline date:
£45000 - £84000 / year

Job Description

About us

Dyson is a global technology enterprise. We solve the problems others choose to ignore, with surprising new inventions that defy convention and simply work better. We’ve been developing robot technology for over 20 years – 200 engineers, 420 patents and £28m of investments – but this is just the start of the domestic robotics revolution.

Robotics Research at Dyson specialises in creating proof-of-concept systems that utilise state-of-the-art software algorithms, frameworks, techniques, and tooling to solve concrete real-world problems and pave the way for Dyson’s future autonomous and intelligent products.

Our world-class robotics team is highly multi-disciplinary, covering topics including Computer Vision, Machine Learning, Robot Control, Mechatronics, Human-Robot Interaction and Platform Design within a friendly and multi-cultural work environment. The software platform group integrates functional components into complete prototypes with a focus on system architecture, software quality and target platform deployment.

About the role

As a software engineer, you’ll be working with domain experts to develop state-of-the-art robot prototypes that turn theory into practice. This is an opportunity to play a key role in continuously improving the architecture, practices and tooling with the goal of closing the gap to pre-production and shortening time-to-market. Join a passionate and growing team working to put functional advanced robotic solutions into the homes of the general public. As a senior software engineer, you are expected to:

  • Have a solid understanding of core development concepts and development best practices

  • Work with focus, attention to detail and consideration of system-wide implications

  • Effectively deliver stories or tasks within projects to specification, on time and with little assistance, but still know when to ask for help

  • Communicate with the wider team appropriately, focusing on efficiency and quality of conversations

  • Mentor and support junior team members in technical matters and create a positive and engaging team environment

Responsibilities:

  • Integrate or rearchitect functional software components and implement new system behaviours

  • Port research level implementations in Python or C++ to modern, robust C++ implementations

  • Manage the entire high-level software stack, including the operating system, component drivers and user interfaces

  • Participate in the design of a distributed system software architecture that is scalable and easy to deploy

  • Document and communicate software requirements, design and implementation

  • Drive a culture of software quality that can progressively become the norm even within early research

About you

  • Degree in engineering or equivalent industry experience

  • 3+ years of work experience with robotic, actuated, embedded or real-time systems

  • Strong object-oriented and functional programming skills in modern C++

  • Working knowledge of a scripting language such as Python or Bash

  • Good knowledge and hands-on experience with Linux system and toolchains

  • Proficient use of development best practices and tools including version control, unit testing, continuous integration and continuous delivery (CI/CD)

  • Ability to break down problems, prioritise work and estimate development tasks

Beneficial:

  • Professional software development experience in a production environment

  • Significant contributions to open-source projects

  • Experience inspecting, debugging, testing and profiling complex software systems

  • Experience with ONNXRuntime, TensorRT, CVflow or deployment to NPU-based platforms

  • Experience with profiling and optimizing machine learning models for target hardware, including comprehensive end-to-end profiling, pruning, quantization and deployment on edge devices

  • Experience making real robots or autonomous systems work robustly in the field

  • Experience with ROS 2, DDS-based middleware systems and messaging frameworks

  • Experience with simulation environments (e.g. Unity, Isaac Sim) and simulation at scale in the cloud

  • Experience with Yocto/BitBake based build systems

  • Experience with containerised development, deployment and management

  • Experience with behaviour planning and decision making architectures

  • Experience with parallel programming and performance optimisation

Benefits

Dyson Singapore monitors the market to ensure competitive salaries and bonuses. Beyond that, you’ll enjoy a transport allowance and comprehensive medical care and insurance. But financial benefits are just the start of a Dyson career. Professional growth, leadership development and new opportunities abound, driven by regular reviews and dynamic workshops. And with a vibrant culture, the latest devices and a relaxed dress code reflecting our engineering spirit, it’s an exciting team environment geared to fuelling and realising ambition.

#LI-ONSITE

#LI-TM1

Dyson is an equal opportunity employer. We know that great minds don’t think alike, and it takes all kinds of minds to make our technology so unique. We welcome applications from all backgrounds and employment decisions are made without regard to race, colour, religion, national or ethnic origin, sex, sexual orientation, gender identity or expression, age, disability, protected veteran status or other any other dimension of diversity.