shortformrecentcv-v1.12

8

Click here to load reader

Upload: dave-cannon

Post on 12-Apr-2017

32 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: ShortFormRecentCV-v1.12

CURRICULUM VITAE

V1.12 Page 1 of 8

David G. Cannon

Mobile: 07858 727 905 Nationality: British (no work restrictions)

Email: [email protected] Security: Cleared to SC level (lapsed)

Summary

IT professional with 20+ years experience, with Java, C#, C++, Microsoft and Open

Source technologies, across Embedded, Workstation, Server and Application platforms.

Proven track record in all aspects of software development lifecycle, including Business

Development/Analysis, Project Management, Requirements Capture, Design,

Development, Testing and Delivery Management within structured and quality controlled

environments.

Self motivated and dedicated with a collaborative and communicative open style, able to

see the big picture and also focus on detail; with strong technical, commercial, team

building and motivational skills.

Strong organisational skills within and across delivery teams, organisations and suppliers.

Experience in Technical Lead, Team Lead, Developer and Delivery roles.

Technical Summary

Languages/Scripting Java, C#, C++, C, JavaScript, NAnt/Ant, MS Build, Python/Jython

Architectural Frameworks .NET (v3.5, 4), Silverlight v4, Spring, Spring ROO, WPF

Patterns & Practices Software Architecture - Gang of Four (GOF) Design Patterns, Microsoft

Patterns & Practices (Unity, Enterprise Library, MVVM)

Web Technologies Apache Tomcat, IIS, XML, XAML, CSS, XSLT, HTML, JAXB, JCE, SOAP,

WSDL, Web Services, REST, Servlets, JSP, ExtJS

Database Technologies MySQL, PostgreSQL, Oracle 11g, SQL Server, JPA, Hibernate, SQL,

PL/SQL, Transact SQL, SQuirreL (Universal SQL Client), Hibernate

ORM, Java Persistence API (JPA)

Tools Eclipse, IntelliJ, Spring Tool Suite (STS), MS Visual Studio (v1 –

2015), MS Expression Blend v4, MS Office 2013 (MS Project),

Continuous Integration (CI) (Jenkins, Cruise Control, TeamCity),

MSBuild, MediaWiki, IM, Outlook, FxCop, Checkstyle, Cobertura,

NCover, Resharper, CVS (TortoiseCVS, WinCVS, CVSNT), SubVersion

(SVN) (TortoiseSVN, VisualSVN), AccuRev CMS, Git, Team Foundation

Server (TFS), Enterprise Architect (EA), Maven, Notepad++, JIRA,

(GreenHopper, JIRA Agile Plug-in), Artifactory, Nexus (Maven

Repository Managers), Confluence, MediaWiki, InstallShield,

mRemoteNG

OS Microsoft Windows Desktop (v3.1/3.11 thru’ Windows 10), Windows

Server (2003 – 2012), UNIX, LINUX

Methodologies Agile, SCRUM, RAD, Classis Waterfall, UML (Enterprise Architect), OO,

Classes Responsibilities Collaborators (CRC), Use Case Analysis,

Function Point Analysis, Training Needs Analysis, Workflow Analysis,

Test Driven Development (TDD), Behavior Driven Development (BDD)

Test Technologies/Tools NUnit, JUnit, Mocking (MoQ, NMock, JMock, EasyMock), Code

Coverage (Cobetura, NCover), DBUnit, CPPUnit, TestTrack (Test Case

Management), Microsoft Coded UI

Libraries Google Guice DI, Logging (log4j, log4cxx, log4net, SLF4J, Logback),

ZLIB (compression), Java Native Interface (JNI), Connection Pooling

(C3PO, DBCP), Oracle OCCI, Boost, Standard Template Library (STL)

Virtualization

Technologies

VMWare, VirtualBox, Linux Kernel-based Virtual Machine (KVM), Citrix

Zen, Citrix Virtual Desktop Infrastructure (VDI)

Page 2: ShortFormRecentCV-v1.12

V 1.12 Page 2 of 8

Assignments

Company: Robobank

Period: Feb 2016 – Aug 2016 (Contractor)

Role(s): Environments Manager

Joined Rabobank London’s Environments Management Team, who are responsible for the

continuous delivery of enhancements and patches to the bank’s PPQ trading platform from

development thru UAT to production servers. Duties included management of all automated

continuous integration, test and deployment processes and tools.

The PPQ platform comprises a suite of Desktop, Server and Database applications that span

Front Office (FO), Middle Office (MO) and Risk. This suite includes in-house products and

