I'm currently looking for a PhD student. Please get in contact via email if you are interested.

Interests: Privacy, Mobile Computing & Programming

I am a University Lecturer at the University of Cambridge Computer Laboratory. I'm also a Fellow of Robinson College, Cambridge.

My current research work explores the intersection of three areas of computer science: security & privacy, mobile computing, and programming languages.


  • Nigori is a distributed system for storing and synchronising application state between mobile devices using cloud storage. Nigori provides strong privacy guarantees, preventing the cloud provider and application developer from accessing any personal information.
  • Device Analyzer has collected statistical usage data from over 10,000 Android mobile devices across the world. Device Analyzer preprocesses data on the mobile device to remove direct personal identifiers and reduce the privacy risk of sharing the data with the university.
  • Computing for the Future of the Planet explores how computers can help solve some of the world's most pressing problems arising from climate change and the need to build sustainable systems.

Previous work includes:

  • The TIME-EACM project, which explored how sensor networks and distributed systems can be used to improve traffic and transport in the 21st century.
  • The Cambridge Mobile Urban Sensing Project which measured and monitored air quality, particularly urban pollution generated by motor vehicles.

I have published some of my research work in various conferences, journals and books. A complete list of my publications are available in my curriculum vitae.


In the 2011-12 academic year I am teaching Programming in Java to first-year undergraduate students and Further Java to second-year students. I developed these courses from scratch with Andrew Rice; students are taught the material in a hands-on practical class format.

Prior to teaching Java I lectured the second-year undergraduate course in "Programming in C and C++". My lecture slides, errata and the assessed course exercise are available from the lecture course home page. Note: I'm not teaching this course this year, so queries about this course should go to the current lecturer.