• Software Engineer, Ecosystem


    Codeplay is dedicated to implementing high-level programming models such as SYCL™, to efficiently target various modern heterogeneous platforms and creating a software ecosystem for enabling AI applications.

    Your primary responsibilities will be to implement and improve SYCL ecosystem applications and 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. 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 is plenty of opportunities for growing on different roles or get deeper knowledge on different skills.

    Positions are 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.

    Starting salary: 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 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 SYCL (the C++ high-level programming model built on OpenCL). We are building an ecosystem around the SYCL standard, 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 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 -
    • We develop our staff to progress quickly in their roles, and to take ownership of code, become 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
    • EMI Stock Options Scheme
    • Pension scheme with 7% employer contributions
    • Childcare Vouchers Scheme (for existing members only)
    • Private healthcare insurance
    • Free confidential counselling service
    • Bike2Work Scheme
    • Season Ticket loans
    • Team milestone celebrations
    • Monthly company brunch
    • Frequent company social events (movie nights/board games/karting/outdoor adventures/annual barbecue)

    Required Skills

    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 has the ability to work under pressure. 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.

    Candidate Skills - Must Have

    • Moderate understanding of modern C++ (e.g. template programming, STL, rule of five/zero)
    • Ability to develop robust, maintainable, efficient and testable code for secure and reliable systems.
    • Minimise memory footprints, data movements, allocations and de-allocations.
    • Ability to develop multithreaded and parallel programs.
    • Experience in creating cross-platform (Linux, Android and/or Windows) solutions.
    • Ability to profile and optimise performance and memory usage.
    • Ability to learn new technologies and development approaches on the job.
    • Excellent communication skills, both verbal and written.
    • Experience working with continuous integration.
    • Ability design solutions from the ground up following technical specifications.

    Beneficial Skills

    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.

    Candidate Skills - Any of the following would be beneficial

    • Advanced understanding of C++ (e.g. SFINAE, C++ core guidelines, constexpr, move semantics).
    • Advanced understanding of C++ concurrency (e.g. std::async, std::future, std::promise, std::condition_variable, std::mutex).
    • Experience with a heterogeneous programming environment (e.g. OpenCL, CUDA, C++AMP, SYCL).
    • Experience with the open-source Clang/LLVM compiler projects.
    • Ability to read any assembly language, e.g. x86.
    • Ability to work with large codebases.

    Application Guidance

    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, and 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. If you need a reasonable accommodation for any part of the employment process, please email jobs@codeplay.com and let us know the nature of your request and your contact information. If you can demonstrate your 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 relevant work or projects, we would love to see them, so please include links to them in your application.

    Submit an Application

    Please fill in the forms below to the best of your ability. Don't forget to add any relevant links to GitLab, BitBucket etc! Personal projects are a big win for your application.

    If you want to apply for multiple positions with this application, please select the relevant positions from below.
    • Software Engineer, Ecosystem
    • Compiler Engineer

  • Status

    Open for Applications

    Position Type

    Generic Permanent Positions