Ravenbrook Ravenbrook is a software engineering consultancy. Our goal is to increase the value of the software industry to society.

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.
$Id: //info.ravenbrook.com/project/www.ravenbrook.com/version/4.0/page/consultants/drj/index.shtml#4 $