Reduced motion is on, so the field below is a single pre-rendered frame.
now
Currently centralising email delivery at PlanetBids: one service on SES, SQS and Kubernetes workers replacing logic that lived in six places. Also writing the renderer behind this page.
selected work
work →- RollSummary2024
Transcribes and summarises tabletop RPG sessions, built because I play them and kept losing what happened last week. Next.js server components over the Whisper and GPT APIs.
[ next.js ] [ react ] [ typescript ] [ whisper ] [ gpt ]
- Transcriber2024
Self-hosted Whisper transcription service. Django with Celery for the job queue and Redis as the broker.
[ django ] [ celery ] [ redis ] [ whisper ] [ docker ]
- This page2026
A spiral galaxy computed in a WebGL2 fragment shader and rasterised into Braille sub-cells, eight dots per character. The arms rotate as a density wave. Written up in full.
[ webgl2 ] [ glsl ] [ typescript ] [ next.js ]
writing
all writing →off the clock
Off the clock I am at a table rolling dice. Tabletop RPGs are the hobby, and RollSummary came straight out of it: sessions run long, memory runs short, so I built something that listens to a session and writes down what actually happened. Most of what I know about state machines I learned from arguing over initiative order.
contact
jravolio892@gmail.com · +55 21 98807-1858