I am a Full Stack Software Engineer based in Cardiff, Wales with a passion for building secure, scalable, and accessible applications. Committed to fostering a collaborative and inclusive environment, providing mentorship support for fellow engineers.
Graduated in 2022 with a First Class Honours degree in Computer Science from the University of South Wales. Throughout my studies, I delved into a variety of subjects, including artificial intelligence, algorithms, and secure programming. My final year dissertation focused on researching, designing, and implementing a secure chat server which expanded my knowledge of cryptography, secure programming techniques, and cyber security. My dissertation culminated in a research paper, a poster, and the final solution written in C#.
Currently, I'm working at BJSS as a Software Engineer. In this role, I leverage my programming skills and problem-solving abilities to design, develop, and deliver solutions and systems. Doing so through technical excellence, best practices, and test-driven development to meet client needs and to exceed expectations.
Designed, refined, and developed several key systems and infrastructures working alongside both BJSS and client teams to bring the clients vision to life. Operated within a multi-capability team, providing support and guidance to junior engineers, and doing low-level designs for mission-critical systems. Working in all capabilities from creating frontend applications, backend services and databases - utilising TDD, automation and unit testing to ensure code confidence and regression resilience.
Starting with a 4-week intensive training course led by senior BJSS engineers giving comprehensive training on many technologies, consultancy skills, presentation skills, and agile principles. After the 4 week course, being placed onto a major public sector client developing React internal and Ruby on Rails external frontend applications, and Java APIs backend microservices. Moving onto another major public sector client developing a multitude of C# backend services, frontend internal and external Next.js applications including a React design system, and regularly providing sprint review demos of the team progress and becoming a key client contact for several key project areas.
C# Secure chat server, using asynchronous (RSA) and synchronous (AES) cryptographic techniques and other secure programming practices to create a secure means of communication between 2 nodes through a server machine. Additionally, admin users were able to log in and interaction on the server machine console, to perform protected actions such as admin account management, viewing logs, and server restart - these credentials were stored on a MongoDB cloud instance.
A project that allowed exploration of both hardware and software, using an Ender 3 Pro 3D printer and TinkerCAD I created a variety of designs for macropods that revolved around using the Raspberry Pi Pico microprocessor to decode mechanical key switches into programmable code. Using AdaFruit CircuitPython I built code that would take GPIO inputs and process them into simulated keyboard inputs, using this to perform shortcuts, control media, open applications, and control of windows.
A template to allow for a quick start for a full stack project that requires a Next.js TypeScript frontend and a C# .Net backend using Auth0 as the authorisation provider. This quick-start solution is established with authenticated APIs to the backend using Next.js middleware and server calls, as well as Eslint and Prettier rules to ensure code quality and consistent code styling across projects. CICD pipelines configured to ensure that the project is buildable, and has all tests (units and automation) passing both on PRs and on the main branch; once all tests pass on the main branch, there is a pipeline that handles automatic Azure deployment using ACR and ACA.
An adaptation of an early approach for a visualised sorter made using React. First iteration was made on this project as an introductory learning into React and JavaScript, with this new approach I have rewritten the code into TypeScript and Tailwind using best coding practices, striving for better abstractions and readability. Using signalling to allow the cancellation of the sorting animations mid-flow, was a major bug with the first iteration that was managed in the new one. Current support array sorting methods include Merge, Quick, Bubble, Heap, Insertion, and Selection sort, each one uses an array of render bars at different heights to sort with animations to show each step.
An opinionated react based design system, using React, Tailwind, Class Variance Authority and Storybook. Design system set out to be adopted across personal projects, ideally to be an iterative approach where the design system is capable of changing to better fit future needs. Using Github Actions for CICD pipelines set to update the Storybook deployment when a PR is merged onto main, and package deployment whenever a new release is made.
Book Repo, is an on going full stack project that aims to allow the management, organisation, and visualisation of a users book collection. With ability to track goals and user defined targets for book consumption, and to incorporate AI tools to recommend books based on a users existing library. This project is built utilising OpenLibrary public APIs, Azure for deployment and data storage, and Auth0 as an authorisation integration.