|
|
David Jones
Consultant.
Expertise
-
Software Process. Design and implementation.
-
Software engineering. Architecture, design, documentation,
specification, testing, inspections, review, measurement, coding.
-
Standard C, inside and out, chapter and verse.
-
Bits and bytes. Detailed knowledge of CPU architecture. Confident at
instruction level with various modern desktop class processors (chiefly
IA32, PowerPC, MC68K), and various embedded microcontrollers (Atmel AVR,
Microchip PIC, MSP430).
-
Embedded Software. In C and assembler for a range of 8- and 16- bit
microcontrollers. I can hold 4 'scope probes onto a 0.8mm pitch part
with one hand and press the single step button with the other.
-
Programming Language Design and Implementation. Language runtime
systems, memory management. Garbage collection, stacks, threads, ABI.
The odd language implementation or two.
-
UNIX use, programming, and system administration: sh, awk, tar,
getty, dd, od, ifconfig, tcpdump, etc.
-
I'm of the opinion that a good programmer can program well
in any language, but the languages I know best at the moment are C,
Python, Lua, awk, JavaScript, sh.
In the past I've used Lisp, Forth, Logo, ML, Fortran (old and
new), Modula-3, Icon, BBC Basic, Haskell, Java, and perl.
I quite like programming in
assembler but rarely get the opportunity.
Experience
- 2003 to present, consultant at Ravenbrook. I have implemented the
deployment of a 100-user Perforce installation, including training and
documentation; designed and implemented highly reliable embedded robotic
control software with millisecond timing requirements; designed and implemented
GUI applications for novel industrial control wireless networks;
designed and implemented embedded communication protocols in the utility
sector; implemented an estimate of the historical global temperature
anomaly in Python.
- 1999 to 2003, Software Engineer at Zoonami Limited, a fledgling
video games development company. I joined as the company formed and,
along with team members who join later,
undertook the development of a highly complex, configurable, innovative,
and robust game development engine using C, Lua, and a tiny amount of
PowerPC assembler.
- 1999, a brief spell as a Senior Engineer at Autonomy, a
company specialising in information retrieval. I was working on their
core text analysis and retrieval engine.
- 1994 to 1999, Software Engineer in the Memory Management Group
at Harlequin Limited. The group developed world leading memory
management solutions using the Memory Pool System,
a unified framework
that is easily adapted to customer's varied requirements, including both
manual memory management and garbage collection.
Education
- University of Cambridge, Postgraduate Diploma in Computer Science -
1994
- University of Cambridge, Mathematical Tripos, Second Class - 1993
- A levels, GCSEs, cycling proficiency, etc.
|