I've been an unashamed geek since my Dad brought home our first family computer, an Acorn Electron, in the mid-1980s. After a childhood and adolescence that included prolonged sessions of coding, gaming and fiddling about with system files, I eventually went to study Computer Science at university in 1995, where I focused mainly on programming.
During the sandwich year of my degree course, I worked as a software engineer for Lucent Technologies, developing a resource management module for a GSM base station controller.
After leaving university in 1999, I got a programming job at Transoft, a consultancy and software house who specialised in migration paths from legacy mainframes to open systems. The main projects that I worked on here were the U/FOS database system and Component Extractor, a system for mining reusable business logic from legacy COBOL applications.
At this point in my career, most of my experience had been programming Unix systems in C and C++. However, in 2003, I moved to a small, tightly-knit software house who were heavily involved in web standards, called x-port. Initially, my focus there was on formsPlayer, an XForms processor for Internet Explorer. formsPlayer became one of the first XForms implementations to reach full compliance, playing a crucial role in the progression of the standard to recommendation status within the W3C. After a couple of years, I was made the lead developer of Sidewinder, an application framework that enabled rich desktop applications to be constructed using markup languages such as HTML, XForms and SVG.
In 2008, x-port became Backplane and I became responsible for the development of Hubbub, an open-source social networking application that provided a rich, semantic interface to the APIs for Twitter and FriendFeed. Then, in early 2009 I moved to a team jointly formed in partnership with IBM to work on the Ubiquity XForms project, an open-source JavaScript implementation of the W3C's XForms recommendation.
Since leaving Backplane to go freelance early in 2010, I have tried to broaden my interests as far as possible, taking on front-end JavaScript work and some design contracts too. I've continued to sharpen my programming saw by working on C++ and C# projects and by teaching myself Clojure in my spare time. I've also pushed some of my own small side-projects up to GitHub.
The progression of my career from its origin in systems programming towards the more recent front-end, user interface work has enabled me to develop a far wider range of skills than would have otherwise been the case. For instance, I have witnessed first-hand how extreme programming practices can revolutionise the software development process and always look for equivalent techniques that might be applicable to my design work. And working extensively in C and C++ has drummed into me the importance of attention to detail, of checking everything that might possibly go wrong and sanely handling those cases where something does.
Above all else, quality is my obsession. It is what makes me tick. Software that nearly works correctly is software that doesn't work. And a design that is nearly right is a design that's wrong.