What I do

I help engineers to build software better (and, indirectly, to build better software). To do this, I develop novel software engineering techniques, and build tools that make it easy to apply those techniques in practice.

My current focus is on making it easier to apply mutation testing (a powerful but computationally expensive approach for software testing) to realistic software systems. To do this, I am building on my previous work on model-driven engineering, which is a software engineering approach that provides significant infrastructure for automation and abstraction.

My research is used in practice. The transformation language developed in my 2011 doctoral thesis, Epsilon Flock, is used by BAE Systems and IKERLAN. The wider Epsilon project is used by NASA, Thales, Siemens, Rolls Royce and IBM among others.

Why I do what I do

Software increasingly affects every aspect of our lives. Software that is faulty, unreliable, unresponsive, inaccessible, or otherwise fails to be fit-for-purpose is less acceptable than ever. Poor quality software negatively affects our quality of life, causes economic damage and (in the case of safety-critical systems) causes fatalities. I want to better understand how to engineer software of acceptable quality, and to make it easier for software engineers to "do the right thing."

Current research projects

Scalable Model-Driven Engineering (MONDO): exploring how we can apply state-of-the-art modelling tools and techniques at scale. At York, we are investigating how to efficiently store and query huge, distributed models.
with Dimitris Kolovos and Richard Paige

Incremental Model-to-Text Transformation: developing techniques for efficiently propagating changes from models to generated code (and other textual artefacts).
with Jimi Ogunyomi and Dimitris Kolovos

Mitigating Cloud Lock-In: applying model-driven engineering tools and techniques to automate the migration of software systems from one cloud provider to another.
with Gabriel Costa-Silva and Radu Calinescu

Community involvement

I co-organise the Transformation Tool Contest.

I am an organising committee member for the Software Technologies: Applications and Foundations (STAF) conferences. (2015: publications chair. 2014: local organiser).

I was a programme committee member for the European Conference on Modelling: Foundations and Applications (ECMFA) between 2012 and 2014.