Personal statement and Career detail


Personal Statement

I own problems.

I analyse problems.

I solve problems.

I design systems.

I build maintainable systems.

I make systems robust.

I speed systems up.

I make systems easy to use.

I work on my own.

I work in teams.

I run teams.

I do short, steep learning curve jobs.

I do last man standing on long projects.

I try hard all the time.


Career Detail




Sep 14

Dec 14

4 months



Return to Eurotunnel (for the nth time) to work on the replacement of their current CRM system held under SAP.  Analyse their current data and systems through interview and analysis of documents.  Interview to find out the real requirements.  Start the process of thinking about the problems with all their assumptions and coming up with a data model that supports the requirement.  Produce proposals and plans to carry out the development.  Provide detailed analysis of some of the data problems that they have.  Carry out high level design together with detailed design in some problem areas for a SQL Server environment and document it all.  Provide documents for consumption of senior management and to enable suppliers to quote from.  Provide presentations and give them to various forums.


Mar 14

Aug 14

6 months



As part of PD, progress the software text book (see 23) a lot closer to publication.  People actually reading (!) it so deal with their comments.

Complete the last manual data loads and dedup using my tools for the charity (see 26) as they switched to online entry by supporters.  Grant them perpetual licence to my fuzzy matching software.


Oct 13


Feb 14

5 months


Return to Sodexo for a fourth time.  Their SSAS BI system in SQL server was producing incorrect results.  Replicate reports in SQL to generate and prove correct results.  Use SQL to make the realisations about the errors in their models and then correct the models.  Provide PL/SQL expertise for website using .Net Web Services.  Contribute to design through analysis of the existing Oracle system.  For example provide single SQL cursors to replace complex interface for providing data for web pages doing it in a stateless fashion with much improved efficiency.  For example identify web team using wrong key for accessing data.  Build complex database functions for the system.



Feb 13

Oct 13

9 months++




Analyse CRM data run under thankQ in SQL database for a charity and report to the director.  Advise on how to improve their data.  Show how the thankQ model was not supporting their data and how to change to eliminate that problem.  Identify the 20% of addresses that were not used anymore and how to remove them – then remove them.  Convert my tools from PL/SQL to TSQL to cleanse their data including removal of duplicates.  Carry out that data cleansing and develop standards to enable volunteers to consistently process the data.  Advise on expansion and how to generate more income from the data.  Set up processes to capture the data and analyse it.  Use my tools to do their data loads when they received data over following months before they switched to online entry.




Sep 12

Jan 13

5 months

Steve Hudson/PD



Another small incursion into websites building a site for a musical entertainer.  Make a very simple site display static information and play music.
During this time build multiple Oracle databases under VMWARE using Linux as part of my PD.



Feb 12


Aug 12

7 months




Return to CGG Veritas for the 2nd time.  Design and build interface to move data from database pairs at server centres in different continents to remote sites with low bandwidth communications, process the data at the remote sites and return the results.  This was mostly PL/SQL triggers, a package and many package modifications of existing systems.  Interfacing was done to systems with little or no documentation – forensic programming!  Oracle10g, PL/SQL, Toad.



Aug 11

Jan 12

6 months




Design a database and implement in My SQL to support a wine web site.  A novel dynamic query mechanism was proposed and implemented.  This was for a start-up company and carried out in unusual circumstances! 
As part of PD convert many of my notes into the first pages of my software development book.


Jun 10

July 11

13 months

Ab Initio



External consultant at Ab Initio.  Lengthy induction process.  Then short engagements: Resolving an interface with Oracle that was running too slow.
Analysing a telecoms invoice program in Informix SQL and writing analysis programs to parse Informix SP SQL, format programs and determine call hierarchies.  Analysed billing programs to discover large number of bills not being created and show loss of revenue.

Advising on database and SAP interfaces for a banking client.

Assisting on three deliveries of the Ab Initio basic training course.

Analysing name and address processing application and developing fuzzy matching.

Teradata interfacing.
PGP graphs creation.



Dec 09

May 10

6 months




Analyse and design the marketing database for EDF in their new Orchard system.  Based on an Oracle database, it took feeds from many sources (SQL Server, Oracle, SAP, flat files) and carried out campaign management and price change functions.  This included synchronisation with SAP CRM to provide feeds for it and to handle all the marketing functions that SAP could not.  The data consisted of all prospects plus customers and all their billing data for many years.  Design the synchronisation interface with SAP and demonstrate need for fundamental changes to the SAP data processing.  Produce the design document, the data model and the functions needed to achieve this.  Warn of all the race conditions and synchronisation problems.   Advise the prototype team on what would go wrong with their implementation and use it to demonstrate the synchronisation problems!



