What I am all about.
I am an experienced Java software engineer and who has worked directly with clients to successfully lead a small team of java engineers to complete 2 legacy system rewrites in the past 2 years. My primary focus has been to deliver scaleable, maintainable java software, designed with the cloud in mind.
In the future I look to bring the experience and lessons learned to bigger, more complex problem domains, and the technical challenges and solutions associated with them.
Java 8, Spring Boot 1.x/2, Spring Security, OAuth 2, JUnit 4/5, HTML, CSS, SCSS, JS
Terraform, CI/CD (AWS CodePipeline), Docker
Postgres, DynamoDB, MySQL, REST
Agile, Scrum, Maven, Micro-services, Git, IoT, BDD
Senior Java Engineer
Advancing quickly from the graduate position to the present senior role, my time at elder has seen 2 large scale projects delivered through the whole systems development lifecycle.
- Formed a council of senior developers to improve developer happiness, and help improve standards across the business.
- Introduced SonarQube (Static analysis) to help improve code quality and to visualise test coverage.
- Introduce release management via Jira
- Help drive the uptake of Behaviour driven development within Elder Studios
- Drive new development toward micro-service architecture
- Train developers in infrastructure-as-code (Terraform) and repeatable deployments
Elder studios is a software development house the provides on shore software development to companies that either don’t have the resources or expertise to handle the projects they have in mind, and as such the work varies. All work is under NDA, and is anonymised by project below.
Client 3: Telecoms Start up
- Defined microservice boundaries by principle of bounded context (from domain driven design)
- Introduced service discovery (Netflix Eureka) as a means of simplifying service to service communication
- Introduced the Gateway pattern, implemented with Netflix Zuul, to simplify client development
- Implemented cloud tracing (Spring cloud sleuth + Zipkin) to identify problem/slow service calls
- Used OAuth2 (Spring Security Authorisation server) to unify stateless authentication across all services
- Built REST api for mobile/admin clients to consume
- Designed and built simple React,js admin CRM to manage customers/accounts
- Created docker-compose to boot a replica stack locally for simply end-to-end testing
- Built and Optimised the landing page using HTML, CSS3 to the specified design
Client 2: International Vehicle Tracking Company
- Implemented a reverse geocoding service that has reduced error rate by 30%, reducing customer complaints.
- Broke out monolithic architecture into 9 key services, reducing the deployment time and allowing for independent scaling
- Designed and implemented the used of dynamoDB for the storage of vehicle records, reducing the 3 32-core MySQL databases used in legacy to one centrally scalable set of dynamoDB tables, and a singular m4.xlarge RDS instance
- Made reporting asynchronous allowing the clients larger customers to run reports across their entire fleet, which wasn’t possible on legacy
- Reduce a fleet of 39 servers responsible for communicating with vehicle trackers in legacy down to 4 t3.medium instances
- Delivered an automated migration tool that allow the client to choose which accounts they wanted to port, and move their data and devices en masse to the new system; Allowing them to migrate and pilot at their own pace
- Worked with an external AWS support partner to ensure AWS Well architected framework is being followed
Client 1: National Smart Meter Company
- Created a standard interface between application code and a number of different IoT devices on both UDP and TCP
- Designed and implemented refreshed user interfaces to improve user experience
- Worked with low level data input such as BCD, Binary, Hex to interpret meter readings
- Optimise mysql queries and indexes to improve performance
- Work directly with the client to ensure that priority features were completed first
- Improved meter reading batch speed from an all night process to 1-2 hours depending on reading type (Monthly, weekly, daily)
GCHQ Cyber Insiders
- Selected for the first ever GCHQ Cyber insiders course, despite not coming from one of GCHQ’s target universities
- Attended the 10 week workshop learning cyber security from some of the worlds best security experts
- Deep dives into Physical, Network, electronic, IoT, Operating system, and web securities
- Purchase, install, and maintain hardware and software for developers
- Implemented cheque scanning software to speed up processing of clients claims, saving 2 data entry clerks 3 days a week, and reducing errors substantially
- Implemented a cheque printer and printing integration removing the dispatch bottle neck of 200-300 cheques a day, to 5000 cheques a day, allowing the sales team to scale up
- Switched Apache to Nginx to increase throughout on the CRM bringing the response times from an average of 2.3 seconds to an average of less than 0.4 seconds, enabling code to be migrated to a smaller server saving hundreds of pounds a month
- Redesigned and oversaw the implementation of a new frontend portal increasing conversions, and saving printing and postage costs
BSc Computing, 1st class
University of Huddersfield
Audenshaw School For Boys
Audenshaw School For Boys
I regularly attend meet-ups in Manchester and Leeds mostly on AWS, Java user groups, and occasionally agile as its important to challenge your current way of thinking, and be mindful of other options.
AI learnt to snowboard in 2015, and haven’t stopped since. It's a way of getting out into the mountains, sharing good times with friends. Snowboarding to me is the perfect example of where mistakes are crucial to progression, you can be shown or told, but until you try, fail and pick yourself up again, you’ll never know if you can.
I own a Subaru WRX STi that I’ve been slowly building to be a competent track and fast road car. I’ve been part of display stands as part of Subaru Scene UK at national event such as Japfest at Silverstone.
I’m an admin of a discord server that started out as a bunch of university friends that played PC games together, we’ve picked up workmates and strangers along the way, games are transient but fundamentally we’re all united in our love gaming. I tend to play either RPG’s or squad based shooters.