Information Services Division


The kind of work we do

The focus of the group is to bring software engineering expertise to bear on research challenges, enhancing the effectiveness and impact of research software. This can be worked out in many ways on different projects. Some suggestions are given in the list below, and you can also view details of projects we have worked on. Note, however, that these are not exclusive - if you are not sure whether we can help you, do get in touch to ask!

  • Implementing new algorithms or methods
  • Addition of new components to existing models
  • Import/export tools for linking with other codes or loading new data formats (e.g. for multiscale modeling, data import/export)
  • Performance improvements:

    • Performance and/or scaling objectives for the project in terms of time, memory or problem size
    • Parallelisation of existing serial code
    • Use of accelerators/GPGPUs
    • Vectorisation or replacement of inefficient high level code (e.g. Matlab, python, R…)
  • Design and architectural effort

    • Redesign, tidying, or refactoring objectives
    • Replacement of poorly-understood legacy code with new, clear, tested implementations
    • Investigation of replacement of parts of the code with appropriate library use
  • Testing, reliability and correctness improvements

    • Creation of automated test harness
  • Usability improvements

    • New easy to use command line interface
    • Graphical interface
    • New user interface features
    • Documentation effort
  • Deployability improvements

    • Availability of code on additional platforms or environments
    • Deployment and packaging of code base
    • Deployment to standard package servers