Some Previous Bespoke Software Projects


Running Gait Skeletal Tracking. RUNRIGHT

RunRight Setup
  • Created a system that automatically measures the running gait of an athlete.
  • Gigabytes of data to results in seconds from multi-threaded C++ and asynchronous processes
  • Superior accuracy achieved by using multiple cameras and proprietary skeletal tracking
  • Custom Yocto Linux and WiFi direct provides robustness, OTA updates and remote support.
Capture Engine Analysis
  • Java diagnostic client provides ease of debugging and access to all raw metrics
  • Displays a browsable 3D OpenGL world view of point cloud data

Running Gait Analysis Android App

RunRight App
  • Android App runs on a tablet and connects to the running gait cameras via WiFi Direct
  • Built using best practices with Kotlin, Jetpack compose, coroutines and asynchronous flows.
  • Low level canvas methods used to create some re-usable elegant animated custom dials.
Run Right App

Crane Simulator Mathematical Model

Crane Simulator Graphics
  • C# model that provides a true to life simulation for training offshore crane operators.

  • Advanced physics (Inertia tensors, 3-D kinematics, PID control loops, ray tracing)

  • Includes wind shear, shadows, load imbalance, rope collision, sling failure, boom flex, buoyancy, water resistance, tidal flow etc.

Crane Simulator Physics Model

HiTech Gym Equipment

Force Plates Design
  • Designed the proprietary electronics and firmware for wireless force plates used to train and condition professional athletes.
  • BeagleBone SBC runs custom yocto Linux for a fast boot and ease of updates.
  • WiFi direct used to interface to an Android controller App.
Jump plates hardware

Visualisation of Digital Acoustic Sensing data

  • Provided contract programing for an Acoustic Sensing App in the Oil Field Services sector
  • Java and Agile methods employed to enhance various DSP modules in the processing chain (Decimation, IIR Filters, FFT, de-striping etc).
  • Ported and enhanced a Machine Learning model for tracking trains from Python Keras TensorFlow to Java using the DeepLearning4J library.
  • Transcribed various algorithms from Matlab to Java to boost performance by several times.


3rd Party Code Reviews for Medical Instrumentation Firmware

code review hardware
  • Provide independent code reviews for medical instrument suppliers
  • Early identification of issues avoids embarrassing and expensive mistakes reaching production.


Phased Array Radar Vector Math Library

Ship Radar
  • Helped design and implement the architecture for a phased array radar DSP.
  • Beowulf cluster of COTS multi-core Linux PCs connected via InfiniBand.
  • Design goals of maximum data throughput with minimal latency where achieved using vectorisation and CPU cache considerations.


Instrumentation Radar analysis software

measurement radar
  • Data visualisation of radar returns using OpenGL
  • Multifunction I/O to interface A/D cards, optical trackers, weather stations, GPS clock, video titling and recording.


Making Tax Digital VAT Desktop App

Making Tax Digital VAT
  • Author of the free 100PcVatFreeBridge Making Tax Digital for VAT desktop App.
  • A free forever, HMRC recognised, multi-platform App written using JavaFx.
  • Windows, MacOs or Linux to read Excel or CSV data files to make MTD VAT returns.


FTP Camera server and Surveillance Camera App

  • CamaC, an FTP service for IP cameras with a Browser interface
  • CamCam, a CCTV Camera Android App that uses AI to identify objects and trigger video recordings.
  • CamVue Android App for reviewing recorded images


Timing system for 5k/10k fun runs

Run Timing table
  • Timing system for the local scouts to time the runners participating in a 5k/10k fun run.
  • Runners are clicked in as they cross the line and results displayed on-line in real time.


Android Firework Display Synchronisation App

Fireworks App
  • Allows a firework display coordinator to synchronise and rate fireqorks in a display


  • Added Link22 capabilities (in C++) to an existing legacy DataLink Processor (in Ada).
  • Responsibile for the particularly challenging areas of the Electronic Warfare Surveillance and implementing the Multi-Link specific requirements.


Infra Red model code review

Infra Red Model
  • Reviewed a large Fortran Infra red model for estimating the radiance of objects in varying atmospheric scenarios and made a number of recommendations for code readability and performance improvements.


MXF Video Packaging Desktop App

  • Created a tool using Java, RMI and JINI that allows users to manage the encoding / decoding and playback of MXF video files.


Laser Detector Proof of concept

  • Remember Borland Turbo C++? This was used to interface two sensor arrays to create a pattern matching laser detector demonstrator running on MS-Dos.


HF Radio Signal Visualisation

HF Radio Model
  • Enhanced several programs used in the calculation of radiation patterns from HF antennae using IRIX, Motif / X-Windows and OpenGL


3G UMTS Node B Test Harness

  • Used UML and C++ to design and implement a generic, script driven test harness for sending ASN.1 encoded packets through the system


Terabit Network Router Simulator

  • Modelled packet flow under various conditions for a 128 LIC Internet Router. Improved the throughput 6-fold and designed a novel unicast / multicast fair scheduling algorithm.


Nokia Phone Settings Transfer Box

Nokia Mobiles
  • In the early days, before smartphones and Google backup etc. Copying your settings to a new phone was a daunting process. This transfer box, developed for Nokia, used RS-232 to copy settings from a host to a target phone.


This website 😄

I created this site using kobweb, an opinionated Kotlin framework for creating websites and web apps, built on top of Compose HTML.

Many thanks to UI Rocket for making the basic kobweb template freely available and to PhoenixRedwolf Digital Services for some of the layout ideas


Home