Computer Laboratory

Oliver R. A. Chick


In February 2016 I passed my PhD with minor corrections. I conducted my PhD under the supervision of Dr Andrew Rice in the Digital Technology Group. My BA, MEng, and PhD were undertaken as a member of Gonville & Caius College. From January 2016to July 2017 I was a Teaching Associate of Computer Science at Queens' College. I worked for Focal Point Positioning as Principal Software Engineer until July 2017 and am now a software engineer at Apple.

I have previously studied the Computer Science Tripos including Part III.

Oliver R. A. Chick photo. © Ramsey M. Faragher

Contact Details

Oliver R. A. Chick
Computer Laboratory
University of Cambridge
William Gates Building
15 JJ Thompson Avenue

Email: oliver [dot] chick [at] cl [dot] cam [dot] ac [dot] uk

GPG fingerprint: 4292 E0E2 1E9F DE91 D0EC 6AD4 57CB 6E45 78EA 2A07. Public GPG Key

IRC: oc243 on Freenode and

Follow @oc243

Recent, selected publications

  • Shadow Kernels: A General Mechanism For Kernel Specialization in Existing Operating Systems
    , , , ,
    Best paper at APSys 2015

    Existing operating systems share a common kernel text section amongst all processes. It is not possible to perform kernel specialization or tuning such that different applications execute text optimized for their kernel use despite the benefits of kernel specialization for performance guided optimization, exokernels, kernel fastpaths, and cheaper hardware access. Current specialization primitives involve system wide changes to kernel text, which can have adverse effects on other processes sharing the kernel due to the global side-effects. We present shadow kernels: a primitive that allows multiple kernel text sections to coexist in a contemporary operating system. By remapping kernel virtual memory on a context-switch, or for individual system calls, we specialize the kernel on a fine-grained basis. Our implementation of shadow kernels uses the Xen hypervisor so can be applied to any operating system that runs on Xen.

  • Soroban: Attributing Latency in Virtualized Environments
    , , , , ,
    HotCloud 2015

    Applications executing on a hypervisor or in a container experience a lack of performance isolation from other services executing on shared resources. Latencysensitive applications executing in the cloud therefore have highly-variable response times, yet attributing the additional latency caused by virtualization overheads on individual requests is an unsolved problem.

    We present Soroban, a framework for attributing latency to either the cloud provider or their customer. Soroban allows developers to instrument applications, such as web servers to determine, for each request, how much of the latency is due to the cloud provider, and how much is due to the consumer’s application or service. With this support Soroban enables cloud-providers to provision based on acceptable-latencies, adopt finegrained charging levels that reflect latency demands of users and attribute performance anomalies to either the cloud provider or their consumer. We apply Soroban to a HTTP server and show that it identifies when the cause of latency is due to a provider-induced activity, such as underprovisioning a host, or due to the software run by the customer.

    Soroban follows the gold standard for open and reproducable research.

  • Advances in Technology: The opportunities and challenges for provenance
    , , , , , , ,
    TAPP 2015.

    In recent years several hardware and systems fields have made advances in technology that open new opportunities and challenges for provenance systems. In this paper we look at such technologies and discuss the implications they have for provenance. First, we discuss processor and memory controller technologies that enablefine-grained lineage capture, resulting in more precise and accurate provenance. Then, we look at programmable storage, 3D memory and co-processor technologies discussing how lineage capture in these heterogeneous environments results in richer and more completeprovenance. We finally look at technological advances in theirfield of networking, namely NFV and SDN, discussing how these technologies enable easier provenance capture in the network.

  • Captain Buzz: An all-smartphone autonomous delta-wing drone
    , , , , ,
    DroNet 2015.
    Fully autonomous hobbyist drones are typically controlled using bespoke microcontrollers, or general purpose low-level controllers such as the Arduino. However, these devices only have limited compute power and sensing capabilities, and do not easily provide cellular connectivity options. We present Captain Buzz, an Android smartphone app capable of piloting a delta wing glider autonomously. Captain Buzz can control servos directly via pulse width modulation signals transmitted over the smartphone audio port. Compared with traditional approaches to building an autopilot, Captain Buzz allows users to leverage existing Android libraries forcesflight control and innovative use-cases, reprogram their autopilot midflight for rapid prototyping, and reduces costs of building drones.
  • Resourceful: fine-grained resource accounting for explaining service variability
    , , , , ,
    Increasing server utilization in modern datacenters also increases the likelihood of contention on physical resources and unexpected behavior due to side-effects from interfering applications. Existing resource accounting mechanisms are too coarse-grained for allowing services to track the causes of such variations in their execution. We make the case for measuring resource consumption at system-call level and outline the design of Resourceful, a system that offers applications the ability of querying this data at runtime with low overhead, accounting for costs incurred both synchronously and asynchronously after a given call.