industry standard third party applications like Calypso and Kondor+, interconnected using IBM

MQ. The platform manages trades from Capture to Clearing with connections to regulators and

third party providers like MarkitWire and Bloomberg.

Source control and work item tracking used Microsoft Team Foundation Server (TFS).

Continuous integration used Jet Brains TeamCity Enterprise 9.1.6 and Microsoft Visual Studio

Enterprise 2015 to build C#, C++ and TSQL code and run automated unit and integration

tests. Continuous deployment used XebiaLabs XL Deploy and XL Release.

Maintain Windows Installer MSI scripts using Flexera InstallShield. These MSIs were used

to deploy desktop applications using Microsoft System Centre Configuration Manager

(SCCM).

Maintain XL Deploy manifests and automate XL Deploy using the CLI programmed using

Python/Jython

Maintain Development and UAT environments, used by Developers, Testers and Business

Analysts.

Work with DBAs and developers to manage test databases using Microsoft SQL

Management Studio and TSQL.

Capture and disseminate knowledge as developed and retain it within teams using

Confluence wiki.

Participate in continuous improvement initiatives, working with colleges across delivery

and support teams.

Company: Thomson Reuters

Period: Jan 2012 – 2016 (Contractor)

Role(s): Senior Developer / Configuration, Integration & Delivery Manager

With the growing success of the Thomson Reuters Global Foreign Exchange Trading Platform a

number of initiatives were undertaken to standardise tools and process across projects and

departments.

Migration from SVN to Git, adoption of Maven and Artifactory repositories.

Extensive use was made of Maven features and plugins to build effective POMs and

illuminate copy-n-paste POM sections to maximise maintainability. This included making

use of multi-module projects features, inheritance and aggregation, BOM and the mixin-

maven-plugin.

To improve build infrastructure availability and throughput, build and test servers where

virtualised and multiple instances were run in parallel using VMware.

Participate in major platform enhancements to architecture, including the introduction of an

Enterprise Service Bus (ESB) and Oracle Coherence In-Memory Data Grid.

Develop services and core libraries written in C++ and Java 8 to interchange data via

Coherence.

To support production and test environments Performance and Monitoring of OS, JVM and

applications was introduced; using Graphite for data storage and Grafana graphing and

dashboards. This was implemented by all services writing statistics to Coherence, and a

publisher forwarding them to Graphite ingest servers.

Page 3: ShortFormRecentCV-v1.12

V 1.12 Page 3 of 8

Company: Thomson Reuters

Period: Jan 2012 – Current (Contractor)

Role(s): Senior Developer / Integration Manager

I was retained by Thomson Reuters to prepare the Reuters Trading for Foreign Exchange

(RTFX) platform to meet the Dodd-Frank Wall Street Reform Act. Also involved in major

technology refresh programs to re-architecture trading platforms to deliver low latency trading

and increase throughput.

My role also included being an advocate for the adoption of the build and release management

processes and systems developed during my previous contract to other departments and sites

within the organisation. This includes both UK and overseas sites, across time zones and

cultures.

Duties included on-going evolution of Continuous Integration (CI) environment and

implementing a Component Build System (CBS). Migration of source control to Subversion

(SVN) and the introduction of automated version history and release recording based on

Oracle with browser based UI via Spring MVC website. Some experimentation also with

Spring ROO.

Build and release management work also included introducing the use of Maven and

Artifactory to support and manage deployment of Java components, in combination with

ANT scripts.

Due to the success of the Component Build System (CBS), I was involved in rolling it out

across the organisation.

Other duties include on-going product development.

o All solutions delivered using C++ on Microsoft Windows Servers, 2003/2008.

o Extensive use of Test Driven Development (TDD)

o Use of Boost v1.53, STL, TR1 and other third party libraries.

o Also included continuation of Oracle Database PL/SQL based stored procedure

development to enhance database performance.

Company: Thomson Reuters

Period: Oct 2010 – Dec 2011 (Contractor)

Role(s): Senior Developer

C++, C#, Java Developer working on upgrades to the Reuters Trading for Foreign Exchange

(RTFX) platform to meet the new regulations that govern the OTC derivatives markets. The

solution encompasses all users globally that trade any in scope OTC derivatives within the

regulated jurisdictions. The project involved meeting aggressive project timescales with

unmovable deadlines to ensure readiness for July 2012.

Responsible for putting in-place a Continuous Integration (CI) environment and

implementing a Component Sharing System (CSS) to support globally distributed

development and test teams in Bangkok, London and Russia. This included training staff

