Blog

Occasional writing on research, tools, and things I find interesting.

  1. 26 Jun 2026javascriptfull-stackwebsockets

    Building a real-time multiplayer chess platform

    How a group of friends wanting to play chess together turned into a four-service WebSocket architecture with Glicko-2 ratings, server-side move validation, and a Stockfish analysis board.

  2. 26 Jun 2026pythondata-analysisgaming

    Reverse-engineering jungle pathing from Riot's timeline API

    The Riot API gives player positions every 60 seconds. To reconstruct a jungler's actual path, you need interpolation that respects map geometry — and A* pathfinding on the game's navgrid.

  3. 26 Jun 2026pythonoptimizationmachine-learning

    Can operations research beat gut-feel in Fantasy Premier League?

    Applying Mixed-Integer Linear Programming and machine learning to FPL squad selection — and discovering that the best predictor doesn't always win.

  4. 26 Jun 2026pythondata-analysisgaming

    Scouting Korean solo queue for off-meta Lulu builds

    Using the Riot Games API to analyse a high-elo KR Lulu one-trick's match history and surface build adaptations that haven't reached mainstream guides yet.

  5. 26 Jun 2026pythonknowledge-graphsgaming

    Why do League coaches disagree? Building a knowledge graph to find out

    108 coaches, 444 sources, 3,045 pieces of advice — stored as RDF with full provenance. When coaches disagree on how to play a champion, the graph captures both sides.

  6. 26 Jun 2026pythondata-analysisreal-estate

    Is the Kempen region still undervalued?

    Analysing 15 years of Belgian government real-estate data to compare apartment price growth in the Kempen region against major cities.

  7. 25 Jun 2026knowledge-graphswebmeta

    Why this site is a knowledge graph

    Most portfolios are flat lists of projects and papers. This one is an RDF knowledge graph rendered as an interactive force-directed layout. Here's why.