Research Software Engineering

The Research Engineering Group is a community of practice at the University of Bristol. It includes interdisciplinary data scientists, research software engineers, research infrastructure engineers, data engineers and friends.

We can collaborate with you in many ways:

Join our group - Our main communication is via our Slack channel, #bristol-reg, on the UK RSE Slack instance. 

Training - We provide training workshops in programming, good software engineering, data analysis and machine learning, in a range of languages including Python, R, and C++. These workshops are available either as part of the university-wide training programme, or via partnerships with, e.g. CDTs and DTPs.

Consultancy - We can provide you with free consultancy support via Ask-JGI. We have a wealth of expertise within the group, and are happy to answer questions and provide one-to-one meetings with researchers who want to improve the quality of engineering of the software that they produce. For example, this could take the form of providing advice on how to better debug code, how to set up unit testing or continuous integration, how to design code for better maintainability and development, or general advice on how to progress software development.

Partnership - We are an academic group, and can contribute credible and useful software engineering expertise and track-record to funding proposals. We run a pool of RSEs who can be costed onto research grants in an identical way as PDRAs. RSEs are costed in units of 50% fte in 6-month blocks, e.g. 50% for one year, 100% for 6 months, 100% for 2 years etc. In addition, as co-investigator members of the project management team, we can provide hot-desking space within the RSE group. Your researchers can co-locate to work with and learn from other software developers and RSEs. We provide mentoring, training, co-coding, code-review and peer-support to researchers engaged in software development on active funded research projects. In addition, as members of the project management team, we can help manage the software developent process, for example via proper setting of software development milestones, monitoring of progress, risk management and project reporting. Take a look at our case studies to see what we can do.

Funding Advice - We have a good knowledge of the UK software funding landscape, and can provide advice on which schemes would be appropriate for different software development proposals. The RSE group can also provide advice on how best to structure a software development proposal, including what should be included to ensure that the software is engineered to a high standard. In addition, we can advise on realistic timescales for different types of software development.

Lectures / Talks - We have a range of lecture and talk material on the subject of good software engineering, best practice, and how it can be applied within an academic setting. We are always very happy to present these talks on request.

Cloud - We have a lot of experience of developing and adapting software for use on a variety of different cloud platforms, and using cloud technologies such as containers (e.g. docker), orchestrators (e.g. kubernetes) and notebooks (e.g. Jupyter). We have also developed cluster-in-the-cloud, which is used to create and manage on-demand HPC clusters.