PLAYER ONE / MATT RILEY

A small world.
A lot of work.

I build backend systems and developer tools.
This is a little world of the things I've made
and the places I've worked.

Prefer a good old website? Read the portfolio

01 / THE TOOL SHED

Things I've made.

Personal tools. Public source.
Built around real uses.

Waffle, imagined as a small orange terminal with a keyboard and green screen in Blender 01 / Go

Run an agent.

Waffle

A personal AI agent that runs on your own hardware.

A place to bring models, skills, and tools together around the way I work. The terminal in the film represents the agent you use.

Explore Waffle
AgenGit, imagined as a blue reel-to-reel recorder with aluminium reels and a recording light in Blender 02 / Zig

Keep the record.

AgenGit

A local record of what coding agents do between Git commits.

Commits tell one part of the story. AgenGit captures the activity between them. The tape recorder represents that running record.

Explore AgenGit
Lore, imagined as a blue archive drawer filled with tabbed index cards in Blender 03 / JavaScript / SQLite

Remember context.

Lore

Local memory for Copilot CLI and Pi, stored in SQLite.

Context that can carry over to the next session. The card archive represents memory you keep locally.

Explore Lore
Waffle, the orange cat the agent is named after

The other Waffle.
The cat came first. The agent borrowed the name.

GO / EVALUATION

skill-eval

Run the same task with and without a skill, grade the outputs, and measure the difference.

LUA / NEOVIM

pint.nvim

A small measure of UI for Neovim — dashboards, notifications, statuscolumn, indent guides, and reference words.

GO / FEATURE FLAGS

Flagz

A self-hosted feature-flag service with REST, gRPC, SSE, PostgreSQL, and Go and TypeScript clients.

02 / THE WORK DISTRICT

Places I've worked.

Read the plain-text work record

I started in analysis and testing, then moved through backend, platform, and product engineering. Same questions each time: does it ship, does it stay up, and is the next change cheaper than the last?

  1. jan 2026 — nowLloyds WealthSenior Software Engineer

    I work on the existing TypeScript suite — React, Remix, and Serverless on AWS SAM. Since joining I've moved several repos from CircleCI to GitHub Actions, put infrastructure in Terraform, and been chipping away at dependency and platform updates so the next change is cheaper.

    • TypeScript
    • React
    • Remix
    • Terraform
    • GitHub Actions
    • AWS SAM
    • AWS
  2. feb 2023 — sep 2023HavenSenior Software Engineer

    Web Platform and Activities. I built API layers over the existing databases and simplified the backend so the product teams weren't fighting the architecture to ship.

    • AWS
    • Express
    • Fastify
    • Kubernetes
    • NestJS
    • NodeJS
    • PostgreSQL
    • Terraform
    • TypeScript
  3. nov 2021 — dec 2022Add To EventSoftware Engineer

    I helped move the product off Drupal onto TypeScript microservices on GKE, using NestJS. Same product, new backend.

    • Cloud Functions
    • Docker
    • GCP
    • Gitlab
    • Kubernetes
    • NestJS
    • NodeJS
    • PostgreSQL
    • Redis
    • Terraform
    • TypeScript
  4. jul 2019 — jul 2021MetriskSoftware Engineer

    I built the service behind Scan2Recycle: users photograph a product, Cloud Vision identifies it, and they get a reward — store loyalty points, for example — for putting it in an in-store recycle bin.

    That service ran on GCP (Pub/Sub, Cloud Functions, Cloud Vision). The main Metrisk promotions platform was AWS — AppSync, Lambda, Serverless.

    • AWS
    • Cloud Functions
    • DynamoDB
    • GCP
    • Github Actions
    • GraphQL
    • Kinesis
    • Lambda
    • NodeJS
    • PubSub
    • Serverless
    • TypeScript
  5. apr 2015 — jul 2019SkySoftware Engineer

    I joined as an automation tester and moved onto the GraphQL core team. That service fed Sky.com and the MySky app. I also looked after the Varnish cache in front of the backends GraphQL consumed.

    • Apollo Server
    • Docker
    • Express
    • Grafana
    • GraphQL
    • Kafka
    • MongoDB
    • NodeJS
    • Redis
    • Ruby
    • Sinatra
  6. apr 2014 — apr 2015William HillTest Engineer

    Testing gaming content on William Hill — mainly Vegas, plus Games and Live Casino. Fairness testing on an in-house Node.js app, supplier REST APIs, and some Ruby automation with the Innovation team.

    • Coffeescript
    • MongoDB
    • NodeJS
    • Ruby
  7. jan 2012 — apr 2014Hewlett PackardSystem Integration Test Engineer
    • Citrix
    • Ruby
  8. nov 2007 — dec 2011DWPBusiness Analyst & Test Engineer
    • Excel
    • Microsoft Access
    • Oracle e-business suite
    • Visual Basic

03 / MEET THE LOCAL

The person
behind the pixels.

Matt's pixel avatar: glasses, cyan hoodie, magenta background

Senior software engineer in Leeds. Products, APIs, and developer tools that have to keep working.

I've spent nearly twenty years in software, mostly on backend APIs and the systems around them — GraphQL at Sky, product and platform work after that, currently at Lloyds Wealth. I also make tools for my own setup: a personal agent, a way to record what coding agents do between commits, and a pile of Neovim and Homebrew bits.

I'm a Neovim user, which I have to mention at any possible opportunity as per the terms and conditions of using (Neo)Vim, and comfortable using any environment with a terminal — preferably macOS or (almost) any flavour of Linux.