and porting legacy products to the CSS for integration with newly developed software.

Development of key system components and Oracle 11g interfaces compatible with Oracle

High Availability technologies using Oracle C++ Call Interface (OCCI) and Transparent

Application Failover (TAF). Development of Oracle 11g PL/SQL stored procedures.

CI implemented with Cruise Control .NET and NAnt; working with source control managed

by Microsoft Visual Sourcesafe (VSS).

Introduction of Open Source Analysis software (blackduck) to ensure products conformed

to licensing obligations and Reuters Open Source policy.

System development undertaken primarily in C++, with C# and Java used also. Other

languages, libraries and tools included SQL, PL/SQL, CPPUnit, STL, Boost, log4cxx, Oracle

SQL Developer, Microsoft Visual Studio 2008, MediaWiki, WinSCP, PuTTy, SQLPlus.

Page 4: ShortFormRecentCV-v1.12

V 1.12 Page 4 of 8

System test infrastructure based on VMware LabManager to simulate data centre

deployment environment, CPPUnit and JUnit used for unit and regression testing.

Company: Intrinsica

Period: April 1993 – Oct 2010

The following assignments were undertaken on behalf of Intrinsica, a Hertfordshire-based Software Consultancy and Development Company.

I worked for Intrinsica for 17 years, in that time I fulfilled a consultancy role to service the needs of their broad client base, which involved both short term assignments on the clients site and heading-up out-sourced projects at Intrinsica's office.

I fulfilled numerous roles at Intrinsica spanning technical, management, consultancy, business analyst, customer facing as well as in-house sales/marketing and company

business development, more details are available on request. This version of my CV primarily focuses on technical experience.

Assignment: i2

Period: June 2010 – Oct - 2010

Role(s): Silverlight Developer, Scrum Team Member

Technologies: Silverlight 4, C# 4, XAML, Visual Studio 2010, Silverlight 4 Toolkit, Expression Blend 4, Microsoft Patterns & Practices, MS Unity DI (aka Prism), Oracle, NUnit, MoQ (mocking), Hudson CI, MediaWiki,

AccuRev CSM, FXCop, ReSharper

C# - Silverlight developer on i2’s Intelligence-Led Operations Platform, the platform of

choice for government agencies and private sector businesses, to investigate, predict, prevent

and disrupt the world's most sophisticated criminal and terrorist threats.

Working with C# 4, Silverlight 4, Java Web Service and Oracle 11g to deliver a Rich

Internet Application to co-ordinate team working across multiple agencies; and leverage

information from multiple data warehouses.

Senior Developer in UI Scrum team responsible for taking prototype UI designs and

implementing those applying Microsoft Patterns & Practices to produce a DI-style

enterprise solution. Using Unity v2 (aka Prism), MVVM, Behaviours, Dependency-Objects,

etc to ensure testability in a Test Driven Development (TDD) environment.

Liaise with developers and remote outsourced system test team to develop an extensive

automated UAT and regression test suite to support the incremental and iterative

development cycles.

Project utilised a range of tools to promote best practices in a Continuous Integration (CI)

environment. These included Resharper and FxCop to enforce coding style; NUnit, MoQ

mocking to implement unit test with NCover to measure coverage. Source control was

managed by AccuRev CMS; Hudson was used as the CI engine.

Project made extensive use of MediaWiki for documentation to support developers and

capture rapidly developing knowledge for technical authors.

Page 5: ShortFormRecentCV-v1.12

V 1.12 Page 5 of 8

Assignment: Intrinsica

Period: Nov. 2009 - May 2010

Role(s): Technical Lead, Java Web Developer

Technologies: AJAX, Spring, Hibernate, ExtJS, Apache Tomcat, PostgreSQL,

HSQLDB, JUnit, EasyMock, DBUnit, REST, Maven, Hudson CI, MediaWiki, Eclipse IDE for Java EE, Google Android SDK, Subversion (SVN), GreenHopper for JIRA, UML, Enterprise Architect

(EA), XStream, log4j, Apache Commons, CheckStyle, FindBugs, Cobertura

Java - JavaScript Developer on Intrinsica’s revolutionary new Online Tree Inspection & Survey

System (OTISS) product aimed at landowners and organisations that have a legal “duty of

care” under the Occupiers Liability Act 1957/1984 for employee and public safety arising from

the condition of their trees.

Working with Java, JavaScript, PostgreSQL v8.4 and Google Android SDK to develop this

innovative mobile phone application and website; to support landowners and professional

surveyors with their geospatial asset management needs.

