Software Engineer - Robotics
SGD Competitive Remuneration Package
Dyson began twenty one years ago with James Dyson and a handful of engineers questioning everyday products, thinking differently and making them better. We are now the world's number one vacuum cleaner manufacturer in the UK, US, Japan, Europe and Australasia.
We've even branched out to improving commercial technology that frustrates us. The Dyson Airblade hand dryer dries hands in ten seconds, it’s also the most hygienic and energy efficient hand dryer available. And more recently a fan, Air Multiplier, with no blades or grille.
There are over 4000 in the world and we’re all inventive and hugely passionate about what we do. At our Development Centre in Johor Bahru, Malaysia & Singapore there are almost 1600 of us, a mixture of engineers and support staff, we are Dyson people that are encouraged to think differently, challenge convention and be unafraid to make mistakes. Our teams there will rise to more than 2000 over the next 2 years.
Not too far away is West Park, our flagship advanced motor manufacturing facility where we develop our autonomous robotic manufacturing capabilities – more than 300 robots assemble our Dyson Digital Motor (DDM) here. It is here that we develop our next generation of motor technology.
- Design and implement the robotics Software application for Dyson’s products and ecosystem
- Integrate software with robotics hardware and mechanics
- Collaborate with robotics research engineers to implement theoretical robotic algorithms
- Support the definition of system architecture for robotic products
- Support the development of test and simulation tools through requirements definition
- Support the robotics software test and validation strategies
- Strong background in C++ and demonstrable industrial C++ experience
- Proficiency with modern C++ idioms. Any of the following would be of interest (STL / Standard Library / smart pointers, functional programming style, design patterns, C++11)
- Software configuration Management Tools (source control, continuous integration etc)
- Ability to plan and estimate development tasks (ideally within an Agile framework)
- Experience with unit / acceptance testing and writing testable code
- Command of advanced C++ / programming technique e.g. templates, concurrency
- Previous Linux experience (e.g. basic system administrator)
- Use of Qt libraries
- Some knowledge of Phyton
- Experience with concurrent / distributed programming
- Mathematical / Scientific background
- Low-level microprocessor development
- Great team player and able to communicate complex machine learning concepts to other team members