Research Software Engineer.

I build systems from the ground up, hardware to software — AI workflows, terahertz rigs, embedded firmware, medical AR, computer vision, mobile apps, 3D simulation and computer graphics.

Full-Stack Python · React · PostgreSQL · Docker Mobile Flutter · Swift · Kotlin Electron · TkInter · OpenFrameworks · GTK AI LangChain · RAG · Ollama · n8n Embedded KiCAD · Arduino · STM32 · C/C++ · NASM Creative Godot · Blender · WebGPU · GLSL

Selected work

[ 07 ]
2D scanner built from CD-ROM drive motors wired to an Arduino
Printed meander-line ink sample with dimensions Terahertz scan of the printed sample at 1.2 THz

Terahertz sample conveyors

published research
ArduinoC/C++
Problem
Terahertz characterisation of printed-ink electronics needed precise, repeatable sample positioning — but commercial scanning rigs weren’t built for the tight mounting space or specialised imaging the work required.
Built
Custom conveyor/scanning rigs driven by Arduino (C/C++) — including a 2D scanner repurposed from salvaged CD-ROM drive motors for near-field imaging, and a compact 1D conveyor sized to fit inside TeraView’s spectrometer.
Impact
The CD-ROM rig produced the near-field THz images behind a peer-reviewed paper (Organic Electronics, 2017); the 1D conveyor was field-tested on TeraView’s own spectrometer in Cambridge.
Published in Organic Electronics, 2017 Published at the University of Chester, 2017
LiTu prototype: acrylic tube lit by blue LEDs with ball-bearing mirror and webcam
LiTu in use: finger contact on the tube mapped to a musical or graphics output

LiTu — optical touch interface

published research
OpticsImage Processing3D PrintingElectronicscomputer vision
Problem
Touch interfaces are typically flat, rigid and expensive. I wanted a cheap, customisable cylindrical touch surface — one you could grip like an instrument — with no electronics embedded in the surface itself.
Built
An optical sensor using frustrated total internal reflection: six blue LEDs (chosen after RGB histogram analysis showed red light scatters most and destroys contrast) flood the tube with internally reflected light. A touch changes the critical angle at the acrylic–skin boundary and leaks light, which a ball-bearing mirror bounces into a webcam. A real-time pipeline thresholds the red channel and segments the frame into a 3×3 grid — the centre cell masked against the tube's permanent axial reflection — mapping touch to musical pitch radially, volume axially, or x/y for graphics control.
Impact
Peer-reviewed and published at IEEE Cyberworlds 2015 (with Prof. Nigel John). Total build cost ~£25 using a 3D-printed LED ring and off-the-shelf parts. The same optical principle has since been applied commercially to grip-pressure sensing in aviation.
Published at IEEE Cyberworlds, 2015
Java/OpenCV tracking software showing infrared marker segmentationIR marker tracking (OpenCV)
Spine and organs projected onto a mannequin, adjusted by hand during registrationanatomy registered on mannequin
Live projection onto a person, with the Kinect infrared camera and projector rig in viewKinect IR + projector rig

IPoP — image projection onto patients

published research · University of Chester
JavaOpenCVKinect IRmedical AR
Problem
Image-guided procedures like lumbar biopsies force clinicians to look away from the patient at a monitor — or wear bulky AR headsets. Guidance and anatomy needed to appear directly on the patient’s skin, without interrupting the procedure.
Built
A projector–camera AR system in Java and OpenCV: infrared marker segmentation, real-time patient and needle tracking, registration of CT scans and 3D anatomy onto the lumbar region, and automatic colour-contrast adjustment against skin tone. Diagnosed a previously unreported projector–camera “multi-mirror” feedback effect — and cancelled it using near-infrared capture.
Impact
First-author peer-reviewed paper in the Journal of WSCG, 2016, with requirements gathered from practising clinicians — demonstrated live tracking, registration and 1:1 anatomy projection onto mannequins and people.
Published at Eurographics VCBM, 2016
Floor plan reconstructed from memoryfloor plan from memory
3D model of the school built in BlenderBlender 3D model
Demographic timeline of the schooldevised history timeline

Ysgol Y Garnedd — digital memorial

Bangor · bilingual · free for the community
JavaScriptGodotBlenderdigital heritage
Problem
A Welsh-medium primary school in Bangor was demolished in 2021 — with no floor plans or architectural records surviving anywhere in the council archives. As its 50th anniversary approached, the building risked being lost to memory.
Built
A free bilingual website with a floor plan redrawn from memory (Inkscape), a full 3D model of the building (Blender), and a first-person walkthrough built in Godot and embedded to run right in the browser.
Impact
Gave the school’s community a living digital memorial they can walk through online — old class photos hung on the recreated walls — preserving a piece of local Welsh heritage as a free gift.
Visit hengarnedd.com
Exercise library: a grid of hand-rehab exercises
Motion-tracking screen tracking thumb and middle finger
Progress dashboard of average velocity and game time

Helping Hands

post-op rehab · with orthopedic consultants
LuaCorona SDKclinical collaboration
Problem
Post-surgery patients were sent home with paper exercise handouts that were easy to skip — and clinicians had no way to see whether the rehab was actually being done.
Built
An Android app (Lua / Corona SDK), built with orthopedic consultants, that turns hand-rehab into guided, game-like exercises with real-time finger-motion tracking and a progress dashboard.
Impact
Replaced static handouts with interactive therapy that motivates patients to keep going — and gives clinicians real progress data, with optional secure sharing back to providers.
View on GitHub
SkyWatcher: raw webcam feed beside a processed motion-difference feed with a bounding box around a detected moving object

