I'm a Software Engineer in Nottingham.

Enthusiastic about engineering culture, Product Thinking and building high-quality services that make a difference. Rebellious artist, climber, skateboarder and urbanist.

Apps

Url:jam - URL Shortener #

🚀 View online →

💻Repo

URL Shortener

Building a URl Shotener is a great learning exercise in how to architect such an app and saw me working with the nuances of validating and correcting URL inputs, the URL API, zod library and Next14's new Server Components.

It was a fun little project to do some high-contrast, bold styling in the UI too just using Tailwind, following a design I did in Figma.

Built with Next14 (TypeScript, Server Components), Prisma ORM, MongoDB, Zod validations, and Tailwind for styling.

JS / Typescript Calculator #

🚀 View online on StackBlitz →

💻Repo

As a break from the familiarity and hand-holding of a framework, I get reaquainted with JS fundamentals, creating my own pattern and storing state without a convention.

This was a fun revision exercise; back to JS fundamentals of DOM and data manipulation, storing state, and thinking methodically about each step in using a calculator and the unexpected operations we might do!

It was quite eye opening how important, without a framework, it is to name things well and maintain separation of behaviour even for my future self to understand it easily.

It was also a chance to do some retro styling! A fun, short project.

JS Calculator

iTunes Music Artwork searcher #

🚀 View online →

💻Repo

Album posters

I was playing recently with the album and artist info available via the Apple iTunes database using their API, so thought it would be a fun idea to turn it into an app.

I started with some Figma wireframes and a spec I'd set for myself such as the entity type and sizes I wanted to make available.

Built with React and Vite with Chakra UI components.

Resource tracker #

🚀 View online →

💻 Repo →

Asset tracker

This was a fun coding exercise to add hardware items to a list with some business rules I set myself, such as implementing unique IDs per asset, and an undo function.

The state of the list also persists between refresh using local storage.

.