Hello! I'm an senior web engineer, with 7+ years of professional experience. While I specialise in front-end development, I have worked across the whole stack.
My favourite tech-stack to work with includes React, Next.js, TypesScript and Node.js - although I'm always open to try new things. I'm passionate about building high-quality, performant and accessible applications, while keeping them stable with automated testing.
I've tinkered with computers since I was a child, which led me to study Computer Science at University of Birmingham where I graduated with a BSc (Hons) in 2017.
Want to get in touch? Feel free to send me an email, or fill out the form below.
Experience
Lounge / Senior Front-end Engineer
Oct 2022 - Present
ReactTypeScriptTailwindJestNest.jsTerraformGoLounge is a popular ecommerce website, serving customers globally. While working here, I have been part of a small team focused on rebuilding the website from the ground-up, with the goal of improving performance, extensibility and maintainability.
Responsibilities and Achievements
- Worked closely with UX/UI to build a design system from the ground-up using React, TypeScript and Tailwind. The system uses design tokens at its core, which are shared automatically across Figma and our Tailwind configuration.
- Migrated the codebase to a monorepo using turborepo to facilitate code reuse and simplify our dependency management.
- Configured the build and deployment process of an end-to-end testing environment, with tests written with Playwright.
- Produced a Terraform provider using Go to automate the creation of resources across multiple Shopify stores.
- Mentoring members of the team who were new to the React ecosystem.
- Development of Node.js backend services using Nest.js
- Applied performance optimisation techniques such as code-splitting, dependency optimisation and an overall more efficient system design, which has led to 100% of pages passing core web vitals from 100% failing.
Boomin / Senior Front-end Engineer
Jan 2020 - September 2022
ReactTypeScriptMaterial UINext.jsJest.NET CoreTerraformMicroservicesBoomin was a well-recognised property portal. As part of the early team in engineering, I helped build and scale the platform from a greenfield project to an established product. In January 2022 I was promoted from mid-level engineer to senior.
Responsibilities and Achievements
- Contributing to the initial micro-frontend architecture. This includes building systems to facilitate code-sharing between our front-end services, and improving our CI/CD pipelines speeds to increase developer productivity.
- Front-end development using React and Next.js.
- Development of back-end micro-services built on .NET Core.
- Mentoring members of the team, and assisting with challenges that arise.
- Applied TDD methodologies to enable an efficient development cycle and deliver robust features. As part of this, I led a technical session for the engineering team on how we can apply TDD on the front-end.
- Utilize Grafana and Sentry for observability and monitoring to keep services running reliably.
- Leading technical planning sessions to bring business requirements into development.
Hiredonline / Full-stack Developer
Sep 2017 - Dec 2019
ReactTypeScriptFirebaseJava (Spring)Hiredonline is a job board which allows recruiters to post to other major job boards through a single posting.
Responsibilities and Achievements
- Development of a front-end dashboard using React.
- Implementation of services provided by Firebase including authentication, firestore, and cloud functions.
- Processing payments and subscriptions through Stripe.
Serveline IT / Web Developer (Contract)
Sep 2014 - Sep 2016
HTMLCSSJavascriptWordpressWhile studying at university, I worked part-time as a web developer primarily creating websites for small-businesses using Wordpress. This role required communicating directly with clients to ensure that their business requirements were met.
Projects
Firebase Firestorm
TypeScriptFirebaseFirebase Firestorm is an ORM for firestore, developed in TypeScript. Firestorm allows users to abstract away from the database layer with ease by defining collections (and subcollections) as models, which can then be used to perform create, read, update, and delete (CRUD) operations. This helps to ensure type safety and encourages cleaner code.
View SourceFIQL Query Builder
TypeScriptGraph TheoryView SourceFeed Item Query Language (FIQL)is a syntax for filtering entries on a web feed or API. While working with an API that consumed FIQL, I struggled to a convenient way to construct the query, which led me to build a library to convert JSON into a valid FIQL query.
Bike Route Planner
JavascriptJavaSearch AlgorithmsGraph TheoryView DissertationFor my final year project at university, I created an app for cyclists to plan routes across the UK. While most routing software aims to find the shortest path between two destinations, cycle routes need to include other criteria such as safety.
The challenges I faced while working on this project include:
- Representing map data provided by OpenStreetMap (PBF Format) into a graph data structure.
- Creating a slippy map so the client can pan & zoom the map and plot routes.
- Implementing a search algorithm on a graph of 66,000,000+ nodes, and producing a result within a matter of seconds.
- Modifying the graph at runtime so users can add their own shortcuts, and roads to avoid.
Unfortunately keeping this live was expensive, requiring a server with atleast 24GB of RAM. However, source code can be made available upon request. Furthermore, you can read my disseration by clicking on the link below to read more on the theory on how this was implemented.
Contact
Want to connect? Leave a message below, and I'll get back to you soon!