Robert Hargreaves
Software Engineer

Projects

A selection of projects I've worked on over the years. I also blog sometimes.

  • charon6

    Transmits data covertly by abusing the IPv6 address space. Payloads are encoded into destination addresses and sent as ICMPv6 echo requests or UDP datagrams, with optional encryption and message integrity checking. Written in Rust.

  • ion

    A lightweight HTTP/2 server written in modern C++. Primarily a learning exercise to explore HTTP/2 and modern C++ features. As such, I am intentionally using low-level APIs and avoiding libraries for the core flow, but using modern C++ features to wrap the POSIX interfaces.

    Powers this site! (see status page). Hosted on bunny.net Magic Containers, fronted by Cloudflare to serve HTTP/1.1 & provide caching.

  • Mega Drive MIDI Interface

    Provides a MIDI-compatible interface for the console's YM2612 and PSG sound chips. Receives MIDI over controller port, Everdrive X7/PRO USB, and MegaWiFi via Apple MIDI/rtpMIDI. Implements General MIDI, including presets and portamento effects, as well as compatibility with GenMDM CC parameters.

    Related: Serial Port Diagnostics Tool, Albeton Live Plugins, serialmidi (fork with Everdrive Pro compatibility)

  • Knock Knock

    A port knocking implementation with eBPF. Written primarily in C (with a C++ CLI) and e2e tests in Python.

  • Dog Walking Service API

    A RESTful API for a fictional dog walking service. Written in Go, using AWS Lambda, API Gateway, CloudFront and DynamoDB to provide a RESTful API. Integrates with AWS Rekognition, using AI to detect the dog's breed. Deployed using GitHub Actions and Terraform. Built as a demonstration of my development skills and also as a way to learn Go.

  • ZX Spec: A TDD Framework for the ZX Spectrum

    Aids development of Z80 assembly code on the ZX Spectrum by providing a framework for practicing Test Driven Development. Written purely to prove that it was possible to do. It also scratched an 8-bit itch of mine and was pretty fun!

  • Fastly VCL Experiments

    Various proof-of-concept VCL snippets; including OAuth 1.0 signature validation on the edge. I have also co-authored an open-source tool for deploying VCL into Fastly.

Music

I'm on SoundCloud and MixCloud also.