Download PDF

Work History

Jun 2016Dec 2016

Software Consultant

Speech Storm (Genesys)
  • Migration of code version control system from CVS to Git.
  • Introduction of Ivy for dependency management.
  • Implementation of a Continuous Delivery process using Jenkins.
  • Technologies: Java 8, CVS, Git, Ant, Ivy, Jenkins
Jan 2016May 2016

Software Consultant

Liberty Information Technology
  • Implementation of a Quote, Premium and Commission Price Calculation Engine for a large US insurance company
  • As the tech lead, along with 3 other consultants, I ported a calculation engine implemented in VB.NET to Spring Boot.
  • Technologies: Java 8, Spring Boot, Angular, JavaScript, MS SQL Server, RESTful web services, git-svn.
Jul 2015Jan 2016

Software Consultant

CME
  • Cloud/Systems Engineering project in a company that facilitates electronic financial derivatives trading.
  • I created a proof of concept to demonstrate that an existing risk calculation engine application could be deployed to the AWS cloud.  In support of this task I created automated functional and load tests and an automated build, deployment and provisioning process using Bamboo, Chef, AWS CLI and bash shell script.
  • Technologies: AWS (EC2, S3, Elastic Load Balancer, AutoScaling Groups, Launch Configurations), AWS CLI, Bamboo, Bash Shell Scripting, Perl, Chef, Java 8, Jmeter, Ruby, Spring
Aug 2013Jul 2015

Senior Software Engineer

Sophia
  • Full stack senior software engineer role within a small start-up company.
  • Development of a product recommendation system implemented on top of the Sophia Contextual Discovery Platform (CDP) which leverage's Sophia's patented semiotics-based algorithms to index documents in order to discover the meaning contained within them and uncover the semantic relationships among them. In the case of product recommendation, an advertising widget showing recommended products is placed on web pages. Recommendations are based on the text of the web page.
  • I developed various features of a high throughput, concurrent caching system and its associated infrastructure which is deployed within a cloud environment (AWS).
  • Technologies: Java, JavaScript, d3, Groovy, SQL, MongoDB, Redis, Spring Core, Spring Security, Spring Integration, Spring XD, JavaScript unit testing (Jasmine and Karma), AWS (EC2, Elastic Beanstalk, ElastiCache, S3, Cloudwatch).
  • Responsibilities:

Design and architecture of aspects of the software infrastructure around the core technology.

• Deployment and maintenance of solutions to cloud computing environment (AWS).

Documentation of designs.

Keeping up to date with current trends.

• Learning and implementing new technologies when required.

Mentor junior engineers.

Code reviews.

Jan 2008Jul 2013

Senior Software Engineer

Liberty Information Technology
  • Re-architecture project to modernise Life companies IT infrastructure.
  • Enhancements to existing and development of new Enterprise applications and their integrations using the Java EE technology stack.
  • Technologies: Java, JavaScript, Groovy, SQL, Struts, JQuery, Ibatis, SOAP web services.
  • Responsibilities:

• Design, Develop and test of software including development of systems architecture, and modifications to existing systems.
• Estimation.
• Assisting the project manager with project plan/schedule of tasks.
• Maintenance of production support documentation.
• System integration testing.
• Code reviews.
• Analysis and resolution of technical and business problems.
• Technical leadership within the project, including mentoring junior engineers.
• Identification and escalation of risks and issues.
• Working with customers and business analyst to derive business needs and
requirements.
• Continuously strive for process improvement.
• Look out for areas where innovation could improve productivity and/or process.

Nov 2007Dec 2007

Test Consultant

BT
  • Test Analyst on a project to deliver a new housing grants system for the Northern Ireland Housing Executive.
  • I created and executed manual test cases based on business requirements.
Jun 2005Nov 2007

Test Consultant

Ulster Bank
  • Test Consultant on various testing projects for the fast paced Ulster Bank and Royal Bank of Scotland IT system integration programme.
  • I created test plans, test cases and managed the delivery of testing on various projects within the overall programme.
  • I Managed a project to deliver a new product into the bank’s portfolio.
Oct 2003Jun 2005

Software Engineer

Allstate
  • I wrote scripts to automate performance testing of various web applications (Load Runner).
  • As part of a team, I wrote an automated regression test bed for a Life Insurance Administration System (Win Runner).
  • Technologies: Mercury Tools Win Runner and Load Runner.

Education

Certifications

Oct 2009Oct 2009

Sun Certified Web Java Component Developer, EE5

Sun Microsystems

Java EE web technology certification

Sep 2008Sep 2008

