Candidate Skills - Must Have
- Sound compiler implementation knowledge, particularly of the middle and back-end, ideally using LLVM.
- Strong C++ skills and ability to work with complex modern C++ source bases.
- Ability to clearly communicate, and document technical problems and solutions in a compact and understandable way.
- Ability to effectively test compiler/runtime features by writing tests and using continuous integration.
- Ability to quickly pick up and progress new technologies.
Candidate Skills - Any of the following would be beneficial
- Understanding of GPUs and/or other accelerator processor architectures and their impact on compiler technology.
- Knowledge of C++14/17 features.
- Project work relevant to compilers (commercial/academic R&D or hobby/university projects).
- Experience writing research papers in relevant areas.
- Parallel programming.
- Experience with low-level optimisation, whether via compilers or manual optimisation.
- Existing GPGPU technologies (especially OpenCL).
- Real-time graphics development (OpenGL/Vulkan/GLSL, DirectX/HLSL, ...).
- Language design (e.g. functional programming experience).
- Build systems (e.g. CMake) and compiler tool-chains.
- Program verification / model checking.
If you can prove skills and knowledge through portfolio work, projects or previous employment, then a degree is not essential.
The Cover Note/Letter is just as important as your CV/Resume, so please include one, stating why you believe you are a good fit for the position. If you have examples of your own software projects, we would love to see them , so please include links to them in your application.