For a long time, large parts of the scientific community have viewed the implementation of good practices in software design, development and maintenance as overheads which distract from their main goal of delivering scientific insight. However, this view is changing, and more and more scientists are waking up to the importance of making research software FAIR (findable, accessible, interoperable and reusable) and sustainable.
In this project you will work on evolving large-scale, well-established software systems that are being used around the world by leading research and development institutions, and will investigate the implementation of modern software engineering practices therein. The first step in the project will be to understand the landscape of software in the atomic, molecular and optical (AMO) physics community, and will comprise a comparative study of the myriad packages available and practices employed in their development and maintenance. This initial study will inform the remainder of the project, by highlighting immediate interventions that will have the largest impact on software, developer and user communities, and science.
One possibility will be developing new paradigms for working with legacy code, which comprises an important and sizeable fraction of scientific software in the AMO community. A current trend is to expose the interfaces of high-performance software written in Fortran or C to a more user-friendly interface via an API. Because the software has not been developed with such a design in mind, however, this often requires a large amount of code-refactoring. We could therefore undertake a study to define best-practices for these procedures, and assess their efficacy by implementing them into several software packages. Issues around legacy code are prevalent in both research and industry settings such as the financial sector, so this work has the potential for wider application and distribution. Alternatively, practices like test-driven development, code-review or the use of automated quality analysis (e.g. “code-smells”) are not currently commonplace in scientific computing, so there exists an incredible opportunity to define new norms for the technologies used in this field, and exert significant influence for the next several generations of scientific research software.
The successful applicant will be based at Queen's University Belfast, where they will interact primarily with the supervisor's research group, based in the School of Mathematics and Physics. However, the project will call for working more broadly with the newly established Northern Ireland chapter of the Society of Research Software Engineers, and software engineering academics in the school of Electronics, Electrical Engineering and Computer Science. There is also the opportunity to spend extended periods with project partners in England (The Open University, University College London, Daresbury Lab) , America (Drake University Iowa, NIST Maryland) and Czechia (Charles University Prague). The work will be supported by the UK-AMOR high end computing consortium, the Collaborative Computational Project for quantum dynamics, the Software Engineering Group, and the AMOS-gateway project.
Applicant profile: Applicants must have a 2:1 undergraduate degree in software engineering or another, relevant area (e.g. physics, computer science*). In addition, applicants should be able to demonstrate relevant software engineering experience, e.g. details of employment or work placements, or a link to GitHub repositories. Knowledge of AMO physics and high-performance (parallel) computing is desirable but not required.
* (applicants will be considered from different educational backgrounds provided they can demonstrate suitable software engineering experience)
More information about the project may be found at paramor.io
This project is funded by DfE. Please see the link below for eligibility criteria: https://www.nidirect.gov.uk/articles/department-economy-studentships