September 2012 - March 2013
Java 6, Rational Application Developer, Websphere, JUnit, Spring Core, UML 2
Designed and implemented significant changes to the end clients underwriting system. This included enhanced complexity when automatically generating counter offers to client product suites based upon interactive underwriting questions/answers. The project involved extensive liaison with the end client in order to gather requirements and bi-weekly deliveries/demonstrations enabling early business test.
December 2011 - August 2012
Java 6, JUnit, Spring Core, Web Services & Integration, Eclipse STS, Agile Scrum, Jira/Greenhopper, JMS, LDAP, Weblogic, XML, XSD, Dozer, UML 2, Maven, SVN, Guidewire, Layer 7
Designed and implemented a middleware layer using Spring Integration allowing the Guidewire platform to make requests to and receive replies from third party systems, namely: Auda, Miafta and MID via web services.
August 2010 - October 2011
Java 6, JUnit, Spring3, Eclipse, Agile Scrum, Jira/Greenhopper, Oracle 10g, Hibernate, JNDI, JMX, JMS, LDAP, Websphere MQ & Active MQ, XML, JAXB, XSD, Jasper Reports, UML 2 - Enterprise Architect, Linux/Unix/Windows, Maven, Hudson & Sonar, Cruise Control, SVN
Initially designed and developed the components to receive and process XML Advanced Passenger Processing messages from host airline systems. The Spring based system provided horizontal and vertical scaling through the use of message listener containers with guaranteed delivery of messages over Websphere MQ and Active MQ with KahaDB. System running in production within 4 months.
Subsequently reengineered the disparate messaging and processing solutions used across the division (APP, PNR, API and EDIFACT) providing a common framework enabling fast assembly and delivery of new product configurations.
Designed and implemented a JNDI/LDAP based configuration component enabling clustered deployments to be driven from common Spring and XML.
Janury 2010 - August 2010
Java 6, Eclipse, Weblogic 10, Oracle 10g, Hibernate (annotations), Spring, XML, Castor, UML 2 - Enterprise Architect, Linux/Windows, Maven
Contract offered and accepted Jan 2010 with security clearance completed in April. Detica provided the risk assessment and profiling capability for the UK government Trusted Borders project. The role was diverse including enhancements to risk data feeds; alignment of risk components with changing external interfaces and the design and implementation of a modified deployment architecture to satisfy security accreditation.
June 2009 - December 2009
Java 6, Eclipse, Tomcat 6, MySQL, Spring (MVC), Hibernate 3, UML, Junit 4.8
Developed an ecommerce retail and support suite for a warehousing client using Java 6, Spring, Hibernate and MySql on Eclipse running under Tomcat 6.
During this period I also took a sabbatical and voluntarily carried out the refurbishment of my villages Guides headquarters and grounds (3 months) and then undertook a solo self supported mountain bike trip from Canada to Mexico along the US continental divide (2 months).
April 2004 - May 2009
J2EE, Websphere 5/6, Java 2, Eclipse (WSAD), XA, EJB, Hibernate, Spring, JMS, XML, Castor, UDB DB2, MQ Series, UML 2, ACORD
Legal and General has the largest share of sales of protection products in the UK market. This greenfield project replaced the clients existing system and facilitated the on line capture, automated underwriting and administration of new business. One crucial principal underpinning the project was the ability to bring new products to market in a timely manner.
Working with business analysts and representatives I produced UML models and implemented the core business model.
I architected and implemented the integration of the new suite of systems with Reinsurance Group of Americas back office underwriting system. These distributed scalable systems communicated via a coarse EJB interface passing industry standard ACORD messages in XML format. Utilising a real time distributed locking strategy a new business contract could be alternately progressed by over 700 admin and underwriting staff seamlessly across multiple systems. The role required the ability to produce contractual quality technical and requirements documentation and liaise extensively with counterparts within RGA in order to agree the distributed architecture and acceptance of stage releases.
November 2003 - February 2004
J2EE, WSAD 5, Websphere 5, SOAP, WSDL, MQ, PVCS, Sybase
Requirement was to integrate the clients existing system capturing members pension transactions to a new defined contributions system, ALIS.
Integration was achieved by developing an intranet Web service using a SOAP architecture coupled to an MQ messaging framework which communicated with the ALIS System.
April 2000 - July 2003
J2EE, Java 2, EJBs, JSSE, JDBC, JMS, Struts, Servlets, JSPs, XML, UDB DB2, MQ Series, LDAP, Websphere Studio 5, Websphere Advanced Edition 4, Visual Age, RUP, PVCS
Project architect and implementer of several key e-commerce quotation systems being migrated from Websphere 3 to Websphere 4. The role required the analysis of existing disparate system architectures and subsequent redesign to fit in with the clients strategic e-commerce platform, IBMs Websphere application server (version 4) on Windows. Emphasis was placed on improving performance by evaluating the role of EJBs, transactional requirements, database architectures and interaction with mainframe quotation services using MQ series.
A significant part of this project centred on tightening and simplifying application security. I was involved in the design process of moving from a bespoke LDAP schema on Netscape to a standard schema on Secureway, this included supporting a temporary Websphere custom registry during migration. Moving to Secureway allowed role based declarative security to be applied easily and part of the migration process was to identify and remove programmatic security in favour of declarative.
Some applications returned quotes to clients on an asynchronous basis, I replaced the existing mechanism in favour of Javas JSSE package, this allowed Websphere applications behind the firewall to tunnel through the proxy and establish a secure HTTP connection with clients. This required setting up trust stores of known clients.
Because J2EE secures at the functional level I also designed and implemented a common service that allowed data access rights to be assigned to users and interpreted by applications, this enabled data access to be controlled on a per user basis. I developed a struts based web application that facilitated the dynamic creation of data types to be secured and the allocation of rights to users.
The client required a new web site allowing employees of corporate clients to apply for and subsequently manage a Stakeholder Pension Plan. A J2EE architecture was developed on Visual Age and deployed on Websphere 3 Advanced Edition. RUP was used to drive the project life-cycle
I designed and implemented web and mid tier solutions that facilitated the dynamic creation, maintenance and serving of client specific content.
An internal struts based web application allowed the administrative team to dynamically create, upload and persist client specific images, text and style.
A mid tier service, using BMP EJBs, provided client specific content to the web tier on demand allowing generic web pages generated using JSPs and servlets to be served. With content definition held on a UDB database, including images as blobs, caching was used extensively on the mid tier for performance gains.
I developed a generic Transaction Manager allowing on line client requests to be subsequently processed using peripheral services, for example the switching of existing or future contributions to alternative funds.
November 1995 - April 2000
Java 2, Servlets, Apache, Oracle 8i, Object Designs PSE, Corba - Orbix (Web), Rendezvous, C++, Sybase, Rogue Wave -Tools++, Solaris, SunOS
Member of the infrastructure group supplying consultancy services to all projects across the Corporate and Institutional Client group globally. The role ensured that suitable architectures and complementary technologies were deployed across projects. Older systems based on the client-server paradigm were being reengineered into multi-tier architectures. Technologies used include Java Swing front ends; Java C++ middle tiers with EJBs starting to feature and Sybase and Oracle DBs. Middleware was achieved with CORBA (Orbix and Orbix Web being the platforms of choice) with data transfer and some persistence using XML. Rendezvous was used use for point to point and multicast messaging. Servlet technology was also in place for web based reporting systems. Working in the group involved researching new technologies; extensive prototyping and working closely with project teams to transfer skills.
The global swaps business manage hedging using Bonds through a dedicated system. I extensively reengineered this system with emphasis on decomposition into smaller more pluggable units. The entire infrastructure was replaced with reusable components in the form of C++ libraries. Not only was this an architectural rewrite but significant business functionality was also introduced in the form of support for more complex deal structures including amortising bonds and repos. Additionally the on-line and overnight pricing functionality was replaced to support global risk management. Ability to manually enter and manage bond indicatives and also capture from third party systems was built in. Extensive reporting also provided P&L, cash and credit risk detail at various levels of granularity. Numerous feeds into other systems were also delivered. This system is currently used globally by over 300 staff.
Designed and implemented a system providing risk information against various types of instrument, initially Swaps and Bonds, gathered from disparate trade entry systems into a local warehouse. By translating the trade definition into a generic OO model the system was able to utilise Merrills numerous existing analytics libraries for the purpose of pricing. Risk detail was subsequently obtained by clients through subscription and Merrills proprietary messaging tools. Design was supported by Rationals C++ Rose tool with implementation in C++ and extensive use of Rogue Wave Tools.h++.
January 1995 - November 1995
C++, OMT, RS6000/UNIX
Carried out an Object Oriented analysis of business requirements using Rumbaughs OMT supported by the Select CASE tool. Produced class diagrams and specifications supported by Data Flow and Object Interaction Diagrams which fed into the implementation phase achieved using C++ on a UNIX platform. Delivered system forms part of M&S ordering architecture for their foods departments.
September 1993 - December 1994
UNIX SunOS, C++, C, GALAXY, Ingres
Requirement was to re-engineer the banks existing Front Office Risk Management system used to price and maintain Swaps portfolios with Bonds, Futures, Options, FRAs and FX supported as hedging instruments. The design provided a platform independent clientserver architecture, with an Object Oriented approach allowing new financial structures to be brought to market more quickly. Software was implemented using Visixs GALAXY GUI development environment and C++ on a UNIX SunOS platform. Additionally responsible for designing and implementing the client server functionality of the system using Galaxys DAS product which allows the encapsulation and distribution of abstract data types using C++ and GALAXY class libraries. Also developed the GUI based client Application which managed the reporting functionality of the system.
March 1993 - August 1993
VAX VMS, 4GL, Vision
Requirement was to design and implement a new financial system to replace the banks existing XTAS system. This phase of the project considered the overall system architecture and implemented the core data component. Implementation was achieved using Ingres Vision, ABF 4GL and ESQL (C).
July 1992 - December 1992
ESQL - C, VAX VMS
Designed and developed several facilities incorporated into the banks existing bond issuing system. Implementation achieved using embedded SQL in C targeted to an Ingres database. Liased with business managers in order to specify system requirements.
Also produced documents and gave seminars on how to use C in the VMS environment effectively.
August 1991 February 1992
Invited to USA to consult on the production of a series of documentaries on white water kayaking. Later organised and lead guided kayaking expeditions in Canada.
September 1998 - July 1991
Pascal, C, VAX/VMS
Royal Blue are a software house specialising in solutions for the financial sector. This was a permanent role.
Worked on two principle areas of a project providing Risk Management information for the London Clearing House:
Design and development of a real time data feed handler for the LIFFE TSCS data feed. Supplying a variety of data including security prices, margins and position information to risk analysts.
Design and implementation of a price dissemination system providing real-time price information to a number of different applications running within a VAX cluster using DECnet.
November 1984 - August 1988
Worked from inception to delivery on a project to provide a fully integrated cockpit and flight management system for the Royal Navy Lynx helicopter. The embedded system contained Core, Mission and Stores management facilities. Software was designed using the MASCOT methodology and implemented using the Perspective support environment in Pascal targeted to the Z8001 processor.
Initially responsible for developing the MASCOT based operating system which allowed both co-operative and pre-emptive scheduling of tasks. Later, team leader, responsible for the design and implementation of the Core avionics software encompassing the following subsystems: Navigation; Performance Monitoring; Flight Planning; Steering and Communications.
I attempt to achieve a comfortable blend of business, family and adventurous activities.
Recent expeditions have included 4 winter races in Alaska on the Iditarod trail. Two solo self supported mountain bike rides along the US continental divide from Canada to Mexico. Kayaking the Grand Canyon of the Colorado. Numerous national and international adventure races.
BSc Hons Computer Science, University of Kent
'A' Levels - Applied Mathematics, Physics, History
'O' Levels - 12