Robert Haines

Research Software Engineering Manager, Research IT, University of Manchester.


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.


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. 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.

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 a software engineering module - Agile and Test-Driven Development - as part of the Advanced Computer Science MSc in the School of Computer Science, University of Manchester. I started teaching this course unit in its second year and helped to revise the material substantially. I employed my experience as a practising software engineer to completely overhaul the test-driven development component of the course and introduce testing to the lab-based coursework project.

My software engineering research is focused on sustainability and reproducibility and includes work on understanding how developers view sustainability. I also have a GitHub profile.

Check out contributions by and mentions of Robert Haines on