Oxford Nanopore Technologies is headquartered at the Oxford Science Park outside Oxford, UK, with satellite offices and a commercial presence in many global locations across the US, APAC and Europe.
Oxford Nanopore employs from multiple subject areas including nanopore science, molecular biology and applications, informatics, engineering, electronics, manufacturing and commercialisation. The management team, led by CEO Dr Gordon Sanghera, has a track record of delivering disruptive technologies to the market.
Oxford Nanopore’s sequencing platform is the only technology that offers real-time analysis, in fully scalable formats from pocket to population scale, that can analyse native DNA or RNA and sequence any length of fragment to achieve short to ultra-long read lengths. Our goal is to enable the analysis of any living thing, by anyone, anywhere!
We are seeking a highly skilled and innovative individual to join our team as a GPU Performance Engineer. In this role, you will focus on optimizing machine learning inference for our open-source software, including the base caller dorado, by writing high-performance code for GPUs using CUDA, OpenCL, Metal, and other similar technologies. The majority of our machine learning inference work is deep-learning based.
Responsibilities:
1. Collaborate with the development team and experienced C++ engineers to optimize machine learning inference algorithms for high-performance execution on GPUs.
2. Implement, benchmark, and refine high-performance computing solutions using CUDA, OpenCL, Metal, or other GPU programming frameworks.
3. Analyze and optimize the performance of existing codebases, identifying bottlenecks and implementing solutions to improve efficiency.
4. Focus on optimizing the performance of bioinformatics tools, such as alignment and variant calling.
5. Work closely with software engineers, data scientists, and researchers to integrate performance improvements into our machine learning pipeline.
6. Stay up-to-date with the latest developments in GPU programming and high-performance computing, and apply this knowledge to enhance our software.
7. Document and communicate optimization strategies and results to both technical and non-technical stakeholders.
What We're Looking For...
8. Extensive experience with GPU programming and high-performance computing using CUDA, OpenCL, Metal, or similar technologies.
9. Proven track record of optimizing code for performance and efficiency on GPU architectures.
10. Strong programming skills in C/C++, Python, and other relevant languages.
11. Familiarity with machine learning frameworks such as TensorFlow, PyTorch, or similar is a plus.
12. Ability to work independently and collaboratively within a team environment.
13. Excellent problem-solving skills and attention to detail.
14. Good communication and interpersonal skills with the ability to explain complex technical concepts to a diverse audience.
Preferred Qualifications:
15. A degree in computer science, engineering, mathematics, physics, or a related field, or equivalent experience.
16. Experience with optimizing machine learning inference for bioinformatics or related applications.
17. Knowledge of low-level programming and performance profiling tools.
18. Experience with open-source software development and contribution.
19. Bioinformatics experience is nice to have but not expected.
Why Join Us?
At Oxford Nanopore Technologies, we are committed to pushing the boundaries of what is possible with single-molecule sensing platforms. By joining our team, you will have the opportunity to work on cutting-edge technology that has the potential to revolutionize fields such as genomics, diagnostics, and more. We offer a dynamic and collaborative work environment where innovation and creativity are encouraged.