// havox.org — v4

John Gatward

Software Developer

I like building useful things and understanding how they work.

Havox & me

day job

Backend engineer at Sainsbury's Supply Chain & Logistics. Microservices, Spring Boot, Kafka, MongoDB, AWS. It's good fun.

dev

Fascinated with new languages, frameworks, and shiny tech I probably don’t need. Constantly tinkering, breaking things, and learning just enough to build something cooler next time.

linux

Long-time Linux user and recovering distro-hopper. Currently: Hyprland on Void. Home server running 24/7 for friends and family who didn't ask for it but appreciate it.

havox

Started in 2017 as a place to dump whatever I found interesting. Four redesigns and several dead domains later, it's still going. Less a portfolio, more a paper trail.

skills

What I know

Backend

Professional Java experience building microservices & RESTful APIs with Spring Boot. TDD with JUnit & Mockito.

Java Spring Boot AWS Kafka MongoDB
🎨

Frontend & Creative

Comfortable with react and CSS. I enjoy visualising algorithms interactively — it's more fun than a console output.

React TypeScript HTML/CSS
🖥

Systems & Infra

Long-term Linux user. Self-hosted web & media servers. Comfortable with networking, security practices, and the command line.

Linux Docker Self-Hosting Wireguard
🎓

Academic Breadth

C, C++, x86_64 assembly, Haskell, R & MatLab from uni. Modules in Advanced networking, algorithms, compilers, graphics, cryptography, malware analysis & many more.

C / C++ Haskell Algorithms Security Low Level OS

projects

Things I built

A timeline of all my projects and experiments. Started with p5.js, then the tech-stack mirrored whatever I was interested in at that time.

Featured projects
All projects
14 Nov 2024 Thin Ice A small browser tile game inspired by one I played growing up. C++ WebAssembly RayLib 20 Mar 2024 Travelling Salesman Problem A nearest-neighbor + 2-opt pathfinding visualiser. Zig WebGL WebAssembly 31 Jan 2024 Flocking A simulation to show how complex behaviour emerges from 3 simple rules. Rust Raylib 1 Nov 2023 samstoreymusic.com A website design and build for a friend working in music. HTML/CSS JavaScript 21 Jul 2023 Game of Life After building Conway's Game of Life in p5.js, I expanded it into a generic automata simulator. React JavaScript 5 Feb 2022 Percolation A visual demo of percolation through a medium, showing how behavior changes as p increases. C RayLib WebAssembly 1 Oct 2021 Drawing Bézier curves An interactive diagram for cubic Bézier curves. JavaScript p5.js 17 Sep 2021 2D Marching Squares Basic map rendering. JavaScript p5.js 2 Apr 2020 Müller-Lyer illusion A JavaScript visualisation of the Müller-Lyer optical illusion. JavaScript p5.js 27 Feb 2019 Fourier series Builds a square wave from sine components to show Fourier series in motion. JavaScript p5.js 23 Feb 2019 Constructing an ellipse Shows how an ellipse can be constructed from a circle and radial lines, inspired by 3Blue1Brown. JavaScript p5.js 18 Mar 2018 Calculating PI Approximates pi using the Monte Carlo method with random points in a square and circle. JavaScript p5.js 17 Dec 2017 Oscillations in 3D A JavaScript recreation of a Bees and Bombs animation. JavaScript p5.js 13 Nov 2017 Maze generator A p5.js maze generator using depth-first search and recursive backtracking. JavaScript p5.js

contact

Let's talk

I'm currently employed but open to the right opportunity — backend or full-stack, somewhere that ships interesting things with people who care about their craft.

GitHub has the most complete picture of how I think. LinkedIn if you're formal. Either works.