Online CV


A senior software developer with specialist skills in image processing and medical device development. A confident team leader and architect.

A very solid technical background with wide ranging skills in research and development, including positions of leadership.

Expert-level software development skills, including 10 years of C# and over 20 years of C++, as well as Java (recently, 2 years), scripting languages, SQL etc. Experience of modern development infrastructure (GIT, Jira, Docker, Vagrant, TDD, CI) on both Windows and Linux.

Used to working in a tightly regulated environment.

Specialist knowledge of image processing algorithms and libraries.

Genuine long-standing interest in artificial intelligence and machine learning.

Strong algorithmic and applied maths skills. Strong design and architecture skills including UML.

Solid leadership experience in many types of teams, including technical architecture, technical decision making and man-management. Used to leading small projects through the whole life-cycle.

Author of a successful book on software team leadership, still in print after 17 years. 

Contact Me

Professional Experience

BrainMiner Ltd                                                                                          Jun 2016 to now

Senior Software Engineer

BrainMiner is a start-up using machine learning to analyse brain scans.  The company’s first product aids clinicians with the diagnosis of dementia and is fully medically approved.

Designed the system architecture of the product. Chose appropriate tools, languages and methodologies. Recruited a junior developer.

Created a distributed processing controller, written in java on a Linux platform, which orchestrates processing either locally or using cloud resources. Also wrote the interface to PACS.

Acting as team leader, taking on responsibility for estimation and planning and final product quality. Line manager to a junior engineer.

Key skills:

Java, C++, Linux, Docker, machine learning. Team leadership.  PACS and DICOM.  Medical device development.

Michelson Diagnostics Ltd                                                                         Dec 2013 to Jun 2016

Chief Software Engineer

Michelson is a medical technology start-up, making Optical Coherence Tomography machines for dermatology.

Lead a project to redesign and re-implement the clinical software, in partnership with an off-shore team.  The new software has been very favourably received.

Created a 2-track development methodology, allowing agile development for research users while reusing the code in the medically approved clinical product.

Researched and developed a way to detect and visualise blood flow in the skin, which involved changes to the electronics and the scanning pattern as well as bespoke processing algorithms.  Clinicians are investigating its use to detect melanoma.

Implemented robust image processing algorithms to detect the skin surface, ignore hairs and estimate the surface where it could not be detected.  Used these to display a view at constant depth, and also to measure and visualise the roughness of the skin.  

Researched and developed novel ways to enhance, filter and visualise the scans.

Mentored a graduate research project and a technician learning to program.

Key skills:

Image processing. Visualisation. C++. C#. ITK.  Medical device development.

RSTJ Systems Ltd                                                                                            Oct 2011 to Dec 2013


Working for myself, specialising in image processing.  Projects included a colour sorter for a mine in Africa.  

I developed my own set of libraries for client projects including image processing, machine learning, multithreading etc., providing the same functions in both C++ and C#.

Key skills:

Image processing. Expert-level C++. C#. Electronics. Embedded software.  OpenCV.  Machine learning.  

Elekta                                                                                                                  May 2011 to Oct 2011

Senior Systems Engineer

Elekta designs and makes radiotherapy treatment machines.

Modelled and tested algorithms for the safety-critical image processing system at the heart of the new multi-leaf collimator (a robotic system using a camera to track 160 moving objects). 

Performed a FMEA hazard analysis and used this to design the software architecture.

Researched the algorithms and created test images using MatLab.

Lead the implementation team and wrote significant portions of the code (cross-platform C++, MISRA rules).

Key skills:

Mathematical modelling. Image processing. Hazard analysis. Software design. Technical leadership. MatLab. C++.

Detica                                                                                                                  2004 to 2011

Principal Engineer

Detica is the cyber-security part of BAE Systems.  The sections I worked in specialised in computer forensics, network intrusion detection and security systems.

Lead and coded many development projects, mostly in C# and C++ for Windows, but some for Linux and embedded systems including real-time systems using RTOS. 

Key Skills: 

Technical team leadership. Software architecture and design. Mentoring. C#.  C++, STL, boost. SQL. Python.  Embedded programming.

Envitia                                                                                                                 1999 to 2004

Software Development Team Leader

Envitia is a Geographical Information Systems company, making high-performance mapping products and bespoke GIS projects for military and commercial use.

  • Technical Lead of a complex project to correct property data for “positional accuracy improvement”, using AI concepts.  This won an industry award for innovation.  Clients include HM Land Registry, who have several million polygons to correct.
  • Team leader of the company’s GIS team.  Also sometimes Project Manager for MapLink, the company’s major product. 

Key Skills:

Algorithm development, including geometry & graphics. Object oriented analysis and design, UML. C++ including STL, ATL, MFC. SQL. Project management.

CTS                                                                                                                     1998 to 1999
Software Engineer

I was technical lead on two projects developing new software for the London Underground.


Varian TEM                                                                                                          1994 to 1998
Joined as Software Developer, promoted to Software and Electronics Manager

Varian TEM is the world market leader in radiotherapy simulators.

  • Research and development of a digital imaging system for radiotherapy machines.  Developed a mathematical model of the image distortion, which varied as the imager was moved.  Implemented a very fast image morphing algorithm to remove the distortion from images.
  • Lead an 8-man multinational team which successfully transferred a CT body scanner technology from research in Palo Alto to production in the UK.  Recruited the UK members of this team and lead both the electronics and software development.  Designed the architecture and performed hands-on design and some coding as well as being responsible for the delivery, features and quality of the product. Very successful project, completed in 18 months.    

DTC Research (De Beers)                                                                                  1990 to 1994

DTC is the research arm of De Beers diamonds.  I worked on several multidisciplinary teams doing both hardware and software.

  • Developed real-time software for machine shape-sorting of uncut diamonds.  I designed a novel arrangement of Transputers programmed in the parallel-processing language Occam, which calculated shape metrics and implemented a statistical classifier to decide which shape the diamond was, from the signals given by 15 cameras viewing the diamond as it fell.
  • Developed the electronics and the image processing software of an x-ray machine to detect micro-diamonds in soil samples.  I installed the system in South Africa and trained the operators.
  • Researched image processing of x-ray diffraction images.

Antec Medical Systems                                                                                      1987 to 1990
Electronics Engineer

Research and development of novel electronic and software systems for anaesthesia monitoring.  Having tested these on myself I took them into clinical trials at the local hospital.  Both the electronics and the software had to be very carefully implemented as errors could prove fatal to the patient.

Philips Research Laboratories, Redhill                                                           1985 to 1987
Research Scientist

Research into GSM digital radio.  Wrote software simulations of radio channels.  Researched adaptive equalisation and the Viterbi algorithm.  

Education and Training


B.Sc. (Hons) Electronics, York University (First Class).  
I specialised in image processing, signal processing and control theory.


Professional Diploma in Management, Open University.

Many profession training courses in software development and project management, including:

  •  Artificial Intelligence For Technology (Open University, 2006)
  •  Cryptography (Stanford University /, 2012)

Publishing a book was an education in itself, as was writing and delivering a training course in China.


Personal Information




May 1964

Marital Status:

Married with older children


Good.  Non-smoker.

Professional memberships:

Senior Member of IEEE (member for over 25 years).

Hobbies and Interests

Learning the piano.  

Woodworking and metalwork, clockmaking; I have a home workshop with lathes and CNC milling machine etc.  

Writing fiction.

Contact Me