#who I am

I am a self-taught web developer from the UK, currently based in Birmingham. I love writing code and building websites that are robust, functional and look great. Check out my work to see what I mean!

I'm currently available for projects big and small. Contact me to discuss.

#what I can do

I'm always learning and I love a challenge. I'm currently proficient with the following technologies, and I'm constantly adding more to the list.

I'm a natural problem solver with excellent soft skills, and I'm also fluent in Mandarin!

#portfolio of work

Below is a brief list of some of the projects I have completed. They are a mixture of paid projects, personal projects, and learning exercises.

Each one includes a link to view the live site and, if applicable, to the relevant GitHub repository where you can check out the code.

I also sometimes mess around in CodePen making UI components.

Screenshot of Mind Garden app

Mind Garden

  • Bootstrap
  • PHP
  • MySQL
  • JavaScript

A diary/notes website with a PHP and MySQL backend that provides a login/signup system and a database of users and their saved content. Old entries can be changed and deleted, and any changes are automatically saved as the user types. Session variables and optional cookies are used to keep the user logged in.

The front end was built with a mixture of Bootstrap and custom CSS.

Note: This app is currently unavailable.

Screenshot of Bubble It app


  • Vue
  • CSS
  • JavaScript
  • Rough.js

I'm a huge fan of bubble tea and love writing code, so I combined the two. Bubble-it is a widget for customising bubble tea orders.

Users can select the drink size, topping, sweetness etc and the image updates reactively to display their selected configuration.

The app was made with Vue, and SVGs were used to achieve the hand-sketched visual style.

Screenshot of Lift Sim app

Lift Sim

  • HTML
  • JavaScript
  • SASS

A simulation of a lift (elevator) servicing a building of impatient passengers. The user can add passengers to different floors and watch as the lift follows an optimised path to deliver them all to their destinations.

This was built as an exercise in object-oriented vanilla JS. It makes use of the HMTL5 Drag & Drop API, and uses promises to chain operations. Currently does not work on touchscreen devices.

Screenshot of Solar System Explorer app

Solar System Explorer

  • Vue
  • SASS
  • Express
  • Node
  • MongoDB

Explore the solar system! This is a full-stack app intended to help users learn about the various planets and moons in our little corner of the galaxy.

Vue and SASS were used for the frontend, while the backend API was made with Node/Express & MongoDB and hosted on Heroku.

Note: This app is a work in progress.

Screenshot of What's the Weather app

What's the Weather?

  • HTML
  • CSS
  • JavaScript
  • API

An attractive weather checking app that uses the Fetch API to grab and display the current weather from OpenWeatherMap. The app also attempts to show a background image that depicts the user's searched location with weather conditions matching the current weather there.

Made using Javascript and custom CSS. The responsive layout was created with CSS Grid.

Screenshot of Hanzi Quest app

Hanzi Quest

  • HTML
  • CSS
  • JavaScript
  • Chart.js

A tool for estimating how many Chinese characters the user knows using a custom implementation of the Elo skill rating algorithm. Built with custom CSS and vanilla Javascript. Chart.js was used for creating the results chart which is displayed after the test is complete.

If you don't know Chinese but you'd like to check out how the test results are displayed, just hit the "yes" button a few times and then alternate yes/no. This will approximately simulate the answer profile of a real test attempt.

Screenshot of Cinema Seat Picker app

Cinema Seat Picker

  • HTML
  • CSS
  • JavaScript

A cinema seat selection widget made using Javascript. Local storage is used to preserve the user's seat selection.

Screenshot of Insite Music website

Insite Music

  • HTML
  • CSS

A contact page I made for a London-based music PR startup. Built with custom HTML/CSS relying on Flexbox for the layout.

#contact me

Do you need a website? I'd love to help you out, regardless of the size of your project. Just fill in the form below to get the ball rolling.

Likewise, if you are a recruiter or company with a web developer vacancy and you think I'd be a good fit, please get in touch. I can provide you with a full CV via email.