University of Cambridge

Job Opportunities


Research Engineer/Associate: CADETs Project

Fixed-term: The funds for this post are available for 18 months.

We are seeking a Full Time Research Engineer/Associate to join the CADETs project. CADETs is a DARPA funded project whose aim is to detect and mitigate Advanced Persistent Threats. It does this through the notion of a "Transparent Operating System" -- an Operating System that is continually telling an external monitor what it is doing as it executes. The resulting fine-grained provenance logs created as a result of this exercise record what has been happening both in user-space and the kernel to an extent where it is possible to reconstruct system actions at a fine-grained level. We collect and analyse these OS logs (which come to us from multiple hosts on the network) to detect, mitigate and correct anomalous and malicious behaviour.

In this position, you will support CADETs by increasing the performance and scalability of the data collection and analysis mechanisms. You will help to build systems and architectures to enable large scale ingestion, storage, modelling and querying of fine-grained OS provenance. This will enable analysts to perform both directed and open-ended queries for gaining insights about current and past states of a distributed system, by tracking a set of execution steps as close to real-time as possible. Our goal is to create a system that is able to store, index and make available for query 10^9 events a second.

You will not be starting from scratch. We already have an existing codebase that is able to achieve relatively high throughput. Your job will be to take this codebase to the next level through both distributed systems support and by increasing per-node processing performance.

Ideal candidates for this position will have experience in systems level application development in a UNIX environment and a familiarity of the problems arising with building distributed systems. No PhD or formal qualification is necessary though candidates will be expected to provide evidence of competence in relevant fields. Candidates completing a PhD in Computer Science (or similar) with a specialisation in distributed systems, storage or networking will also be considered.

The position requires existing experience with: the C programming language; python; revision control; and participation in large (and ideally distributed) industrial, research, or open-source development projects. Strong interpersonal and organisational skills, and the ability to work in an international team at multiple sites, are essential.

Applicants need not be domain experts in all areas described but you should have a hunger to learn and to better yourself and the systems you will work on. Self-starters and individuals who can rapidly learn and improve existing technologies are encouraged to apply.

This position is open to all nationalities - please note that the University of Cambridge is a Tier 2 sponsor.

This post is intended to start on 1 July 2017, although flexibility is available

More information on CADETs may be found at:

Please communicate any questions to

To apply online for this vacancy, please click on the 'Apply' button below. This will route you to the University's Web Recruitment System, where you will need to register an account (if you have not already) and log in before completing the online application form.

Please ensure you upload your Curriculum Vitae (CV) and a covering letter. If you upload any additional documents which have not been requested, we will not be able to consider these as part of your application.

Please quote reference NR12181 on your application and in any correspondence about this vacancy.

The University values diversity and is committed to equality of opportunity.

Apply online