A free, 30-minute one-to-one consultation with Imperial's Research Software Engineering team. Bring your code, your questions, or your problems — and leave with practical advice you can act on immediately.

What are Code Surgeries?

Code Surgeries are focused sessions where an RSE specialist reviews your software challenges and offers tailored guidance. The support is intended to provide the best long-term impact, helping you adopt better practices and tools that will benefit your research group for years to come.

Sessions take place weekly via Microsoft Teams. To ensure we can give you the best advice, book at least one week in advance and share any relevant code or repositories beforehand so we can come prepared.

Who are they for?

Code Surgeries are open to any Imperial researcher who writes or maintains software as part of their work. If your research involves a substantial amount of software pipelines, simulations, hardware interfacing or data analysis, this service is for you.

PhD Students Postdoctoral researchers Principal Investigators Research Staff

We can advise you on…

🔒 Maintain software in your group so effort isn't wasted

Keep a full history of your code, collaborate without overwriting each other's work, and ensure your software remains accessible long after any individual moves on.

Git - GitHub - GitLab

♼ Ensure computational results are fully reproducible

Protect the integrity of your research by enabling seamless reproduction of computation results by collaborators, reviewers, or your future self. Make your code resilient to ever-changing software environments and libraries.

Docker - Conda

🛡 Prevent software bugs from affecting your research

Automated tests verify your code behaves correctly as it evolves, giving you confidence that changes haven't introduced errors into your results.

pytest - unittest - Google Test

We can advise you on… 2

âš¡ Speed up slow analyses and simulations

Identify where the computational effort is highest in your code, then apply targeted optimisations — from algorithmic improvements to parallelisation and GPU acceleration.

cProfile - CUDA

📦 Share and publish your research software

Package and distribute your code so that others can install and use it easily, meeting the open-source publication standards increasingly required by journals and funders.

PyPI - conda-forge - CRAN

🤖 Automate your research software releases

Set up pipelines that run tests and checks automatically every time you want to share an updated version of your software.

GitHub Actions - GitLab CI

Who will you be working with?

You will be able to choose the team member whose expertise most closely matches your needs when booking. Each specialist has their own unique mix of domain-specific research expertise and software specialties. Contact if you need help deciding.

Name Domain Knowledge Software Expertise
Adrian D'Alessandro Web application development; scientific modelling; software engineering best practice. Python; unit testing; packaging; containerisation with Docker.
Chris Cave-Ayland Scientific computing; research infrastructure; high performance computing. Python; backend web development; HPC environments.
Diego Alonso Alvarez Standalone application development; open-source software distribution. Python; package deployment to PyPI and conda-forge.
Ryan Smith Bioinformatics; algorithm development; biological data handling. Python; C++; R.
Alex Dewar Hardware and robotics; embedded systems; low-level software deployment. Python; C++; Rust; build systems (CMake etc.).
Saranjeet Kaur Bhogal Statistical computing; interactive data applications; technical documentation. R; package development; Shiny applications.
Dan Cummins Scientific programming; numerical methods; GUI application development. C; Python; MATLAB; Linux systems administration.
James Turner Numerical methods; machine learning; computer vision. Python; C++; CUDA (GPU programming); HPC clusters.
Aurash Karimi Finite element simulation; quantitative finance; materials science; density functional theory. C++ (Qt, OpenGL); Python; Docker; CI/CD pipelines; HPC & CUDA.
Miruna Serian Molecular dynamics simulations; bioinformatics; data engineering. Python; data pipeline development.

 

Slots are limited — please book only one at a time so that all researchers have a fair opportunity. Where possible, select the team member whose expertise best matches your needs, and share any relevant code or repository links at least one week before your session.