The project made extensive use of Open Source tools, OS, Virtualisation and libraries to

deliver a cost effective solution in a cost sensitive market place to maximise product and

service margins. These included Spring, Hibernate, Eclipse IDE, Maven, PostgreSQL,

Subversion (SVN), Hudson CI, Apache Tomcat, Java, Ubuntu KVM, log4j, etc.

Used Spring v3 and Hibernate to enable database agnostic persistence layer, integrating

with ExtJS front-end using MVC pattern to maximise cross browser support.

Responsible during the prototyping and early production phases for setting up a

Continuous Integration, Test Driven project environment, using GreenHopper for JIRA for

management of project’s backlog, sprint planning and tracking through the release

process.

Senior Developer and technical lead in an Agile project environment responsible for

technical leadership of development team, including code reviews and architectural design,

architectural white-board sessions with team members in both an ad-hoc and structured

manner.

The project used MediaWiki to provide an on-line dynamic resource for information. The

product was unit and integration tested using JUnit and EasyMock. The project had a

Continuous Integration server using the Hudson CI Engine; that provided automated build,

test and reporting. The work involved UML modelling, database schema and UI design

using Enterprise Architect (EA); implementing server-side code in the Spring MVC

framework with full support for transactional data storage and retrieval; development of

Hibernate Criteria and HSQL queries. A Representational State Transfer (REST) approach

was used for website URLs.

Assignment: Selex SI Ltd (formally Vega)

Period: Feb. 2009 – Oct 2009

Role(s): C++ Developer, Java Developer

Technologies: C++, Java, JNI, DLL, UDP, C Runtime library (CRT) and the Standard Template Library (STL), Visual Studio 2008 (Express),

Apache log4cxx, zlib (compression), Eclipse, UML, CVS, JIRA

C++ - Java Developer in an Agile team responsible for a strategic communications sub-system

of the YahSat satellite project intended for both commercial and government for the Middle

East, Africa, Europe and South-West Asia

Page 6: ShortFormRecentCV-v1.12

V 1.12 Page 6 of 8

Working with C++ and Java to develop a communications sub-system designed to

provided a "one too many" bi-directional transfer of messages between Network Control

Centres and mobile ground terminals.

Implemented using a UDP based protocol designed to be fault tolerant, highly resilient

over high loss and high latency satellite links, also providing prioritisation and resilience to

outages at the sending and receiving ends.

This was a technically challenging project that involved writing multi-threaded code, with

constraints on minimising the number of threads and using a proprietary protocol over

UDP rather than TCPIP.

I introduced the Apache log4cxx to provide a highly configurable logging facility to aid test

automation and product development.

Packaged as a Windows DLL, that provided a C and Java Native Interface (JNI) to translate

between Java and C++. To keep the memory footprint small, the implementation was

restricted to the CRT and STL, with no 3rd party libraries. Integration testing used the JNI

with test harnesses written in Java.

All code developed in Visual Studio 2008 and Eclipse, unit test using CPPUnit, source

control used CVS, Enterprise Architect for UML design modelling and documentation using

MS Office.

Assignment: DRS

Period: Sept. 2008 – Jan 2009

Role(s): C# .NET Developer, SCRUM Team Member

Technologies: C# .NET, SQL Server 2008, Web Services, Visual Studio 2005,

NUnit, NMock, SubVersion(SVN), VisualSVN, Resharper, NDepend, SQL Server Management Studio, IIS, Windows Forms, Continuous Integration (CI) - Cruise Control

C# - .NET Developer participating in Scrum team charged with producing a proof of concept

next generation e-Marker® to provide a modular and scalable electronic on-line marking

application for GCSE and A-Level awarding, assessment and professional bodies.

Working with C# .NET Windows Forms and UI/UX designers to produce web-client and

web-service to extend DRS e-Marker® to mark essay style examinations, e.g. English.

Responsible for asynchronous multithreaded design to deliver reliable and secure

performance over low and high bandwidth HTTPS connections. Architecture based on MVC

and componentised to cater for differing workflows in DRS’s customer base.

Participated in re-architecting the back-end C# web services and SQL Server 2008

database schema to enable support for new marking client and database-driven

configuration of admin client.

Working with Visual Studio 2005, Resharper, VisualSVN, NUnit, NCover tools to produce

high quality code in a Test Driven Development and Continuous Integration environment.

Assignment: i2

Period: Dec. 2007 – Aug. 2008

Role(s): C# Developer, Java Developer

