Software development
From the age of six, when I first got to play with a BBC B micro-computer, I have been writing software of one form or another. Initial programs were written in BBC Basic (a tutorial program design to teach people how to read musical notation is one of the earliest that I remember) and, later, LOGO. Familiarity with these two languages proved useful when learning to program CADCAM systems while training at Ford, Swansea, in 1992.
Whilst at Cambridge University Engineering Department, I was taught Pascal and Matlab; but also taught myself various other languages to meet other needs (most notably C with a Tcl/TK interface to write various pieces of software, including a program for students to select their "best lecturers" who were then awarded with certificates and prizes to encourage them). I also picked up C++ and a small amount of XLib programming while working for the Ecole des Mines in Paris; and taught myself Java as a hobby language towards the end of my fourth undergraduate year.
During my PhD and thereafter, I have prototyped most software in Matlab, and then written production-level code in C++ with the wxWidgets graphical user interface toolkit. This has the advantage of being a cross-platform (Windows, Mac, Unix) package, but with the look-and-feel of a native program (unlike, for example, Qt and Java) – the advantage of this is that it does not require the end user to learn a whole new way of doing things just to use one program.
I particularly enjoy working with finite element analysis software. Otherwise, anything involving numerical analysis, geometrical design, or iterative algorithms would be fun. I am something of a neophyte when it comes to graphical representation (although I have written some, including minor animation software in raw XLib!) but would be very keen to learn, should the opportunity present itself.
My CV details the languages with which I am currently familiar; however I am fairly confident that I could get to grips with a new language fairly swiftly. If there is a programming project for which my mathematical and/or engineering skills would be useful, but which needs to be written in a lanaguage or operating system/environment with which I am not obviously familiar, please contact me to see if something can be worked out.