Job history


Senior Software Engineer – April 2019 to present

I recently started working at Smoothwall. I am part of the filtering team, helping to develop software which protects school children from dangerous online content. I am expecting to work primarily in C++ for a Windows and Mac, although as it is an agile team I may also be dabbling in JavaScript, PERL, and various cloud technologies as the need arises.



Software Engineer – June 2018 to April 2019

In my time at Optalysys, I was involved in research and development of optical computing for deep learning. I primarily used C++ in a Linux environment, although I also worked with Python and MATLAB from time to time.


ADI (Advanced Digital Innovation)

Senior Software Engineer (Server) – June 2016 to June 2018

I was part of the health team at ADI, working on a system that helps put patients in charge of their own health data, while linking it in with doctors and other healthcare professionals. I primarily worked on back-end programming using PHP (with the Laravel framework) and JavaScript (with Node and Express), along with SQL and NoSQL databases. We used Docker extensively, and I was involved in various aspects of DevOps as needed. I was also involved in some front-end functionality, using JavaScript and React.


Vertual Ltd

Senior Software Engineer – Aug 2011 to May 2016

This role involved developing real-time virtual training environments for radiotherapy (cancer treatment). Programming was mainly done in C++, using OpenGL for graphics. A full installation would allow learners to work with a life-size simulation of a treatment room, using real clinical data to visualise patients and their internal organs in 3d.


TuDocs Studios

Technical Consultant – Oct 2010 to Aug 2011

Part-time role providing technical guidance, programming, and voice acting for a small startup project. We developed a prototype for an interactive graphic novel to pitch to potential investors. The main project was coded in ActionScript, but I was also responsible for designing and implementing a WYSIWYG editor in C#.

I provided most of the voice acting for the prototype as well, but the less said about that the better…


Aarcee Ltd.

Mobile Games Developer – Aug to Nov 2010

I developed a small iOS game called Octapool on a freelance basis. It was used as a marketing tool to promote the 8-sided pool tables produced by Aarcee Ltd. This project began as a feasibility study through SCET (see below), but I was subsequently contracted independently to complete development and take it onto the app store. I was using Objective-C and the Cocos2d engine.


Scottish Centre for Enabling Technologies

Consultant Senior Technologist – multiple short-term projects between 2008 and 2010

I worked on 3 feasibility studies on a consultancy basis. The first was an investigation into using an ordinary webcam as a control method for computer games. It was coded primarily in C++ with DirectX, and I developed a few algorithms for tracking coloured items around a scene. The second was looking at developing a mobile game as a marketing tool for Aarcee Ltd, which is a project I later completed on a freelance basis. Lastly, the third project was looking at integrating the Second Life virtual world with a school’s education system.


University of the West of Scotland / University of Paisley

Research Assistant – various full-time and part-time contracts, 2008 to 2011

I was mainly involved in work relating to immersive virtual worlds and e-learning. This included being the Lead Developer of the open source SLOODLE project for a year, which required extensive programming in PHP and LSL, along with MySQL. It also involved coordinating with a worldwide community, and helping to plan the implementation of a complex integration of different systems.

I also provided technical expertise for a multi-institution research project working in a similar field.

Associate/Guest Lecturer – various ad hoc contracts, 2009 to 2011

I delivered occasional lectures or provided classroom support for the Computer Games Technology degree programme. The main topics I covered were physics and graphics.

I also provided one-off training and/or induction sessions for research students and supervisors on an ad hoc basis. Topics I covered include Transfer Event Preparation, Progression Issues/Reporting, and the Student/Supervisor Relationship.

Lab Tutor – various part-time contracts, 2006 – 2011

I assisted with supervision of various lab sessions for undergraduate students. The main topics were Interactive Physical Modelling, and Computing Systems. I also provided general support for students on any computing-related course.

Developer – June to Aug 2007

I was hired to establish the university’s presence in Second Life, along with a designing and implementing an accompanying website. Coding was done in PHP and LSL, along with MySQL.