WILL
PAGE
Full Stack Developer

Professionally the languages I've used most are Scala, Java, Python and Typescript

Technologies I've worked with include AWS, SQL and Elasticsearch, to name a few.

5 years experience total.

I'm also an avid hobbyist programmer and always eager to try new things, scroll down and you'll find some of my projects!

/ PROJECTS
Music Platform (Work)

Worked on a UK music platform for 3 years. Was the technical lead on the project for 2 years.

The music platform used by over 150,000 artists. Artists can upload their music to be processed and stored. This music can be accessed via an internal website which lets internal users browse the music, assign it to different channels, and log notes against them.

Project consisted of multiple sites and a backend, and involved technologies such as Scala, Typescript, React, MySQL, Opensearch, AWS.

Eletronic Lab Notebook (Work)

Worked at IDBS on the Lab E-Workbook for 1 year. Helped to deliver a transition to a SaaS model, moving from a Java-based desktop application to a more modern web application.

Primarily worked with Java, Javascript, PolymerJS and Oracle.

Euphoria Draft

Fantasy team drafter for League of Legends, using tournament match data to calculate statistics for professional players and assign scores.

Developed with Python and Django

Graphics Experiments

A collection of different web toys I've written using a variety of tools. The picture is of an interactive planet generator and editor.

Developed with various tools including Javascript, GLSL, WebGL and three.js.

Board Game

Digital version of the "Caravan" board game. Implements the board game ruleset along with multiplayer and three difficulties of AI.

Developed with Typescript, React, Express and Redis.

Game API Library

Reversed engineered Ubisoft's statistics API for the game Rainbow Six Siege. Turned it into a reusable python library r6sapi, which ended up getting moderate interest and over 100 stars on GitHub. Also used this to power a Discord bot which served over 30,000 discord guilds.

Developed with Python

Discord Bot

Used a combination of Web scraping + official steam APIs to create a Discord bot which could fetch information about Steam users, game prices, and notify users when certain games go on sale. Was in over 50,000 discord guilds, had over 100,000 unique users and was translated into 11 languages.

Developed with Python and Redis

/ Experience
Languages:
Technologies:
Scala 3 years experience professionally developing a web server running scala.
Java Worked on several java projects professionally, from back-end message processors to web servers.
Python Proficient in python, worked extensively with it in my own time, and have used it for tooling professionally.
Typescript Developed dozens of websites with Typescript both in my own time and professionally. Confident with advanced type features.
JS/CSS/HTML Worked on dozens of websites, highly confident with all three of these.
Rust Used rust lightly in my own time, using it to develop a couple of toy programming languages from scratch.
AWS Used AWS extensively in my work, maintaining several servers with complex integrations. Worked with EC2, S3, ALB, Cloudformation, Opensearch, RDS, SQS, SNS, Lambda, Codepipeline, IAM.
MySQL Worked with mysql significantly at work, including some work to optimize some SQL statistics queries.
Opensearch Created an Opensearch integration at work to power advanced search functionality, including vector search.
Oracle Worked with an Oracle database professionally for a year, including some work tracking down a connection leak.
Redis Used redis in a couple of hobby projects as a short term cache database, including for a high frequency message application.
React Extensive experience with react both professionally and at home. Developed over a dozen websites with it.
Apache Camel Contributed to a message processing server written using Apache Camel at work.
Akka Tech lead on a Scala web server which used Akka, led a migration away from it.
Tapir Tech lead on a Scala web server where I led a project to move from Akka to Tapir, learned a lot about the internals of Tapir.
http4s Used http4s to power Tapir on a Scala web server at work.
cats-effect Used cats-effect as the concurrency framework on a Scala web server at work. Learned a bit about its internals to optimize performance on the web server.
Django Created a couple of websites in my own time using Django (including this one!).
Express Used express on dozens of projects both professionally and at home.
Svelte Used svelte on a few projects at home.
Docker Used Docker to create images for CICD jobs (Jenkins and Codepipeline). Also used it to run infrastructure locally (e.g. opensearch, redis).
Terraform Used terraform to create a microservices based slack clone.
Jenkins Worked on several projects professionally which used Jenkins as their CICD, and did work maintaining a jenkins instance including upgrading the agents and upgrading the jenkins version.
AWS Codepipeline Investigated and scoped work to move a project from Jenkins to AWS Codepipeline
/ Work
👨‍💻 Softwire
Now
Senior Developer II
February 2024
Promoted to Senior Developer II
October 2022
Promoted to Senior Developer
October 2021
Promoted to Developer
September 2020
Started as New Starter Developer
👨‍🎓 University of Bath
June 2020
Graduated with 1st in MMath
September 2019
Started masters in mathematics
👨‍💻 Softwire
September 2019
Finished as Intern Developer
July 2019
Started as Intern Developer
👨‍🎓 University of Bath
June 2019
Finished bachelors in mathematics
September 2018
Started 3rd year of bachelors in mathematics
👨‍💻 IDBS
August 2018
Finished as Placement Developer
July 2017
Started as Placement Developer
👨‍🎓 University of Bath
June 2017
Finished 2nd year of bachelors in mathematics
September 2015
Started bachelors in mathematics