Software Engineer, Robotics, DeepMind for Google
DeepMind focuses on using the best available technologies, together with our own research, to address some of the world’s most pressing and complex challenges. We work in fields from healthcare to energy efficiency, collaborating with experts to build tools to support and improve their work. Collaborating with Google teams, we also apply our cutting edge research to products used by millions of people around the world. These real world applications of AI technology help us work towards one of DeepMind’s purposes - to use intelligence to make the world a better place
Modern robotic software applications and infrastructure require and implement complex data structures to support algorithms devised on a large spectrum of theories, ranging from computer science and probability theory to mechanics and cognitive sciences. Within this context, software plays a crucial role in robotics as it is the medium to embody intelligence in the machine. Typically, robot software systems are concurrent, distributed, embedded, real time, and data intensive. Computational performance is a major requirement, especially for autonomous robots, which process large volumes of sensory information and have to react to events occurring in the robot’s operational environment.
We’re looking for strong computer scientists to expand our unique robotics environment. Our goal is to create systems that are functional in real world environments and to provide developers with appropriate software support to facilitate reuse and scalability. As a member of the Software Engineering team, you’ll contribute towards enhancing the performance of our research infrastructure and learning algorithms while solving interesting and unique engineering challenges.
This position requires excellent programming skills, strong interpersonal and communication skills, and software architecture experience. The team you will be joining is responsible for the architecture and performance of our tools for robotics at DeepMind.
- Provide software design and programming support to research projects.
- Report and present software developments achievements and results clearly.
- Architect, implement, and integrate software libraries for robotics applications.
- Build and maintain the robot lab software code base for deploying learning software components on different hardware (sensors, processors, etc.).
- Work with researchers on implementing new control algorithms.
- MEng/MSc/PhD degree in computer science, engineering, mathematics, physics, or equivalent.
- Experience in contributing to software projects.
- Solid understanding of software development life-cycles and processes.
- Experience of requirement analysis, software design and software architecture.
- Experience with source control tools such as Mercurial and Git.
- Strong knowledge and experience of computer science
in at least oneof the following areas of expertise:
- Major contribution to the design and implementation of any large scale software project.
- Software architectures for parallel, distributed and/or cloud computing. Software development, algorithm design, software performance optimization for multicore, GPU and multi-GPU environments.
- Embedded software development, such as embedded C development, experience with embedded processors, experience with interfacing with hardware devices and peripherals. Experience with industrial fieldbus technologies such as EtherCAT or CANopen.
- Experience with algorithms involving real-world sensor data.
- Experience with real-time software development. Hard real time operating systems such as VxWorks, Xenomai or QNX.
- Excellent knowledge of Python and/or C++.
- Python is the preferred language for development.
Useful Skills & Experience
- Two or more years of industry experience.
- Experience with ROS or comparable middleware.
- Working knowledge of Tensorflow or similar frameworks.
- Experience with numerical methods and data visualisation.
- Contributions to open source and/or large-scale software projects.
- Experience with low-level embedded software and firmware.
- Experience with mechanical and electronic design.
DeepMind welcomes applications from all sections of society. We are committed to equal employment opportunity regardless of race, religion or belief, ethnic or national origin, disability, age, citizenship, marital, domestic or civil partnership status, sexual orientation, gender identity or any other basis as protected by applicable law. If you have a disability or additional need that requires accommodation, please do not hesitate to let us know.
Get weekly notifications when new jobs are posted