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 an enthusiastic compiler engineer to help us address those challenges!
Your primary responsibilities will be to implement and improve compilers for programming models such as OpenCL™ or SYCL to target brand-new hardware such as GPUs, mobile CPUs and DSPs. Writing, testing, debugging and maintaining code, whilst interacting closely with other team members and clients, is a central part of the job. You will spend a great part of your day collaborating with other engineers in design and implementation of complex features across a modern C++ stack that goes from high-level C++ down to SPIR™-V or assembly level. The SYCL Ecosystem group at Codeplay follows an agile approach to solve complex problems. Subteams are formed periodically depending on the requirements of the tasks at hand and the active projects, including projects for internal and external customers. Group members have some degree of flexibility to select tasks according to their skills and interest, and there are plenty of opportunities for developing in different roles or obtaining deeper knowledge of different skills.
This position requires a good 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.
The position is available at various levels, from entry-level Software Engineer to Senior Principal Software Engineer, depending on your skills and experience. The position is permanent and will be based at our head office in central Edinburgh. Edinburgh is the bustling capital of Scotland, rated globally as the "most livable city in the world 2018," ranking top for quality of life and education as well as being a haven for heritage sites. Edinburgh always has an event on the go such as the infamous Fringe festival.
Salary range: Competitive & Negotiable.
What We Offer
Codeplay is internationally recognized as being at the forefront of software development technology. Working at Codeplay offers unique opportunities and challenges to learn new technologies and to get 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, etc.) 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 extensively working on the Clang, LLVM and LLDB open-source compiler and debugger projects. We are building an ecosystem around the SYCL standard, including open source 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 globally recognized customers.
- Help to shape the future of the industry by contributing to open-source software, standardization efforts and Codeplay's products.
- A friendly and relaxed working environment where colleagues respect and support each other. You will be working in a diverse team of creative and talented engineers from around the world.
- Learn from experienced colleagues: our staff frequently give company-wide knowledge-sharing presentations on new software and technology trends, personal projects and other relevant subjects.
- Work with modern code bases, 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 the entry-level Software Engineer grade to Senior Principal Software Engineer, depending on your skills and experience.
- We develop our engineers to progress quickly in their roles, and 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.
- Opportunities to get involved in Codeplay's very active research, enabling you to make an impact on the company's technology and future direction, and establish your 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 attained a Silver Level Accreditation with Investors In People.
- Flexible working hours, stock options and pension scheme.
Private healthcare insurance.
- Frequent company social events (social nights, pot luck lunches, gaming, karting, outdoor adventures, and more).
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
- Knowledge of C++14/17 features.
- Understanding of GPUs and/or other accelerator processor architectures and their impact on compiler technology.
- Parallel programming.
- Project work relevant to compilers (commercial/academic R&D or hobby/university projects).
- Experience working on Clang or LLVM.
- Experience writing research papers in relevant areas.
- 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 / Type theory.
- Build systems (e.g. CMake) and compiler tool-chains.
- Program verification / model checking.
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. Codeplay is proud to be an Equal Opportunities employer. We celebrate and value diversity. We are committed to creating an inclusive environment for all employees, regardless of race, colour, gender, religion, national origin, ancestry, citizenship, disability, age, sexual orientation or any other characteristic protected by law. All employment is decided on the basis of qualifications, merit and business need and we strongly encourage applicants from all backgrounds and walks of life.
You should be studying towards a degree in a relevant subject; however, if you can prove skills and knowledge through portfolio work, projects or previous employment, then a degree is not essential.In order to progress your application we require all candidates to provide the following: CV, Cover Letter & C++ Code Samples (where relevant). Our system will only accept links to personal projects/GitHub accounts or PDF documents.