So, it has been a while again.
At this point, my blog does not disappear. It simply enters maintenance mode without publishing release notes.
The silence was not caused by a shortage of things to write about. Quite the opposite. I have spent the past few months finishing the largest university project I have ever attempted, rebuilding my portfolio from the ground up, and occasionally remembering that sleep is considered important by several reputable sources.
There is a lot to catch up on.
The Final Project Became Very Real
The last time I properly introduced my final university project, it was still mostly a proposal, a collection of requirements, and an optimistic belief that I could turn a problem from my weekly football group into a working application.
That application is now the Fair Play Football App.
The original problem was simple enough. Our community football sessions have limited spaces, but attendance changes throughout the year. Some regular players turn up consistently during the cold, dark months, then suddenly find themselves competing for places when summer arrives and everyone remembers they enjoy football.
The usual first come, first served WhatsApp system worked, technically. Fairly? Not always.
Fair Play was designed to offer something better.
More Than an Attendance Tracker
The app allows organisers to create football sessions, manage players, configure selection rules, handle waiting lists, assign teams, and make manual adjustments when real life refuses to behave like a clean specification.
Players can view upcoming sessions, request a place, withdraw, follow their selection status, and understand why a particular decision was made.
That final part mattered to me. An algorithm making decisions without explanation would simply replace one source of frustration with a more technologically advanced source of frustration.
The selection system considers attendance over recent and longer term periods, gives additional weight to winter participation, accounts for late withdrawals, and supports waitlist promotion. The exact rules can be configured by each organiser rather than being permanently buried inside the code like an ancient footballing prophecy.
In other words, I built a system capable of deciding who gets to play football. Absolutely no pressure there.
Building the Algorithm Without Starting a Civil War
Creating a fair selection algorithm sounds sensible until you have to define what “fair” actually means.
Should recent attendance matter more than long term loyalty? How much should winter attendance count? Should someone be penalised for withdrawing late? What happens when several players have identical scores?
There was no magical formula waiting for me in a textbook. I had to experiment, evaluate different weightings, and explain the reasoning clearly enough that both players and university markers could follow it.
The final model balances recent and seasonal attendance equally, includes a winter multiplier, and applies additional rules for withdrawals and waiting lists.
It is not pretending to solve fairness for the entire footballing world. FIFA can relax. It is a transparent and configurable solution for community sessions, built around the real needs of the people using it.
From Diagram to Working System
Fair Play was developed with Next.js, TypeScript, Firebase Authentication, and Firestore.
TypeScript strict mode was included because apparently completing a major final year project was not enough of a challenge. I also wanted the compiler to question my decisions before the markers had the opportunity.
The development process covered requirements analysis, database modelling, interface design, role based functionality, automated selection, team balancing, testing, evaluation, and deployment.
The app supports players, organisers, and system administrators. It includes invitation flows, configurable rules, player management, automated and manual selection controls, fixture locking, guest players, audit information, and private ability ratings for team balancing.
What began as “an attendance tracker” gradually became a proper multi role application. Scope has a fascinating ability to reproduce when left unattended.
The Report Behind the App
Of course, building the application was only part of the project.
The final report came in at 10,992 words, comfortably inside the 11,000 word limit in the same way that parking two millimetres inside the bay is comfortably legal.
It included requirements, design decisions, implementation, testing, evaluation, project management evidence, technical documentation, source code, and enough figures to make Microsoft Word question our friendship.
There were functional tests, non functional tests, performance checks, accessibility considerations, captions, cross references, appendices, and repeated audits of terminology. At one point, renumbering figures felt like a larger project than the application itself.
But it was submitted.
After years of studying, working, building, changing direction, and wondering whether this career move would ever feel real, I completed the final project of my Computing degree.
That sentence still feels good.
Fair Play Did Not End at Submission
The university submission marked the end of the assignment, but not the end of the app.
I demonstrated it to Trev, one of the organisers from the football group that inspired the project, and started exploring how it could work beyond the academic setting.
The database moved from testing into a production environment. I began looking into session payments, including the possibility of using Stripe Connect so organisers could receive money directly through their own connected accounts.
I also considered a simpler manual approach, allowing organisers to mark payments inside the app and track outstanding amounts without turning a £5 football session into a financial technology conference.
This is the exciting part. Fair Play is no longer only evidence for a university module. It has the potential to become something genuinely useful.
Then I Rebuilt My Portfolio, Because Apparently I Enjoy Projects
Once the final submission was out of my hands, I returned to another project that had been waiting patiently for attention: my portfolio.
My previous portfolio had been built in React. At the time, I was learning React and briefly believed every website needed React, including websites that could probably have been delivered by a determined HTML file and a positive attitude.
The new portfolio takes a different approach.
It is built with HTML, CSS, and vanilla JavaScript, with Hygraph managing the blog content. No front end framework. No component library doing the interesting parts for me. Just the fundamentals, used deliberately.
This was not a rejection of frameworks. Fair Play itself uses Next.js. It was a chance to demonstrate that I understand what sits underneath them and can choose tools based on the project rather than treating one stack as the answer to every question.
A Portfolio That Finally Sounds Like Me
The technical rebuild mattered, but the writing mattered just as much.
Earlier versions of my portfolio were professional in the safest possible way. They listed technologies, described projects, and successfully avoided revealing that an actual human being had written any of it.
This time, I wanted personality.
The new site tells the story of a 40 year old career changer who has taken the scenic route into software development. It shows the serious work, but it also allows room for humour, honesty, and the occasional observation about my former tendency to use React as if it were legally required.
The project pages have become proper case studies rather than galleries with a technology list attached. They explain the problem, the decisions, the development process, what worked, what changed, and what I learned.
Fair Play naturally became the centrepiece, but I also revisited earlier work such as RodFlix, RodWeather, Sunnyside, and the Let It Shine website.
Some projects show where I am now. Others show how I got here. Both are valuable.
Looking Back Without Deleting the Evidence
Rebuilding the portfolio forced me to confront older decisions.
There are projects I would approach very differently today. There are layouts I would simplify, technologies I would reconsider, and code that belongs to a version of me who had recently discovered a new framework and wanted everyone to know.
But that is the point of a portfolio built around progression.
Growth becomes visible only when you keep some evidence of where you started.
The objective is not to prove that every past decision was perfect. It is to show that I can evaluate my work, recognise unnecessary complexity, and make better decisions now.
That feels more honest than pretending I emerged from a bootcamp fully formed, holding a clean Git history and an advanced understanding of software architecture.
Two Projects, One Bigger Story
Fair Play and the portfolio might look like separate projects, but they represent the same stage in my journey.
Fair Play shows what I can design and build.
The portfolio shows how I think, communicate, reflect, and present that work.
One required algorithms, databases, authentication, role management, testing, and thousands of words of academic evaluation. The other required design judgement, storytelling, restraint, and the courage to delete sections I had spent far too long creating.
Both made me better.
And both have moved me closer to the moment when “career changer” becomes less about where I am trying to go and more about how I arrived there.
Final Thoughts
The blog went quiet because I was busy creating the work I eventually wanted to write about.
I completed and submitted my final university project. I turned a weekly football frustration into a functioning application. I rebuilt my portfolio using the fundamentals. I rewrote my case studies so they finally sound like me. I also continued working, managing family life, and discovering how many browser tabs a Mac can hold before it begins silently judging its owner.
There is still plenty to do.
Fair Play can evolve. The portfolio will continue changing. The job search enters a new phase now that my degree is nearly behind me and my strongest project is no longer theoretical.
But for the first time in a while, I am not returning to the blog merely to say I am still working towards something.
I have something substantial to show for the silence.
And honestly, that makes this comeback feel worth the wait.

Top comments (0)