Experience
This is intended as a sort of 'living resume', which I will (hopefully!) expand on and keep up to date. I may also add my thoughts and reasoning at certain points of my career, which I otherwise wouldn't do if I was trying to cram this into a 1 or 2 page resume.
Professional Experience
Kraken Technologies
Currently work on the residential integrations team creating services that enable the company to control and communicate with devices. Have taken part in multiple work streams, and strategically alongside other teams.
Core Development Responsibilities
Responsibilities have included:
- Developing new integrations and maintaining older ones
- Work on core services used by integrations and other teams
- Handling support queries, misc. bug fixes
- Lead on incidents
Contributions
Key contributions include:
- Implementing simulated devices and load tests
- Discovery and implementation of integrating with Tesla
- Introducing standardisation for device metrics and alarms for integrations
- Threat modelling sessions for new areas of the product
Additional Responsibilities
- Reviewing solutions for new applicants' technical tests
- Contributing to cross-team knowledge sharing meetings
- Presenting and discussing new technologies
- 'Security champion' for the chapter
- Onboarding new developers
Technical Stack
- Programming Languages: Typescript, Python
- Databases: DynamoDB, RDS (Aurora)
- Testing: Jest, PyUnit
- Build & Infrastructure: Cloudformation, CDK, CodePipeline, Terraform, Docker
- Observability: Logs Insights, Grafana, Databricks (Spark, SQL)
- Cloud Provider & Services: AWS, Lambda, ECS
Heywood Pension Technologies
Developed and maintained multiple products centered around pensions administration software. Typically worked on the full stack of all applications. As well as DevOps as the culture was introduced to the company.
Core Development Responsibilities
Responsibilities included developing and testing new features and enhancements to the products, contributing to regular scrum ceremonies and significant contributions to reducing technical debt.
Additional Responsibilities
Developer representative for security - Hosted a cross-team security forum for knowledge sharing and improvements, coordinated emergency patches when vulnerabilities were found.
Other responsibilities included:
- Mentoring new team members
- Setting technical challenges and interviews
- Cross-team knowledge sharing
- Presenting new product features to clients and the rest of the company
Products Worked on
Pensions Dashboard Project
- Programming Languages: Typescript, Go, Java
- Database: DynamoDB
- Testing: Jest, JUnit, Terratest
- Frameworks: Spring Boot
- Monitoring & Data: S3, Glue, Athena
- Build & Infra: Terraform & Terragrunt, CodePipeline, Codecommit
Part of the Money and Pensions Service's Pensions Dashboard Programme to connect users with lost pensions via integrating with multiple applications, primarily utilising AWS Services.
This was the company's first cloud-based project, so as well as the application, as part of a small team we established from scratch:
- The platform
- Testing framework
- Accounts and auth
- Pipelines/CICD
- Data pipelines
- Security testing and monitoring with a shift left approach.
Since then, other teams have build their products using this platform.
This is one of the projects I am most proud of in my career and I'm grateful to have been given opportunity to be a part of it.
Altair
- Programming Languages: Java, Javascript
- Frameworks: Spring, Velocity (Template engine)
- Build & Infrastructure: Gradle, Jenkins, Docker, Kubernetes, Terraform, Chef
- Databases: SQL (Oracle)
- Testing: JUnit, QUnit, Cucumber, Selenium
Pensions Administration software primarily used by local government. Very large codebase with a wide array of technologies. Layered Monolith architecture.
i-Connect
- Programming Languages: Groovy, Javascript
- Testing: Spock, Jest
- Build: Gradle
- Framework: Grails
Pensions Administration software primarily used by employers. Layered Services architecture.
Trust Payments
Developed and maintained PCI compliant software including a web-based payments administration system and a payments processing gateway. Worked in an agile, XP environment with a heavy focus on security.
Core Development Responsibilities
- Developing and testing new features and enhancements to the products
- Maintaining in-house tools for testing and monitoring
- Taking part in planning, refinement, retrospectives
- Taking part in regular security training and reviews
Contributions
- Migrated page templating from Cheetah to Jinja
- Integrated with Paysafe payments
Technical Stack
- Programming Languages: Python, Javascript, Bash
- Templating: Cheetah, Jinja
- Databases: MySQL
- Testing: PyUnit
Education
BSc Computer Science (1st) Bangor University
Final Year Project - Evolving Braitenberg Vehicles
Simulated Braitenberg Vehicles evolving in a predator/prey scenario. Modelled in the Unity engine, with the behaviours and algorithms written in C#.
Module Breakdown
Third Year
- Computer and Network Security
- Data Networks and Systems
- Computer Graphics 3: Rendering
- Computer Vision
- Pattern Recognition and Neural Networks
- Individual Project (See above)
- Business Process Reengineering
Second Year
- Computer Networks
- Natural Language Processing
- Algorithm Design with MATLAB
- AI for Games
- Data Structures and Algorithms
- Operating Systems and Concurrency
- Computer Graphics 2: Algorithms
- Database Management Systems
- Advanced Java Programming
- Software Hut (Group project)
First Year
- Introduction to Data Communications
- Introduction to Databases
- Java Programming 1
- Java Programming 2
- Introduction to Agent Oriented Systems
- Web Technologies
- Computer Systems 1
- Systems Software and Architecture
- Computer Graphics 1: Basics
- Professional Perspectives
- Mathematics for Software
- Mathematics for Computing
Personal Projects
ZookLabs.com
Website developed with a friend to allow users to upload, download, and view virtual creatures known as 'Zooks'. The functionality was once hosted by the BBC as part of the gameshow BAMZOOKi, but has long been decommissioned.
- Programming Languages: Scala, Typescript
- Framework: React
- Database: PostgreSQL
- Testing: MUnit, Jest
- Build & Infrastructure: Heroku, Deno, Docker, GCP