Curriculum Vitae
Download a PDF Version of this CV
Key Skills
Programming Languages Java, C/C++, XML, SQL
Platforms Windows 2000 & NT, Unix (Linux, Solaris, Mac OS X), Eclipse
IDEs Eclipse, IntelliJ, Visual Age, Visual Cafe, jBuilder, TogetherJ
Products & APIs J2EE (EJB, JDBC, JMS, JNDI), Servlets/JSP/Struts/Velocity, Eclipse RCP, Swing, AWT, Hibernate, OpenSymphony, WebWork, OSWorkflow, JUnit, Apache and Jakarta technologies, TopLink, JBoss, WhiteLight, Oracle, Sybase, MySQL, XDoclet, ANTLR, Maple, Matlab
Techniques CMM (level 3), Coad, OOA/OOD, eXtreme Programming (XP), Agile Software Development, Design Patterns, Test Driven Development
Open Source Projects EclipseMetrics, Jedi
Interests Neural Networks, Self-Organising Systems, Music Composition
Experience
Casual Miracles Ltd
Director, Consultant
(April 2007 – Present)

Casual Miracles Ltd is a new consultancy that offers experienced development teams, team leaders and project managers. I have been involved in 3 pieces of consultancy to date:

BNP Paribas
Senior Analyst/Programmer, XP Coach, Team Leader
(March 2004 – April 2007)

I was a team leader and XP coach for 3 applications related to Credit Risk. All three applications were developed by a team of 10 developers using EXtreme Programming (XP) and were released every two to four weeks. Technologies used include Java, Hibernate, Spring, Tapestry, Velocity, Swing, OpenSymphony WebWork, OSWorkflow, Junit and Sybase.

My role covered analysis, architecture, design and implementation. I also provided XP coaching and team leadership. Since starting with this team, I significantly improved the non-technical XP practices (release planning, iteration planning and the writing of user stories) and introduced better estimation methods, resulting in a much more controlled and productive process.

In addition, BNP Paribas commenced a CMM-I initiative in 2005. Because of my previous CMM experience I was well placed to help reconcile the CMM-I and XP processes for my team and others.

FusionDQ
Project Manager, Architect, Programmer
(June 2003 – March 2004)

FusionDQ Ltd developed a novel, high performance, lightweight data-quality product comprising a Java server, pluggable database layer, client API and an Eclipse RCP user-interface. I was jointly responsible for architecture, design, implementation and project management of the product with a team of four developers. Most of my work focussed on analysis, design and implementation of an object model to represent the problem domain and also, a simple declarative, domain-specific language to allow users to specify the problem to be solved.

Deutsche Bank
Analyst/Programmer
(September 2002 – April 2003)

I was engaged by Deutsche Bank to advance their FX e-commerce platform by designing and implementing a client and reference data management system for their FX+ trading system, and to integrate an older fixed income dealing system with the FX e-commerce platform. Profit & Loss awarded this system Best Order Management and the White Label Award in 2003. I also advised senior management on Agile practises to enhance the existing development process.

My responsibilities in the FX+ project were internationalization, and design and development of parts of the client management web user interface, model and persistence. My responsibilities in the FI+ project were analysis, architecture, and design. Once the initial work on this was done, I was responsible for implementing a distributed cascading spreading system so that white labelled clients could implement their own margins. FI+ was implemented using JBoss.

Capco
Senior Analyst/Programmer, Technical Architect
(July 2000 – April 2002)

My initial role at The Capital Markets Company was to continue the development of the company's Straight Through Processing (STP) system and later to re-architect, design and build a more robust and scalable solution. This system is a reconciliation engine and is capable of processing millions of messages a day, flagging errors (according to a set of user defined rules) and receiving corrections from users via a web interface. Messages are expressed in XML or in flat files, arrive via a JMS queue and are stored in Sybase. The web interface is implemented using Java Servlets and Java Server Pages.

Kizoom
Developer
(February – July 2000)

Kizoom is a UK based software company developing location-aware applications and technology for the mobile wireless internet and has produced the world's first personalised WAP service.

The software developed at Kizoom made extensive use of Java Servlets, JSPs and Enterprise JavaBeans. The product was developed using Visual Age for Java and was deployed on BEA WebLogic.

