Codeplay is a leading developer of software tools and we are looking for responsible C++ engineers to work on debuggers, utilities, runtimes, compilers and demo applications targeting brand-new hardware such as GPUs, Mobile CPUs, and DSPs. Many of these systems or technologies are not yet publicly announced and therefore require confidentiality, so this is an opportunity work with new hardware and software before anyone else does!
This position requires solid working knowledge of modern C++ (at least C++11), understanding of high-level C++ abstractions, and the ability to use and contribute to modern heavily templated C++ code bases.
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 LLDB open-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 the SYCL for OpenCL open standard to the open-source codebase. We are building an ecosystem around SYCL (the C++ high-level , 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
- A friendly and relaxed working environment where colleagues support each other
- Knowledge sharing: our staff frequently give company-wide presentations on new software and technology trends, personal projects and other relevant subjects
- 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 employees and provide training in skills such as project and people management, networking and delivering effective presentations
- Frequent opportunities to attend conferences and developer meetings, represent the company, and become a recognized expert
- We encourage engineers to progress quickly in their roles, for example to become team leads (project management training will be provided)
- Codeplay has been recognized as an excellent employer and awarded the highly respected Investors in People accreditation
- Opportunities to get involved with industrial standardization initiatives such as The Khronos Group and HSA Foundation, and various European research programmes
- Working on early-stage technology offers opportunities to contribute/shape new hardware/software and standards
- Flexible working hours, stock options and pension schemes
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.
Candidate Skills - Must Have
- Solid knowledge of modern C++ (understanding of high-level abstractions)
- Ability to work with modern templated C++11 code bases
- Working knowledge of debuggers
- Self-motivation, with a willingness to learn new technologies on the job
- Excellent communication skills, both verbal and written
Candidate Skills - Any of the following would be beneficial
- Memory management e.g. smart pointers, reference counting, allocators, RAII
- Code security/exploit prevention
- Performance profiling and optimization
- Assembly languages
- Object file formats
- Build systems (e.g. CMake) and compiler tool-chains
- Continuous Integration systems (e.g. Jenkins) and best practices
- OpenCL/CUDA/C++AMP/other GPGPU language environment
- OpenVX/OpenCV/other computer vision environment
- HLSL/GLSL/other shading language environments
- Games console/low-level graphics technology
- The open-source Clang/LLVM compiler projects and the compilation pipeline
- LLDB, LLVM's open-source debugger project