Download PDF


Over 25 years’ designing and creating green and brownfield solutions within the Microsoft ecosphere, the first decade in C++ and later C#. Immersion in diverse industry sectors has engendered the agility required to integrate with new environments and assimilate their underlying business drivers. These capabilities coupled with the discipline to deliver solo projects and ability to both cooperate and share knowledge with others will give positive results for your project.

Achievements include; writing a multi award-winning digital dictation product that propelled the client into The Sunday Times Microsoft Tech Track 100 for several successive years, creating a departmental level automated hardware testing platform for major phone manufacturer that scaled to multi-national deployment, employing agile techniques to enable a simple customer registration system to evolve into the replacement for both manufacturing and marketing MIS systems

Both full and concise copies of my software development cv are available.

Work experience

Apr 2014May 2018

C# contract developer


Slashed editorial costs by creating a centralised taxonomy service for the legal commentary systems enabling editors to significantly reduce the time spent classifying documents. Developed in C# within an agile environment with CI facilitated by VSTS, SonarQube, Specflow, MSTest and NSubstitute. Improved test coverage by introducing IOC via Unity with ORM provided by Entity Framework. Resolved build stability issues by replacing network shares with ProGet accessed by NuGet and NPM. Introduced New Relic reporting permitting rapid identification of production issues.

Taxonomy information presented in an Atom feed needed to be ingested into the UK editorial systems. Work areas included: Identified security issues with existing data and liaised with the publisher to resolve for both ourselves and other clients.Production of .NET Core based proof of concept. Creation of OWIN based service to parse incoming data feeds and present this information to the taxonomy storage system.

Taxonomy data was held in an existing centralised store which editorial systems could update or query via a WCF REST API. Work areas included: Resolved fragile inter system messaging through a protocol that ensured recoverable, guaranteed message delivery utilising RabbitMQ. Extension of API to accommodate hierarchical information. Modification of existing database schema to support hierarchical information and track taxonomy changes. Creation of OWIN based service to provide access to previous taxonomy changes. Support for natural language searches in both schema and service API. Significantly improved performance through schema optimisations and caching.

Modification of ASP.NET based editorial systems to incorporate a common Angular control allowing editors to classify documents. Work areas included: Generation of NPM package to ease deployment of control into editorial systems. Creation of common picker and integration into the system. Extension of schemas to hold taxonomy information. Reduced hosting charges by migrating to Azure and then AWS.

Updated tool critical for generating Tolley tax training manuals. Work areas included: Minimised printing costs with “tree saving” functionality. Greatly improved performance through parallelisation. Supported complex XSLT2 transforms via Saxon. Utilised Aspose for DOCX, ePub and PDF generation. Updated WPF UI to accommodate new functionality.

Modification of web spidering service to support cross domain crawling and presenting this information via REST.

Build script creation and maintenance together with VSTS and agent administration. Migration from TFVC to Git.

Aug 2013Jan 2014

C# freelance developer

NHS Solutions Provider

Improved revenue flow from blood analyte testing system by introducing individual subscription periods. Data entry through ASP.NET, manipulation and report production via WinForms. Management of AutoTask hosted request queue. Liaison with end-users to fully understand updates. Addition of SagePay. Created new and revised existing SSRS definitions. Updated database schema and associated CSLA code.

Apr 2013Jul 2013

C# contract developer

DCSL Software

Created new source of income for Giant (workforce management solutions) by allowing sale of time recording services to agencies. Website generated in Iron Speed. SagePay for subscriptions collection. Management reports through RDLC. Development of database schema. Automated database and website update tool. 

Satisfied Mid Staffs recommendations with anonymous feedback system for healthcare professionals. WPF client (delivered by ClickOnce) and ASP.NET MVC web site collected data. RESTful web service and tamper proof database securely stored concerns with confirmation messages sent via SMS.

Extended Workflow Activity Library to communicate with a new insurance broker web service. Modified WWF used by GHG Loss Adjusters to use this new functionality.

Jul 2012Dec 2012

C# contract developer

iMeta Technologies

Customised SSI management system to meet requirements of specific financial institutions (such as Barclays and Credit Suisse). Wrote functional and task specifications, mentoring and code reviews for offshore developers, generated coded server-side WWF rules, extended WinForm custom controls, resolved UAT issues, modified proprietary ORM, optimised database, analysed and fixed WebSphere MQ 7.1 connectivity issues.

Mar 2012Jul 2012

C# contract developer


Built new consumer website for Magnet with Sitecore. CMS extended to analyse user data from external database. Integration with third-party services; SAP, 20-20 kitchen design, Kayako Engage LiveChat, Postcode Anywhere.

Development of Sitecore website for HSBC promoting opportunities in Emerging Markets. Reference point for integration with Thomson Reuters data feed (TRIS). Worked on site capacity plans.