I am currently working with Dr Andrew Rice, Dr Ripduman Sohan, James Snee, and Lucian Carata, on the Resourceful project that provides fine-grained resource accounting within system calls.

Ramsey and me with the Captain Buzz airframes.

Ramsey and me with the Captain Buzz airframes.
© Ian Davies. Photoshopped by Mistral Contrastin.

Captain Buzz is a collaboration with Dr Ramsey Faragher to build a drone that is flown autonomously by a smartphone, using the phone's sensors as inputs into an autopilot. The phone flies the plane by playing an audio signal that uses pulse code modulation to control servos directly connected to the phone's headphone jack (written by Daniel Wagner). Captain Buzz has several innovative features, including the ability to reprogram the autopilot over ADB as it flies (credit to TAS).
Captain Buzz article in `The Ring'
Dr Ramsey Faragher demonstrating Captain Buzz on YouTube
In March 2015, Ramsey and I were invited to the The Naked Scientists live show for the Cambridge Science Festival 2015.
I have spoken about Captain Buzz at the Computer Lab Ring dinner, and was interviewed (along with Ramsey) on BBC Radio Cambridgeshire in May 2016.

Along with Daniel Thomas, I administer the DTG husky cluster, a set of servers running XenServer with Ubuntu virtual machines for the Digital Technology Group. By following best-practice for running research infrastructure, along with novel techniques such as a distributed setup of puppet (credit ), we avoid the age-old problem of bit-rot of academic code, and are able to update the base operating system of all our machines (currently around 70) in less than a day with zero downtime. Our configuration is publicly available.

At Google, I worked in the code cultivation team alongside Dr Robert Bowdidge. I built a prototype of Muscat, an analysis for the Clang compiler that identifies code features from the abstract syntax tree, and uses machine learning to cluster similar usecases.

Whilst working for the Xen Platform Team at Citrix I implemented persistent grants in the Linux Xen blk{front/back} drivers. This changed the virtualised block device drivers to reduce the number of costly flushes of the translation lookaside buffer (TLB) by using a scheme where a set of pages are persistently shared between guest virtual machines (domUs), and the privileged domain (dom0). The result is a 3x increase in throughput on a host serving ten guests. This was upstreamed into the Linux kernel by Roger Pau Monne (0a8704a51f386cab7394e38ff1d66eef924d8ab8).

For my Part II Project, I worked with Dr Kathryn Gray to build a compiler with parallel extensions to Standard ML, based on Ypnos. This took the ideas of Dr Dominic Orchard that structured grid computations could be modelled using Haskell as an application of a co-monad, and applied it to Standard ML using pthreads for parallelism.

I helped build TweetGuv, a website that analysed tweets of politicians, and used natural language processing techniques to determine if they were following the party line. I presented the work, which won the prize of best group project in the Computer Lab. Tweetguv received national media interest, including the BBC, and the Times.

I am the author of FSM Sim, a tool for teaching the theory of finite state automata to secondary school students.

Selected non-academic work

  • XKCD hashing competition. On 2013-04-01, Mattias Linnap and I ran the Computer Lab's entry for the XKCD hashing competition. Whilst we didn't win we did end up in the day's XKCD comic.
  • RoomCaius. Gonville & Caius College had used the same method for assigning rooms to undergraduates since a failed trial in the 1970s. Namely, over three weeks students would skip lectures to go to an office, look through a list of vacant rooms and write their name next to an empty one. I moved this to an online system, RoomCaius, that lets students rate, photograph and ballot for rooms online. The entire process is now completed within a day.
  • Caius foodback. As a chef knowing what people think of your food is hard. To help the chefs at Caius, I built a foodback system that lets students gives a thumbs-up, or thumbs-down to every dish served in the college. Students can also leave (anonymous) comments to the chef to explain what they like, or dislike. This was the first foodback system in an Oxbridge college that lets you Facebook-like individual dishes (perhaps even a world first?).
  • Caius Internet usage monitor. When Internet usage is charged at £10 per gigabyte students become sensitive about how much Internet they use. I used iptables, running on the college firewall to produce a report every time minutes detailing how much Internet each student had used. This fed into email alerts, OSX widgets, and Drupal to inform Caians how much Internet they had used.



I currently supervise Algorithms. Please see my supervisions page for information on supervisions.

I have previously supervised Compiler Construction, and Programming for Mobiles.


I currently tick ML, Programming in Java, and Further Java.

Revision Notes

Revision notes for some computer science tripos courses are available here. Raven authorisation is required. Please email me to give you access.