William Henderson.
WILLIAM HENDERSON
Location: Cambridge, United Kingdom
Skills: Rust, TypeScript, React JavaScript, HTML/CSS/Sass, Python, Git/GitHub, SQL, Docker
Education: A*A*A*A* at A-level in Computer Science, Mathematics, Further Mathematics and French, ten level 9 GCSEs
GitHub: w-henderson
Email: hello@whenderson.dev
Twitter: @hxswell
Projects
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.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.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.Stuart
Stuart is a very fast and flexible static site generator, with build times as low as 0.1ms per page. Written in Rust, it is designed to be easier to use than other SSGs, while still beating them in the benchmarks. It is also easy to extend with custom build scripts that integrate with the core build system, as well as dynamically-loaded plugins written in Rust. At its core is a powerful templating system which can source and manipulate data from Markdown and JSON files, as well as the template files, before rendering it all to static HTML. This site is built with Stuart!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.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.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.Blog
Optimising content moderators with ML in Switzerland
March 30, 2023 12 minLast week, I had the privilege of participating in START Hack 2023, a 36-hour hackathon hosted by ST...
Exploring garbage collection in V8 with WebGL
January 7, 2023 12 minOver the Christmas break, I’ve been working on a game engine called TSGL, using TypeScript and Web...
Can you learn to better predict the future?
November 20, 2022 7 minI spent the last weekend participating in HackX, a hackathon hosted by the Cambridge Existential Ris...