Tim Deegan

Iʼm a computer scientist and systems programmer, living in
Cambridge, UK.
My email address is tjd@phlegethon.org.
I have a blog.

I work at Amazon, on the
S3 object store, in
a new engineering group in Cambridge. It's one of the world's biggest
distributed systems, and always under development. We're hiring!

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, and I supervise undergraduates for courses in operating
systems and C.

Outside of working hours, I spend most of my time with my wife and
primary school age son. We enjoy music, trips to nature reserves, and
computer games.

Experience

2011–2017: Software Architect,
Coho Data
At Coho Data, I worked on the object storage layer of a 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 starting the new
port to ARMv8 processors. Although I am no longer a paid Xen
developer, Iʼm still a maintainer for some parts of the code, and
a member of the Xen projectʼs security response team.

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.