Resume also available in Word and PDF formats.

Neil Durant

Tel: 07931 164346 (UK)
Tel: (+44) 7931 164346 (Non-UK) Horley, Surrey, UK.
neil@octrix.com

Profile:

I am a C/C++ software engineer with over 6 years commercial software development experience in both permanent and contracting roles. I am seeking a C/C++ software development contract.


Education:

Churchill College, Cambridge University, England

1988-1991
2:1 in Mathematics (MA)

Selby Tertiary College, North Yorks, England

1986-1988
A-levels:
  • Mathematics (A)
  • Further Mathematics (A)
  • Physics (A)
  • Chemistry (B)
STEP level Mathematics (grade 1)
S-level Mathematics (grade 2)

Selby Grammar School, North Yorks, England

1981-1986
O-levels:
  • Mathematics (A)
  • Physics (A)
  • Biology (A)
  • Technical Drawing (A)
  • Chemistry (B)
  • English (B)
  • French (B)

Employment History:

Various non-commercial projects

Jan 2004 - Present
I have spent this period developing new software engineering skills and participating in a number of open-source projects. I have been leading a team of open-source software developers on a project to develop a cross-platform, open-source C compiler for the Savage Innovations OOPic microcontroller, primarily involving the use of C and Python, which will ultimately run on Windows, Linux and MacOSX. In addition, I have been working on my own on the development of a "Lint" language verification utility for the Verilog hardware description language, using C++. Skills used: C, C++, STL, Python, Flex, Bison, Bitkeeper

Fidelity Investments

Software Engineer (contract) Aug 2002 - Dec 2003

I worked in the Architecture Team for the development of "I2", an in-house framework for the creation of business applications. The I2 framework is built on the Mozilla runtime environment, which allows the application user interfaces to be created using the powerful XUL markup language, with the underlying logic written in javascript. My work involved the development of object-oriented javascript APIs that provide a unified interface onto the company's various backend systems, extensions and enhancements to the Mozilla runtime environment (primarily in C++), and the development of custom user interface controls. In addition, I created a number of conversion utilities, mostly in C++ and Perl, to allow the automatic translation of legacy application code into I2-compatible applications.

Skills used: VC++, STL, Perl, XML, RDF, XPCOM, Flex/Bison, gcc, Cygwin, javascript, Bitkeeper, PVCS

Wacom Europe

Software Engineer (contract) Oct 2000 - Dec 2001

I worked on the development of hardware drivers and applications on Palm PDAs to control a Wacom graphics tablet. The work was primarily in C++ on PalmOS, with some C++/MFC on the PC for Palm conduit development. In addition I wrote a simple drawing program in C++ for the Nokia 9210 Communicator (EPOC) driven by a Wacom graphics tablet connected to its serial port, as a proof of concept demonstration. The role involved the use of RS232 for controlling and reading data from graphics tablets, and some serial debugging and reverse-engineering, as the graphics tablets were only part-working prototypes in some cases.

Skills used: VC++, C, C++, MFC, PalmOS, EPOC, CodeWarrior, Visual Sourcesafe

Fidelity Investments

Software Engineer (contract) Mar 2000 - Sep 2000

I designed and developed a server-based system to perform complex transformations on a constant stream of business data, in preparation for printing out as statements etc. The software, written in C++ with heavy use of STL, was designed to be generic, so that nonprogrammers could redefine how the system transformed the data as requirements changed. Data came continuously in 60Mb chunks, and the system was required to process the data in a failsafe manner unattended, handling and reporting errors in the incoming data accordingly.

Skills used: VC++, C, STL, MFC, Win32, NT services, Perl, PVCS

Demon Internet

Software Engineer (Permanent) Oct 1997 - Mar 2000

I worked as part of the GUI team on a ground-up redesign of their Turnpike e-mail client and newsgroup reading softare for PCs. The project involved a complete reworking of the user interface, improved component design to allow future flexibility, and the addition of substantial new functionality.

Skills used: VC++, STL, MFC, COM

National Physical Laboratory

Physicist (Permanent) Oct 1991 - Oct 1997

I worked on the development of ultra-accurate solid-state optical detectors, for use in leading edge optical measurement systems. The work involved the development of mathematical modelling software to aid the understanding of the solid-state physics of the detectors, and also the laboratory testing of actual devices manufactured to my specifications.

Software skills used: Turbo C++, Turbo C, Turbo Pascal, Matlab, MathCad

Other projects

In my spare time I am building an autonomous robot, ie a robot with its own on-board decision-making, with no remote control. It is based around a PC/104 single-board computer, running Linux, along with a number of PIC and OOPic microcontrollers to handle motor control, motor speed feedback, infra-red and ultrasonic proximity detection, internal sensing such as bus voltages/currents, battery status, temperature etc.

I am also a keen musician, playing keyboards in my own band. Being technically-minded has given me the opportunity to explore this further, experimenting with signal-processing algorithms, MIDI processing etc, and I have built a number of music/sound related electronic projects.

I also actively participate on a number of open-source software projects, primarily the development of a C compiler for the OOPic robotics microcontroller

Skills used: C, C++, Perl, embedded software, hardware interfacing, RS232, I2C

Tools/technology familiarity

Along with the specific skills mentioned by each job above, I have also acquired expertise with the following tools/technology:

  • Considerable Linux expertise (primarily Debian, Gentoo and Redhat)
  • Standard UNIX tools (eg gcc, gdb, sed, shell programming etc)
  • Language parsing and code generators (Lex/Yacc/Flex/Bison)
  • Source control tools (PVCS, CVS, BitKeeper, Visual Sourcesafe)
  • Development environments (Visual Studio, CodeWarrior, KDevelop, vi, Emacs)
  • Documentation (HTML and LaTex primarily)