Tim Deegan
Iʼm a computer scientist and systems programmer, living in
Cambridge, UK.
My email address is tjd@phlegethon.org.
Skills
I design and build operating systems components. I have produced fast
and reliable filesystem code and hypervisor features. I like to work
on difficult technical problems, ideally in a small team of
engineers. I enjoy a collaborative environment where I can
work with, and learn from, smart and enthusiastic people.
Iʼm proficient in C on unix, but I also enjoy assembler (x86 and
ARM), and am happy writing kernel code. For higher-level work I prefer
python, but have used perl, bash and ocaml in the past, and am always
willing to learn something new. Iʼm familiar with the usual unix
source control tools (git, mercurial) build systems (make, autotools),
and debugging tools (gdb, valgrind). I use static analysis tools and
performance profilers.
I have experience working with open-source communities, collaborating
with other engineers and reviewing code. I enjoy mentoring junior
engineers.
Outside of working hours, I spend most of my time with my wife and
school age son. We enjoy music, trips to nature reserves, and
computer games.
Experience
-
2019–: Principal Research SDE,
Microsoft Research
I am part of Project Silica,
a multidisciplinary team developing a new storage medium for archive
data, using femtosecond lasers and quartz glass. I work on all kinds
of software, from machine learning to embedded systems, to support the
physicists and hardware engineers and help to turn a lab prototype
into a working storage system.
-
2017–2019: Principal Engineer,
Amazon Web Services
At Amazon, I worked on the
S3 object store.
I was one of the first members of the Cambridge S3 team and helped
it to grow to 16 people in its first year. I worked mostly on
feature planning and prototyping, but also on operations and debugging
production systems.
-
2011–2017: Software Architect,
Coho Data
At Coho Data, I worked on the object storage layer of an all-flash storage
array. I designed and implemented compression, checksumming, garbage
collection and concurrency control features. I worked on journalling
and crash recovery, and on performance analysis. I was also involved
in the architecture and design of other parts of the product.
-
2006–2015: Principal Software Engineer,
XenSource / Citrix Systems
I spent nine years on the core development team of the
Xen hypervisor,
both writing new code and reviewing designs and code for others. I
wrote (with Michael Fetterman and others) Xenʼs shadow pagetable
code, which gave Xen a performance advantage over other hypervisors
for some time. I then worked on many other parts of the system:
emulator support for 'real mode' code, saving and restoring virtual
CPU state, BIOS/firmware bugs, etc. I was involved in porting Xen to
to run on ARMv8 processors.
- 2001–2006: PhD Student,
University of Cambridge
My PhD thesis was on the DNS,
suggesting a break between the administrative delegation of control
and the distribution of the service itself. I measured how often
records change in the public DNS and prototyped an improved
nameserver.
-
2001: Secure Hosting Systems Administrator,
Baltimore Technologies
I was part of a team running a high-security machine room. We hosted
public-key cryptographic
infrastructure for clients like mobile phone vendors, government
departments and financial institutions.
-
2000: Technical Hostmaster,
University College Dublin
I ran the computer systems for the
.ie top-level domain, including
databases, websites and DNS
servers.
Education
- 2001–2006: PhD, Computer Science, University of Cambridge
- 1995-1998: BA, Computer Science, University of Cambridge
In my final year I won the Olivetti and Oracle class prize.
Publications
-
Project Silica: Towards Sustainable Cloud Archival Storage in Glass.
Patrick Anderson, Erika Aranas, Youssef Assaf, Raphael Behrendt,
Richard Black, Marco Caballero, Pashmina Cameron, Burcu Canakci,
Thales de Carvalho, Andromachi Chatzieleftheriou, Rebekah Clarke,
James Clegg, Daniel Clethroe, Bridgette Cooper, Tim Deegan, Austin
Donnelly, Rokas Drevinskas, Alexander Gaunt, Christos Gkantsidis,
Ariel Gomez Diaz, Istvan Haller, Freddie Hong, Teodora Ilieva,
Shashidhar Joshi, Russell Joyce, Mint Kunkel, David Lara, Sergey
Legtchenko, Fanglin Liu, Bruno Magalhaes, Alana Marzoev, Marvin
McNett, Jayashree Mohan, Michael Myrah, Trong Nguyen, Sebastian
Nowozin, Aaron Ogus, Hiske Overweg, Ant Rowstron, Maneesh Sah,
Masaaki Sakakura, Peter Scholtz, Nina Schreiner, Omer Sella, Adam
Smith, Ioan Stefanovici, David Sweeney, Benn Thomsen, Govert Verkes,
Phil Wainman, Jonathan Westcott, Luke Weston, Charles Whittaker,
Pablo Wilke Berenguer, Hugh Williams, Thomas Winkler and Stefan
Winzeck.
Proc. 29th SOSP,
October 2023.
[PDF]
[Abstract]
-
Strata: High-Performance Scalable Storage on Virtualized Non-volatile Memory.
Brendan Cully, Jake Wires, Dutch Meyer, Kevin Jamieson, Keir Fraser, Tim Deegan, Daniel Stodden, Geoffrey Lefebvre, Daniel Ferstay and Andrew Warfield.
Proc. 12th FAST,
pp. 17-31,
February 2014.
[PDF]
[Abstract]
-
Breaking Up is Hard to Do: Security and Functionality in a Commodity Hypervisor.
Patrick Colp, Mihir Nanavati, Jun Zhu, William Aiello, George Coker, Tim Deegan, Pete Loscocco and Andrew Warfield.
Proc. 23rd ACM SOSP,
pp. 189-202
October 2011.
[PDF]
[Abstract]
-
Turning down the LAMP: Software Specialisation for the Cloud.
Anil Madhavapeddy, Richard Mortier, Ripduman Sohan, Thomas Gazagnaire, Steven Hand, Tim Deegan, Derek McAuley and Jon Crowcroft.
Proc. 2nd HotCloud,
June 2010.
[PDF]
[Abstract]
-
Improving Performance by Embedding HPC Applications in Lightweight Xen Domains.
Samuel Thibault and Tim Deegan.
Proc. 2nd HPCVIRT,
March 2008.
[PDF]
[Abstract]
-
Lazy Susan: dumb waiting as proof of work.
Jon Crowcroft, Tim Deegan, Christian Kreibich, Richard Mortier and Nicholas Weaver.
Technical Report UCAM-CL-TR-703,
University of Cambridge,
November 2007.
[PDF]
[Abstract]
-
Melange: creating a “functional” Internet.
Anil Madhavapeddy, Alex Ho, Tim Deegan, Ripduman Sohan and David Scott.
Proc. 2nd EuroSys,
March 2007.
[PDF]
[Abstract]
-
The Main Name System.
Tim Deegan.
PhD dissertation,
April 2006.
[PDF]
[Abstract]
-
The Main Name System: An exercise in centralized computing.
Tim Deegan, Jon Crowcroft and Andrew Warfield.
ACM SIGCOMM CCR
35(5) pp. 5-13,
October 2005.
[PDF]
[Abstract]
-
Facilitating the Development of Soft Devices.
Andrew Warfield, Keir Fraser, Steven Hand, and Tim Deegan.
Proc. USENIX ʼ05,
pp. 379-382,
April 2005.
[PDF]
[Abstract]
-
Optimising data layout for delay-line memory.
Jon Crowcroft and Tim Deegan.
Electronics Letters
41(6), pp. 358-359,
March 2005.
[Abstract]
-
IP Route Lookups as String Matching.
Austin Donnelly and Tim Deegan.
Proc. 25th IEEE LCN,
pp. 598-585, November 2000.
[PDF]
[Abstract]
Social media
I am not very active on any social media.
I have a blog, and
accounts on
facebook,
twitter and
mastodon, but post only
rarely to any of them.