About
I'm a software engineer from Scotland, currently pursuing an Informatics degree at the University of Edinburgh. I primarily write backend software, with considerable experience in Go, Java, Elixir and TypeScript. I have experience in infrastructure engineering, including Linux servers, containerisation, orchestration and service management.
Working on side projects alongside my studies has led me to an obsession with Elixir: Phoenix LiveViews have made me love server-side rendering again. The feeling was almost as good as discovering goroutines. I tend to use whatever interests me at the time; Clojure and Rust have been some of the languages I randomly get into a habit of using.
Projects
depart.cloud
2026Social hub for multiplayer OMSI 2. Elixir backend orchestrates servers, provides in-depth user administration, and analyses data from a hand-rolled game server to provide stats to players.
Elixir, Phoenix, Stripe, Docker Compose
Relayed
2026LSP-based live coding collaboration: any editor, from Helix to VS Code. CRDTs (conflict-free replicated data types) and file-tree syncing are used to achieve consistency, with new clients receiving snapshots from a nominated user.
Elixir, TypeScript, LSP
Digifilm
2025Simple photography portfolio built with Cloudflare technologies. Uses R2 for image buckets, KV for album data. Dynamic with no server fees :)
TypeScript
passc
2024CLI secrets manager with configurable libsodium encryption. Secure and reliable but perhaps not a Bitwarden replacement.
C, libsodium, SQLite3
Shutter
2020An image upload service with a user dashboard, custom domain support, and Discord/ShareX integration.
Go, PostgreSQL, Redis
Slicer
2020An initial attempt at a scalable chat platform. Learned to love and hate Kubernetes.
Go, Kubernetes, PostgreSQL, Redis