BUPA
Analyst/Programmer
(September 1999 – February 2000)

My task at BUPA was to architect, design and code a web based rostering and billing system to be used in over 400 care-homes throughout Britain. The purpose of this is to unify and centralise the existing process. This involved the development of two Swing components for the rostering functionality, an XML application to facilitate the exchange of data between the various parts of the distributed system, taking an active role in discussions regarding the database schema and coaching the rest of the team in iterative software development methods to ensure correct and timely delivery.

Objective Computer Systems Ltd.
Consultant
(January – September 1999)

Objective Computer Systems Ltd is a City based Java consultancy with a proven track record in object technologies. My first assignment was a three month contract in Silicon Valley working with WhiteLight Systems Inc., one of the leading OLAP server vendors. The aim of this project was to produce a bespoke web based position analysis and management system for a major investment management company. In addition to producing the Java side of the development, the nature of the project demanded that I rapidly acquire an understanding of the OLAP server functionality and assisted with the development of both the Sybase and OLAP models. The project was produced with a heavy emphasis on evolutionary delivery and the final product was delivered on time and to the satisfaction of the client.

My work after returning from California was the in-house development of a servlet based product that enables easy web-document authorship and collaboration. This product was produced within a team of four consultants and pioneered the eXtreme Programming methodology in the UK. An early version of this product was demonstrated at 1999's Internet World show and generated considerable interest.

Reuters Ltd. - Client Site Technology Group
Senior Programmer
(June 1997 – December 1998)

My role with the Client Site Technology Group was the development of JavaBeans components for visual editing of many standard Java data types and some common proprietary data types used in Reuters. This work involved the design, coding and testing of the components.

In addition to development duties, I undertook the Software Quality Assurance function of the Software Engineering Institute's Capability Maturity Model. The purpose of this function is to advance understanding and promote adherence to the software engineering process and to develop and improve the process.

Reuters Ltd. - Real Time Technology Group
Senior Programmer
(December 1994 – June 1997)

As a member of the Real Time Technology Group, I was responsible for the development and support of the Concentrator Manager (CMG), a key part of Reuters Integrated Data Network. This system monitors the worldwide use of Reuters software products on the trading floor, enabling current and future consumer needs to be identified. This work was carried out in Vax Pascal, C++ and Java

Education
Electronic Engineering Laboratories at the University of Kent at Canterbury
PhD in Neural Networks
(September 1990 – September 1994)

Original work conducted during the course of this research culminated in the development of a novel self-organising neural network called the 'Gello Model'. The principal concern of this work was to establish the viability of a network architecture in which, in addition to topological considerations, the spatial arrangement of neurons is significant. The model is considered to exist in a growth substrate in which new synaptic connections may grow by tracing 'information pathways' to their origin. As a result, this network not only adapts in the conventional way, by altering synaptic weights, but also grows new dendritic connections to potentially useful inputs. Software for this work was written in C on UNIX platforms. Prototyping was performed with MatLab and much analysis was carried out with the assistance of Maple.

In addition, I presented a paper at the international Neural Information Processing Systems conference in 1991.

While undertaking my PhD, I was employed by the university to tutor undergraduate students and assist with final year projects.

University of Kent at Canterbury
BSc in Electronic Engineering (2:I)
(September 1987 – June 1990)
Bournemouth and Poole College of Further Education
A - Levels
(September 1985 – June 1987)
Electronics 'A'
Physics 'A'
Mathematics 'B'
Hobbies and Interests
Karate

I have been practising karate for over seventeen years and currently hold a fourth dan in Goju Ryu Karate, a second dan in Shotokan Karate and a first dan in Iai-Jutsu. While at the University of Kent I taught the university karate club with class sizes of over 200 students. During this time, the club had many successes at the National Student Championships. I personally hold gold, silver and bronze medals for team and individual events at the Student Nationals and national 'open' competitions.

Music

I have played the piano since I was eight years old and for the last twenty years I have developed a keen interest in the theoretical aspects of music. As a result, I have composed many original pieces in the baroque style for piano, harpsichord and small ensembles. Some of these compositions have won awards in national and international competitions.

Personal Details
Address Godalming, Surrey
Telephone 07779 026533
Email
Nationality British
Marital Status Single
References

Available upon request.


Valid XHTML 1.0! Valid CSS!