MyGlasgow

Research software engineering service

The RCaaS Research Software Engineering (RSE) team offers a software engineering service to support research across the University. This service covers the development of research software, the support for research software development through specific training and general guidance, code review, as well as assistance with writing the research software specifications within grant proposals. The College of Medical, Veterinary & Life Sciences has a dedicated RSE team offering similar services and lead by Iain Barrass: MVLS RSE Team. Similarly, in the College of Arts & Humanities there exists a Digital Humanities Support team. Researchers in these colleges should consider contacting the relevant college team directly via the contact details provided on the above links, but we are more than happy to direct requests submitted to the RCaaS RSE team to the most appropriate team.

When you use the services of the RSE team it is important to recognise that RSEs are collaborators within the research process. If an RSE has made a significant contribution to work underpinning a research paper you should consider naming them as a co-author and highlighting what their contribution has been according to the journal’s guidance. If the level of contribution does not merit co-authorship please recognise their work in the acknowledgements section of the paper if it has one.

To find out more about what research software is and how to ensure it is FAIR, please read our guidelines section.

  • [Work in progress]

Code Review

The RSE team provide a code review service. Review is best performed throughout the project rather than bolted on at the end. In this way any lessons learned from earlier reviews can be applied to subsequent development, and code reviews themselves can be kept manageable. If you are working in an agile manner, defining stories or tasks and using sprints, review at the end of a sprint or at least on story completion would be appropriate, otherwise request review at the completion of each discrete software component. It is good practice to perform development in a branch and code review should take place before you merge that branch into the main trunk. We ask that code is fully tested and meet coding standards such as PEP8 and is validated using linting tools prior to review so that we can optimise the value-add. Code for review should be in GitHub or similar platform.

Example Projects

Adam Smith Library

The Adam Smith Library web site provides an open curated and searchable catalogue of the books owned by Scottish economist and philosopher Adam Smith during his life, 1723-90. Users can view images of marginalia and readers' marks, learn about the collector and the collection, and locate copies of Adam Smith’s library books.

Concussion detection assay

In collaboration with researchers in the School of Physics & Astronomy, the RSE team implemented a tablet-based application that presents visual stimuli to subjects that have undergone potentially concussive events, interfaces with a headset, and records an electroencephalogram trace. The system will be used in clinical trials around the world with data uploaded to the cloud to enable researchers at the University of Glasgow to securely and conveniently access results.

Organic dissolved carbon assay

In collaboration with researchers in the School of Social & Environmental Sustainability, the RSE team implemented a web site to enable the collection of Cup Of Carbon images. Uploaded images are stored and interpreted automatically to produce an estimate of dissolved organic carbon concentration. Users can additionally define sites of interest such as areas of peatland restoration as geospatial entities, and with uploaded images geo-tagged, data are implicitly associated with those sites, facilitating site-based searching. It is anticipated that the application will be used for teaching, by citizen scientists, researchers and anyone involved in peatland restoration.

Feedback

Customer satisfaction is a core Key Performance Indicator (KPI) for the RSE as well as the wider RCaaS Team. We welcome all forms of constructive feedback and would appreciate it if you would complete a customer satisfaction survey following service completion. Where we have worked collaboratively with multiple researchers on a piece of software we welcome feedback from all involved or as a consensus response.

 

Get in touch

The request form is currently a generic request form. Please specify this request is for the attention of the RSE team and describe the service you require: software development, code review, training, help writing a grant proposal, or guidance. You can upload any relevant documents to add more information.

Grant proposals

The best time to get in touch with the RSE team about developing research software is often during the grant proposal writing stage. That way we can assist in estimating the effort and thus the development cost as well as any infrastructure and associated hosting costs expected so that the full cost of the research software element of the project can be included as accurately as possible within the grant proposal.

The size of the RSE team effectively means we can only accommodate small projects (up to 6 months maximum) utilising existing team members. We would generally need to recruit into a new fixed-term position for any significant body of work.

Software Development

The team has good experience with:

Languages: Python, Java. 

Databases: PostgreSQL, MongoDB. The similarity between various relational databases means we are open considering other RDBMs if required with the main concern being simplifying maintenance with a more restricted offering.

Platforms: Web-based and standalone scripts, or whatever works with Python or Java, such as a tablet-based application written using Python. Whilst we are open to hearing requests for mobile applications it is not something we have a wealth of experience with or the necessary development environments. You are also advised to refer to App Procurement and Development Policy & Guidance before you request a mobile application since there is an upfront approval process to be aware of.

We are currently defining the optimal hosting platforms for web applications as well as considering an RShiny solution.

The team is dynamic and keen to learn new technologies so if there is a language not listed above please do still get in touch.

Training & Guidance

We can provide training and guidance in software engineering best practice including but not limited to: 

  • use of the SCRUM agile methodology,
  • requirements capture,
  • testing strategies,
  • software development using python or java,
  • overall management of your research software project.

If you have something specific in mind, please let us know by submitting a request. Depending on your budget and style of learning, you may prefer to self-learn, and to this aim a number of online resources exist. One excellent resource is the Carpentries that offer software carpentry lessons in a number of topics such as version control, programming in python and R and using SQL and databases, with core lessons in both English and Spanish.

The following list of guidelines is a work in progress: