Hello, I'm

WilliamHenderson.

I'm a Software Developer from the United Kingdom with a passion for building efficient, robust and beautiful applications in a variety of fields.
[email protected]:~$ ./aboutme
ASCII art

WILLIAM HENDERSON

Location: Exeter, United Kingdom

Skills: Rust, React, TypeScript,+JavaScript, HTML/CSS/Sass, Python, Git/GitHub, SQL, Docker

Education: Ten level 9 GCSEs including Mathematics, Computer Science and English Language

GitHub: w-henderson
Email: [email protected]
Twitter: @hxswell

Projects

Over the course of more than a decade, I've worked on a diverse array of projects, from websites and mobile apps to databases and web servers.

Equion

Equion is a mathematics-focussed chat platform. It has built-in support for LaTeX and Markdown, high-quality low-latency voice chat and screen sharing, and is lightweight and lightning-fast thanks to Rust and Tauri. I built Equion so my friends and I could share mathematics problems with each other while revising for exams.
Rust
TypeScript
React
Sass
WebRTC
MySQL
Docker
GCP

TidesX: UK Tide Times

TidesX is an intuitive and easy-to-use app for checking the tide times anywhere in the UK. It features predictions and live information for over 600 coastal locations, taken straight from the UK Hydrographic Office. I built TidesX after unsuccessfully searching for a simple and good-looking tide times app, and it has since served over 150,000 tidal predictions for locations all around the country.
TypeScript
Sass
HTML
Cloudflare Workers

Humphrey

Humphrey is a very fast, robust and flexible HTTP/1.1 web server, with support for static and dynamic content through its Rust crate and plugin system. It has no dependencies when only using default features, and the binary is easily extensible with a flexible configuration file and dynamically-loaded plugins. It also provides a WebSocket API for the easy integration of WebSockets into your application, a JSON manipulation crate, and a simple authentication system for authenticating users and managing sessions.
Rust

Kascreech

A joint project with a friend, Kascreech is a real-time multiplayer quiz platform based on Kahoot. It supports hundreds of simultaneous games and real-time client-server communication through WebSocket. The project was originally written without a JavaScript framework, but to improve the quality of both the code and the final product, we elected to completely rewrite the project from scratch using React and Humphrey. I mainly developed the front-end while my friend handled the server, but neither exclusively.
React
TypeScript
Rust
Sass
Heroku
Docker

Authenticate

Authenticate is a simple two-factor authentication app, built with React Native and available on the Google Play store. It was originally built to provide a faster, more modern alternative to older two-factor authentication apps. Designed around the core principles of ease-of-use, speed and security, it includes cryptographic implementations from scratch for all the required algorithms, including SHA-1, HMAC-SHA-1, HOTP and TOTP, in pure TypeScript. Furthermore, it is completely open-source and free to use, making it a great choice for two-factor authentication.
React Native
TypeScript

JasonDB

JasonDB is a blazingly-fast, JSON-based, log-structured database for Rust. Supporting both in-memory and disk-based storage at the developer's choice, it is fast, flexible and well-integrated with the Rust programming language. It provides complex and highly-optimised queries, as well as an intuitive and extensible API for creating and managing databases.
Rust
Database

Writeboard

Writeboard is a simple yet stylish whiteboard app which allows any class or team to share their ideas quickly and easily. It offers a user-friendly and intuitive platform for students to engage with lessons and make progress in today's increasingly-online world. Built during the lockdown of 2021, Writeboard was quickly adopted by my school and peaked at 126 active users in February, having been used in more than 25 countries around the world.
TypeScript
Sass
Firebase
HTML

Blog

Here are my most recent blog posts. You can find more of my thoughts and ideas on the blog page.

Contact

If you want any more information, or just a chat, please send me a message through one of the following platforms.