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

Category

Python

20 articles · All categories

  • 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…

  • 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…

  • 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…

  • 10 January 2023 · 8 min read

    My 2022 in Retrospect – A Python Analysis

    This article is a bit different to most of the other ones on this blog, as it focuses on data analysis rather than software development – making it my first analysis article since International Football Results Analysis, way back in June 2021. Today I’m not analysing football data, however; instead, I’m analysing my own diary.…

  • 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…

  • 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…

  • 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…

  • I

    2 June 2021 · 18 min read

    International Football Results Analysis

    Over the past month and a half I’ve spent my personal project time almost exclusively on what I’ve dubbed the “Soccer Simulation” project, which in a sentence could be summarised as “building out a Flask front end for a football league simulation I built using Python last year”. A true labour of love, this piece…

WMWill May Learns How to Develop Software

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

GitHubLinkedInRSS

© Will May