C++ Code Generation from XML

Software Development

  • C++17 / QT development for PC (Windows 7) application for processing of XML and generation of source code.
  • Windows 7/10, QT, Visual Studio 2015/2017, SVN.

Video Analysis Application

Software Development

  • C++11 / QT development for PC application for video analysis for a Red Bull Air Race team.
  • Windows 10, QT, Visual Studio 2013, GStreamer, Git.

Surgical Microscope

Software Development

  • C++ / QT development for PC (Windows 7 Embedded) software for a new surgical microscope.
  • Code generation using XML/XSL.
  • Windows 7, Visual Studio 2013, SVN.

System Debugging

  • Debugging of system problems in 2G/3G mobile phone software.
  • Embedded C, ARM assembly.
  • Lauterbach ETM and Trace32.
  • Windows XP, Unix, Rational Clear Case and Clear Quest.

Mobile Phones

Embedded Software Development

  • Embedded multimedia software and drivers for 2G/3G mobile phones, on a custom integrated circuit with multiple CPU cores (ARM7, ARM9, DSP), using C and a commercial RTOS (Nucleus Plus).
  • Object-oriented rearchitecture of the multimedia driver structure, for multi-platform support.
  • Drivers for many LCD displays on high-end mobile phones (displays from Samsung, Epson and Sharp), for several mobile phone camera modules (OmniVision and Samsung) and for multimedia companion chips (MtekVision and AIT).
  • Work on numerous other parts of the software, as the need arose, such as software related to I2C, GPIO, interrupt handling, LDO control, timers, messaging support.
  • Embedded C, assembly language, Nucleus Plus RTOS  (real-time, multi-threaded), Perl.
  • ARM7, ARM9.
  • Windows, Rational Clear Case and Clear Quest, SVN (SubVersion).
  • TCC, Lauterbach Trace32.

Embedded Systems

Design Lead / FPGA and Embedded Software Development

  • Digital electronic design and development of an embedded 486 microcomputer, which had Linux ported to it and is now used in a successful product. Utilised CompactFlash, PCM/CIA, SDRAM, SRAM.
  • Design and development of two large FPGA projects, coding in VHDL. Functionality implemented includes Telecoms processing, VME interface. Utilised high-speed logic and Dual-Port RAM.
  • Embedded software design in C, with some assembly language.
  • Web site design.
  • VHDL, C, C++, Perl, assembly language, make, HTML.
  • Cygwin, Windows.

ESP32 Platform


  • Digital Hardware design based around Espressif ESP32 and E-Paper display. PCB design and manufacture.
  • CAD/CAM milling of enclosure.
  • C++ embedded software development.

Medical Device Simulation Application

Software Architecture / Development

  • C++17 / QT development for PC (Windows 7/10) application for simulation of various devices connected to a PC via CAN-Bus.
  • Windows 7/10, QT, Visual Studio 2015/2017, SVN.

Debugger PC Application

Architecture / Technical Lead / Development

  • Architect / Technical Lead / Developer of a mixed Java/C++/Eclipse RCP PC application for capturing and decoding of very fast (350Mb/s MIPI) data from an embedded platform (mobile phone).
  • Implementation and enforcement of a stringent unit and regression testing regime.
  • Training of team members in software design techniques.
  • C++, Java, JNI, NIO, Eclipse RCP, UML, cppUnit, jUnit, Lint, make, log4cxx, log4j.
  • Windows XP, Windows 7, Visual Studio 2005 and 2010, Eclipse, GIT, Rational Clear Case and Clear Quest, Enterprise Architect.

Research Microscope

Software Development

  • Development of a Windows-based SDK  (Visual C++, object-oriented) for communication with and control of stepper motor controllers, used for driving the components of very high-end research optical microscopes.
  • Architecture and development of a Windows XP GUI application (MFC) for controlling optical components within a unit for modifying a laser light source.
  • Consultation on architectural restructuring of existing driver and communications software.
  • Hardware debugging and modification.
  • RS232, CANopen, Technosoft motor controllers.
  • Microsoft Visual Studio, MFC, WindowsXP , SVN (SubVersion).

