Select keywords to highlight
An extensive list of Free Software projects which I have either initiated or
to which I have contributed is available as a
Maintaining Web applications such as JASPAR and UniBind, these having been written in Python
using the Django Web framework.
Additional functionality was also developed and introduced, and a variety of
housekeeping work was undertaken, such as porting the software to Python 3 and
corresponding compatible Django version, auditing bundled resources, and
writing a software licence manifest compliant with the REUSE specification.
Developing deployment scripts and automated
deployment techniques for Web applications and establishing an appropriate
deployment environment for these applications, this employing virtual machines
running the Red Hat Enterprise Linux distribution.
Developing processing pipelines concerned with the packaging
and publishing of data via the JASPAR and UniBind applications. The objective
of this work was to formalise the way in which computed data would be prepared
for deployment within each Web application, and the work was pursued whilst
also having to continually adapt to ongoing modification and reorganisation of
the upstream data computation activities.
Investigating Web application
deployment using container technologies such as Docker and Podman, using tools
such as Buildah for container preparation. Although container images were
considered for direct deployment, the use of containers was more helpful as a
way of producing simple software packages for eventual deployment in a virtual
machine environment managed using OpenStack.
Developing a text-mining
solution for a research project at the RITMO Centre for Interdisciplinary
Studies in Rhythm, Time and Motion, seeking to find relationships between
fragments of text, previously transcribed from audio material, building a
simple database of fragments and relationships that could then be navigated by
a adventure-game-style explorer program. This explorer program was
incorporated into a sensor-driven solution in order to integrate the material
into a improvised theatrical performance.
Activities included investigating natural
language processing libraries and part-of-speech taggers (for Spanish),
developing solutions in Python (initially version 2.7, porting to version 3.x),
establishing functional requirements in collaboration with researchers, and
advising students developing a mobile-based solution for the performance
Analysis and refinement of an existing database storing proteomics information
(employing C++, Qt and SQLite).
Development of software
for a service publishing the stored data
on the Web, using Python to produce the Web interface, PostgreSQL to organise
to provide dynamic features such as incremental content updates, along with
various CSS features for a declarative and modern site design.
Development of a text-mining solution
initially using Lucene and Xapian, but later employing a dedicated inverted-indexing
solution, also employing relational database storage (PostgreSQL) and Web visualisation
of text-mining results.
Redevelopment of a data integration solution
under maintenance as a Java and MySQL solution, and the development of associated
tools such as tabular data parsers and
XML data parsers.
Technologies involved for new development include Python, SQL (PostgreSQL),
POSIX Shell, XML, XSLT and a selection of GNU/Linux tools.
Maintenance of a data visualisation solution
(iRefScape) written in
Java for the Cytoscape visualisation platform.
Public documentation and Web site development and
maintenance involving MediaWiki and MoinMoin, including theme/skin and extension
development and involving HTML and CSS wrangling (and Python development for the
Version control repository maintenance and
administration, initially involving CVS and ViewCVS/ViewVC, subsequently involving
Mercurial and hgweb, with theme development undertaken for the latter.
Provided development assistance to a group deploying a
based on Galaxy in order to
integrate the SAML 2.0
authentication/authorisation mechanism with the existing Galaxy code.
Implementation of file transfer technologies using Jython, various relational
database systems and a proprietary search solution.
Evaluation of alerting features within a proprietary search solution,
developing prototypes using Jython, Java and Apache Struts.
Implementation of Web user
interfaces and supporting services (including Web services) for a
public sector data access application, using JSP and Java, SOAP, XML,
XSLT, Apache (Axis, Cocoon, Tomcat, httpd) and C++ technologies.
Acting as "release manager" for release 1.0 of an internal
Java-based Web application development framework, performing quality
assurance, writing documentation, developing new features and
supporting interested parties. This framework has been used in several
Development of new Web services for a customer in the online
classified advertisements market, using JSP and Java technologies.
Development of XML services and tools using XSLT, Java and various
third-party libraries (such as Apache Xerces/Xalan).
"emulation" software in Java in order to re-create the behaviour of one
database management system (UniData) on another (Sybase ASE).
Re-implementing components of the company's user interface technology in
Python in order to facilitate application development on open database
Participating in working groups, led by a major consultancy group, to
improve company procedures. Preparing proposals for improved revision control
systems and documentation.
Integrating third-party fax software (Zetafax) and commerce software
(Navision, Visma) with the company's product (Infer) using tools such as
Python, Samba and standard Unix utilities.
Developing interactive electronic
forms as part of a small team using the C, C++, and Java programming languages
and Oracle database access tools.
Investigating more effective development methods in order to improve
productivity and re-use within the project. Prototyping software in the Python
programming language and utilising CORBA-related products (such as Xerox
Providing user support for the project's software. Responding to reports
through the use of the Remedy request tracking system. Maintaining existing
software through the development of updates and fixes.
Developing a tool for operators to carry out basic
maintenance tasks for the EDH project, using the Perl programming language
(supporting Oracle database access and the Curses terminal output toolkit).
Developing an early World Wide Web viewing capability for the EDH project,
where EDH documents were converted from an in-house format to HTML, using the C
programming language, in conjunction with proprietary project libraries.
The Andrew Stewart Prize, during university studies.
The Governors' Silver Medal, academic achievement at Advanced Level.
I have in recent years developed interests in photography, electronics, retrocomputing and
I have been a member of the Fellowship of the
Free Software Foundation Europe, and
volunteered to improve one of the
organisation's online services, providing visual consistency with
other services along with an informal calendar solution for members.
From 2006 until 2010, I was an organising volunteer for the
conference (a volunteer-run conference for the Python community in Europe).
This involved contributing and maintaining the conference Web site, running
registration and producing timetables, badges and publicity materials,
communicating with sponsors and attendees, acting as event volunteer and
Starting from an involvement in the CERN Ski Club I have reached a
reasonable level of proficiency in the sport of snowboarding and have continued
to snowboard since moving to Norway. I go swimming regularly, play squash and
football occasionally, and have previously played badminton very
occasionally. Once upon a time, I played the piano and the clarinet.