A non-exhaustive list of various software projects I have developed or contributed to over the years.
Fix: Removed invalid functions, added test case to ensure symbols are valid.
Fix: Ensure that the WebSocketConnection respects the ConnectionSpecs.
Features: Added support for Windows. Fix: Ensure blocking and async is used appropriately.
Features: Added support for configuring local IP addresses, added functions to allow access to the TLS peer certificate.
Features: Added native-tls and openssl library support, made it possible to reload TLS certificates at runtime, with examples.
Various improvements to the Rust code generators. Member of Rust technical committee.
Features: Added support for various parts of the OpenAPI specification.
Features: Added a type safe multipart form extractor.
Fix: Support TLS CA only verification when connecting to a Redis Cluster. Improvements made to refresh logging.
Actix Extensible Rate Limit
Rate limiting middleware for the actix-web framework, with support for a variety of custom and advanced use-cases.
Sunrise Sunset Calculator
A small C library for computing times of sunrise and sunset based on latitude / longitude. Also includes bindings for the Rust language.
A health monitor that tests HTTP and SMTP servers on a regular interval, checking that they are up and have valid certificates etc. Tests exceeding a failure threshold trigger automated SMS and email notifications. The service is manageable via a REST API and CLI client.
Solar Screen Brightness
A Windows & Linux utility to smoothly adjust monitor brightness with sunrise/sunset times. Developed using Rust, Crossterm TUI, Win32 API.
WSL2 DNS Agent
A utility for automatically updating WSL2 DNS configs when using a VPN.
Developed a website for a joinery company including:
- A REST API using Rust (Actix Web & Diesel frameworks, Postgres).
- An administration website using Rust WASM (Yew Framework).
A scientific tool for dating astronomical events recorded in ancient cuneiform tablets from around the 7th to 5th century B.C. Written using Python, SQLite, and the Skyfield astronomy library.
Docker Certbot HAProxy
A docker image for automating LetsEncrypt Certbot certificate rotation with HAProxy.
Docker OpenVPN Router
A docker image that creates a NAT router behind an OpenVPN tunnel.
mdBook Bibfile Referencing
A plugin for mdBook that adds a Pandoc generated bibliography to each chapter.
A simple Twitter media downloader and viewer written in Rust.
Hyper Graceful Shutdown
Simple library / example showing how to gracefully shut down a Hyper HTTP server when using the low-level API.
Some interesting software projects during my degree at the University of Bristol (2018-2021):
COMS10009 Object Oriented Programming (Y1):
A game written using JavaFX. I developed a substantial extension to the game to support online multiplayer using websockets.
COMS20805 Software Product Engineering (Y2, Group Project):
A group project to develop a prototype app for the Bristol Medical School ‘coMforT’ to be used for ‘Mindfulness-based Cognitive Therapy’.
- Developed the backend server using Java, Spring Boot, Hibernate, Postgres, and OpenAPI, with extensive integration tests.
- Setup a CI/CD pipeline using CircleCI to compile/test the sever, OpenAPI client libraries, Android app, and deploy to Amazon Elastic Container Registry.
- Made contributions to the Android app (Java)
COMS20001 Concurrent Computing (Y2):
High performance concurrent implementations of Conway’s Game of Life, written in Go and Rust.
Developed a basic operating system kernel targeting ARM Cortex; using Rust and C in an unhosted / bare-metal environment.
COMS30046 - Advanced Computer Architecture (Y3)
Implemented an out-of-order superscalar processor simulator, capable of running small programs compiled for the ARM Cortex M0 instruction set in ELF format.
Commercial projects while employed at Createanet (Aug 2017 - Aug 2018):
hrn - world ratings
Developed an iOS social media and reviews app (Objective-C) and the REST API to power it (PHP/MySQL)
Developed the iOS app (Objective-C) for a coffee shop rewards program.
GEAV Contractor Control
Developed an iOS health and safety forms app (Objective-C).
Also performed substantial maintenance on the REST API and admin website codebase (PHP/MySQL)
Redeveloped the iOS app (Swift) as well as the REST API (PHP/MySQL) for a group video call app.
Jointly developed the iOS app (Objective-C) for a photo storage / sharing service.
Developed the iOS app (Objective-C) for sharing allergy information.
Developed the website (PHP/MySQL) used to administer their sales management app.