Alert! This is an archive website - I have left academia and I now work at Galois Inc. You can find my new homepage here or contact me directly at

Dr Mike Dodds

I am an anniversary lecturer in the Department of Computer Science at the University of York. I'm also a Royal Society industry fellow with Microsoft Research.

My research is about using rigorous mathematics to solve tricky engineering problems. At the moment, I'm mostly interested building and verifying multicore data-structures.



I joined York Computer Science in 2012. Previously I worked as a postdoc in Cambridge with Matthew Parkinson and Peter Sewell. Even further back I was a doctoral student with Detlef Plump.

I am an anniversary lecturer - one of 20 new faculty appointed to celebrate the University of York's 50th birthday. My position is roughly equivalent to a tenured assistant professor in the US.

In York, I am responsible for research student training. I also run the department seminar series.

I am current PhD supervisor to Matthew Windsor, and former co-supervisor to Dr John Wickerson. I'm actively recruiting research students - see my page on PhD applications.

I tweet about CS and personal things as @miike.


I'm interested in applying the tools of CS theory - logic, proof, and formal semantics - to tricky engineering problems.

Most of my work is about verification - essentially, using maths to guarantee that software can't go wrong. My main targets are the concurrent data-structures that lie at the heart of multicore systems. These are key systems components, but they're also particularly hard to get right.

I've often worked on program logic, in particular Concurrent Abstract Predicates, which I co-developed. More recently, I've worked on correctness conditions and data-structure design. I've also dabbled in automated reasoning and graphical proof visualisation.

My complete list of papers are available on my publication list.