Joseph Corcoran

Full stack software engineer.
Code. Create. Innovate.

I'm a developer and love to build innovative software solutions, that meet your business needs. My favourite work is creating simple solutions for complex problems, working in an agile environment; refining, improving code, and learning new technologies.

My favourite language is JavaScript/TypeScript, I have the most experience with it and love the flexibility that a multi-paradigm language provides. As per the JS ecosystem, I'm a big fan of React, Next.js, and NodeJS on the server. I love learning about new technologies and how they can provide real business solutions. As such I have been learning Rust when I get some spare time, and out of my own interest I've been playing around with Flutter too.

Currently I am a Cloud Engineer at Rapha, and work building AWS infrastructure for our backend services. I love cycling and love working for such a great brand in the industry.

I leverage modern AI tools to help me build better software faster. I don't know if AI will replace software engineers but I am always learning to use it to improve the software I deliver.

In my spare time you'll find me travelling with my wife, road cycling, mountain biking or playing my guitar.

Experience

Rapha

Cloud Engineer (Backend)

  • Integration with US based warehouse:
    • -A new US based warehouse provider was required to streamline the US order process.
    • -Integrated our order flow with their API, using API gateway, SQS and Lambda Functions deployed via Terraform and Serverless.
    • -Saved costs as orders were initially being manually sent by the admin team.
    • -Orders could then be processed round the clock helping the Warehouse Provider and customer experience.
    • -SQS Queues and Batch processing Lambda to process orders, catching any errors. As well as ensuring orders are not lost.
    • -Communication with the US provider was key to overcoming issues and ensuring the order flow was smooth.
    • -Setup of Graphana Dashboards and alerts, for observability and monitoring of the system.
    NodeJs
    Terraform
    NX
    AWS
    S3
    SQS
    EventBridge
    Serverless
    TypeScript
    Jest
    Graphana
    GitLab
  • Maintenance of older code and bugfixes:
    • -BAU bug fixing and maintenance of code. Updated repos to use newer technologies such as ESBuild to replace Webpack when bundling Typescript Lambdas (faster builds/smaller bundles).
    • -Updating and adding tests, to ensure code quality and stability.
    NodeJs
    Terraform
    NX
    AWS
    S3
    SQS
    EventBridge
    Serverless
    TypeScript
    Jest
    Graphana
    GitLab

Groundsure - from July 2022 to September 2025

Full stack software engineer

  • New admin system:
    • -Replacing legacy admin system with new React application, allowing for better UI/UX for groundsure staff, more functionality, with an easier to maintain and update codebase.
    • -Order management for customer services much quicker and easier, faster response times leading to better service generating more sales through retention of customers.
    • -We incorporated developer tools to monitor errors in our report generation allowing for better observability of our systems, using NewRelic and AWS queues as part of this.
    • -Updated our orders API and pricing model, whilst still supporting some legacy XML orders for customers who have not yet migrated to the new system.
    React
    StyledComponents
    NodeJs
    Express
    MongoDB
    AWS
    Serverless
    NewRelic
    TypeScript
  • Replacing x2 legacy ordering systems:
    • -The business had a need to replace the outdated ordering systems which were written in Java, C# and used SQL Server. The legacy codebase had become unmaintainable having been written by a 3rd party and become outdated. We had to reverse engineer aspects to understand some business logic needed.
    • -Re-built the ordering platforms using React, Next.js, Express, MongoDB deployed to AWS. Which created a much more modern, user friendly UX/UI and improved the overall performance of the system.
    • -Our reports require drawing on maps, so we built our own mapping library using MapLibre GL and built out our own custom drawing tools for this (such as an auto-fill drawing tool).
    • -We also incorporated hundreds of layers for our customers to apply to the map and analyse, such has Flood risks, Radon levels, and many more.
    React
    Next.js
    Tailwind Css
    Express
    MongoDB
    AWS
    MapLibreGl
    Zustand
    TypeScript
  • New interactive online product - Groundsure Explorer:
    • -Building new interactive map, displaying over 50 historic map layers from our in-house records and tile servers. Previously we only provided actual pdfs of the historic maps.
    • -Customers can now view their historic maps online to interrogate their sites for potential historic risks.
    • -Added the ability to add annotations (Points, Polygons and Labels) to the map which have their own notes and tags.
    • -Hundreds of data layers can be applied to the map to allow for location analysis, provided again by our own tile servers.
    • -Built back end routes to support this functionality, using Express and MongoDB, so users can save their changes.
    React
    Next.js
    Express
    Mongo
    AWS
    MapLibreGl
    Tailwind Css
    SST
    TypeScript
    Turf.js
  • New report for Australian market:
    • -Building a new report which we launched in Australia, highlighting risks regarding property and land purchases.
    • -Puppeteer was used on the server for the report generation on the server, hosted on AWS backend, SQS for queueing and processing, and S3 for storage.
    React
    Next.js
    Puppeteer
    PostgresSql
    Express
    Mongo
    AWS
    MapLibreGl
    TypeScript
  • Ordnance Survey Mapping Product:
    • -Bringing a specialist product we sold in house. External contractor was producing these for us but at a high cost and limited control.
    • -Helped adjust and integrate with the Python API built by the GIS team to provide to scale mapping.
    • -Setup the deployment to AWS lambda and SQS queue architecture to produce maps saved to S3 and send messages to process the report.
    • -Created a to scale report template which used the images produced to pdf build reports to the design spec and deliver to customers.
    • -Setup a report preview with React to provide a faster and better developer experience.
    React
    Python
    Tailwind Css
    NodeJs
    AWS
    SQS
    S3
    Serverless
    NewRelic
    TypeScript
  • Maintaining our BAU report generation system:
    • -Updating our Ruby based report generation system which is hosted on AWS using docker containers.
    • -Ruby PrawnPdf used for PDF generation, with SQS used heavily for queueing and processing.
    • -I have taken the opportunity to work on this a number of times to broaden my coding knowledge and experience as well as supporting the business.
    Ruby
    PrawnPdf
    Docker
    PostgresSql
    AWS