SkyWatcher

computer vision · ran on a 2012 MacBook Pro
C++OpenFrameworksOpenCV
Problem
I wanted real-time, motion-triggered camera monitoring — without paying for expensive software or dedicated kit, and running on an ageing 2012 MacBook Pro.
Built
A C++ app (OpenFrameworks + OpenCV) that uses frame-differencing and OpenCV blob detection to flag movement, draw a box around it, and auto-save snapshots — with a simple GUI for brightness, contrast, sensitivity and object-size limits. Frame-differencing was a deliberate pick: light enough to run smoothly on the old laptop.
Impact
Turned a spare old laptop into a free, working motion-capture tool — used as a simple security camera outside the house, and as a hobby sky-watcher for catching fast-moving objects overhead.
View on GitHub

Directory enquiries call trainer

BT Bangor · 2021
GodotGDScript
Problem
Call agents needed to build muscle memory for the keyboard shortcuts used during live directory enquiries calls — with no engaging way to practise.
Built
A Godot game where a caller’s request must be parsed into keyword fields using F-key shortcuts against a countdown — built on Godot’s signal system for a modular design.
Impact
A working end-to-end prototype that turned shortcut-drilling into a timed, scored game — proving game-based simulation as a practical workplace training tool.
Watch the demo

Yuni’s Hair Salon app

Bangor, Gwynedd · voluntary
FlutterDartpro bono
Problem
A local salon’s price lists and service info were scattered and awkward to keep organised — clients and staff needed one clear, up-to-date reference.
Built
A Flutter mobile app that pulls the salon’s branding, contact details and full men’s/women’s price lists into one clean, tap-through interface.
Impact
Gave a real Bangor business a single tidy digital home for its prices and booking prompt — built and donated to help out the local community.
Read the LinkedIn post

Publications

[ 14 ]

Journal papers

  1. 2017
    Terahertz characterisation of UV offset lithographically printed electronic-ink
    Zeng, Edwards, Stevens, Bowen, Donnan, Yang
    Organic Electronics · 2017
    doi: 10.2312/vcbm.20161270 ↗
  2. 2016
    Real-Time Guidance and Anatomical Information by Image Projection onto Patients
    Edwards, Pop, John, Ritsos, Avis
    Eurographics VCBM · 2016
  3. 2006
    Co-crystal formation of 4-methyl and 4-chlorobenzamide with carboxylic acids
    Edwards, Motherwell, Jones
    CrystEngComm · 2006 · vol. 8, pp. 545–551
  4. 2002
    Influence of dicarboxylic acid structure on tape networks in co-crystals of 2-pyridone
    Edwards, Jones, Motherwell
    Crystal Engineering · 2002 · vol. 5(1), pp. 25–36
  5. 2001
    Sebacic acid
    Bond, Edwards, Jones
    Acta Crystallographica Section E · 2001 · E57, pp. 141–142
  6. 2001
    Azelaic acid
    Bond, Edwards, Jones
    Acta Crystallographica Section E · 2001 · E57, pp. 143–144
  7. 2001
    Crystal Engineering and Chloro-Methyl Interchange — a CSD Analysis
    Edwards, Jones, Motherwell, Shields
    Molecular Crystals and Liquid Crystals · 2001 · vol. 356, pp. 337–353

Conference papers

  1. 2017
    Quality-control of UV offset lithographically printed electronic-ink by THz technology
    Zeng, Donnan, Edwards, Yang
    UCMMT 2017 · IEEE
  2. 2015
    LiTu — A Human-Computer Interface Based on Frustrated Internal Reflection of Light
    Edwards, John
    Int. Conference on Cyberworlds (CW) · 2015 · pp. 237–239
    doi: 10.1109/CW.2015.69 ↗

Posters

  1. 2015
    A Haptics-enabled Simulator for Transperineal Ultrasound-Guided Biopsy
    Ritsos, Edwards, Shergill, John
    EG VCBM · 2015
  2. 2015
    Towards a High Fidelity Simulation of the Kidney Biopsy Procedure
    Henshall, Pop, Edwards, ap Cenydd, John
    IEEE VR · 2015
  3. 2015
    Feasibility study of a cost effective method for needle tracking
    UKRC · 2015
  4. 2014
    Force Sensitive Embedded Glove to Measure Axial Needle Forces during Transperineal Prostate Biopsies
    Edwards, John, ap Cenydd, Shergill
    EG VCBM · Vienna 2014
  5. 2014
    Metacarpal Thumb Joint Measurement and Rehabilitation with LeapMotion
    Edwards, John, Jesudason
    EG VCBM · Vienna 2014

About

I build systems from the ground up — from hardware to software. That includes custom firmware and circuit boards for scientific instruments, computer vision tools, mobile and desktop apps, interactive 3D for the web, and the backend and AI pipelines that tie it all together.

I hold a PhD from Cambridge, with published research in terahertz instrumentation, and years of hands-on experience creating tools and apps that work reliably in the real world. I care about the full picture — from understanding the user’s needs to delivering solid, deployed code.

A lot of my work supports real people and local businesses: a rehabilitation app developed with orthopaedic consultants, a free booking app for a Bangor salon, and a 3D memorial for a demolished school. As an independent contractor working remotely, I enjoy bridging hardware, software, and science for teams that need someone who can move comfortably between all three.

Contact

Open to remote contract work. The fastest way to reach me is below.