Summary

Profile

I have 15 years of experience in the IT industry working as a developer, team leader and manager, working for small companies (2 other people) through to large multinational organisations (The AA, ICL and JP Morgan).

I have extensive commercial experience of a wide range of programming languages (VC++, VB, COBOL, smalltalk and SQL) and have designed and coded a diverse range of applications across a wide range of platforms and operating systems.

I have built and managed teams from scratch, working alongside external vendors and agencies. Taking one such team to CMMI level 2 in a short space of time, I created procedures that have been adopted by other teams within the organisation.

I am a confident and outgoing individual who enjoys working with other people. I have enjoyed mentoring and managing the career of others, but equally enjoy working on technical challenges and expanding my skill set.

Qualifications

Degree BSc (Hons) Computing Science (II:II), comprising of:
Software Engineering(B)
Advanced Systems Analysis & Design(C)
Formal Methods(D)
Image Processing(D)
G.C.E 'A' level Computer Science (B), General Studies(B), Mathematics(D), Physics(E).
G.C.E 'O' level English Language(B), Chemistry(B), Computer Studies(B), Physics(C), English Literature(C), French(C), Mathematics(C)

Programming languages

Commercial use of : Visual C++ - Versions 1.52, 5.0, 6.0
COBOL – NetExpress(MicroFocus), Acucobol, REALIA,
Visual BASIC – Versions 2, 3 5,
SQL
Smalltalk
Pascal
Non-commercial use of : .NET (C#, VB),
HTML,
PSP
Exposure to : Prolog,
Fortran,
Z & ML (Formal specification languages)

Operating Systems

WINDOWS NT, WINDOWS 95/98/ME/XP/2000, 3.1, 3.11, MS-DOS,UNIX, VMS




Employment History

11/2001 - present
(Permanent)
JP Morgan
Alhambra House and Sentinel House,
Waterloo Street,
Glasgow
Job title : Build manager

01/2007 - Present : Kapital Credit Hybrids developer

Late in 2006 the decision was made to migrate Credit Hybrids trades from Kapital to other systems within JP Morgan. Since I have prior experience of these other systems and of working across team boundaries, I was asked to move to the Kapital Credit Hybrids team to help with this migration process.

So far we have successfully migrated several thousand complex trades from Kapital to other systems as well as continuing to provide BAU support and developing code to support our existing customer base.

02/2006 - 01/2007 : Kapital Prime Brokerage development manager

In the Prime Brokerage team I managed, and developed alongside, a team of software engineers working on the Kapital application. Kapital is an advanced financial risk management and pricing system that supports Interest Rate Hybrids and Credit Hybrids trades. The application is written in CinCom's flavour of SmallTalk and is used by CinCom in their advertising literature.

My team looked after a portion of this large and extremely successful application, with particular responsibility for Interest Rate Derivative based Prime Brokerage. Our application formed the backbone of the IRD Prime Brokerage effort and was responsible, amongst other things, for storing trade details that are reported to our customers.

The IRD Prime Brokerage effort is split across several discrete systems, all communicating via a derivative of FPML (Financial Product Markup Language) called IBML. Trade details, for those trades which have undergone activity in a given day, are reported to the other PB systems using IBML.

I was recruited into the team to bring my technical, project management, man management and process improvement skills to bear on a project which was somewhat unfocussed after its migration from a development base in London to its new base in Glasgow.

Since I joined the team they now have a coherent and consistent development process, one single point for reporting issues across all in-scope applications and a business-driven rather than development-driven work prioritisation method.

11/2001 - 02/2006 : Reference Data Build manager

Prior to joining the Kapital team I worked for the exotics and hybrids business at JP Morgan, managing a team of 9 software developers (both contract and permanent) all of whom I recruited between April 2004 and June 2005. The team previously existed in the equities business, in a smaller form, and needed to be rebuilt from scratch for the move.

My team was focussed on the development and maintenance of applications that are used to administer corporate-wide reference data. The team is responsible for four main GUI applications and a suite of twenty-four data feeds. It is the GUI work that formed the bulk of the team's responsibilities, with the applications being deployed globally to in Asia, Europe and North America.

The four GUI applications each comprise of a Windows NT / Windows XP GUI client communicating, via RogueWave libraries, with stored procedures in Sybase databases. All of the application code is written in C++, compiled using DevStudio 6

Three of the applications are written around specific business needs and are MFC based and dialog driven. Most of the controls are bespoke to allow interaction with the RogueWave collection classes used to store the data retrieved from the database. Each application has a similar look and feel.

The fourth application is used throughout equities to deploy other applications. All security authentication, for the deployed applications, is carried out via this launcher application.

The feeds have been written using a variety of technologies from C++ and Java, through to PERL scripts and UNIX shell files. These feeds allow the bulk uploading of data into our databases with the GUI applications allowing additional information to be added.

The nature of the work that the team carries out is very much time critical and business driven with demands being fed to us, via a group of business analysts, from a range of sponsors across many lines of business. My job was to ensure that we delivered software that provided what the business wanted within agreed time frames and in a very reactive environment. Such was the strength of the "new team" that we were able to successfully bid for new development streams for the first time in the team's 10 year history.

In addition to the responsibilities of a full man-management role within a demanding line of business I had to continue as part of the development team for the first 9 months of the "new team", acting as a mentor to the less experienced developers.

Whilst at JP Morgan I have been heavily involved in the development of codes of practice to be used throughout the development domain within the exotics and hybrids business. This work has been vital to the retention of our CMM level II certification.



12/2000 - 11/2001
(Permanent)
ICL
Titanium House,
Braehead Business Park,
Glasgow
Job title : Lead Software Engineer
07/1999 - 12/2000
(Permanent)
The Automobile Association.
Fanum House,
Erskine Harbour.
Job title : Senior Systems Specialist

I was a member of an eight-person team responsible for the development and maintenance of a proprietary system that administers vital business data relating to breakdown cover and contracts.

The software comprises of a Windows NT GUI client and an NT server communicating via proprietary middleware, operating via a firewall. Data is stored in an Ingres database and accessed using embedded SQL within C++ code. Large data inserts and amendments are carried out using NT batch tasks scheduled via third-party software.

All of the code is written in C++ and compiled using DevStudio 5.0.

Whilst involved in all of the aspects of the source code, my main responsibilities were the Windows GUI and the data loading code.

The GUI is MFC based and dialog driven, containing several bespoke controls designed to integrate with the data objects retrieved from the database. It has been my responsibility to write any new controls.

Data is supplied in many file formats and by many suppliers. Each of these different formats had a dedicated loader written in C. I have rewritten the entire loading suite in C++ to use base classes. As a result the loading process now comprises of two parts; a converter and a loader. A single converter program converts each of the data formats on a record by record basis into an intermediate file format. A single load process is then invoked to load the records from this intermediate file directly into the database

As well as development work I was tasked with revising the documentation standards apropos class design. This involved extensive use of the SELECT design tool, particularly with regard to reverse engineering the existing code. As a result I was required to spend time liaising with Princeton Softech to iron out some of the bugs with their reverse engineering tool. Unfortunately this exercise was not, ultimately, successful due to time and cost constraints

Latterly at ICL I was seconded onto another team. My remit was to bolster their MFC skills and "fast track" a particular development stream. The work was carried out using C++ under the Devstudio 6.0 environment. Whilst in this team I acted as mentor to the other team members, helping them improve their overall design and code knowledge.



08/1993 - 07/1999
(Permanent)
Ringwood Software Ltd.
Ringwood House
Walton Street
Aylesbury
Job title : Software Engineer

I was responsible for the design and implementation of an in-house utility to manage the deployment of service packs to customers.

The software internally maps the dependencies of all executables, DLL's and other files that make up the target product. This information is stored in a configuration file. The utility will, using the configuration file, checkout all product component files from the version control system (PVCS) using a version label identifier tied in to the Company's internal release tracking system.

The retrieval mechanism creates definition files that allow InstallShield to be run automatically, to create shippable installation media.

Individual files, or scheduled maintenance releases can be delivered to customers to upgrade their version of the product. The utility interfaces to our customer services department's customer database software, forcing any shipped components, or service packs, to be tracked for the purposes of auditing.

Service packs are created using a series of .RTPatch delta files, detailing the changes between different versions of separate components. These delta files are built using the utility and are stored under version control like any other of the product component. Several delta files are merged to form a history delta file, which is the eventual service pack file. The history delta file is created in such a way as to allow the upgrade from any valid system (including separately shipped individual components) to the latest version of the product.

Separate utilities, also written by me, deal with the installation and removal of service packs. Both utilities are dialog applications showing the progress of installation/removal of the service packs.

The utility has been written in Visual C++ version 5.0 as a dialog application using the MFC. Use of design patterns is made within the design of the utility. Within the component definition file dialog, I have used an embedded property sheet dialog (ordinarily a property sheet is a dialog invoked in its own right). A CTabCtrl could have been used, but this would not allow the individual pages on the property sheet to be created at design time.

I have been a member of various teams developing and maintaining a multi-platform family of on-line documentation systems (Trove for Manuals).

Windows

The Windows product has been developed and maintained by a small team and I have been involved in feature enhancement throughout the full product lifecycle.

The main Graphical User Interface of the product was originally written in Visual Basic and has since been ported to Visual C++. The main data retrieval mechanism resides within a DLL created using MicroFocus COBOL. Peripheral network access and licensing DLL's are used by the product and these are written using C++. I have been one of the main developers in all of the product areas above.

The products network DLLs act as an abstraction layer, with the actual DLL loaded depending upon which version of Windows is being run by the user. The underlying Windows network DLLs used to retrieve user and user group information differ from version to version of Windows. Windows 95 and 98, whilst being 32-bit operating systems, retain 16-bit networking components. This means that I have had to write separate Windows 95 and Windows NT DLLs. The Windows 95/98 DLL has to use thunking to allow the direct calling of 16-bit Windows network DLLs.

All of the 16-bit C++ code is written using Microsoft Visual C++ 1.5.2 and all of the 32-bit C++ code is written using Microsoft Visual C++ 5.0. In both cases extensive use is made of the Microsoft Foundation Classes (MFC)

Webserver

I have been a member of a four man team that carried out development work on a 32-bit "WebServer" version of the package.

This package allows users to access the databases used by the standard Windows product and view their documentation using their Web browser.

The data retrieval methods are written using NetExpress (MicroFocus' object oriented COBOL compiler) and the main Web Server engine is written using VC++ 5.0

UNIX

I was instrumental in the design and implementation of the UNIX product. The product was written in COBOL, using the AcuCobol compiler. This source code was then used as the basis for the IBM CICS version of the package.



01/1991 - 08/1993
(Contract)
Trove Software
Yarm
County Durham
Job title : Analyst Programmer

Within Trove Software I was a member of the three-man development team during the initial development of Trove for Manuals.

I was responsible for creating conversion tools to take word processor documents in their native format and convert them into the proprietary rich ASCII format used by Trove. This work was carried out in COBOL, without access to any technical literature regarding the native format of the files to be converted.

The conversion tools had to allow support of tables (using standard MS-DOS line drawing characters) along with any layout features such as columns, tab settings and indentation. The tools that I created dealt with WordPerfect 5.1 files DisplayWrite4 files.

Whilst working for Trove I was also responsible for the development of a proprietary installation process, using PkZip.



07/1989 - 08/1990
(Permanent - Industrial placement component of degree)
G.E.C. Alsthom Turbine Generators
Trafford Park
Manchester
Job title : Analyst Programmer

Whilst working for G.E.C. I was a member of the computer services department, supporting a Manufacturing and Resources Planning (M.R.P.) system which had been bought from an external company.

The system was written in VAX COBOL.

In January 1990 I was seconded into a special task force set up to correct the flaws inherent within the MRP software and to programmatically correct corrupt databases. The changes that were made to the MRP system were sold back to the original suppliers.

Whilst a member of this task force, I was entrusted with the training of two computer students from a local technical college.