The DeepMind research team develops powerful general-purpose learning algorithms, with a special focus on deep reinforcement learning. Software Engineers bring varied specialisations 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 visualisation, 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 an augmentation for the whole research team.
As a software engineer on research projects you will carry out the following core responsibilities:
- Provide software design and programming support to research projects
- You will report on software developments including status and results clearly.
- Architect and implement software libraries for research prototypes across the range of DeepMind research projects.
- Join fundamental 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. Be responsible for the build and scale aspects of research and be the ‘go-to’ guide on this within the research stream.
- Identify and tackle varied problems within research work
- Research products instead of prototypes - helping to drive the focus on scalability/usability in the wider organisation
- Challenge researchers/collaborators to push to maintain robust engineering practices across research teams
- Computer Science or similar degree.
- Several years proven experience working as a Software Engineer in a Research Lab or in Industry
- In-depth knowledge in at least one of the following areas:
- Multi-threaded design
- Parallel/distributed computing
- Numerical methods
- Data visualization
- 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 these areas are highly beneficial:
- Parallel Computing
- Distributed Systems
- Numerical Methods
Competitive salary applies.