Important note: this version of my CV omits my home address and 'phone number, since it is linked from my home pages and I prefer not to make this information available to everyone on the Web.
Date of Birth: 1 May 1971
CV last modified: 10 September 2006
Availability: Not currently available
I am both a cryptographer with a broad understanding of the field and a programmer with eleven years of experience creating high quality software for real-world applications. I pride myself on my ability to gain a rapid, precise and substantial understanding of disparate new computing challenges. Besides my core skills listed above, I have gained a substantial understanding of many other tools and fields ranging from fast computer graphics and colour science to programming language implementation, as well as a plethora of programming languages.
September 2003 - present
Senior developer, LShift Ltd
Key Skills: Tomcat, Java, Struts, XSL, C#/.NET, XS40
LShift is a computer consultancy. I lead a project to take over a Java web application and adapt it to changing needs. Prior that my main project has been Barclays Business Manager (BBM), a highly-regarded software rental system for small businesses with over 20,000 customers. The BBM client grants access to partner applications based on cryptographically authenticated tickets issued by a server application. I have been involved in both client and server side development, and gained skills in shrinkwrap software creation and diplomatic client liaison. I also provide consultancy on the XS40 XML firewall.
October 2000 - June 2003
Cryptographer, Convergence Integrated Media GmbH
Key Skills: Java, Javacard, iButton, PGP, GPG, cryptanalysis, MHP, DVB
Convergence Integrated Media developed software and applications for digital television based on open source software and open standards.
In addition to my cryptologic research detailed in Research below, I implemented a prototype for secure storage of private keys for email encryption on tamper resistant hardware which I demonstrated at CeBIT; this used GnuPG and the Java iButton. I developed cryptography and other security controls for the Multimedia Home Platform set-top box project (http://www.mhp.org/), finding cryptographic flaws in the standard. I worked from home with colleagues based in Amsterdam and Berlin.
October 1999 - October 2000
Senior Software Engineer, DataCash Ltd.
Key Skills: Perl, Linux, SQL, MySQL, e-commerce, Apache, mod_perl
DataCash was the UK's biggest payment service provider, allowing businesses to authorise credit card payments in real time over the Internet. I worked on projects including the design of a robust fault-tolerance architecture for the next generation of DataCash service. I also initially acted as a Unix sysadmin.
August 1997 - October 1999
Software Developer, Harlequin Ltd.
Key Skills: Postscript, PDF, SMP, distributed development, MS Visual Studio, NT4
In my two years on the core development team for ScriptWorks, the printing industry's leading Postscript interpreter, I worked with the highest calibre of developer to maintain and extend a product of great sophistication to meet new and difficult challenges, in particular adding support for the Postscript Level 3 standard. All code written by one member of the group had to be approved by another; I became expert in finding errors in new code, and learned a great deal from both sides of this process.
I was the sole Edinburgh-based developer in my group, and used phone and email to work with colleagues (including my manager) in Cambridge, Manchester, and San Francisco. Though I worked on many parts of the software, support for multi-processor platforms was my particular area of responsibility. My mathematical skills were invaluable in implementing the more sophisticated graduated fills in the Postscript Level 3 standard correctly.
June 1996 - July 1997
Software Engineer, Concept Systems Ltd.
Key Skills: Unix, SunOS, Solaris, AIX, HP-UX, C, UIM/X, Motif, X11, RS232, RTOS, OS/9, VMEBus, Perl
I worked on many parts of Concept Systems' flagship product Spectra, which provides the precise navigation needed for seismic offshore oil surveys using a 68000-based OS/9 platform and processes it on a heterogenous network of Unix workstations. I learned about low level coding for single board computers, and gained experience of a million line codebase.
May 1994 - April 1996
August - September 1993
Software Architect, Voxar Ltd.
Key Skills: Unix, Linux, X11, C, C++, Tcl, Tk, Postgres, SQL
Voxar specialise in fast computer graphics and medical imaging. During my 1993 summer vacation I designed and implemented a fast rendering engine for sparse voxel datasets which became the company's core technology. Later I worked on 3D medical dataset processing in C and C++, implementing the world's fastest solutions to several problems (in one case by a factor of over a hundred) with algorithmic innovations.
Other work included a contract developing database software for an industrial monitoring system using the Tcl/Tk toolkit and the Postgres SQL database. I also acted as a second system administrator on a network of Linux and Windows computers.
Programmer, Department of Computer Science, University of Edinburgh
Key Skills: Unix, Solaris, C, Emacs Lisp, X11
I wrote an Emacs-based integrated debugging environment for students.
January - September 1992
July - September 1991
Software Consultant, Promco
Key Skills: Unix, SunOS, C, X11, Motif, SQL, Empress
My major projects were an Xt-based colour terminal emulator, and a Motif-based front end to an OCR-based legal document indexer.
July - September 1989
Key Skills: C, OS/2, CCITT G3 Fax, TIFF
I wrote an OS/2 driver for the serial interface to a fax machine, which formed part of the (now highly successful) communications package Zetafax.
I have for many years been pursuing research into the fields of cryptology and data security, particularly the design of new secret-key primitives for fast software implementation. In addition to the research listed above, I described a new, lightweight anonymous micropayment scheme at Edinburgh Financial Cryptography; I found small statistical weaknesses in the widely-used stream cipher RC4, much larger statistical weaknesses in Bruce Schneier's hand cipher Solitaire, and a powerful cryptanalytic attack on Carl Ellison's proposed large-block DES chaining mode TRAN-DES.
I am interested in many other areas of cryptology, including secure protocol design and correct use of public key infrastructures.
University of Edinburgh
BSc Hons. Computer Science (II.ii)
City of London School
'S' level Mathematics (2), Physics (3)
'A' level Mathematics (A), Physics (A), Further Mathematics (C)
City of London School
9 'O' levels, including English Language and Literature, Electronics, French.
My final year degree project was a Motif-based tool for visualising four dimensional shapes. The Edinburgh CS degree is highly regarded, and allowed me to take courses ranging from pure theory (Communications and Concurrency covers an algebra for describing parallel systems and proving correctness) to low-level engineering (the major Computer Design practical was to build a simple microprocessor on a breadboard).
I have used Linux for over twelve years and maintain a variety of Linux based services at home and on a colocated host that acts as my mail hub and web server. I am very familiar with the typesetting tool LaTeX, and learned an alternative called Lout to lay up the paper version of this CV. I enjoy learning new languages and new tools. I am a competent proofreader and write with care.
I enjoy listening to goth and industrial music; I co-ran the successful monthly nightclub Permission for nearly a year until the venue closed. I have worked on a variety of volunteer events and publications for the bisexual community, including an international conference. I take an interest in philosophy of mind and of science, especially where related to physics or evolutionary biology.
References available on request