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.
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.
Exeter College, Hele Road, Exeter
A level Mathematics (A), Computing (A), Physics (B)
St. Lukes High School, Ringswell Avenue, Exeter
GCSEs Ten high grades including Maths and English
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.
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.
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.
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.