2011, Jan - 2011, Aug: Artfinder
Joined this UK startup before launch initially to produce a system to create templated iPad, Playbook, and Android applications. Took on responsibility for data 'ingestion', converting partner (gallery, museum, art library) datasets into our database. Became involved with the OpenRefine open source project: authored a OpenRefine Python client library
and am now a committer on the project after submitting several accepted patches. Python, Django, Perl, sh, PostgreSQL, EC2.
2009, Sep - 2011, Jan: Commercial Pilot's License.
A thoroughly fun and challenging year or so off in California learning to fly. Also part-time with Investor Dynamics (see below).
Took over as lead architect, developer, and ultimately CTO for a media analysis start-up implementing software to track perception of companies and securities and their peers/competitors. Initially moving Borland C++ application online with Perl and PHP. Back-end software in use is MySQL 5, importing and generating XML to drive a variety of incoming and outgoing feeds. Perl, Catalyst, DBIx::Class, git, process definition, code review, team lead.
2006, Feb - 2009, Apr: Google
Developer role assisting in the development of next-gen Programme Information Pages internal project. Scope included ground-up implementation in Perl interfacing and processing existing data sources. Working in team of eight, including five other developer peers. Perl, Catalyst
Took over as lead server developer for the Urban Tapestries cityspace locative annotation research project, implementing a new XMLRPC server API as a mod_perl/Apache proxy for the existing Java server. Developed knowledge of Symbian C++/UIQ emulator environment, GIS and GPS theory, tomcat, Java. Assisted the phone client developer with image manipulation perl scripts.
2004, Mar - June: Proboscis hosting
Took on Proboscis social research thinktank's several sites onto a dedicated server as my largest hosting client teaming up with iTransact to provide power/pipe/ping in Docklands. Migrated several multi-faceted sites running a wide variety of web tools and provide ongoing support.
2002, Dec - 2003, Dec: Corrobbo
Corrobbo is an online project execution application designed to
assist the process of matching briefs with proposals, threaded
discussions, polls, managing teams, creating billing groups,
through to completion and sign-off. Corrobbo is currently a
two-person team of which I am responsible for the every
technical aspect from architecture through to load testing,
e-commerce integration, and deployment. A demo
is online (mail for
Corrobbo's technology is based on perl, Apache, and PostgreSQL.
The SQL usage and schema is quite sophisticated.
2002, Oct - Present: UCEfree
In October I integrated a collection of leading edge Open Source
software to create a spam-filtering system equipped with a
Web-frontend. The frontend enables users to register, set up
domains, set up email users, manage accounts, and examine,
delete, and send on caught spam or miscategorized spam. It is
currently operating for about 40 users and domains. Its
development has halted while working on Corrobbo.
2002, June - 2002, Aug: Interoute
Interoute commissioned me to set up an environment using Perl
and sh that would monitor a collection of heavily
secured servers. The servers were configured in a tree like
structure, some accessible only from others. The system I
conceived deploys monitoring agents that report to a central Big
Sister (an open source monitoring package) server using SSH
& autossh via a remote port forward. The entire deployment
was managed through a makefile for utmost administrative
Platfrom is an art project focussing on train networks by Rachel
Baker. I implemented a messaging and corresponding admin system
using mod_perl and Apache. One notable aspect is heavy use of
Apache's mod_rewrite to hide internal machinations
behind short, "user friendly" URLs.
2001, August - 2001, October: DHAP Digital, Inc.
I was contracted to build a Web and command line-based tool for
monitoring Toyota.com's various Web servers' uptime and the sites'
page integrity. It employed a series of tests that could be
configured and monitored online behaving as
a largely autonomous flexible extension to the
Big Brother monitoring suite.
I then enhanced this to enable an administrator to input a
series of pages in a form which the monitoring software could
"replay" on a schedule and ensure the returned data
was correct. The input system consisted of a moderately complex
proxy cache so that the user need only 'surf' a site and all the
underlying transactions & cookie transfers were automatically
recorded. All code was Object Oriented Perl and made heavy use
of existing Perl modules (in particular
2001, June: Virtual Health Networks, Inc.
maildir support derived primarily from
qmail source to an existing Open Source POP daemon,
tpop3d in C. Additionally, I wrote software
exim the mail server to communicate
directly with an Oracle 8i database for virtual mail
routing information that was shared with tpop3d, both via those
programs' embedded perl interpreter facility.
This project involved familiarizing myself with two medium to
large-sized Open Source code bases, and sufficient DBA knowledge
to create a scripted install and deployment for a Oracle
8i development database and schema for the project.
2001, April: Herman Miller RED, Inc.
In collaboration with another developer/designer, Matt Gorbet,
I was commissioned to create a Mac OS X client and Java server to
track customers' mouse movements as they used the Macs in-store
This data was sent to a server that would be used as part of a
in-store visualization piece Herman Miller RED have projected
in their recently-opened New York store.
The project was executed against an extreme deadline: completion
from scratch in approximately ten days during which time I
learnt the then barely-released Mac OS X, Project Builder,
Interface Builder, the Cocoa Framework (a.k.a. Yellowbox),
Objective C and enough low-level BSD Ethernet network programming
(I linked some Open Source code from the Darwin
client project) to allow the client and server to perform IP
autodiscovery of each other with no configuration files.
Miller RED in-store -- you can see the visualization on the back
wall. The Macs in the foreground are running the client mouse tracker.
2001, January-2001, February: International Curators Int'l @ SF Art
ICI is a non-profit that curates and funds touring exhibitions. I
was involved with their first Internet-focussed endeavor,
Telematic Connections: The Virtual Embrace
, an exhibition
consisting of eight pieces that have a networked (`virtual')
and physical component
. I designed and built the network:
routing server, managed switch, UPS, rack, CAT5 cabling
server is a Debian Linux
server running DHCP, NAT, QoS
firewall, Apache, caching DNS and ipchains portforwarding
(to enable artists external access to their pieces). I spent
considerable time helping artists set up pieces which included
Windows NT network debugging
, Real Video encoder
, and assorted electrical duties. I continue
to oversee the server remotely.
Telematic Connections: The
2000, January: Virtual Health Networks, Inc.
I provided consultancy on Apache, Perl and overall web architecture
for a Peninsula start-up. I built a demo news-publishing system that
provided drop-in stylesheets, graphics & templated HTML. The
news and company data was stored in an Oracle 8i database accessed
using Perl's DBI.
2000, May-Present: RAD Systems, Inc.
I moved to Monterey/Carmel in May 2000 to work for a mortgage
company where I hacked Apache/mod_perl (content handlers) and
built the company's entire IT infrastructure: two Linux
servers providing production and development Web, DNS, email, secure
IMAP, FTP, disk backups, security, LRP-based firewall. In my capacity
as software engineer I used the Template Toolkit and MySQL
(with an eye to migrating to Oracle) to create the foundation of the RAD
Systems vision. As team technical lead I was responsible for providing
direction onmethodology & process both in the management and
1999, October-2000, May: Cable & Wireless USA
In October 2000 I was relocated to C&W USA as a result of the
Omnes joint venture between Schlumberger and C&W being dissolved. My
first project there was extensive modification of a Perl-based packaged
ISP solution that C&W were installing in their Bermuda regional
office. My second project was being taught scripted Windows NT Terminal
Server installation and configuration. As this was a fledgling company
developing business relations I spent much of my remaining time helping
other employees with UNIX use and administration and teaching myself
XSLT. I attended a course using Rational Rose's UML
1999, February-1999, October: Schlumberger Omnes
I was the point-person for the migration of their entire LDAP
Directory Services from Omnes to Schlumberger. SLB has the largest
corporate Intranet in the world & extensively use their directory
services for an employee base of 60,000. This position involved a
ground-up build of Solaris 7, evaluation of commercial and Open Source LDAP
providers, liaising with the LDAP solution provider's tech team (I
exposed over a dozen bugs in their version 4), security provisions
& lockdown, data syncing (LDIF over rsync) and sundry other
admin tasks. I have worked with exim (http://www.exim.org/) and
built an LDAP fuzzy email address matcher using exim and
OpenLDAP. These administrative tasks were aided by considerable use
of Perl both as command line and full OO applications.
1998, November-January 1999: Cable & Wireless (through Black Sun,
Cable & Wireless sponsored an around-the-world balloon trip that
was scheduled to depart early December 1998. Black Sun Plc were contracted
by C&W to produce the accompanying high traffic (4-6million hits/day
estimated) web-site, http://www.cwballoon.com/. I was entirely responsible
for the technical and code aspects of the site's installation, development
and deployment. This included:
Technical liaison with States-side Unix personnel for Real
Video/Audio and server configuration
Consultancy in respect of selection of optimal technologies
(mod_perl, Apache web-server, server specification)
Developing the publishing system for the balloon flight logs,
media press releases and a viewers' comments/questions section. This is a
re-purposing of technology developed for ITV Formula One (see below)
Dynamic map generation to provide a top-down view of the
balloon's flight-path around the world including hyperlinks from nearby
cities to the Encyclopædia Britannica. The users are able to
zoom in and out of the map and look back along its flightpath.
Image database with browser-based image upload facility,
indexing and basic search facility.
Browser-based telemetry tracking to update the home page's status
information and flight-path tracking.
1998, August-1999, January, UK Met.Office (through Soft Options (UK)
The UK Meteorological Office sell image and data files from their Data
and Products Distribution Service. The project was two-fold: firstly to
completely redesign the existing product selection interface to provide
users with a considerably simpler and more useful interface and
secondly to re-implement the delivery system to enhance
functionality and cope with an increasingly high load on their
My involvement was implementing the programmatic aspects of the new
interface designed by Soft Options and creating an infrastructure that
would enable easy configuration and updating of the several thousand
The interface features some complex interactive forms-based
and download any of some four hundred products at once, sorted order
lists, delivery transfer log and a means of editing account information
that includes both email accounts and FTP servers.
The delivery system provides a means for users to have
deliveries arrive over email or have their product
uploaded via FTP to their server automatically as well
as the standard FTP download method. The deliverer provides two common
forms of compression (Unix `compress' and `gzip') as well as
attachments and `uuencoded' data. The deliverer is
implemented in two stages and features the ability to queue simultaneous
1998, October, Cloudband
Cloudband.com is a UK start-up internet resource which is focused on
the Antique Carpet, Textile and Asian Art trades.
I was commissioned to provide a machine capable of providing for
their varied IT infrastructural needs: a web-server, FTP
area, IMAP mail, mail service, an SQL database,
DNS and remote access through telnet along with full
administrative and installation documentation. Following my advice, they
selected a Linux-based system with the Apache web-server
running `mod_perl' to speed their CGI program execution.
Aside from building a machine capable of dealing with a high traffic
site and a near-indefinite number of users' mail I provided technical
liaison with the ISP to ensure accurate DNS entries.
Future work is slated to involve evaluating existing auction
software and leading the ground-up development of the integrated
piece of web-based e-commerce software. The resource will include
extensive editorial and reference material as well as both mall and
auction functionality to enable dealers and collectors to
1998, September, Ford Credit, Europe
Ford Credit commissioned a project to enable customers to make
Settlement Enquiries over the web in order to discover details about their
remaining due car repayments. This project involved using Perl and UNIX
sockets to construct query packets to send and receive data from their
mainframes with a web interface.
1998, June, ITV Formula One (through Eidoscope Ltd)
Eidoscope are responsible for the production of the http://www.itv-f1.com/
ITV Formula One website
which features live news updates coming directly Haymarket which are then
manually posted up to the site. I was commissioned to produce an
extremely easy-to-use automated web-based publishing system
virtually computer-illiterate authors can upload news stories from their
from `The Pits'. These stories can include images taken
with digital cameras.
The system additionally features both webserver and CGI-based security
authentication, privileges, image upload and positioning through a
web-browser, automated links to recent stories with summaries,
automated news re-indexing and archiving plus remote and
template-based modification of other key pages and images within the site.
The system is based on a number of in-house developed custom classes that
allow expansion to remotely manage content for an entire site. The software
for this entire facility including fully documented Perl classes took
just five days.
When I joined Soft Options (http://www.softopt.co.uk/) I was made
responsible for providing a plan and solution for reorganising and
updating their server platform in order to effect a considerable
reduction in day-to-day administrative effort and decentralise this work.
This involved: automation of existing procedures, back-ups, systems
procedure documentation, web-mastering, failsafe protection (diagnostic
scripts/UPS). In addition to providing the typical `sysadmin' in-house
technical support I also had client-facing duties and conducted sometimes
complex technical liaisons.
Making use of my experience as a long-time programmer combining
systems administration knowledge I constructed a series of web-based tools
that allow non-Unix-conversant people within the company to carry out tasks
on which sysadmins often spend time. Typical tasks are: updating DNS
entries, email accounts, adding & registering domains, configure
per-site statistical log analysis, site documentation all spanning six
Solaris- and NT-based web-servers. All this has demanded a highly
automated and consistent infrastructure for the servers and filing
1997-8, Sept-Jan, Syzygy Ltd, London
Syzygy (http://www.syzygy.co.uk/) is a 25-person `new media' company
with a strong list of very successful international clients. I was promoted
to Chief Programmer within a month of joining. My primary
developmental responsibilities were to create software for an online game
for Cartoon Network (http://www.cartoon-network.co.uk/game) and
implement a Management Information Systems marketing training tool
Intranet for Procter & Gamble (URL on request). As technical
project leader in a small, growing company I have been involved with
suggesting and setting company technical policies and systems. In
the absence of a HR dept, I have also been responsible for
recruitment, interviewing, in-house training of new
employees and supervision of technical contractors at Syzygy.
All technical projects have made extensive use of a variety of
database back-ends (Oracle, Informix and Access)
running on a variety of platforms (HP/UX, Solaris and NT
Server 4.0). I was responsible for installation and maintenance of
these databases and writing Perl/SQL CGI software communicating with
these DBMSs remotely over a LAN. The Procter & Gamble project
user-tracking and intuitive database administration. The vast majority of
all software running on these two sites I have designed, submitted specs,
discussed budgets, architected, implemented and documented myself.
Syzygy's most technically demanding web-site has been Cartoon
Network's multi-user online game. It is written entirely in Object
Oriented Perl 5.004 connecting to an Informix database server.
It features secure registration, home-page personalisation, email
verification, obscene language filtering, multi-user interaction,
security/cheat-prevention mechanisms, extremely advanced state management,
league/high-score tracking, email-like messaging facility, integration with
twelve sub-games, automated graphics rendering, entire site pre-compilation
to HTML, web-based map design and admin facility and over 200KBytes of
scripts and modules.
Much of Syzygy's recent work has involved sites with considerable
server-side effort. A lot of my developmental work has gone into
creating innovative technical solutions to reduce server computational
and network costs to even enable aspects of various sites to operate at
1997, July Quintek Ltd, Bristol (for Pilkington Optronics Ltd)
Quintek were contracted to produce some state-of-the-art video-imaging
hardware and software. I was responsible for creating a three-week
feasibility study and designing suitable architectures using
state-of-the-art Field Programmable Gate Array hardware technology in
concert with high-end DSPs to provide real-time high-resolution portable
1996-7 Quintek Ltd, Bristol
I designed an Internet security video application using
Java/Perl/C/HTML to implement a bespoke Client/Server system operating over
a slow Internet link. It enabled live and recent monitoring of a number of
remote camera sites. During this I administered a remote web-server and
designed the architecture for a proprietary UDP/IP image server to operate
in conjunction with a standard web-server. All the file management
routines, many binary data-processing tasks and a server-side database and
associated CGI scripts for the captured video sequences were written in
Perl and C.
1995, Summer Inmos Ltd, Bristol
I rewrote and significantly enhanced a technical document library
system over the course of a ten-week project. Having evaluated the project
requirements I chose to write it in Perl 4. The system consisted of a
number of interacting modules with which users all over the company could
add, remove, update, index, preview, print and co-author documents with a
user-editable change history.
1994, Summer Inmos Ltd, Bristol
I rewrote sections of MicroEmacs, a shareware editor that had been
modified for in-house use. I converted the sources to ANSI C and made some
significant optimisations to reduce start-up delay and correct bugs in the
folding (cf. outline) algorithms. I was also responsible for updating a
library of test programs for QA within the parallel processing compiler
1993, August K-Par Ltd, Bristol (for Bristol Royal Infirmary)
A four-week mini-project before starting University I developed a data
extraction tool in C for a medical CAT-scan system. Patients' scan records
needed to be analysed and relevant data extracted from a proprietary file
format to be used for display on a dedicated medical imaging- and
1993, December Quintek Ltd, Bristol
During a four-week vacation mini-project I wrote a demo to show-off
the abilities of a high-end graphics processor (Weitek P9100) being used in
a Transputer-based video capture/display board developed by Quintek. C and
OCCAM were used to directly manipulate the graphics processor's registers
to show how it could be used to render polygons extremely quickly in a
parallel processor environment.
I have since worked during vacations for Quintek on a variety of
projects that have included writing bespoke network configuration and boot
utilities, an automatic Perl source code-to-documentation generator and a
number of C- and OCCAM-based utilities.
1992-3 Inmos Ltd, Bristol
In the first six weeks of a 12-month placement I became familiar with
C, Unix and Transputer technology by writing a complete demonstration
explaining the parallel and multitasking abilities of the Transputer.
For the rest of the year I wrote and developed Transputer-network
analysis and debugging tools using C and OCCAM in a Unix/C environment,
executing on arrays of Transputer. During that time I was exposed to Xlib
and Motif programming.
Early years Bristol
My computing interest began with an Oric, Dragon 32 and for the most
part a Commodore 64 where I wrote hybrid BASIC and Assembly language games,
utilities and kernel extensions. In December 1989 (age 15) I had one such
game published including a technical tutorial for BASIC/Assembly
optimisations and shortly afterwards a maze generator used to explain
Assembly language and algorithmic optimisations.