Software Engineer, Research, Montreal
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.
The DeepMind research team develops powerful general-purpose learning algorithms, with a special focus on deep reinforcement learning. Software Engineers bring varied specializations into projects across the research team. Software Engineers in research will work directly on developing research prototypes, creating common tools that enable the wider research team to create such prototypes rapidly, as well as perform rigorous experimentation at scale. This work may include creating complex Reinforcement Learning agents, training pipelines, and tools for visualization, debugging, testing, and the reliable running of agents.
The role provides unique engineering challenges in combining state-of-the-art computer systems with bleeding-edge AI algorithms, acting as a force multiplier for the whole research team.
As a software engineer on research projects you will be expected to:
- Provide software design and programming support to research projects
- Report and present software developments including status and results clearly.
- Architect and implement software libraries for research prototypes across the range of DeepMind research projects.
- Join collaborative research projects that have built momentum and are looking to scale and enhance work
- Collaborate with other researchers and engineers to implement and evaluate algorithms. Lead the build/scale aspects of research and be the ‘go-to’ expert on this within the research stream.
- Identify and solve for varied problems within research work
- Research products instead of prototypes - helping to drive the focus on scalability/useability in the wider organisation
- Challenge researchers/collaborators to push to maintain robust engineering practices across research teams
- Computer Science or similar degree.
- Expert knowledge in at least one of:
- multi-threaded design
- parallel/distributed computing
- numerical methods
- data visualization
- Passion for AI/ML
- ML experience not necessary
- Good knowledge of either C++ or Python.
- Prior experience working in a research environment
- Experience implementing and evaluating ML algorithms
- Some knowledge of Reinforcement Learning a plus but not essential
- Specialism and considerable knowledge in one of the following areas is highly beneficial:
- Parallel Computing
- Distributed Systems
- Numerical Methods
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.