Advanced Research Computing


Research Software Development

Providing expertise in creating software for academic research, and collaborating with researchers across UCL on projects requiring these skills.

Computationally based research has the potential to set the highest standards for openness, reproducibility, and reliability in research methods. However, a lack of appreciation for the significance of software as a research output often leads to software created in research institutions being treated as a secondary concern. Research software is often developed quickly to solve one-off problems, leading to fragile code that is generally not sustainable or usable beyond the lifetime of a given project, and is hard for other researchers to read and understand. Whilst commercial software engineers tend to follow a more disciplined approach to software development, collaborations with academia can fail due to lack of understanding of the research context.

Our solution has been to create a dedicated group of Research Software Engineers at UCL who combine academic research experience with expertise in good software engineering principles. We provide a service which helps researchers to build more readable, reliable and efficient code. Our work is not just about producing software on behalf of researchers; we work collaboratively, providing the tools, advice and training researchers need in order to follow best practice and continue to develop sustainable software in future.

We also work with partners such as the Software Sustainability Institute to advocate on behalf of research programmers for software as a first-class research output. Research Software Engineers will be an important part of the twenty-first century research team, and building a stable home for these skills in academia will help secure for research the benefits of a high quality, sustainable software infrastructure.

Our goal is to enhance UCL's capacity to produce high quality scientific software, from the simplest scripts to complex simulations running on state-of-the-art supercomputers. We are keen to engage with research groups from across UCL who are developing their own software, to learn about existing projects and to understand the needs of the research community. If you are interested in using any of our services, please read on for more information.

Key features

  • Close collaboration with researchers to produce high quality research software.
  • Capabilities span the development of new applications to optimising existing code.
  • Experts from diverse academic backgrounds and disciplines essential in understanding your research goals.
  • Flexible options to pay for staff and expenses, costing our services into grant submissions or paying a day rate.

Types of projects

Many different academic disciplines have benefited from working with Research Software Engineers in ARC; a full list of current and former projects is available. The following is a partial list of the kinds of projects we typically work on:

  • Providing technical mentoring or supervision for research staff
  • Short-term interventions or long-term collaborations
  • Design and architectural effort
  • Implementing new algorithms or methods
  • Addition of new components to existing models or tools
  • Import/export tools for linking with other codes or loading new data formats (e.g. for multiscale modeling, data import/export)
  • Improvements to performance, reliability, usability and/or deployability
  • Web application development

Note, however, that these are not exhaustive – if you are not sure whether we can help you, do get in touch to ask at rc-softdev@ucl.ac.uk

Working with us

If you are interested in recruiting Research Software Engineers to work on a research project, the first thing we will want to do is meet to discuss your requirements; please email us at rc-softdev@ucl.ac.uk – time spent developing new project proposals is not charged for. 

It is important that the aims and scope of the project are clear before we proceed. Research teams should have a look at our ways of working for an idea of what to expect when working with ARC.

Prioritisation criteria

The Collaborations team within ARC will always aim to take on paid-for projects that lie within our remit, and may become involved either pre- or post-award as described below. However, due to high demand, we are at times unable to work with all groups that contact us. In such circumstances, we will prioritise projects where we can provide the most benefit, relative to other potential solutions. See our prioritisation criteria for more explanation of what this principle entails.

Directly Allocated/Pre-award

We can be included on grants as a directly allocated cost and will prepare a section in Worktribe for this as part of the grant submission process. We can provide fractional or full time effort as needed, throughout the project or at critical intervals, and manage resourcing and recruiting issues to ensure the team is capable of servicing such obligations.

Post award

For research groups who already hold appropriate grant funds there are two routes. Where the total budget is £5,000 or more, following advice from Research Services we will require a separate project sub-account to be set up against which will charge our costs, and will cost on the basis of a retrospective costing using UCL's standard grant costing tools. For projects with a budget of less than £5,000 we will request lump sum transfers via IDT instead. For these smaller projects we can on occasion use a day rate of £440/day (updated February 2022). Note that the prevailing day rate is subject to twice-yearly review; contact us for the currently prevailing day rate.

Free support and advice

We aim to help all researchers at UCL to improve the standard of their research software. With this in mind our developers provide the following types of support for free where time allows:

We also encourage researchers with an interest in programming or computational methods to explore the UCL Research Programming Hub for community events, support and discussion with colleagues.