Patrick Craig > CV

Patrick's CV

Professional Experience

From April, 1999
NAG Japan
Tokyo, Japan

Visualisation engineer working on IRIS Explorer version 5.0.

IRIS Explorer is a visualisation toolkit with a point and click interface for visualising scientific data in 3D using building blocks called modules that run as separate processes. I implemented most of the system enhancements and new features for version 5.0 of IRIS Explorer on Windows and Unix, including the ability to compile multiple modules into a single executable, an improved control panel layout algorithm and a simplification of the inter-process communications between modules and the system.

IRIS Explorer is written mainly in C++, but also includes some C and Fortran code. The user interface code uses MFC on Windows and X Windows on unix. Inter-process communication uses a combination of sockets, pipes and (on Windows) windows messages.

Development of WebScope

Webscope is a weblog and CRM data analysis client interfaced to a RedBrick or Oracle database server. WebScope is written in C++ using MFC, ODBC and GDI+ libraries.

Development of NAgIDE

NAgIDE is an Integrated Development Environment for compilation and execution of source code on remote machines written in Java. This includes a source code editor with syntax highlighting and an implementation of the SSH protocol and an SSH tunneling mechanism for multiple gateway machines.

November, 1996 to April, 1999

Initially employed on a two year contract to write a new module suite for IRIS Explorer as part of a European Commission funded project. This included several meetings and demonstrations in Oxford, France and Spain. From April 1998 working on the IRIS Explorer system as a developer and user support technician.

October, 1995 to March, 1996
British Antarctic Survey
High Cross, Cambridge

Krill acoustician. (Six month contract)

My first introduction to visualisation applications. I was employed to use a set of custom written AVS modules to visualise echosounder data recorded in the Southern Ocean around South Georgia. There were several problems with the modules, so I ended up writing a new set of modules. The modules were built on SGI and Sun machines.

July, 1991 to September, 1994
Youth Hostels Association
St Albans, Hertfordshire

Assistant Warden. Involving all aspects of Youth Hostel Operation.

April, 1990 to September, 1990
SmithKline Beecham
Tadworth, Surrey

Six month student placement. Medium development of an actinomycete shake flask fermentation.

August, 1988 to January, 1989
National Institute of Agricultural Botany
Huntingdon Road, Cambridge

Six month student placement. Testing for pea bacterial blight.


September, 1994 to September, 1995
University of York
MSc in Biological Computation

This course is designed to provide Biology graduates with a thorough foundation in computer programming and a variety of quantitative techniques used in biological data analysis. Subjects studied included :
C and Pascal programming (including Windows programming)
Databases and SQL programming
Discrete mathematics
Numerical methods
My average mark for the examinations and assessments (75%) was the highest of the year and one of the highest in the history of the course.

Thesis : Gravitator - An interactive Windows program used to control plant gravity stimulation apparatus.

This program was written in C and used real time interrupts for controlling the apparatus via an input/output board.

October, 1987 to June, 1991
Imperial College of Science and Technology
South Kensington, London
BSc in Applied Biology 2ii

This is a four year general Biology sandwich course with two six month industrial placements (see Professional Experience).

Final year project : Is the world fractal?

An investigation of the hypothesis that a flying insect's perception of the ground is self similar and therefore independent of altitude.

September, 1980 to June, 1987
Colchester Grammar School

A levels

O levels

Programming Experience

ZX Basic and assembly programming on ZX81.
BBC Basic and assembly.
Introduction to Pascal as part of first degree course.
C, Pascal and SQL as part of my masters degree.
C++ and Fortran.
Java and XML.