April 09

Nov 09

8 months


C and C


Design and build an image processing system used to find duplicates in a forensic database.  This required coding images in a manner that enabled fuzzy matching to handle rotation and scaling of the images (and even stretching) yet still recognise the matches.  Carried out the research and proved the method against a test database.  Written in PL/SQL with Oracle forms to provide the image handling support.



Oct 08

Mar 09

6 months

C and C



Take over their name and address matching and knowledgebase.  Analyse the errors in it that had been there for years and remove them.  Re-write much of it to the Javelin standard.  Use the improved tools to win 3 dedup competitions.  Then use the tools to implement two dedup and merge systems for two utility companies.  Design the interfaces with a SQLServer reception database and the source systems.  Carry out optimisation of two systems.  All this work done in PL/SQLusing Toad.


May 08

Sep 08

5 months




Return to certification studies and writing the notes for a software textbook.  Carry out occasional support of Javelin at Informa.  Continue the development of an AI name and address processor.


Jun 06

Apr 08

23 months




Sodexhopass had inherited a system that they knew little about.  I was employed to find out what parts of it did, how it did it, and document it.  I found numerous bugs and learnt a lot about PL/SQL and how it can be misused. Then I investigated a very slow process that the in-house people had looked at extensively with little success.  In a short time I was able to take the run time down from hours to minutes…a fresh pair of eyes?  I then looked at several other slow processes.  Finally there was a large many-tentacled upgrade that they had no confidence about promoting to live.  I investigated this and documented its whole-system impact in the development area to give the confidence to deliver to live and carried out a complete upgrade in the test environment.

Then I designed and developed an interface between their bespoke system and the Pivotal CRM.  It was a near real-time feed of all changes from the Sodexhopass system into the Pivotal database on separate servers.  This meant analysing the bespoke system and then designing the database to accept the data within the Pivotal schema.  A number of race-conditions and all the server and communications failure modes had to be catered for to ensure no data was missed.  The system had to be loosely coupled with neither side of the interface dependent on the other side being present.  It also had to be able to recover and ‘replay’ the interface and be auditable.  It also had to be robust and automatically pick up where it left off after system crash or shutdown.  As usual a large optimisations and tuning exercise had to be completed.

The project manager was non-technical (but nonetheless very good) so I also drove much of the project, providing requirement specifications, manpower estimates and dealing with the Pivotal consultants.  There were a number of performance worries so I spent some time carrying out impact analyses on the live database.

Next I designed and developed a scheduling system that automated the company production systems.  I created an innovative ‘time-travel’ method that allowed the company to report and predict production into the future for the first time.  I extracted all the user requirements beyond the scheduling, developed the system in PL/SQL and took it into live running.  Documented the system and wrote the user manual.

With a degree of paranoia I studied for the 1Z0-001 exam, to start Oracle certification, when I could probably have (should have) passed with no revision at all.  I scored 100% and completed the 90 minute exam in 22 minutes showing what a waste of time the study was.

Studied (much less than for the previous exam! (see 18)) for Oracle certification 1Z0-147 and passed with 97% thereby becoming an Oracle Certified Associate.  Then I worked toward the 1Z0-101 which is needed for the DBA certification thread and passed with 98%.  Finally, on the developer thread I studied and passed 1Z0-141 with 98% to become an Oracle Certified Professional.


16 (8,14,15)

Feb 06

May 06
4 months

 Eurotunnel, Informa PLC, Topnet


I completed the development of Javelin by converting some of the forms to be web-based for demonstration to potential clients.  At the same time Eurotunnel and Informa PLC requested help with some complex data loads and extractions.



Jan 06

Jan 06

1 month   

 Informa PLC



During the development of Javelin, the support at Informa PLC, and the building of their local requirements I had spent a lot of time tuning the application.  They asked that I condense a lot of my skills into a 1 day course on tuning to give to their developers and DBA’s.



Jan 02

Dec 05

48 months




