Hey there!

I'm Hugh, a final year Computer Science undergrad at the University of Portsmouth

I love working with hardware, developing software, tinkering with my homelab and messing about with Linux on my personal machine. Most of my work (that's not under grading or licence restrictions) is open-source on Github

Homelab

My personal homelab, which you're currently using to view this website!

Currently made up of 2 Lenovo ThinkCenter 'Tiny' PCs and one custom Ryzen mini PC running Proxmox. They run a few publicly accessible services (this website, and the backends for a few of my personal and University projects) as well as private services such as a VPN, media server and a couple of game servers. They also house the development and testing environment for my bachelor's dissertation project. I also have my own private network setup in halls, with an OPNSense router and a very small Unifi network handling switching and WiFi.

picOLED

A small (<1") OLED display and RP2040-based microcontroller which can be connected to a computer to display important stats.

Both the device's firmware and the Linux driver are written in C++, using CMake to manage dependencies. The statistics are gathered by the driver and then sent over a serial connection to the device, which interprets and displays the data. While work on this project has temporarily paused (if I have more time in the future) it is definitely a project I want to finish and get to the point of being what I would consider to be "fully functional", as far as what my original plans were (And possibly expand upon them using a WiFi enabled microcontroller...)

Minima

A URL "shortening" API.

Minima was created for the simple purpose of learning to use Shelf in Dart -- somewhat like a "Hello World" project in any new language. It is a fairly basic API, simply checking if the provided link already exists in the database, and randomly generating a new 6 letter code if not. The "database" consists of a CSV file, meaning that link data is stored as plain text, but must be URL-encoded before storing to make sure the link doesn't break the file encoding.

That's all for now, check back later and there might be more here!