PLEASE NOTE WE ARE NOT ACCEPTING APPLICATIONS FOR THIS POSITION UNTIL JUNE 2019.
Targeting recent artificial intelligence and machine learning applications to specialised heterogeneous platforms presents exciting new compiler-related challenges, ranging from optimizing low-level compiler backends for brand-new processors, to implementing support for complex portable programming models (such as C++ and SYCL). We are looking for enthusiastic compiler engineers to help us address those challenges!
This position requires solid understanding of modern compilers like LLVM or GCC, and how they process complex high-level source code into highly optimised machine code whilst maintaining correctness and compilation speed. Many of the targeted systems or technologies at Codeplay are not yet publicly announced and therefore require confidentiality, so this is an opportunity to work with brand-new hardware and software before anyone else does!
The position is permanent and will be based at our offices in central Edinburgh. The successful candidate must, by the start of their employment, have permission to work in the UK. Salary range: Competitive & Negotiable.
What We Offer
Codeplay is internationally recognized as being at the forefront of software development technology, and working with us offers unique opportunities and challenges to learn new technologies and to be involved in shaping the software industry. Codeplay's projects range from: creating tools and tool sets (optimizing compilers, debuggers, profilers, programming models & APIs, test systems/suites, ...) for brand-new unannounced next-generation hardware; developing and optimizing current machine learning (TensorFlow™) and computer vision applications; research and development into lowering the power consumption of mobile devices, and contributing to new programming models and software standards (e.g. C++, SYCL™, OpenCL™, Vulkan® and SPIR™-V).
Codeplay is an active contributor in the community for the Clang, LLVM and LLDBopen-source compiler and debugger projects. Our engineers are also leading the effort to bring support for machine learning with TensorFlow to OpenCL-enabled devices, by adding support for SYCL (the C++ high-level programming model built on OpenCL) to the open-source codebase. We are building an ecosystem around the SYCL standard, including public projects for computer vision, linear algebra, and C++ parallel programming APIs - see https://github.com/codeplaysoftware. If you are excited about contributing to programming tools that will be used by developers worldwide, please get in touch!
- Work on exciting brand-new technologies and standards with well-recognized customers
- Make an impact on the industry by contributing to open-source software, standardization efforts and Codeplay's products
- A friendly and relaxed working environment where colleagues support each other. You will be working in a diverse team of creative and talented engineers from around the world
- Learn from experienced engineers: our staff frequently give company-wide knowledge-sharing presentations on new software and technology trends, personal projects and other relevant subjects.
- Work on modern code bases using recent tools, with the freedom to choose platforms and tools to get the job done
- Great career prospects within a growing company:
- Positions are available at various levels, from entry-level Software Engineer to Senior Principal Software Engineer, depending on your skills and experience
- We develop our engineers to progress quickly in their roles, to take ownership of code, become technical experts, and/or lead teams. We provide training in skills such as project and people management, networking and delivering effective presentations
- Getting involved in Codeplay's very active research to have an impact on the company's technology and future direction - establishing industrial research track record by contributing to papers and publications.
- Frequent opportunities to attend major worldwide industry conferences and developer meetings, represent the company, and become a recognized expert
- Codeplay has been recognized as an excellent employer and has now attained a Silver Level Accreditation with Investors In People
- Flexible working hours, stock options and pension scheme
Any application which results in a job offer is conditional upon the candidate already having or successfully applying for the right to work in the UK.
- Frequent company social events (film nights, pot luck lunches, gaming, karting, outdoor adventures, ...).
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.
Submit an Application
Please fill in the forms below to the best of your ability. Don't forget to add any relevant links to GitLab, BitBucket etc! Personal projects are a big win for your application.
Open for Applications