The Fantasy Premier League work represents the most technically ambitious thing I’ve vibe-coded. What started as a hobby project became a genuine exercise in operations research, and a case study in how far AI-assisted development can take you when you’re willing to iterate.
Version One: The Optimisation Approach
The first version treats FPL as a Multi-Period Stochastic Knapsack Problem. Bottom-up ML models predict expected points for each player, then Mixed-Integer Linear Programming optimises squad selection across a rolling horizon. It includes dynamic Fixture Difficulty Ratings, rotation matrix analysis for defensive pairs, and chip strategy planning.
This is the kind of project that, pre-AI, I would have understood conceptually but struggled to implement. The maths isn’t that hard to grasp. The implementation details — properly formulating MILP constraints, handling the stochastic elements, integrating with the FPL API — would have taken weeks of trial and error. With vibe-coding, the working prototype came together in sessions rather than months.
Version Two: The Reinforcement Learning Agent
The second version goes further: a full reinforcement-learning agent with four training phases that layer up from gradient boosting baselines through LSTM and Graph Neural Networks to a PPO policy trained via Ray RLlib. The gym environment is written in Rust for speed.
This is where the compression gap I keep writing about becomes really visible. The AI could scaffold the architecture and generate most of the training pipeline. But tuning hyperparameters, debugging reward shaping, and understanding why the agent makes certain decisions — that required genuine domain knowledge that no amount of prompting could replace.
And Then: Fantasy Parliament
Because apparently I can’t leave well enough alone, I also built Fantasy Parliament. The same concept as Fantasy Premier League but for the UK Parliament. Build a cabinet of 15 MPs within a budget, assign them to ministerial positions, and earn points based on real parliamentary activity sourced from Hansard. Democracy as a spectator sport. It’s one of my favourite things I’ve ever built. Both FPL versions and Fantasy Parliament are among the projects documented in Everything I Vibe-Coded This Year.