Hi, I'm William Henderson.
I'm a Software Developer.

Photo of William Henderson

Welcome to my Portfolio!

Hi, I'm William Henderson, and I'm a Computer Science student and Software Developer. I've been programming for the best part of a decade using numerous languages, but my favourites are Python, TypeScript, and more recently, Rust. I've developed and maintained a wide variety of projects in a number of fields which, between them, have accumulated over 7000 downloads and remain in use every day across the world.

My Technologies

Having been programming for almost ten years, I've become very proficient with a number of languages and tools, and developed a solid understanding of even more.


  • Python (since 2013)
  • JavaScript (since 2014)
  • HTML/CSS (since 2014)
  • Unity3D and C# (since 2016)
  • Git VCS (since 2018)
  • TypeScript (since 2020)
  • Rust (since 2020)


  • Progressive Web Apps (since 2018)
  • Node.js (since 2018)
  • Electron (since 2019)
  • Nim (since 2020)
  • Firebase (since 2020)
  • React (since 2021)

My Skills

As well as my broad knowledge of many technologies, I bring several other valuable skills to the table. These include the following:
  • I can work independently or as part of a team
  • I can work to tight deadlines
  • I'm willing to expand my knowledge
  • I'll always try my hardest

My Favourite Projects

Over my many years of software development, I've worked on hundreds of projects, some lasting just days and others continuing to be supported months or even years after their creation. Here are some of my favourites!
Writeboard TypeScript Writeboard is a simple yet stylish whiteboard app, powered by Firebase. Designed during the lockdown of 2021, it allows a teacher to easily see and interact with the boards of all their students.
TidesX JavaScript TidesX is a quick and easy app to check the tide times. It features tide times and predicted heights for 700+ locations, sun and moon information, and more, all inside a beautiful and efficient interface.
Unlimited YouTube Search Python UYTS (Unlimited YouTube Search) is a small Python library I created to search YouTube without the need for its heavily restrictive Data API v3.
Communicate TypeScript (React) Communicate is a simple chat app for web and mobile, inspired by WhatsApp. I started the project to improve my knowledge of React and Firebase, but it has since grown beyond that into a reliable communication app.
PyTrains Python / Nim PyTrains is an efficient library and CLI for getting realtime UK train information. I also ported it to Nim for better performance, at the cost of losing the Python library functionality.

Contact Me

If you want more information, feel free to contact me on any of the platforms below.