Outside of writing code and tinkering with my dotfiles I enjoy:

FROM THE PAID WORK

  • NodeJS
  • TypeScript
  • AWS
  • Ruby
  • Terraform
  • Cloud Functions
  • Docker
  • Express

05 / THE SOURCE ARCHIVE

More on GitHub.

Browse all repositories on GitHub
Repo 1 8 ★︎

newbrew

Terminal UI for discovering recent Homebrew formula additions, with searchable results, cached fetches, and one-key homepage opening.

Language / Go GNU General Public License v3.0
Repo 2 4 ★︎

agent-skills

Portable agent-skills catalog for Codex, Copilot, Gemini CLI, Pi, and other AI coding agents.

Language / Python GNU General Public License v3.0
Repo 3 1 ★︎

agengit

CLI for recording AI-agent coding activity into a local store between Git commits.

Language / Zig GNU General Public License v3.0
Repo 5 1 ★︎

brasshandoil

Daily web-art playground for weird, one-hour browser experiments.

Language / Astro GNU General Public License v3.0
Repo 6 1 ★︎

lore

Local-first memory and continuity extension for AI harnesses

Language / JavaScript MIT License
Repo 7 1 ★︎

matt-riley-ci

Reusable GitHub Actions workflows for Matt's repositories.

Language / Python GNU General Public License v3.0
Repo 8 1 ★︎

mjrwtf

Personal URL shortener with Go, SQLite, a web UI, a TUI, and click analytics.

Language / Go MIT License
Repo 9 1 ★︎

pi-extensions

Personal pi extension collection: /exit alias, read-only /plan mode

Language / JavaScript MIT License
Repo 10 1 ★︎

pint.nvim

A small measure of UI for Neovim

Language / Lua MIT License
Repo 11 1 ★︎

skill-evaluator

CLI that automates eval-driven iteration for AI skills: run with/without skill, grade with LLM judge, and benchmark results.

Language / Go GNU General Public License v3.0
Repo 12

astro-site-template

Astro starter template for building and deploying sites to Cloudflare Pages.

Language / Astro MIT License
Repo 13

crap

Language / Rust MIT License
Repo 14

deadwood

Find unused files, dependencies and symbols across TypeScript, Go, Rust and Lua

Language / Rust MIT License
Repo 15

elysia-crud-template

Starter CRUD API template with Elysia, Drizzle ORM, Postgres, and Bun.

Language / TypeScript MIT License
Repo 16

flags

Language / TypeScript
Repo 17

flagz

Self-hosted feature flag service with REST, gRPC, SSE, and official Go and TypeScript clients. Used as a test to see Agentic coding abilities

Language / Go GNU General Public License v3.0
Repo 18

gh-mfmatt

GitHub CLI extension for bootstrapping new repositories from my templates.

Language / Go GNU General Public License v3.0
Repo 19

go-api-template

Minimal Go API template with Chi, Docker, CI, and GHCR publishing.

Language / Go MIT License
Repo 20

homebrew-tools

Personal Homebrew tap for hopt, newbrew, and tui command-line tools.

Language / Ruby GNU General Public License v3.0
Repo 22

hopcli

Unofficial Go/Bubble Tea terminal browser for The Hoptimist online shop, with latest arrivals, category browsing, and product detail views.

Language / Go MIT License
Repo 23

keybase-gpg-github

Guide to creating a Keybase-backed GPG key and using it with Git and GitHub.

GNU General Public License v3.0
Repo 24

lucky-hat

Local plugin marketplace for Codex, Copilot CLI, and Claude Code skills.

Language / Python GNU General Public License v3.0
Repo 25

matt-riley

Profile README, weekly crates feed, and automation for @matt-riley — plus shared Renovate presets and agentic workflow tooling.

GNU General Public License v3.0
Repo 26

matt-riley.dev

Afterimage personal developer site built with Astro, vanilla TypeScript, and a build-time GitHub dossier.

Language / CSS
Repo 27

mattriley.tools

Astro site for showcasing Homebrew tools and Neovim plugins with synced GitHub metadata.

Language / TypeScript MIT License
Repo 29

nvim-plugin-template

Template repository for building and releasing Neovim plugins with tests and CI.

Language / Lua MIT License
Repo 30

photo-stream

Self-hosted photo stream for publishing a simple personal photography site.

Language / HTML MIT License
Repo 31

pi-browser

A DOM-first Chrome companion for Pi with persistent pairing, policy-controlled browsing, and Jev-guided actions.

Language / JavaScript
Repo 32

renovate-config

Shared Renovate configuration presets for matt-riley repositories.

GNU General Public License v3.0
Repo 33

slides.nvim

Neovim plugin for presenting Markdown slides in a full-screen floating window.

Language / Lua GNU General Public License v3.0
Repo 34

streamdeck-tricks

Personal Stream Deck automation experiments integrating OBS, MQTT, Twitch, and OSC.

MIT License
Repo 35

ts-package-template

TypeScript package template with dual CJS/ESM builds, testing, linting, and CI.

Language / TypeScript MIT License
Repo 36

waystone.nvim

Neovim plugin for persistent project marks with scoped slots and quick jumping.

Language / Lua MIT License
Bonus room / A Blender study of the tools

Matt Riley / software engineer / Leeds

Made to
be used.

I build backend systems and developer tools, from first release through the work of keeping them running.

Explore the work
Objects of the work / 001A Blender study
Three independent tools, imagined as objects on a workbench.12 seconds / three chapters
DISCOVERY

ON THE CLOCK / A LITTLE CHALLENGE

SCORE 0