Runtimes are key components to enable higher-level programming models such as OpenCL or SYCL to efficiently target various modern heterogeneous hardware platforms.
Your primary responsibilities will be to implement and improve runtime systems 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.
Runtimes are usually implemented close-to-the-metal and interact directly with hardware and/or drivers as well as compilers. Actual driver work may also be involved. Each platform has its own eccentricities, and successful candidates will be able to investigate and implement solutions by working around quirks or exploiting them for performance, power or memory gains.
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.
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.
- Flexible working hours, stock options and pension scheme.
- Good working knowledge of modern C++.
- Working knowledge of debuggers, and ability to debug code effectively.
- Ability to develop robust, maintainable, efficient and testable code for secure and reliable systems.
- Minimise memory footprints, data movements, allocations and de-allocations.
- Develop correct, fast and scalable multithreaded and parallel programs.
- Craft cross-platform (Various Linux flavours, Windows) solutions.
- Profile and optimise performance and memory system usage.
- Learn new technologies and development approaches on the job.
- Excellent communication skills, both verbal and written.
Experience or understanding of several of the following would be highly desirable:
- Experience working on a parallel or heterogeneous language runtime.
- Understanding of multi-core and NUMA architectures
- Experience on GPU programming models (such as OpenCL, SYCL, CUDA, ...)
- HLSL/GLSL/other shading language environments
- Vulkan or DirectX12
- Knowledge of the Clang/LLVM projects.
- Continuous Integration systems and best practices
- OS-level and/or driver development.
- Object file formats.
- Assembly language.
- Games console/low-level graphics technology.
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/timeshifting. If you have a disability or additional need that requires accommodation, just let us know.
You should be hold 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, but any relevant visa conditions may require proof of formal qualifications.In order to progress your application we require all candidates to provide the following: CV, Cover Letter and C++ Code Samples (where relevant). Our system will only accept links to personal projects/GitHub accounts or PDF documents.