Online CV


Software developer with wide ranging skills, specialising in image processing and visualisation.

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++.

Strong algorithmic and applied maths skills. Able to write efficient low-level code as well as well structured object-oriented code. Strong design and architecture skills including UML.

Specialist knowledge of image processing, signal processing, embedded systems and machine learning.  Founder of the London Image Processing Meetup group.

Solid leadership experience in many types of teams, including 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 12 years.

Accustomed to working in multidisciplinary teams, with a thorough understanding of electronics and a working knowledge of mechanics.


Contact Me

Professional Experience

RSTJ Systems Ltd                                                                                            October 2011 to now


Software consultancy specialising in image processing.

Projects have included:

·         Software for a gem sorting machine.  Written in C# and C++11, heavily multi-threaded.  The real-time sorter program has to classify stones as they fall past a line-scan camera and if a gem is detected it fires one of several air jets a few milliseconds later to deflect it as it falls. The system is trained using a statistical classifier and simulated annealing algorithms to discriminate between subtle colour shades.

·         Producing a 3D CAD model from equations of a complex shape.

·         Natural language processing to extract key phrases from a social media feed.

·         Novel sensor for improving energy efficiency of office lighting.

Key skills:

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


Michelson Diagnostics                                                                                   December 2013 to now

Chief Software Engineer 

Michelson is an exciting start-up in the field of Optical Coherence Tomography.  This new scanning technique can be used to diagnose skin cancer and other complaints very quickly and without cutting out bits of the patient for biopsy.

ADVANCE project: Leading a 3-year "framework 7" project to enable the OCT scanner to visualise blood vessels by recognising the special "speckle" pattern that liquids produce.

Elekta, Crawley                                                                                                  May 2011 to October 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 (C++, MISRA rules).

Key skills:

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


Detica, London                                                                                                  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 many development projects, agreeing requirements, estimating timescales, designing the architecture and leading the implementation.  Mostly in C# and C++ for Windows, but some for Linux and embedded systems including real-time systems using RTOS.

Performed research into steganography.  Also did some reverse engineering of malware.

Key Skills: 

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


Envitia, Horsham                                                                                              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, technically challenging project to correct property data for “positional accuracy improvement” which ended up being a practical application of Artificial Intelligence concepts.  This algorithm vastly out-performed those developed by competitors and did well commercially, as well as winning an industry award for innovation.  It is being used by HM Land Registry, who have several million polygons to correct and for whom mistakes could result in legal disputes.
  • Team leader of the company’s GIS team (3 full time engineers).  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 including customer negotiation & requirements capture, estimation, planning and man management.


CTS, Redhill                                                                                                     1998 to 1999
Software Engineer

CTS makes technology for the transport industry. I was offered a very senior position leading a huge and prestigious project to update all of London Underground's technology. But the position never existed and the technology was never updated, hence my short stay. I was team leader and developer on two teams during this time.

Key skills:

Software design. Technical leadership. C++.


Varian TEM, Crawley                                                                                      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 due to various effects such as magnetic fields.  Implemented a very fast image morphing algorithm to remove the distortion from images.  I also did the system design of the digital imaging system and associated electronics and interfaces, and helped transfer the design into the factory production environment.
  • 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.  
Key Skills:

Mathematical modelling. Image processing. Research. Software architecture and design. UML. Technical leadership and man management. C++, STL, MFC.

DTC Research (De Beers), Maidenhead                                                     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.
Key Skills:
Image processing. C, C++. Occam. Electronics development. Parallel processing.

Antec Medical Systems, Oxford                                                                      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.

Key Skills: 

Research. C. Analogue and digital electronics.

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.  
I designed the pseudo-random bit sequence which now forms part of the GSM packet protocol.

Key Skills:
Research. Mathematical modelling. Simulation.


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:

Member of IEEE for over 20 years.

Security clearance:

Please ask, if relevant.

Hobbies and Interests

Learning the piano.  Woodworking and metalwork, clockmaking; I have a home workshop with lathes and CNC milling machine etc.  Badminton.  Running.

Contact Me