A proven track record of high performance, large scale microservice-oriented systems. Hands-on senior software engineer, team lead and scrum master. Customer-facing, with strong interpersonal skills. Solid R&D background, holding many publications and two patents.
- November 2021 - present
- Discover Financial Services owns Discover Bank, the Discover Network and Diners Club International.
Developing services for a domain in Digital Payments, focusing on REST APIs and an Event Driven Architecture (Java 11 Spring Boot, Podman, Kubernetes, Apache Kafka, Avro Schemas, PostgreSQL, Vault, ELK observability) along with ISO 8583.
- September 2015 – November 2021.
- Amplience is a headless content SaaS platform with tier-1 retailers and well known brands as customers.
Led a team in a multi-team project to build a service-oriented content management system (Java, Kotlin, Spring Boot, AWS, MongoDB, Elasticsearch, Kinesis). Iterative development though to 10 million requests/day. Delivered on-time with a low defect-rate.
Developed a <30ms low latency, multi-region content delivery API using Anycast networks, CDNs and containers. Built with a multi-reactive framework (vert.x, RxJava) for high performance non-blocking IO. Currently serving ~12 million graphs day. Push-button CI/CD deployment using AWS CDK infrastructure-as-code.
Ran two projects to deliver an upgrade path for Cassandra (NoSQL db) and Solr (text search index) allowing for horizontal scalability to much larger cluster sizes. Allowed growth to manage billions of documents. Used dual-write strategies with blue/green switch-over.
Built an asynchronous publishing service orchestrated by a state machine (AWS Step Functions) using serverless Lambdas and DynamoDB with integration to a legacy AWS Simple Workflow system. Orchestrated using AWS CDK.
Led a team to diagnose and protect an internet-facing API from DDoS-like traffic spikes using a token-bucket rate limiting layer using AWS API Gateway, Cloudfront and WAF. Significantly reduced incident rates.
Ran a mini project to reduce development costs. Optimised AWS resource use to bring down expenditure by 30%. Migrated projects to containers (AWS ECS/Docker) allowing migration to AWS Fargate. Built tooling (Lambdas) to scale development environments.
Technologies & Patterns:
- Java 6 through 12, Kotlin 1.3, TypeScript/node, Ruby, Lua, Bash, Go
- Docker, AWS ECS & AWS Fargate, AWS Lambda, AWS Step Functions
- AWS EC2, S3, SQS, Kinesis, DynamoDB, Simple Workflow (SWF), Cloud Development Kit (CDK), Cloudformation
- Git, Maven, Gradle, CI/CD (Bitbucket Pipelines), Jira, Confluence, Jenkins, Teamcity, Blazemeter, Taurus, jMeter, Sonar
- MongoDB, Cassandra, Solr, Elasticsearch, MSSQL
- vert.x (RxJava2), Spring Boot, JSON-API, JSON Schema,
- Microservices, REST, asynchronous, reactive/multi-reactor, HAL, HATEOAS, TDD, CI/Continuous Delivery, Gherkin/Cucumber.
- CDNs, Anycast networks (AWS Global Accelerator), Cloudfront, API Gateway
Full-stack developer attached to the Customer Interactions Team at EE Ltd. (telecomms) at the Darlington office supporting the development of three core products that serve thousands of internal CSAs and 28M customers.
Hands-on in all aspects of delivery: business engagement, cost estimation, project tracking, high-level design, test driven development, integration testing and support. Strong use of Agile and SCRUM with pair-programming as needed.
Technologies & Patterns:
- HTML, CSS, jQuery, Bootstrap, Underscore, Less, JSON-RPC, Websockets.
- LAMP stack with Symfony 2, Doctrine, Gearman
- MySQL, Oracle 9, Memcache
- Apache CXF on Tomcat
- Java/Spring MVC with Hibernate stacks
- SOA approach with SOAP/XML and RESTful enterprise bus.
- Git, SVN, Rational ClearCase, Maven, Ant, Vagrant, Docker & Jenkins
- TDD with xUnit libraries, Selenium testing, code coverage analysis, and automated coding standards enforcement.
- Oct 2011 - Nov 2014
Hands-on technical lead and full-stack developer. Brought core development in-house and introduced agile processes. Added core practices: source control, unit testing, dependency management along with QA & release management processes. Restructured the existing web application to use an MVC framework, a REST-like API interface with OAuth2 and Swagger documentation. Integrated with the Facebook Graph, Twitter REST and Twitter Streaming APIs. Built multi-platform mobile apps with PhoneGap. Lead the deployment of high-density Wi-Fi in football stadiums and sports venues delivering instant replay video-on-demand and fan-services.
- 2005-2011
As co-investigator and Research Associate for the £1.25M SynergyNet project, designed and developed the hardware and software for collaborative multi-touch tabletops (covered by BBC, Reuters). Had three roles in the project: Technical lead and senior developer: responsible for the full software development life-cycle; Technical Project Manager: team of RAs and research students; Supervisor: PhD and MSc students in Software Engineering, HCI and Technology Enhanced Learning. Also, as an RA and Teaching Fellow within the TEL group, delivered a wide variety of projects.
- 2001-2005
BlueSpace produced enterprise messaging products for security and compliance in the financial, defence and pharmaceutical industries. Involved in every aspect of the business: developed the core product, attracted investment, developed and filed for intellectual property (US and EU patents), grew the technical team, developed product, supported sales and professional services.
- 1993-2003: Ph.D, Dept. Computer Science, University of Durham
- 1996-1999: B.Sc. (Hons) Software Engineering (2:1), University of Durham
- 2007-2008: Postgraduate Certificate Higher Education, University of Durham
- Fellow of the Higher Education Academy, FHEA
- 1994-1996: A-Level Computing (A), Mathematics (B), Physics (A), General Studies (A), Blackburn College, Blackburn
- 1994-1995: AS-Level Electornics (A) Blackburn College, Blackburn
- 1989-1994: GCSE A* (2), A (6), B (1), C (1) St. Wilfrids, Blackburn
- Author of 5 journal papers and 12 conference papers.
- Successfully co-supervised 4 Ph.D and 2 M.Sc. students.
- Patent Inventor: Enforcing compliance policies in a messaging system (US 8073911 B2, granted).