Sun Certified Java Programmer, SE 5

Sun Microsystems

Java SE programming certification

Training


  • Feb 2013 - Spring + Spring MVC (AOP)
  • Aug 2012 - IBM – RTC (Rational Team Concert)
  • Jun 2012 - IBM - Developing Applications for Websphere Process Server V7-1
  • Nov 2011 - Secure Application Development
  • Aug 2011 - Design Principles
  • May 2011 - Hibernate
  • Mar 2011 - Object Oriented Analysis and Design (UML)
  • Dec 2010 - Advanced Java
  • Aug 2010 - Web Services (SOAP and REST)

Significant Projects

  • Project 1:  Machine Learning Feedback Process

Description

I created a machine learning process designed to enhance the relevancy of products shown to a user for a product recommendation advertising widget.

The context for this project was an advertising widget which recommended web site visitors the most contextually relevant products based on the page they are reading. The algorithm that implements this takes several seconds to complete so to enhance the user experience the result data was cached. So, which products should be shown for the first un-cached call?  Before I implemented my machine learning feedback process the same default products were shown regardless of customer or web site. After it was implemented each customer was shown a continually updated, customized set of products based on historical activity data. The result was a marked increase in clickThrough rates.

Technologies

Spring (Core, XD), MongoDB, RESTful web services, Caching (Ehcache and Redis), Groovy

  • Project 2: Cloud Deployment Automation

Description

I created a proof of concept to demonstrate that an existing risk calculation engine application could be deployed to the AWS cloud.  In support of this task I created automated functional and load tests and an automated build, deployment and provisioning process using Bamboo, Chef, AWS CLI and bash shell script.

Technologies

Amazon AWS (EC2, S3, Elastic Load Balancer, AutoScaling Groups, Launch Configurations), AWS CLI, Bamboo, Bash Shell Scripting, Chef, Java, Jmeter, Ruby, Spring.

  • Project 3: High Throughput Cache System

Description

I added functionality to a caching system which supports the contextual product recommendation of an advertising widget.

I added REST API end points to capture additional activity of users with a product recommendation widget (impression request, fulfilment, rejection, error, etc). This allowed analytics to be built on top of these to provide useful information for the business to analyse performance of the recommendation widget.  I also built the analytics dashboard to display this information.

I added necessary configuration data such as the concept of a customer, retailer, index, tags, default products. This allowed the caching system to differentiate between users and communicate click activity to the product sellers enabling our company to monetise the product recommendations.

Technologies

Spring (Core, Data), MongoDB, RESTful web services, caching (Ehcache and Redis).

  • Project 4: Analytics Dashboard

Description

I created a bespoke analytics dashboard to display real-time interaction with a product recommendation widget.

Data was aggregated using Spring XD and aggregations saved to Redis. This data was exposed via a RESTful web service. I built a display using the JavaScript visualisation library D3 which ingested the Json data from this web service. I also built a proxy controller to solve two issues 1. To get around the browser same origin policy (CORS) issue and 2. To enforce authorisation security on the data based on user.

• Technologies

D3, JQuery, Spring (core, security, XD), Kafka, RESTful web services, Grails, Groovy, JavaScript, Jasmine, Karma

 

  • Project 5: SOA Re-Architecture

Description

Re-architecture programme to modernise Life Company IT infrastructure into an SOA model. Enhancements to existing and development of new Enterprise applications and their integrations.

As part of this programme I spent one month on-site in the US office to build relationships and kick off my aspect of the project in Belfast.

  1. I had full responsibility for Analysis, Design, Implementation, Testing and delivery for the integration of an Electronic Application system with the new architecture and the creation of three new services. IBM Websphere Integration Developer was used to develop these services and they were  run on a Web Sphere Process Server Enterprise Service Bus.
  2. I analysed and designed the porting of an existing bespoke Java rules engine (which I originally wrote) into a Drools based implementation and then exposed the functionality as a SOAP web service to be available in the new SOA architecture. This decoupled the rules functionality into a service.
  3. I analysed and designed a replacement for our existing submission service to submit completed life insurance applications to downstream systems. This involved a complex data mapping between two different XSDs. It de-coupled an application specific piece of functionality into a service.
  4. I analysed and designed a service to update an agent facing application system with changes made in home office systems. This was a new piece of functionality that was required due to the new Service Oriented Architecture.

Technologies

IBM Websphere, Integration Developer, Eclipse, Drools, SOA design, Java, JavaScript, JQuery, SQL, Struts, Groovy, web services (SOAP), XSD, XML, WSDL.