Senior Software Engineer - C++
£Competitive + 27 Days Holiday + Pension + Bonus
Malmesbury, UK, United Kingdom
DescriptionWe have a vacancy for a C++ developer to work on challenging projects in consumer robotics. We work in a supportive environment, in a team which is constantly aiming to improve itself. We are looking for someone who shares this ethic, and expresses a desire to create high-quality, robust code to solve diverse real-world problems. You must be fluent in C++ and you will be equally comfortable with high-level design and abstraction as with implementation, deployment, testing and debugging of application code. Dyson offers a unique opportunity for talented individuals who wish to invent, design and develop leading products for the global market. By working in our world class Research Design and Development department, these individuals have the opportunity to work alongside leading technical specialists and highly motivated creative people, to create products which fulfill our ambition of being truly different.
Dyson OverviewThings move quickly at Dyson. In twenty years, what began with one man and one idea has grown into a global technology company, with over 6,000 people and a presence in over 70 countries. From Malmesbury to Malaysia to the US to Australasia and many countries in between, we’ve sold over 80 million machines. And it’s just the start. In 2017 our Malmesbury HQ is doubling its footprint. The US, our biggest market, is doubling their sales scope. And new frontiers are opening up across South East Asia and beyond. More people, more ideas and more space for more invention. The next four years will be our biggest and busiest yet.
Home to our global Research, Design and Development centre and all of our Commercial functions, Dyson HQ is tucked away in countryside famous for the railway tunnels and bridges of Isambard Brunel, who revolutionised modern engineering. Our secluded location helps us to protect our ideas and stay independent-minded. Yet nearby are the fashionable cities of Bristol and Bath (where a young James Dyson invented cyclone technology).
The building is the heartbeat of Dyson. Nearly 2,000 people, including James himself, spend their days strategizing, inventing technology and telling the Dyson story to the world. In 2017, our HQ will double its footprint with an ambitious new expansion.
Function OverviewAdvanced robotics will change the world of engineering for good. At Dyson, we’ve been developing robot technology for over 15 years – 200 engineers, 420 patents and £28m has already gone into our first robot vacuum. But our Dyson 360 Eye™ robot is just the start. The team is advancing the systems that make our robots more intelligent – able to understand environments and navigate with complex sensors and algorithms. There’s more to discover. The future is robotic. All Dyson products will be part of the internet of things. And our Robotics team is helping us to unveil this next generation.
- Development of software for mobile robotic products.
- Development of testing and validation strategies.
- Administration and maintenance of supporting infrastructure for software development.
- Definition of system architecture for robotic products.
- Integration of software with robotic hardware and mechanics.
- Support the development of test and simulation tools through requirements definition.
- Collaboration with robotics research engineers to implement theoretical robotic algorithms
- Strong background in C++.
- 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 techniques e.g. templates, concurrency.
- Previous Linux experience (e.g. basic system administration).
- Use of Qt libraries.
- Some knowledge of Python.
- Experience with concurrent/distributed programming.
- Mathematical/scientific background.
- Low-level microprocessor development.