Selected Publications

We present DejaVu, a 3D virtual world co-simulator for ‘visual diffing’ of cyber-physical system deployments in indoor and outdoor environments. Using faster-than-real-time simulation and efficient recording DejaVu can record days of simulation data, including environmental, sensor and network data for later replay and analysis. DejaVu enables developers to replay and visually compare multiple simulations simultaneously using different visual diffing techniques, including ghosts, paths, colour and size, highlighting differences between runs, including energy consumption, radio metrics, movement, etc.
In EWSN, 2017

Recent Publications

. Poster -- Deja-Vu: Visual Diffing of Cyber Physical Systems. Awarded Best Poster – In BuildSys, 2017.

PDF Poster

. Editor: Imperial College Computing Student Workshop. Imperial College Computing Workshop, 2017.

PDF Project

. Integrating a Secure Intranet of Things into a Smart Home Router. MSci Report, University of Glasgow, 2014.


. A lightweight protocol for constrained devices for use in the Internet of Things paradigm. 4th Year Project Report, University of Glasgow, 2013.



I’ve had the opportunity to intern at two great companies, Fujitsu Labs and JP Morgan, during my academic career.

I’ve worked at the Fujitsu Human Centric Robotics Lab in Atsugi, Japan and got to experience life there for three months. Whilst there I enjoyed the wonderful weather (lovely sun, oh and a typhoon, earthquake and many sweaty commutes) and worked with a fantastic team on an very cool teddy bear robotics project, check him out here. I also wrote a little blog about my trip here.


Catch That Bus/Train

A bus, train and weather ambient display utilising a Kindle e-reader.

Mini Web Server in C

An experiment in writing a small concurrent web server in C from scratch.

Thai West Cafe Digital Menu

A web-based digital menu built on Python Django for a Thai Cafe in Picadilly Circus

Two Rooms and a Boom Custom Card Game

A custom print’n’play (PnP) version of the popular social deduction party game, Two Rooms and A Boom. Cards designed using the tikz library for LaTeX.


An android mobile app for alerting sleepy passengers of their impending stop.


A python port of a simple RPC protocol written in C, used primarily for communicating with the Homework Database system, on Github. Python implementation is a feature complete port, including multi-threading support.


I’ve been a course tutor for the following courses:

University of Glasgow:

  • CS1Q – Introduction to computing fundamentals
  • CS1P – Introduction to computer programming in Python

Imperial College London:

  • C121 – Programming I: An introduction to programming in Haskell
  • C1XX – Introduction to C: Writing an ARM emulator
  • C1XX – Concurrency: Modelling concurrent systems
  • C211 – Operating Systems: Writing a concurrent virtual memory operating system – PintOS
  • C221 – Compilers: Building a compiler for the WACC language
  • C275 – Advanced Programming in C++