Robert Haines

Head of Research Software Engineering, IT Services, University of Manchester

Interests

Software engineering; programming; open-source software; agile processes, techniques and tools; testing, test-driven development and test coverage; continuous integration and continuous deployment; code quality; code sharing and reuse; software as a first-class output of the scientific process - all with a focus on sustainability and reproducibility, both of the software and the research.

Research

I have been a Research Software Engineer for my entire career, although it is only recently that I have been able to identify as such. My team and I work with academics and researchers to design, implement, modify and install maintainable, usable and well-tested software systems to enable them and other scientists to do their research. This might mean creating new software, researching entirely new ways of doing things or identifying and possibly modifying existing applications.

As well as developing software for researchers, we also help them get the most from their own code and provide advice, consultancy and training for them and their research groups. I have worked in a wide range of domains (including condensed matter physics, computational chemistry, hydrodynamics, bioinformatics, biodiversity and reproducibility) for research projects of various types and sizes from small "proof of concept" investigations, through technology and knowledge transfer projects, up to long term multi-partner RCUK, EU and US projects. I have collaborated with diverse organizations such as utility companies, national laboratories, start-ups and public bodies as well as other universities. I also contribute to a number of open-source software projects. I teach software engineering as part of the BSc and MSc programmes in the School of Computer Science at the University of Manchester. I focus on aspects such as agile, test-driven development and code quality, and use my experience as a practising software engineer to bring a practical and pragmatic mindset to the course units. My software engineering research is focused on sustainability and reproducibility and includes work on understanding how developers view sustainability.