Debugger Engineer

Codeplay - full time

Edinburgh, UK

02 Jun 2017


Rapidly appearing heterogeneous platforms and new programming models pose exciting new challenges for creating innovative debuggers.

We are looking for enthusiastic software engineers to work on implementing debuggers and related tools targeting new hardware such as GPUs, mobile CPUs and DSPs. Most of the work will be building on the open-source LLDB project; some work may require customisation of portions of LLVM.

This is an opportunity to learn about new processors and platforms, and to contribute to the implementation of tools targeting those platforms. Many of these systems or technologies are not yet publicly announced and therefore require confidentiality, so this is also an opportunity to work with brand-new hardware and software before anyone else does!

Candidates should be able to work both independently and collaboratively within teams of various differing skill sets and expertise. The candidate may also be required to help out on other software projects within the company.

The Environment
Codeplay has a relaxed working environment and you will be working alongside other creative and talented developers. Codeplay is regarded as being at the forefront of compiler and development technology and has active participation in several research programs within the European union, the Khronos Group and the HSA Foundation

The ideal candidate is a self-motivated individual who can work through a problem from start to finish, to deadlines as required to support software projects, and sometimes under pressure. They will be working on technology that is usually not publicly announced and may be several years away from public release, and candidates must understand the secretive nature of the work that we undertake.

The position is permanent and will be based at our head office in central Edinburgh. Salary Range (dependent on experience) £27,000 to £53,000.

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 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

Candidate Skills - Must Have

  • Strong working knowledge of C and C++.
  • Ability to use debuggers effectively.
  • Self-motivation and ability to pick up new technologies on the job.
  • Excellent communication skills, both verbal and written.
  • Knowledge of build systems (e.g. CMake) and compiler toolchains.
  • Understanding of assembly languages.
  • Understanding of object file formats, sections, labels, ELF.
  • Understanding debug information formats, such as DWARF.

Candidate Skills - Any of the following would be beneficial

  • The open-source LLVM project, particularly the LLDB debugger
  • The different stages within a compiler
  • Memory management styles
  • Code security/exploit prevention
  • Plugin/add-on development for IDEs such as Eclipse or Visual Studio
  • OpenCL/CUDA/C++AMP/other GPGPU language environment
  • HLSL/GLSL/other shading language environments
  • Games console/low-level graphics technology
  • Continuous Integration systems (e.g. Jenkins) and best practices

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.

For more jobs like this subscribe to the weekly newsletter or follow C++ JOBS on Facebook, Google+, Linkedin and Twitter for frequent social updates.