I develop rigorous mathematical specifications, testing tools, and verification techniques for real-world concurrent systems, focusing on established interfaces (e.g. C, C++ and, OpenCL) and concrete testable artefacts (e.g. x86, Power, ARM CPUs, and Nvidia, AMD GPUs). My interests span a variety of complementary topics including: empirical testing of the behaviour of hardware and compilers, building formal models of parts of the system, the development of algorithms and data-structures that use fine-grained concurrency, and the verification of those pieces of concurrent code. For my latest direction, see this Royal Society position paper.
I belong to the following research groups:
I am currently recruiting for a fully-funded 3.5 year PhD studentship (details here) provided by the UK Research Institute in Verified Trustworthy Software Systems. Please do get in touch if you are interested.