A comprehensive list of software projects I have worked on across research software,
mobile and tablet apps, and web development.
See featured projects for case studies, or
get in touch to discuss working together.
Academalytics — Free, privacy-first, GDPR-compliant web analytics platform built exclusively for UK academic institutions.
PHP, Laravel 12, Filament, PostgreSQL, Tailwind CSS, Alpine.js, Vite.
School Inclusion Group data merger — Web app for merging pupil administrative data with survey responses into standardised datasets. The UI auto-maps fields and values to reduce human error; data manipulation handled in-browser to preserve student anonymity pre-standardisation.
PI: Matthew Easterbrook, Ian Hadden.
PHP, Laravel, Filament, Vue.
Community Maps — Interactive online maps displaying research communities and collaborators.
PI: Jamie Ward, Matthias Gobbel.
Python, Folium.
Whole School and College Approach Measurement Toolkit — Online toolkit allowing educational settings to self-assess their whole school and college approach to mental health. Over 300 schools signed up within the first four months.
PI: Becca Rendall. Funder: NIHR.
PHP, Laravel.
Perception Census — Award-winning ('Creative effectiveness', CR Annual Awards 2024) online test platform in collaboration with Sussex and Glasgow Universities and Collective Act. 33,780 people from 133 countries participated, completing 102,689 sections, making it the largest study of its kind.
PI: Anil Seth (Sussex), Fiona Macpherson (Glasgow). Funder: Unboxed (UK Government).
jsPsych, PHP, Laravel.
Sussex Research Record — Internal tool for the psychology department streamlining annual data gathering. Customisable form creation with reminders and deadline tracking.
PI: John Drury. Funder: University of Sussex.
PHP, Laravel.
Circles — Real-time video chat platform with a unique method for allowing students and staff to meet and discuss matters within a course.
PI: Matthias Gobel. Funder: University of Sussex.
AWS, JavaScript, PHP.
Parenting with Anxiety — Online version of a successful intervention for parents with anxiety, teaching techniques to reduce the likelihood of passing anxiety to their children. Built in Moodle with a custom RCT framework. Currently being implemented by the Kent Surrey Sussex Academic Health Science Network.
PI: Sam Cartwright-Hatton. Funder: Kavli.
Moodle, PHP.
Trial Pigeon — Service to manage trial-related communications (email, SMS, in-app). Researchers write up emails and use a flow chart to manage reminders and integrate with platforms such as Qualtrics.
PI: James Alvarez. Funder: University of Sussex.
PHP, Laravel.
Syntoolkit — General-purpose platform for creating and hosting psychology experiments, with a form builder, experiment flow, and results sharing interface. Used within the department by many researchers to spin up experiments quickly and for free.
PI: Julia Simner. Funder: European Research Council (ERC).
PHP, Drupal, JavaScript.
Landecker Digital Memory — Web software to help preserve the testimony and memories of Holocaust survivors. Developed through design workshops, aiming to go online within the year.
PI: Victoria Walden. Funder: Landecker Foundation.
Valuable Lives — Design workshops with the Valuable Lives team at UCL producing requirements specifications and design briefs for a website providing public access to records of enslaved individuals from the 19th century.
PI: Matthew Smith. Funder: UCL.
VR rubber-hand illusion using Video Delay — Unity PCVR experiment adding a variable delay to a webcam feed strapped to a Quest 2 headset, investigating sense of agency amongst cannabis users. Pulse oximetry and digital triggers recorded through Lab Streaming Layer.
PI: Raquel Nogueira Arjona, Robyn Scharte.
Unity (C#), Python, Lab Streaming Layer.
Colourmind: VR colour shifting — Adapted the Oculus Rift headset with shaders that accurately map realistic colours to a transformed colour space, allowing experimentation with the human visual system under different visual colour environments.
PI: Anna Franklin. Funder: European Research Council (ERC).
Unity, C#, Oculus Rift.
VR Streetview — Immersive platform allowing use of Google Street View imagery within VR headsets, for experiments on the psychological effects of street environments.
PI: Matthias Goebel. Funder: University of Sussex.
JavaScript.
Language Health Centre — Frontend and MLOps contributions for a service allowing researchers to access machine learning models for categorising hate speech online.
PI: Paul Keene. Funder: Oracle.
Oracle Apex, Python.
Mass observation visualisation — Upgraded and re-provisioned a website using natural language processing to extract and present themes from first-hand public testimonies. Required careful migration and resolving tricky legacy bugs.
PI: Justyna Robinson. Funder: University of Sussex.
Python.
Octopath: digital histopathology — Built the React frontend dashboard for AI-powered software to assist pathologists in performing their daily tasks.
PI: Charles-Antoine Collins-Fekete. Funder: UCL.
React, AWS.
Screen Test — Cross-platform mobile research application collecting micro-responses about TV viewing habits, with a focus on emotional and psychological impacts. Built in collaboration with Radio Times.
PI: University of Sussex. Funder: University of Sussex / Radio Times partnership.
React Native, Expo, TypeScript, Supabase, PHP, Laravel 12, Tailwind CSS.
The Sussex Sound Sleep Study — Longitudinal study examining changes in sleep behaviour when listening to nightly binaural audio, with staggered daily surveys over 14 days. Available on Android and iPhone.
PI: James Stone, Kate Cavanagh, Alex Fisker-Van Veen.
React Native, TypeScript, DataPipe.
Display screen adaptation — Three apps across as many studies examining visual adaptation to colour display gamuts on personal phone screens, with participants adjusting background colours in LAB/LCH space. Available on Android and iPhone.
PI: John Maule, Yesesvi Konakanchi.
React Native, TypeScript, Progressive Web App.
Baby Museum — Repeating surveys probing baby reactions to art as parents moved through a museum. Native app used for notifications, photos, and encrypted secure storage.
PI: Anna Franklin, Alice Skelton, Anna Cottle.
React Native, TypeScript.
CALMS — Updated mobile application for parents receiving mental health services for children's disruptive behavioural problems and for academic researchers. Required software updates and extensive editing for clinical use.
PI: Emily Midouhas. Funder: UCL.
Node.js, React.
ColourSpot — iPad game providing an indicative diagnostic assessment of children's colour vision, currently undergoing UKCA certification. Built in Unity with custom shaders for controlled colour presentation.
PI: Anna Franklin, Jenny Bosten. Funder: European Research Council (ERC).
Unity, C#, C++, iOS.
Soundsight — iOS app converting iPhone depth data into real-time audio streams, allowing visually impaired people to navigate by sound. Supports Structure.io and Flir One heat sensors.
PI: Jamie Ward. Funder: University of Sussex, RM Philips Foundation.
Objective-C, iOS.
Development of gaze contingent eye tracking psychophysics experiment for 4 month old infants with
Eyelink, Psychtoolbox & MATLAB.
Solution to present user motion capture in real-time on a realistic avatar in 3D environment.
Participants wear Oculus Rift headset and see their Kinect driven actions applied to 3D avatar in first
/ third person, for experiment on episodic memory.
Creation of three VR based games / tests for eye function (Unity3D & Oculus Rift):
random object search, catch game (using Leap Motion hand position sensor) and time telling.
Scripted data analysis of >3000 participant cohort study on synesthesia and wellbeing in primary school
children. Python notebooks to present insights to the team, collaborative exploration
of data with machine learning.
Development of online / offline node webkit Javascript experiments to detect
Synesthesia in children.
Movie player with custom shaders to rotate visual gamut in Macleod-Boynton colour space.
Creation of interactive 3D learning environment in Unity3D. The environment included
several physics based / puzzle games with a child avatar helper. Eye tracker and SHORE facial expression
recogniser were integrated for Autism research purposes. Included experience with 3D modelling /
skinning / rigging. Involved interactive development via field testing with children in schools.
Collaborative work on GraFIX Eye tracking analysis software specifically in the areas of file
management, cross-platform compatibility, batch processing, and optimisation of algorithms
(C++).
Implemented fisher kernel learning algorithm (Machine learning) to analyse large eye movement
database.
Tobii eye tracking Mex files for use by MATLAB programmers for childrens' eye-tracking
research.
Various eye tracking experiments written in MATLAB with Psychtoolbox.
Programming colour research experiments for children in MATLAB
Colour appearance modelling in MATLAB
Unity3D app to test for colour vision deficiency in children. Visual search game with
colourful animated rewards. Accurate colour display managed between iPad models with
shaders. GDPR compliant data gathering / analysis solution with Drupal and Firebase.
Behaviour analysis with local linear fitting algorithm re-written in C++ with Armadillo
matrix algebra library.
iPad app to test for colour vision accuracy and colour preferences in pre-industrial
society in Ecuador. Unity3D based app.
Naviear — an Android application for Psychology field research at Université Paris
Descartes. Converts motion sense events to real-time DSP. Allowed experimenters to send messages via
SMS / Bluetooth to schedule tasks and adjust parameters. Sound generation written in C for low latency.
Unity3D app to collect colour preference data with German children with the
Justus-Liebig-Universität.
Hearspace — an iOS application to turn compass information into input for Pure Data
sound patches.
React app for collecting synesthetes' unique experience of colours in their perception
of words.
Drupal / PHP / HTML5 development of psychology experiment building
web platform. Experiments can be created with UI and advanced users can upload custom JS experiments.
Results are stored with simple REST API and data is shared with other researchers via invite-only
groups. Experiment flow works with other platforms e.g. Qualtrics, as well as conditional logic.
WYSIWYG input forms with conditional logic can be created using a custom TinyMCE plugin.
Experiment-hosting Drupal module redeployed in new site for misophonia research.
Moodle deployment on AWS EC2 instance, with plugin (PHP) development for a complex
dual participant recruitment problem.
Javascript development of or involvement with >100 custom web based experiments
on the above platform: memory tasks, multimedia, reaction times etc. To date the platform has hosted
>16,000 sessions with over 1,200,000 individual trials.
Web app for automatic analysis and presentation of 'sociograms' — network representations of
childrens' ratings of their peers — used to identify socially at risk children.
Ubuntu server administration for dedicated psychology survey web server. Set up SSL, MySQL, scheduled
backups, emails and installed and configured PHP web application 'Redcap', to allow
collection of data securely.