IT Career Switch - from Aug 2021 to Jun 2022

Coding Traineeship – Full Stack Software Developer

  • Course:
    • -During the Traineeship I had to demonstrate a very competent level of the following: HTML5, CSS3, JavaScript, PHP, SQL, Python, Java, C#, GitHub, and more.
    • -Passed the Microsoft MTA: Introduction to Programming Using HTML and CSS exam.
    • -We incorporated developer tools to monitor errors in our report generation allowing for better observability of our systems, using NewRelic and AWS queues as part of this.
    • -Updated our orders API and pricing model, whilst still supporting some legacy XML orders for customers who have not yet migrated to the new system.
    HTML
    CSS
    JavaScript
    PHP
    SQL
    Python
    Java
    C#
  • Final project 1 - Gazetteer map application:
    • -Creating a “Gazetteer” web app using LAMP stack, using LeafletJs which allowed users to click on countries to find information such as population, currency etc. using API calls to provide this data from a range of sources.
    • -Provided multiple other sources of information such as country capital weather, top 5 news articles, and more.
    • -I'm a big fan of Formula 1 so I also used the a Formula 1 API (Ergast) to highlight all the races on for the current year and provide other information about these.
    LeafletJs
    JavaScript
    Bootstrap
    FTP
    PHP
    CSS
    jQuery
  • Final project 2 - Company Directory:
    • -A user requirements document was needed to be prepared which was checked for sign off, before developing a “mobile first” full stack REST application.
    • -Frontend built to add, edit, delete, search and filter company personnel.
    • -Backend built to support the above CRUD operations using PHP, MySQL, and a REST API.
    • -Rules implemented to ensure delete operations were safe (eg. Employee cannot be deleted if belong to department).
    • -Validations implemented on the frontend and backend to ensure data is entered correctly and stored securely.
    JavaScript
    HTML
    CSS
    SQL
    PHP
    LAMP
    Bootstrap Css
    jQuery
Other projects

Studio Sunlight

Software Engineer

  • Studio Sunlight Website - studiosunlight.co.uk:
    • -Much like this website. Setup github workflow for continuous deployment of website to cheap Hostinger Shared hosting.
    • -Custom domain name and SSL certificate provided by Hostinger.
    • -NextJs used for frontend, with Typescript and Tailwind CSS for styling - compiled into a static website.
    • -Very minimal reliance on external Libraries - all custom code for Modals, Image Carousel, and form validation etc. to reduce maintenance burden, provide more control and flexibility.
    • -PHP mailer used to send emails from the website contact form to custom email address.
    • -Built a Rust Image processing CLI tool to convert .png images to .AVIF format for faster loading on the website (10x times smaller but still great quality).
    • -I used AI tools to help me with SEO optimisation, incorporating a sitemap.xml, robots.txt file and meta tags for each page.
    NextJs
    Hostinger
    TypeScript
    Jest
    GitHub Actions
    PHP
    Tailwind CSS
    AVIF
    AI Tools
    SEO Optimisation

Other