It was decided to upgrade Javelin, the CRM system I had designed and first built in 1988 to forms V6, to make it totally OS independent and to add some new features of which the most significant was an AI that would care for the data.  I converted all the forms to V6 and added many more, and converted all the database code into PL/SQL Packages, though some functions had already been moved to PL/SQL.  To give OS independence all the code that resided outside the database was moved to Perl.  This allowed the concept of monitors to be fully implemented which allowed a user to use all functions within the system from anywhere in the world.  It also allowed processing to be sent out to the monitors on whatever machine they were running on thus enabling load management and robustness under failure.  Alongside the monitors a multi-node queue manager was developed that gave a simple interface for complex queue management across many nodes.

The application was a Direct Mail application but it was also a CRM system and had all the ETL facilities of a data warehouse.  The application is still a leader in the area of deduplication and matching with true AI aided fuzzy matching.  Combined with the AI that constantly works on the database to improve the quality of the data it easily adapts to work on any data that is presented to it.

There is a query facility that generates database queries from users that are presented in business terms.  These queries can be used to generate simple data sets to drive a mailing or to drive the multi-dimensional analysis tool.

The system is designed to present an interface to the users driven off data within the database.  Therefore, even with bespoke parts of the application, the same system was delivered to all customers and clients did not need further investment when Javelin was upgraded.


I designed and built the whole product.  I also extracted requirements from clients for their customised functions and built those.


13 (11)

Mar 01

Dec 02

10 months


This was the second part of the receivership of Inphomation (see 11).  Over 18 months of undocumented call data had to be extracted from the database and analysed.  As before the incorrectly retained income had to be identified and proven to the courts.  Several other sources of data were discovered and this was used to verify the data in the database.  This then had to be compared to the data held by Worldcom and discrepancies identified.  This data was then used to support lawyer’s arguments in the courts and in negotiation with Worldcom.  I also analysed the data and provided lines of arguments for the lawyers to use.



12 (6)

Jan 01

Feb 01

2 months




Another one of the clients who returned to me when they had problems, asked that I carry out a complex ETL for them at short notice.  Also analysed why several of their systems were very slow and provided huge performance improvements for them.




Feb 00

Dec 00

11 months



Inphomation ran the Psychic Hotline from Baltimore in the USA and went into receivership (should have seen it coming).  Much of the reason for this was that ATT and Worldcom (see 13) illegally withheld call revenue from Inphomation.  I was brought in by the receivers (Maryland First Financial) to recover their database and analyse that data to support the receivership.  I started with a silent Unix box, no documentation and no staff to talk to.  I first secured a copy of the database (of over 1 billion rows) and all the relevant files on the machine.  Then I analysed all the data in the database to build an ERD and an understanding of all that data.  Next I summarised all the data to identify the missing revenue.  Then I transferred the database to an NT server and loaded all the ATT data of their version of events.  Then there was a lengthy process of matching data to identify the discrepancies.  This was followed by a period of reporting on the data to the lawyers and accountants to refute assertions made by Andersens (the ATT consultants) to maintain our claim.  In the end I never had to testify as ATT settled out of court partly due to the quality of the data analysis I produced.




Apr 99

Feb 00

11 months




Coming up to Y2K Allders wanted expert advice on their Oracle databases that they were inexperienced with and help for the Y2K event.  I advised on how they were running their databases and provided a monitoring service that I eventually automated.  I made a number of design decisions for them in 2 large developments.  I had identified that they were vulnerable to database failure with poor recovery.  I ran a series of 13 seminars for their DBA’s where we crashed databases in various different scenarios and recovered them.  Most of the recoveries were very poor so it made the DBA’s converts to proper backup policies so that none of the exotic recoveries were required!



Sep 98

Mar 99

7 months


The Woolwich Bank needed an Oracle DBA to transfer technology and set up their database to run 24/7.  The database had been set up very poorly so I re-organised it for 24 hour running.  I produced diagnostic scripts to enable close monitoring to enable problem prevention.  I produced fault tree documents for the local support to quickly identify Oracle problems.  I led the team through many disaster recovery exercises.  I provided extensive reporting into management to define how far away they were from true 24/7 working and planned out all the steps to achieve it.  I carried out tuning and tuning analysis of the main 3rd party application.

A large increase in customers was planned so I measured the workload and created an SLA and stress tests.  Then I used some TPC models to predict hardware requirements for the predicted load.



Oct 97

Aug 98

11 months


