Research Software Engineering
The ACRC Research Software Engineering Group is a mix of grant-funded and core-funded engineers whose focus is to improve the reusability, robustness, sustainability and quality of research software developed across the University.
The ACRC Research Software Engineering (RSE) team has expertise in good research software engineering. As an outward looking research group, we exist to collaborate with researchers at all levels across the University.
We provide the following options for collaboration:
- Training - We are all are involved in providing training workshops in programming and good software engineering. These workshops are available either as part of the ACRC training programme, or via bespoke requests from CDTs or research groups, if sufficient space, administration support and demand can be demonstrated. We provide training in programming (e.g. Python, C++, parallel coding), software engineering (e.g. version control and testing) and machine learning. A lot of our training is online, e.g. take a look at our python workshops
- Consultancy - All members of the RSE group provide consultancy support. 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.
- 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). If you are interested in using the cloud, writing software for the cloud, or just learning how the cloud could support your research, please feel free to get in touch.
- Partnership - The academic members of the RSE group can be active members of research project teams, and can contribute credible and useful software engineering expertise and track-record to funding proposals that propose to develop new software. As co-investigator members of the project management team, we can provide hot-desking space within the RSE group, allowing researchers who are funded to develop software to co-locate with other software developers and RSEs. This allows us to 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, the RSE group can provide help managing the software developent process, for example via proper setting of software development milestones, monitoring of progress, risk management and project reporting.
- 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. For example, we have a 45 minute lecture suitable to be given as part of a scientific computing course entitled “How to Design and Engineer Good Research Software”, or "Interactive Visualisation and Data Analysis of Simulations using Jupyter Notebooks on the Cloud". We are happy to present lectures or talks such as these as part of undergraduate or postgraduate training courses, lunchtime seminars or invited talks.