Pair-Gain Systems (modem and telephony)

Project Lead / Embedded Software Development

  • Software Architect and Project Lead (technical lead) of an embedded management card for telephone exchange equipment. The language was C, within a commercial RTOS environment (ThreadX), running on a PowerPC processor. The product interfaced to telephone exchange equipment, and to an 3rd party element  manager via SNMP/UDP/IP over ISDN, as well as supporting a local command line interface. Utilised flash, SDRAM, ISDN integrated circuits.
  • Design and implementation of DSP-based V.90 modem signal processing algorithms for a successful product which allows V.90 connections to be made through pair-gain systems. The language was a mixture of C and DSP assembly language, running on a Texas Instruments TMS320.
  • Software Architecture and design for a DSL product.
  • CPLD coding using VHDL.
  • Driver and protocol stack development for custom inter-unit communications using SPI.
  • Product specification development.
  • Microprocessor evaluation and selection.
  • Electronic hardware design review.
  • Task estimation, scheduling.
  • C, Python, Perl, assembly language, ThreadX RTOS (real-time, multithreaded), VHDL, make, bash, HTML.
  • Cygwin, Windows, CVS revision control, Source-Safe, Linux.
  • SNMP, UDP, IP, PPP, ISDN, V.90, DSL, I2C, SPI, V24.
  • Green Hills IDE, Code Composer Studio, Xilinx IDE, Visio, Protel PCB design software.

Eye Surgery Equipment

Software Development

  • C++17 / QT development for PC (Windows 7 Embedded).
  • Windows 7, QT, Visual Studio 2015/2017, SVN.

Consumer Water-Sports Product

Design / Development

  • ARM Cortex M0 (STM32) embedded software and hardware development..
  • Data processing algorithm development (motion and pressure sensor data).
  • Testing of and development with digital pressure sensors from ST and Bosch.
  • Testing of and development with MEMS inertial sensors from Bosch and Fairchild.
  • Device housing design with Fusion 360.
  • C++17, JavaScript.
  • LPCXpresso, VisualGDB, Octave, Git.

Surgical Microscope

Software Development

  • C++ development for PC (Windows XP Embedded), modern reimplementation of legacy software for a surgical microscope to enable maintainability.
  • Windows 7, Visual Studio 2012, SVN.

Research Microscope


  • Contracted by a customer of the microscopy products developed for another project, this was a one-month assignment of further development for the specific needs of this customer.

Various Consulting Projects

  • Embedded software for a microprocessor controlled automatic gas heater, including various safety measures in order to meet international gas codes.
  • Embedded software for a unit interfacing between a GSM module and proprietary hardware.
  • Software and hardware for a stand-alone field software upgrading device utilizing a Linux-based single-board computer.
  • Graphical LCD based GUI for the embedded system controlling an over-complicated hot/chilled water dispenser.
  • Research into deprecated steel mill control equipment and generation of design documentation for its replacement.
  • Consulting for a company wishing to protect its microcontroller products from illegal cloning.
  • Hardware for a production test jig for printed circuit assemblies.
  • Consulting for a small company setting up a revision control system for source code, schematics and documentation.
  • C, Python (scripting and object-oriented), assembly language, bash.
  • MCS12, MSP430.
  • Cygwin, Windows, Linux, CVS and Visual Source Safe revision control.
  • IAR Embedded Environment, Imagecraft, NoICE, Protel PCB design software.

Telephone Exchange Equipment

Design / Embedded Software and Hardware Development

  • Embedded software design and development for telephone exchange equipment.
  • Design and development (hardware and software) of production line functional test equipment.
  • Modification and maintenance of functional test equipment.
  • C, C++, make, VxWorks and pSOS RTOS’s.
  • Motorola 86020, PC platforms.
  • Windows, SCO Unix, RCS revision control.