This short period was used to take the Javelin product out of the original Oracle development into PL/SQL and the latest version of forms.  It also marked the start of the move from VMS based support into platform independence.  At the same time the design of the AI to support marketing activities was begun bringing together many of the existing functions.  Much of the implicit warehouse functions were also formalised.




Dec 96

Sep 97

11 months


At the oil explorer, Digicon, monitored their databases and carried out much database tuning.  Developed one of their job systems using Developer 2000, PL/SQL in a Unix environment.  Used state modelling to design the system.


Jul 96

Nov 96

11 months


Carry out development on data loading for their mental health database.  Bring DBA skills to the company.  Do some crucial database tuning and data loading, in a Unix environment.





Jul 96

Nov 96

11 months

British Army

Develop a DBA course for the British Army at Rhinedalen.  Deliver the first version and hand over to the training company.




Apr 88

Jun  96

100 months


In April 1988 he went to work for the Eurotunnel Project implementation division as the DBA.  As the only person there with VAX and ORACLE knowledge he set up ORACLE on the machine, set up the VAX development and running environment system.  He tuned VMS to run ORACLE optimally and set up the databases on the system.  He wrote the programming standards, and automated all the DBA functions.  He designed the help system and the security system.  As more staff joined he led the first major developments to successful delivery in August, writing a lot of the forms and PL/SQL himself as well as design and team leading duties.  He sat on the technical review board and advised on technical matters such as strategy for new cpu purchases, interfaces to All-in-one, code management, quality, VMS interface, ORACLE and VMS upgrades, sizing and performance


In December 1988 he switched to acting as a trouble-shooter for problems with Oracle, sat on the TRB still, loaded tested and developed with SQLTEXT prior to its introduction, monitored VMS performance and supplied emergency backup for operational problems.


In May 1989 he switched to defining and implementing the quality function for the division.  A little late in the day, but he started the process of turning the department into one that produced maintainable products to a rising set of standards.  He then implemented quality control on a number of sub-systems. When the permanent 'quality' staff were hired he handed over to them and assisted them (which they were much better able to do!) in setting up a proper quality assurance operation.  Then he continued in an advisory capacity reviewing the software procurement proposals, advising on expansion into a database server based on Unix on Sequent hardware and assisting with the introduction of V6 of Oracle and the new Oracle products.


In November 1990 he designed a text retrieval system to support various activities in Eurotunnel.  This system linked with an image system to get text from scanned documents and integrated that information with other existing systems.  He designed in other features such as text enhancement and dual language capability.  From February through to August he built the system with another person and saw it through initial data load into normal running by October 1991.


During all this time he acted as supporter and advisor to other staff on Oracle and VMS and also acted as standby DBA.  He continued to do this and also work on a number of  large internal systems until January 1992 when he became a founder member of the integration team.  His task was to build the tools to support integration and then carry out that testing.  He designed the system and then led a small team in the building of the system which today is one of the core ET development tools.


As the development phase finished and the move to a production environment started he moved back to the QC role full time.  His major task was to analyse all the code to improve resource usage.  Spectacular success was easy initially and then a long period was spent analysing that resulted in many changes to the data structure and code to improve both client and server performance.  He read nearly every line of code in ET and reported bugs in code together with fixes into the high hundreds.  He was also able to point out many ways to save space as well as speed things up.


Then he provided all the technical input on the Oracle and VMS side to carry out a full scale disaster recovery exercise switching countries to new 'LIVE' machines.




Mar 87

Feb 88

12 months


He developed their direct marketing system and improved the design in many places by bringing in ideas from real-time processing.  He acted as DBA for all that time for a system that was under-powered, carrying out a lot of tuning and optimisation.  This was done in a VMS environment using SQL, DCL and Pro*Cobol.




May 86

Feb 87

10 months

Stock Exchange

A member of the Billing team for ‘Big-bang’ developing the SEAQ system.  Writing Pro*Pascal programs and SQL.  The start of being a DBA.




Until Apr 86



Real time development and Research

He designed and built multi-threaded, multi-processor real time systems for radar and telecommunications companies.  The last task was to design the control system for BT’s main exchange switches.  This was multi-processor with two synchronised systems.  After the design he led the implementation team building much of the system infrastructure but also running a team of 10 to implement the complete system in two and a half years.  This was carried out in a Unix environment using Pascal and C and an Intel chipset.

Before working in developing real time solutions he carried out research into manipulating large data sets using parallel processors.  Some of his algorithms are still in use in the NAG library.