arrow_back_ios Back to List

Machine Learning Library Engineer

Codeplay's mission is to create an Open and Safe ecosystem for AI and HPC. To achieve this, we work with customers and partners to integrate open standards, such as SYCL, into applications and machine learning frameworks.

As a ML Library Engineer, you will interact with a large part of Codeplay's software stack, from BLAS libraries to AI frameworks both for internal customers and open source projects, working closely with customer teams. Project tasks will vary from implementing new routines or benchmarks to adding backend support for new hardware targets for customers.  There are lots of new and exciting challenges to overcome and definitely lends itself to those who want to learn something new as tasks evolve.

Your primary responsibilities will be around delivering high performance machine learning solutions for target hardware. This will include both working on internal benchmarks for sales and marketing purposes, and working on customer use-case driven performance requirements.  You will also be working on integrating additional machine learning models to our benchmarking; implementing additional algorithms in our libraries to enable acceleration of a wider range of machine learning models; helping to maintain our open source machine learning libraries; and potentially contributing to open standards for heterogeneous programming.

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. Fully remote working is also an option for this position.

Positions are available at various levels, from entry-level to senior positions, depending on your skills and experience.

Salary range: Competitive & Negotiable. 

What We Offer

Codeplay Software is a world pioneer in enabling acceleration technologies used in AI, HPC and automotive. Codeplay was established in 2002 in Edinburgh, Scotland and developed some of the first tools enabling complex software to be accelerated using graphics processors. Today, most AI software is developed using graphics processors designed for video games, and more recently specialised AI and computer vision accelerators. Codeplay continues to work with global technology leaders to make the latest complex AI 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.
    • Newstart mentoring scheme
    • Opportunities to attend major worldwide industry conferences and events representing the company
  • Flexible working hours
  • EMI Stock Option Scheme 
  • Pension scheme offering 7% employer contributions
  • 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 Edinburgh, Scotland: in addition to the above benefits :
    • Childcare Voucher Scheme (for existing members only)
    • Bike2Work Scheme
    • Season Ticket loans

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.

  • Ability to develop robust, maintainable, efficient and testable code
  • Craft cross-platform solutions
  • Modern C++ Programming, C++11 or newer
  • Working knowledge of Linear Algebra and/or Machine Learning
  • Some experience with Parallel or GPGPU Programming, e.g. OpenCL, SYCL, or CUDA
  • Profile and optimise performance and memory system usage
  • Learn new technologies and development approaches on the job
  • Excellent communication skills, both verbal and written

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.

  • Experience working in industry or academia in relevant fields
  • Experience with Python
  • Experience working on embedded development boards
  • Experience working with BLAS or related projects:
    • Knowledge of GEMM kernels and the understanding of each kernels usage
    • Knowledge of fundamental machine learning routines used in BLAS
  • Experience working with DNN libraries or related projects:
    • Understanding of SYCL and C++ implementations
    • Knowledge of different data types and usage
    • Knowledge of neural network algorithms, 2d convolution etc
  • Experience working with machine learning frameworks
    • Knowledge of relevant machine learning networks (Resnet etc.)
    • Knowledge of industry standard differences between TensorFlow, Glow, PyTorch, etc.
  • Understanding of build systems and continuous integration

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. 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. If you have a disability or additional need that requires accommodation, just let us know.

Qualifications

You should 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. 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 prejiduce your application. Note our system will only accept links to personal projects/GitHub accounts or PDF documents. 



Your application has been sent successfully. Someone should contact you within the next two working days to confirm we have received your application.

Apply

If you want to apply for multiple positions with this application, please select the relevant positions from below.
  • Machine Learning Library Engineer
  • Graduate Software Engineer
  • C++ Software Engineer - Japan
  • Compiler Engineer
  • Runtime Engineer
  • C++ Engineer, Japan
  • Compiler Engineer, Japan
  • Software Engineer - HPC
  • Research Engineer
  • Developer Relations Engineer