Technologies: Java, C# .NET, SQL Server 2005, MYSQL, IIS Apache Tomcat, AJP13, Advanced Encryption Standard (AES), Integrated Windows

Authentication (IWA) aka SPENGO, Hibernate, SOAP, WSDL, Eclipse, JUnit, JMock, MySQL, HSQLDB, SQLServer and ANT

C# - Java Developer involved in the development of a Java SDK product used by i2's

Professional Services to facilitate data mining semantically tagged relational databases using

i2's visual investigative analysis software.

Page 7: ShortFormRecentCV-v1.12

V 1.12 Page 7 of 8

Working with C#, Java, Hibernate to produce i2’s iXa Web Services SDK a library of Java

components and tools to allow the rapid production of a Java Web Service that can be

hosted using industry standard Application Containers, e.g. Apache Tomcat; and target

SQL Server 2005, MySQL, and other databases. SDK also included utilities written in C#

.NET for use with i2's SQL Server based products; these were developed using Visual

Studio 2005.

Responsible for a password encryption solution that allowed JAVA and .NET products to

inter-operate, which was based around the Advanced Encryption Standard (AES), using

the Rijndael cipher; and worked on inter-operability between IIS and Apache Tomcat using

AJP13

Assignment: Selex SI Ltd (formally Vega)

Period: Feb. 2007 – Nov 2007

Role(s): Consultant

Technologies: UML (Enterprise Architect), Use Case Analysis, DOORS, Systems Engineering, V-Model

A Systems Engineering Consultant, reporting directly to the Technical and Software Development Managers on the project team responsible for delivering the UK WATCHKEEPER

Tactical Unmanned Air Vehicle (TUAV) through-life training solution.

Responsible for carrying out a risk mitigation exercise for all the risks identified during the

contract bid phase and refined the project Quality Assurance plan.

Reviewing the customers’ requirements, the proposed system architecture and high level

design to identify any deficiencies. This was done using a Requirement Management

approach that provided full traceability of requirements, through design, implementation

and system customer acceptance. All requirements were managed using IBM Rational

Dynamic Object Oriented Requirements System (DOORS); requirements included User,

Functional, Performance, Legal and Environmental.

Working closely with SELEX Learning Needs Analysis (LNA) consultants, the customer and

other programme partners to fully identify and understand the end-users operational use

of the target system; to ensure that the training solution to be delivered by SELEX would

provide effective training for the target system.

Using Enterprise Architect (EA) extensively to manage and document the requirements,

high level design and produce custom reports. EA was used throughout to manage the

project’s UML models, including Use Case, Domain, Design and Component models.

Working closely with the customer, SELEX consultants and technical teams to ensure that

all captured requirements had been identified and fully understood.

User requirements were captured using UML Structured Goal Oriented Use Cases, which

produced reviewable and measurable requirements that formed the basis for the design,

development, and ultimately the customer Acceptance Test cases.

Working closely with technical teams to produce and review Interface Control Documents

that formed the basis for Functional and Integration Test specs, and allowed the project to

be componentised and allocated to development and test teams.

Working closely with managers, team leaders; development and test teams to refine an

iterative and incremental software development process built on the V-Model to manage

the code and test activities. This delivered a quality assurance strategy that ensured that

requirements were being meet throughout the incremental development.

Page 8: ShortFormRecentCV-v1.12

V 1.12 Page 8 of 8

Assignment: Vega

Period: May. 2006 – Jan 2007

Role(s): Java Developer, PostgreSQL Developer, SCRUM Team Member

Technologies: Java, PostgreSQL, PL/SQL, Eclipse, Linux (Fedora Core 4), JUnit, Cobertura, Windows XP

Java – SQL Developer on SkyNet 5 project, the next generation of military satellites, which

provide strategic communication services to the three branches of the British Armed Forces

and to NATO forces engaged on coalition tasks.

I was part of a Scrum team responsible for the development of Encryption Key

Management Facility (KMF) used as part of SkyNet 5.

Working with Java, PL/SQL, PostgreSQL, to implement the database schema, business

logic, triggers, stored procedures, multi-threaded request processing architecture,

message handling and synchronisation of databases between 2 KMF installations/sites.

Developed on Windows XP and deployed to a Linux (Fedora Core 4) platform, using

Eclipse, JUnit, Cobertura (coverage tool) in a Test Driven Environment.

Education / Qualifications

CEng: Chartered Engineer

IET: Member of Institute of Engineering and Technology (IET)

BSc. (Eng.): Electrical/Electronic Engineering, (Telecoms and Data Processing)

End of Document