[if you’re looking for a shortened biography for talks, papers, etc, see my short biography page]
I’m originally from the outskirts of Birmingham, England and spent the first 18 years of my life in West Bromwich. I left Birmingham in 1993 to study at the University of Newcastle upon Tyne where I undertook a bachelors degree in Computing Science. I graduated in 1996 with a first-class honours degree and the HP-sponsored academic prize for excellence in Computing Science.
Having liked the computing department and the city of Newcastle, I decided to remain there to read for my Ph.D. At the time my interests were in the field of high performance computing and how to make it easier for non-specialist programmers to develop sophisticated applications to run on inherently complex platforms. This interest lead me to develop a visual, object-oriented programming language for parallel computing and a thesis on the topic for which I was admitted to the degree of Doctor of Philosophy in Computing Science in 2000. This was followed by collaborative funded research project called HiPPO which aimed create a full visual language, compiler, and runtime system for high performance computing.
Having initially planned an academic career, I took a post of Demonstrator in the department which I kept up in parallel with the final year of my Ph.D. research. However towards the end of 2000 I was offered both a full lectureship at Newcastle and a senior development post with Bluestone software. I opted for the software engineering role and began work for Bluestone (subsequently bought out by HP) in October 2000.
Initially my work for Bluestone focussed on reliable distributed workflow systems on CORBA and the Arjuna transaction service. However with the HP buyout looming I was given leeway to look into emerging technologies just as Web Services were beginning to make their mark on the computing industry. By the time Bluestone was formally acquired by HP I was co-architecting – with my good friend Savas Parastatidis – and developing proof-of-concept transaction management infrastructure for Web Services. This work was eventually fed into the OASIS BTP process where I served as a committee member whilst working as lead developer on HP’s Web Services Transactions product – the first product of its kind to market.
After the merger between HP and Compaq, the strategic decision was made for the new HP to exit the middleware market and concentrate on partnering for its middleware stack. The upshot was that some of the people I had worked with in Bluestone and HP were spun out of HP and created a new company called Arjuna Technologies. I was part of this move and became Arjuna‘s Web Services Architect in September 2002.
While I was at Arjuna I sat on the company’s Technology Architecture Group which consisted of the senior technical staff from all products and technical management. The TAG set technical direction and product architecture standards for the company. I also worked as an architect and developer in Web Services transactions and Grid computing, developing the former HP BTP codebase as well as the WS-Coordination/Transaction implementation. During that time the WS-CAF suite of specifications were being incubated, and I worked on the Web Services protocols on all three specs as well as contributing to the specs as a whole. In parallel with my work atArjuna, I co-authored my first book with Sandeep Chatterjee called “Developing Enterprise Web Services: An Architect’s Guide” which was published in November 2003.
In October 2003 I left Arjuna to travel and spent three months travelling south-east from the UK through the middle east, India, Nepal, and Borneo to Sydney, Australia. During that period Savas Parastatidis and Paul Watson from the University of Newcastle were establishing links with the University of Sydney to collaborate on various Grid computing research. Because of my work with Web Services and my proximity, I rejoined the Newcastle University as as Senior Research Associate and took a position as a visiting scholar with School of Information Technologies at the University of Sydney. The role was part of the UK E-Science programme (a £250 million, 5 year programme aimed at improving middleware for e-scientists) and I was responsible for creating architectural patterns for scalable, dependable, Service-Oriented computing and for implementing those patterns in two large-scale software systems. The work established that with some common sense patterns, using commodity Web Services toolkits and protocols (as opposed to Grid-specific toolkits) to build large-scale applications which met various dependability criteria (the results were widely published).
As my role in the UK E-Science community came to an end I looked to return to industry to apply the patterns and development experience to commercial projects. After talking to a number of potential employers, I joined ThoughtWorks. At ThoughtWorks I founded and lead the Service-Oriented Systems practice, where I engaged with large enterprises (predominantly in the financial sector) across the Asia-Pacific region and globally in advisory, architectural, standards, and Web Services development capacity. To underpin those capabilities the philosophy was always to drive integration from a business-perspective; deliver incremental business value; and to use commodity tools and technologies to mitigate risk and expedite completion – all wrapped in the banner of “Guerrilla SOA.” After two years working in Australia and Asia-Pacific, I moved back to the UK and took the role of Professional Services Director for ThoughtWorks in London. While my primary duty was client-facing systems delivery around the world, I also worked in CTO’s office, as acting co-CTO for a short period.
Almost six years after joining ThoughtWorks, I changed direction to work on open source software products taking the position of Chief Scientist with Neo Technology, the team behind the open source Neo4j graph database. In this role, I’m involved with setting product direction and designing and developing neo4j into a horizontally scalable, distributed graph database. My role is heavily R&D centric, and brings together leading edge research from academia into mainstream open source software.