Skip to content
WMWill May Learns How to Develop Software
ArticlesAppsDeveloper storyLinks

Category

Software Development

28 articles · All categories

  • 23 December 2025 · 1 min read

    WordleWise UI/UX updates

    This is just a quick post to announce a couple of cool UI/UX improvements to WordleWise… Firstly, if you’re a user who doesn’t belong to a group, you’ll now see a dismissible “Compete with friends” promo banner just above the main page content, with links to the “Create group” and “Join group” actions: Secondly, if…

  • 20 December 2025 · 12 min read

    Land of Opus and Glory

    Last month was a pretty exciting one in the world of AI. Google released the long-awaited Gemini 3 Pro and a new agentic software development tool called Antigravity on the 18th November, and just six days later Anthropic released Claude Opus 4.5, the most capable LLM I’ve ever seen. AI fanboy that I am, I…

  • 13 November 2025 · 1 min read

    Introducing Two Significant Upgrades to PRtoPDF

    My GitHub pull request (PR) → PDF conversion tool PRtoPDF, first introduced in the article Convert your GitHub pull requests to PDFs, has just received two significant upgrades. Anonymisation config Firstly, PRtoPDF now supports granular configuration of anonymisation rules, to make compliance easier for users from a broader range of backgrounds and with a broader…

  • 7 November 2025 · 3 min read

    Convert your GitHub pull requests to PDFs

    TL;DR – find my GitHub pull request → PDF converter here, with everything you need to get set up. The other day me and countless other software developers and digital professionals across the UK Civil Service were compelled to submit a detailed self-assessment at work, as part of the Government Digital and Data Profession Capability…

  • 27 October 2025 · 10 min read

    FantraXpert: A Fantasy Football Data Dashboard

    Me and my friends have been competing in a draft fantasy football league since 2016. The platform we use, Fantrax, offers detailed scoring rules that reward players for completing all sorts of on-field actions, which is one of the reasons it’s so addictive. Despite my best efforts, I’ve never been particularly good at it. I’ve…

  • 4 May 2025 · 4 min read

    Listen to The Robots and Thou Shalt Prosper

    If, like me, you are tired of listening to Alastair Campbell and Rory Stewart agree agreeably on The Rest is Politics, then I might have something for you… 🥁🥁🥁 It’s an 11-part podcast series on Web Development – planned, researched, scripted and read aloud for your entertainment by ROBOTS!!! Huh? Well, not robots robots; I’ll…

  • 29 April 2025 · 4 min read

    Streetscape Now Does More Things Than It Did Previously

    I published an article announcing the release of my new road network visualisation app Streetscape 10 days ago, and since then I’ve made a number of significant improvements to it, which I’d like to bombard you with today. Firstly and perhaps least spectacularly, there’s a new Guidance page to teach users how to interpret images…

  • 21 April 2025 · 7 min read

    How Vibe Coding Led to a Crypto Mining Attack on My Web Server

    I was surprised the other day to learn that my web server was under attack. I was remoted in to the DigitalOcean Droplet instance where my web server is hosted (I moved off of AWS a few months ago), when I noticed that system load was unusually high. Investigating further, I checked out CPU usage…

  • 19 April 2025 · 4 min read

    Behold! It’s the Road Network Visualisation Tool You’ve Been Waiting For

    11 months have passed now since I last did you a post, and much has changed in that time. I’ve had a baby, for one thing. But onto more important matters: the other day, I released a new app! It’s called Streetscape, and you can find it here. What is it? Streetscape is my way…

  • 12 March 2024 · 7 min read

    Behind the Breakpoints: Exploring the Inner Workings of Debuggers

    Using a debugger has been a core part of my workflow ever since I started life as a professional software developer three-and-a-half years ago. However, until very recently, I never really understood the internal mechanics of debugging, and this meant that when debugging the debugging process itself, I was often unable to reason about the…

  • 9 January 2024 · 9 min read

    The Great Migration

    The other day I launched my very first AWS EC2 instance and migrated this website, and a couple of web apps, onto it. It was a long time coming – the annual cost of web hosting with Bluehost has increased from a discounted £51.72 in 2021 to £118.30 in 2023, while my Soccer Simulation app…

  • 21 December 2023 · 5 min read

    LexiDeck: Enhancing the Anki Experience with Automated Flashcard Creation

    My memory is notoriously terrible, and I’ve devoted a lot of energy over the years to compensating for that fact. Way back in the day this meant getting to grips with a clunky application called SuperMemo, built around a fascinating spaced repetition algorithm that promised long-term knowledge retention. I later discovered the flashcard software Anki,…

  • 22 November 2023 · 7 min read

    How ChatGPT’s New “GPTs” Feature Can Help You Develop Software

    OpenAI’s Dev Day took place on November 6th and it’s fair to say there was a lot of hype leading up to the event. Nowhere was this more palpable than the hive of optimism that is the subreddit r/Singularity, which I am slightly ashamed to admit that I follow avidly. Confident predictions of an AGI…

  • 21 June 2023 · 7 min read

    Learn Español with the GPT-3.5 API

    I’ve been using ChatGPT on a daily basis ever since last December, but it was only the other day that I actually got round to having a play around with the OpenAI API for the first time. It was an interesting experience that culminated in the production of a useful little language-learning app, that I…

  • 28 March 2023 · 5 min read

    My First ChatGPT-Assisted App and the Future of Software Development

    ChatGPT is an absolutely incredible tool and if you’re not already using it, you should be. You really should. It doesn’t matter who you are, or what you do for a living – it’s so versatile that it can turn its hand to pretty much anything you want it to do. Among many other things,…

  • 8 December 2022 · 3 min read

    Anagramageddon – Fight for Territory and Find Anagrams as You Battle Against the Clock!

    I’ve created a new word game called Anagramageddon, played on a single computer by between two and four players. In a nutshell it involves users taking it in turns to (A) select a letter and (B) enter a word that can be formed from all of their letters. It’s a competitive game, and the time…

  • 4 November 2022 · 5 min read

    Using React to build a Wordle tracker

    Even if nobody else in the world played Wordle but me, I’m sure I’d still enjoy it well enough. However, there’s little doubting that one of the major appeals of the game is how easy it is to compare your own performance against others. It’s why the most common WhatsApp message sent between myself and…

  • 6

    22 August 2022 · 10 min read

    6 Talking Points from Pawnfork

    The other day I published my latest app – a little desktop-based number whose aim it is to make memorising chess openings as easy as falling off a log (this is apparently a real idiom). It’s called Pawnfork, and you can download it here. Of course, it’s not every day that I fire out a…

  • 12 August 2022 · 1 min read

    Optimise Your Chess Opening Play With the Help of My New App

    I have created a simple new desktop app for memorising chess openings, and called it Pawnfork. There’s not too much to say about the app from the perspective of a user that I don’t say in my introductory video, which you can find above, but of course there is plenty to say about the development…

  • 30 July 2022 · 5 min read

    Migrating a Spotify Listen-Logging App to AWS

    Welcome back, dear reader. It’s been a bloody long time since I “done you a post”, which is a shame not so much in a literary sense as a financial one: Bluehost absolutely rinsed me a few months back with the cost of renewing my web hosting contract, and my subsequent inactivity is making that…

  • 10 March 2022 · 7 min read

    A Catan Love Story; or, As My Miller Father Used To Remind Us Regularly Over the Dinner Table: No Pain, No Grain

    Old and wizened you must have grown since last I put fingertip to keyboard key, to persist my thoughts in the digital universe; like the great Dumbledore, siphoning off memories into his Pensieve. A quaint little article published all the way back in November 2021 was my last offering at the altar of Will May’s…

  • 26 November 2021 · 10 min read

    Soccer Simulation – Creating the Team Formation Graphics

    Three months ago I released a web app called Soccer Simulation, which you can find here. The app, which in and of itself took around four months in the building, was really the culmination of a lifetime interest in football simulation, which you can read about here. During the development of the app, I had…

  • 10 November 2021 · 7 min read

    Fun and Games with SQLAlchemy

    I’ve spent quite a bit of time over the past couple of days transforming the data access layer of one of my Flask applications from a purely psycopg2-based mess to an SQLAlchemy-based not-quite-such-a-mess, and I thought I’d share some thoughts on the process. Introduction As a former data analyst, my face has been permanently sootened…

  • U

    15 October 2021 · 1 min read

    Updates to Soccer Simulation

    This is just a short post to point out a couple of recent updates to the Soccer Simulation app, inspired by recent suggestions by users. Add custom club names It is now possible to replace club names used in the simulation with your own, custom club names. This feature was requested by a couple of…

  • H

    20 September 2021 · 5 min read

    Heroku and the Irreplicable Problem of the Sleeping Dyno

    I was befuddled to say the least, the first time I stumbled across the Sleeping Dyno. For rather than manifesting itself in reptilian form, as a terrible lizard in its dormancy, presumably mustering its energies for some cataclysmic rampage – a sight that would, of course, have provoked minimal befuddlement – the Sleeping Dyno is…

  • 13 August 2021 · 2 min read

    The Grand Unveiling of “Soccer Simulation”

    Good morning ladies and gentlemen! This is my first post from my new home of Singapore, where I am currently holed up for a period of two weeks in a “quarantine hotel”, with * only * my wife Kate for company. We’ve been fully locked down for four days now, and overall it’s been surprisingly…

  • 5 August 2021 · 13 min read

    A History of One Man’s Inexplicable Obsession with Football Simulation

    In preparation for the release of my latest project, a football league simulation built in Python and served as a web app via Flask and Heroku, I thought it would make for a purgative experience to step through the history of my interest in football simulation. For it truly is a long and jumbled…

  • B

    5 April 2021 · 4 min read

    Bargain Basement

    Good day, and welcome to my first ever blog post on Will May’s Journey to Educate Himself in Software Development. Today I want to discuss my most recent personal project – an e-commerce website built on top of a custom-built PHP MVC framework, complete with both a customer-facing shopping experience and a staff-facing content management…

WMWill May Learns How to Develop Software

A collection of long, rambling posts about my software projects.

GitHubLinkedInRSS

© Will May