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. You will be part of a team of engineers with different skills that are delivering our software stack to a customer, or supporting a customer in integrating our software stack. Sometimes you will be working with our product and ecosystem teams directly on SYCL or OpenCL implementing specific features, or consulting on specific topics.
This position requires a good understanding of LLVM, but other compilers and experience may be considered for the role.
Please Note: Due to COVID-19 we are following the Scottish Government Roadmap and, although we are operating normally, the office is closed and we are all working from home.
The successful candidate should be able to work from home for the duration of the office closure. The position is permanent and may be based at our head office in central Edinburgh. The successful candidate must be able to demonstrate the right to work in the UK, or be eligible to apply for the right to work, should relocation be an agreed option.
Starting salary: Competitive & Negotiable.
What We Offer
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 was established in 2002 in Edinburgh, Scotland and developed some of the first tools enabling complex software to be accelerated using graphics processors. It is internationally recognized as being at the forefront of software development technology. Codeplay continues to work with global technology leaders to make the latest complex hardware systems programmable using open-standards based programming languages and allows application developers to quickly bring software to the market. Codeplay is also deeply involved with the definition of open standards, especially OpenCL™, SPIR™, SYCL™, and Vulkan™ through The Khronos Group, and MISRA C++ for automotive.
- A friendly and relaxed working environment where colleagues respect and support each other.
- 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.
- Great career prospects within a growing company
- We develop our staff to progress quickly in their roles, and to take ownership of business functions, become experts, and/or lead teams. We provide training in skills such as project and people management, networking and delivering effective presentations.
- New start mentoring scheme
- Opportunities to attend major worldwide industry conferences and events representing the company
- Flexible working hours
- EMI Share Option Scheme
- Pension scheme offering 7% employer contributions
- Full pay whilst on Maternity/Partner or Shared Parental Leave
- Free annual membership for this service: Childcare.co.uk.
- Private healthcare insurance
- Free confidential counselling service
- Frequent company social events (social nights, pot luck lunches, gaming, karting, outdoor adventures, and more) (Post-COVID!)
- For applicants relocating to the UK: in addition to the above benefits :
- Childcare Voucher Scheme (for existing members only)
- Bike2Work Scheme
- Season Ticket loans
The ideal candidate is a self-motivated individual who can work through a problem from start to finish, meet deadlines as required to support software projects, and work on agile teams. You will be working on technology that is seldom announced to the public and could be several years away from public release, so confidentiality is critical. You should be able to work both independently and collaboratively within teams of varying skill sets and expertise. You should be welcoming towards, and able to adapt to, the introduction of new technologies, responsibilities and projects, as Codeplay works with cutting-edge technology and takes on a diverse range of projects.
- Experience working on Clang or LLVM.
- 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.
- Able to demonstrate experience in designing and driving implementations of features without assistance
- Good knowledge of build systems (e.g. CMake) and compiler tool-chains.
- 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.
- Able to work collaboratively within a team
- Able to participate in code-reviews and team programming excercises.
- Able to demonstrate that you actively support your team and mentor/support less experienced colleagues
- Ability to share knowledge with your team and the wider company in a structured and concise manner
Knowledge and/or experience of any of the following would be useful for the role, but are not essential. You must be able to learn new skills, but will be given support from Codeplay's team to get you up to speed.
- Knowledge of Modern C++ programming (C++11 or 17)
- Understanding of GPUs and/or other accelerator processor architectures and their impact on compiler technology.
- Understanding of Parallel programming (e.g. task scheduling, SPMD models, ...)
- Project work relevant to compilers (commercial/academic R&D or hobby/university projects).
- Experience with low-level optimisation, whether via compilers or manual optimisation.
- Existing GPGPU technologies (especially OpenCL and CUDA).
- Experience of actively participating in interviewing candidates and reviewing CVs
- Experience presenting status reports to external parties (e.g. customers, partners)
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. We are committed to providing flexible working options such as part-time/compressed hours/time shifting/remote. If you have a disability or additional need that requires accommodation, just let us know.
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 relevant work or projects, we would love to see them, so please include links to them in your application.
If you have C++ Code Samples (where relevant) please put the link to these on your application; however, should you not have any code samples available then this will not prejudice your application. Note our system will only accept links to personal projects/GitHub accounts or PDF documents.