HPC Optimization Engineer
As a Software Engineer and play a key role in advancing scientific discovery through high-performance and accelerated computing. In this position, you'll contribute to a variety of cutting-edge open-source projects, working closely with researchers and developers across multiple scientific domains. Your work will focus on leveraging hardware accelerators-especially GPUs-to enhance performance and portability across platforms.
What You'll Do:
As part of a collaborative and forward-thinking team, your day-to-day will involve:
Deploying and fine-tuning machine learning tools and frameworks to run efficiently on modern hardware
Porting HPC applications and libraries to GPUs and optimizing them for peak performance
Researching and sharing best practices for unified programming models that enable portable, accelerator-agnostic code
Preparing scientific codes for deployment on state-of-the-art supercomputers with GPU-centric architectures
Engaging in robust software engineering practices such as version control (Git), automated testing, continuous integration, documentation, and debugging
You'll report to the Deputy Director of the Scientific Computing Core and be immersed in an environment that values innovation, collaboration, and scientific impact.
Who You Are:
We're looking for a detail-oriented and technically curious engineer who enjoys solving complex problems and working on impactful projects.
Required Qualifications:
A degree in Computer Science or a related technical field (B.S., M.S., or Ph.D.)
3+ years of hands-on software development experience
Strong proficiency in C, C++, and Python
Familiarity with additional languages like Julia, MATLAB, or R is a plus
Experience with parallel computing frameworks such as MPI and OpenMP
Practical GPU programming skills (e.g., CUDA or similar)
Knowledge of performance tuning tools (e.g., profilers, monitors, nvidia-smi, perf, etc.)
Experience with scientific libraries like BLAS, LAPACK, and FFT
Familiarity with portable programming models (OpenCL, SYCL, OpenMP offloading)
Comfortable working in Linux-based HPC environments; experience with SLURM is advantageous
Experience handling large-scale data (terabyte+ datasets)
Additional Skills That Make You Stand Out:
Solid understanding of software engineering principles, including SDLC, code reviews, and version control tools (e.g., Git, Mercurial)
Enthusiastic about learning new technologies, languages, and computing environments
Curious, collaborative, and customer-focused
Strong communication skills, both verbal and written
FAQs
Congratulations, we understand that taking the time to apply is a big step. When you apply, your details go directly to the consultant who is sourcing talent. Due to demand, we may not get back to all applicants that have applied. However, we always keep your CV and details on file so when we see similar roles or see skillsets that drive growth in organisations, we will always reach out to discuss opportunities.
Yes. Even if this role isn’t a perfect match, applying allows us to understand your expertise and ambitions, ensuring you're on our radar for the right opportunity when it arises.
We also work in several ways, firstly we advertise our roles available on our site, however, often due to confidentiality we may not post all. We also work with clients who are more focused on skills and understanding what is required to future-proof their business.
That's why we recommend registering your CV so you can be considered for roles that have yet to be created.
Yes, we help with CV and interview preparation. From customised support on how to optimise your CV to interview preparation and compensation negotiations, we advocate for you throughout your next career move.