Daniel Thompson

Please be aware that this is an abridged copy of my curriculum vitae. For a full copy please send me an e-mail requesting it.

Education

1996-1999
University of Warwick, Coventry CV4 7AL
BEng Computer Systems Engineering (First).

Final Year Subjects: Compiler Design, Mobile Robot Technology and Teleoperation, Digital Signal Processing, VLSI Design, VLSI Algorithms and Architecture, Computer Graphics, and Neural Networks.

1994-1996
Exeter College, Hele Road, Exeter
A level Mathematics (A), Computing (A), Physics (B)

1990-1994
St. Lukes High School, Ringswell Avenue, Exeter
GCSEs Ten high grades including Maths and English

Technical skills

Languages
I have experience working a great variety of languages. Having written a C parser as part of an embedded RPC implementation my knowledge of C is considered by some of colleagues to be encyclopaedic, meaning they use me instead of a reference work. I also have several years experience writing and maintaining C++. I can optimize critical fragments of code in assembly though I prefer to use this skill sparingly. I am also familiar with most of the scripting languages present in modern GNU/Linux distributions, including Perl, although when starting an original work I tend to reach for Python first.

Operating Systems
Over the last three or four years most of my time has been spent developed Linux kernel drivers and, where necessary, partner code in user space. Before that I worked on multi-core communication tools that allow cache incoherent coprocessors to perform work on behalf of the host processor. I have also many years experience implementing proprietary flat memory embedded operating systems. Such operating systems are typically threading libraries deeply integrated with their respective toolsets, particularly the C library.

Moving away from operating system implementation and driver writing I have application programming experience on Unix-like systems, and to a more limited extent Windows and PalmOS.

Electronics
My skills in electronics are very limited compared to my software expertise. They are however sufficient for me to gather information needed for debugging directly from board schematics and similar sources. Similarly, while I don't have the skills to design silicon, my appreciation of VLSI design flow allows me to converse intelligently with architects and implementers whenever the need arises.

Other interests

Woodcraft Folk
This involved leading small groups of children at evening meetings and when camping. I have developed a range of leadership skills. I specialise in organising games, sometimes for groups of up to 50 children. As a member of the organisations Standing Orders Committee I am jointly responsible for maintaining the democratic decision making process of the organisation.