Sep 2011Feb 2012

C# contract developer

iMeta Technologies

Resolving issues identified in Assassin, a Standing Settlement Instruction management system used by various financial institutions. Fix failing MSTests so that based continuous build environment functioned correctly. Modify metaCore (proprietary ORM) to work with parameter limits imposed by underlying databases. Performance analysis via ANTS and associated database optimisation. Identify protocol errors in Omgeo Alert connectivity. Install and configure MQ environments, analyse and fix connectivity issues.

Jan 2011Jun 2011

C# contract developer

Sony Professional Solutions

Realised BOM system used by Sony when specifying outside broadcasting units. Creation of VSTO Excel add-in utilising Sharepoint and, maintained installer, created SSRS definitions, produced XLS data import tool.

Creation of Excel add-in using VSTO and system services to check, summarise and distribute sales results to Sony management reporting systems. Production of supporting database schema.

May 2010Nov 2010

C# contract developer


Design, develop and support web service and ASP.NET / Ajax web sites that record phone manufacture, register customers and send relevant information to third party service suppliers. Migration from Visual Studio 2005 to 2010 and introduction of continuous build and test using Provision of customer authentication and email services using OpenLDAP accessed via SDSP. Development of style sheets for new web services and the transforms to fulfil them from existing data Work on database to resolve deadlocks and get stored procs to generate xml based result sets

Aug 2009Apr 2010

C# contract developer

NICE CTI Systems

Enhancement of system capturing and organising emergency service calls and video recordings. Support for IPv6, fixed database threading / locking issues, added anti-tampering mechanisms, multi-threaded test harness to simulate concurrent requests, new admin functionality requiring updates to schema, server components and WinForm client

May 2009Aug 2009

C# freelance developer


Design and develop WCF based RESTful web service secured by 2-way SSL to record purchases from O2 app store and generate reports from which developer payments were made.

Aug 2007Jan 2009

C# contract developer


Produce system for Vertu to record phone manufacture, register customers and send information to third parties. Authentication via OpenLDAP. Implement ASP.NET support and customer web sites. Generated XSD describing SOAP interfaces. Produced XSLTs to map internal XML structures to external variants. Introduced CruiseControl.NET. Improved database performance and resolved deadlocks

Jan 2005Jul 2007

C# contract developer

Nokia Mobile Phones

Production in C# of mobile phone test system for Nokia. WWF Tests linked to a class framework simplifying common tasks, such as Audio capture, FFT analysis, DRM, OCR, error handling, memory leak analysis and report generation.

Dec 2002Dec 2004

C++ contract developer


Created multi-threaded server that processed digital dictation work flows and disseminated results to typists. Client authentication via NTLM or Active Directory. Design, develop and tune SQL Server schema

Sep 2001Jul 2002

C++ contract developer

BBC Technology

Designed and wrote Windows Media DRM system for use by both the BBC and their customers. For resilience the system was hosted within a load balanced web-farm with session data stored in a clustered SQL Server database

May 2000Jul 2001

C++ contract developer

Post Office

Design, development and documentation of cross-platform (HP-UX, Windows 2000) isolation layer insulating Royal Mail from MQSeries. A COM wrapper catered for VB and ASP developers.

Sep 1995Apr 2000

C++ contract developer


Part of team creating assured message delivery mechanism (MQSeries) for Windows from initial UNIX port to version 5.2. Activities included the provision of system services, exploitation of event logs, bridging the MQ and Win32 security models, provision of COM interfaces (MQAI), support for MSCS, integration with Active Directory an

Jan 1992Aug 1995

Software engineer

MBA Systems

Production of multi-threaded financial data feed server which disseminated data from ISDN and satellite to workstations. Acted as reference point for data feed handling. Liaison with feed suppliers and LSE

Jun 1992Dec 1992

Junior software engineer

Apple Macintosh application development in C++. Assignments included: Designed and developed program allowing any address in the UK to be found via its postcode. Enhancement of package to produce and control web-offset printing of labels for surgical envelopes. The program had to calculate the most efficient layout of irregularly shaped labels to minimise wastage.
Jul 1990Sep 1991

Industrial trainee

Produced multi-media applications under various languages (including AVC and C) for both internal and external use. Appraisal of various multi-media packages, particularly in respect to their operation over LANs. Trained others in use of AVC a multi-media authoring package. Assignments included: Mouse operated front end, written under AVC, for accounting package using both the PC and AS/400. Package to enable AVC to interpret word-processed documents with embedded commands. This allowed multi-media presentations to be quickly and easily generated from existing documentation. ID-badge generator using C to control image capture card and SQL to access employee details database.



Computer Science BSc (Hons) 2:1

University of Portsmouth