About Me
Systems developer with broad and extensive experience of architecting and implementing systems in a variety of fields.
Experience
Staff Software Engineer
Designed and developed the entire back-end business logic for applying Permitted Development Rights to social housing in bulk.
Used the Ordnance Survey APIs and point cloud data from drone surveys.
Produced outlines that could be used as the limit for building extension without specific planning permission.
Worked with point cloud data exceeding 100Gb in a single file.
Used Python, numpy, shapely, and Docker.
Staff Software Engineer
Designed and developed back-end business logic for applying Permitted Development Rights using Ordinance Survey APIs and drone survey data.
Senior Software Engineer
Worked on genetic and EHR (Electronic Health Record) processing pipelines.
Created a framework to make the pipelines more portable to UKBB-RAP and Databricks.
Improved the quality of the software.
Helped explore the UKBB-RAP and Databricks platforms.
Worked out how to port the company systems to those platforms with a minimum of disruption.
Used Python, pandas, Apache spark, AWS, Kubernetes, Kubeflow, Docker, and GraphQL.
Senior Software Engineer
Worked on genetic and EHR processing pipelines, created frameworks, and improved software quality.
Senior Software Engineer
Worked partly on the cluster manager of a wireless mesh backhaul system.
Worked mostly on a simulator for the mesh part of the network for testing the cluster manager.
Used Golang, Python, pandas, and Docker.
Senior Software Engineer
Worked on cluster manager of a wireless mesh backhaul system and simulator for testing.
Principal Software Engineer
Worked on the core of the word frequency database system used for spotting the particular emphasis of web pages for non-tracking ad targeting.
Worked on the layers above the core system.
Used C.
Principal Software Engineer
Worked on word frequency database system for web page analysis.
Senior Software Engineer
No additional responsibilities beyond the role title were explicitly stated.
Senior Software Engineer
Worked on core word frequency database system.
Senior Automation Engineer
Worked on a unified scheduler for the accelerated emulation systems.
Worked on FPGA farm automation.
Worked on automatic test report generation built on Jenkins and Gerrit using their APIs.
Used Golang and Python.
Senior Automation Engineer
Worked on unified scheduler, FPGA automation, and test report generation.
Lead Linux Developer
Worked on paravirtualized mouse support.
Worked on virtual serial ports.
Worked on legacy interrupts in the Xen hypervisor.
Worked on validation of VHD files.
Worked on licensing and general work on the client image synchronizer.
Moved over to running, maintaining, and extending the automatic test system.
Used C and Python.
Lead Linux Developer
Worked on various Linux projects and client image synchronizer.
Research Assistant (research programmer) in the Bio-Developmental Systems Group of the Computer Science and Information Systems
Designed and developed an application for Grammatical Evolution.
Built the evolutionary and grammatical systems.
Built a library to provide a common API to many interpreted languages to evaluate the evolving individuals.
Used C and C++.
Research Assistant and Course Developer, Department of Computer Science
Worked on Irish-related material.
Used Java and Perl.
Postdoctoral Research Fellow, B4STEP programme, CSIS Department
Co-ordinated work on the EU project COSPA (Consortium for Open Source in Public Administration).
Managed the construction of a knowledge base system for COSPA.
Did programming in Java and Perl.
Led the independent evaluation of Prof David Parnas’ Tabular notation specifications.
Researched program editing and programmers’ mental models of code and editing.
Lectured the Operating Systems Overview module of the Computer Systems degree.
Lectured the Operating Systems module of the Computer Science degree.
Used Java, Perl, and Lisp.
Research Assistant
Worked on B4STEP and COSPA projects, evaluation and lecturing.
Part-time truck driver
Worked as a career break because of RSI while hands recovered.
Hands have been OK since.
Part-time Supervisor (small-group tutor)
Supervised Computer Science students for all years of the Degree course and for the post-graduate Diploma course.
Kept in touch with what is being taught in computer science.
Developed skills in explaining ideas and evaluating others’ understanding of topics.
Supervised a wide range of topics, mostly related to programming languages and operating systems.
Used teaching and communication skills.
Senior Computer Programmer
Worked on the genomic database system AceDB.
Worked mostly on a new database query language for it in C.
Worked on the project’s web site.
Worked on its automatic build and test systems, mostly in Perl.
Used C and Perl.
Software Engineer
Worked mostly on a series of projects within a very large CAD/CAM system.
Worked on an object-oriented database interface to the system.
Computer Consultant (Software Engineer)
Researched and constructed an experimental dynamic software migration system for Common Lisp for the EU Esprit project Chameleon.
Developed a link loader for loading externally compiled code into the running Lisp image.
Worked on many parts of the PostScript-compatible Raster Image Processor.
Designed and implemented the conversion of the existing single-process system to a pipelined parallel system.
Wrote large amounts of the PostScript embedded in the implementation.
Designed and implemented the computer end of the low-level interface to the laser imagesetter hardware.
Worked on obscure timing-related problems.
Moved over to various aspects of the advanced colour system.
Learned about colour science to do this.
Developed Harlequin’s first in-house source control and bug-tracking system.
Used Lisp, C, PostScript, Shell, Make, and Emacs-Lisp.