👋 Hi, my name is

William Page

Software Engineer

I'm a software engineer specializing in building full-stack web applications with React/NextJS frontend and Python Django backend. My goal is to build large-scale applications used by millions of people.

01. About Me

I am a software engineer from the UK with a passion for building web applications and learning about the latest advancements in the software engineering and tech industry.

I recently graduated with a first-class honours in Computer Science from the Goldsmiths, University of London. During my degree I also worked as a smart contract engineer, writing Rust code, for blockchain projects in the Solana ecosystem. My focus now has shifted towards web development, in particular ReactJS/NextJS for frontend and Python Django for the backend.

Previously, I have worked as a freelance developer, however I am now actively looking for a new full-time role based in the UK.

Here are some of the technologies I have been working with recently:

  • JavaScript (ES6+)
  • TypeScript
  • React JS
  • Next JS
  • Tailwind
  • Python
  • Django
  • SQL

02. Portfolio

Featured Project

Print on Demand

Print on demand platform built for a print shop/clothing manufacturer with built in product customizer. Users can upload images and add text to create clothing designs. They can save their designs to use again and apply to all products found in the store. Designs are transformed into high-resolution images, ready for printing onto apparel. Built using a stack of React JS, Next JS, Tailwind, Django, and Docker.

Typescript

React JS

Next JS

Tailwind

Django

Docker

Featured Project

Parent-Teacher Communication

Web app that enables teachers to manage their classroom and communicate with parents. Teachers can create class stories, announcements and events to keep parents informed about what is happening inside the classroom. The app contains communication tools such as real-time messaging built using WebSockets, and video calls built using the WebRTC protocol.

JavaScript (ES6+)

React JS

Tailwind

Django

Docker

Featured Project

Jewelry E-commerce Store

E-commerce website for jewelry store integrated with Stripe payment processor. The frontend uses NextJS Static Site Generation to ensure fast loading times. The site receives a perfect accessibility score on Google Lighthouse. The backend built with Django enables the store owner to manage product information with Django Admin.

Typescript

React JS

Next JS

Tailwind

Django

Docker

Featured Project

Crypto Portfolio

Cryptocurrency portfolio tracker mobile app built with React Native. Integrated with CoinGecko API to retrieve coin information and price data. Users can add coins to their portfolio and track the value of their portfolio and their profit/loss in real-time.

JavaScript (ES6+)

React Native

CSS

03. Contact

What's next?

Get in Touch

I'm always looking for new opportunities, my inbox is always open. For any enquiries feel free to send me an e-mail, find me on Twitter or LinkedIn!

Send Email

04. Blog

21/08/22

Optimizing React Apps with React.memo, useMemo and useCallback

When you're starting out as a new developer, you just want to get things to work without any bugs, however as your projects grow and become more complex you need to start thinking about optimizations to ensure a smooth experience for users...

Read Article

10/08/22

NextJS Introduction

Next JS is a React framework that provides the building blocks to create fast web applications using the React JS JavaScript library. The pre-requisites to building a Next.js application are knowledge of JavaScript and React JS. A beginner is advised to first build an application with JavaScript, then build on that knowledge by re-writing it as a React JS project, then finally a Next.js project...

Read Article

03/06/22

Django Part 3 - User authentication with dj-rest-auth and allauth

For this part of the tutorial, we will be using the dj-rest-auth and allauth packages to help us create API endpoints for account registration, login and email verification. There are various different ways to implement user authentication with Django, will be using token authentication...

Read Article

02/06/22

Django Part 2 - Creating a custom User model

We are going to create a custom user class that will be used when users register an account and login. It is much easier to do this before running the initial database migrations, we can then easily make adjustments to the model later...

Read Article

01/06/22

Django Part 1- Creating a new project

In this post I will be showing how you can create a new Django project. This tutorial assumes that you already have Python and pip installed. I am using a Windows machine, it uses the command py to run Python, however on Linux it will be different and most likely you will need to replace py with python3...

Read Article