Irish General Election 2024 Candidate viewer
I built a Datasette app to view the candidates for the Irish General Election in 2024. I wanted to be able to see on a broader scale how many candidates each party was running, and in which constituencies. The project involved quite a lot of data management, as data from the various party websites, Wikipedia, and the election commissioner websites was often misaligned - even candidate names in some cases.
I continue to be a big fan of Ireland's voting system, where proportional representation is ensured by rank choice voting. It has some fun implications - including that if there's a candidate in your consituency you absolutely do not want, it's better to rank them last than to not rank them at all. You can also always vote your conscience, even when it aligns with a candidate with no chance in the election, and your vote will still be counted for the candidate you rank highest who is elected.
You can read more about the voting system (though when I wanted to implement a counting simulator, I found that specific details around the counting were somewhat lacking) on the website of An Coimisiún Toghcháin (The Electoral Commission).
I have used Datasette for a number of projects. When combined with the data focused shell nushell, which understands http requests, parsing, filtering, processing, and saving directly to sqlite, it makes me feel like I'm living in the future of software development as described in the final chapter of Gregory Brown's 2016 book Programming Beyond Practices. The chapter presents a vision of programming with visual language, open data, the metaverse, an even an AI assistant. It's eye-opening reading in 2025, when AI assistants are marketed to us constantly and we've lost all of the hopes and expectations for their efficacy that we had in 2016.
Have a look at what I built here.
GitHub Repo Organizer

I started feeling overwhelmed with the number of GitHub repos I have. I didn't know which repos were important, which ones were still active, which ones needed archiving or deleting, which ones needed descriptions - and manually figuring this out by going through them one by one in the GitHub UI seemed daunting.
At Spotify, we had a tool called backstage, where we could browse all of our websites, services, data endpoints, pipelines, app features, etc (collectively called "components") in the nice DataGrid UI component from DevExpress. We had columns for each attribute of the components, could filter, sort, and display relevant info. I wanted to be able to browse my GitHub components like that. Luckily, the @devexpress/dx-react-grid component is open source, so I was able to get something going!
I built GitHub Repo Organizer in React, using dx-react-grid and OctoKit. Using the GitHub GraphQL API, I was able to pull in many attributes of each repository, and dynamically display different columns in the UI, so that I can filter on criteria. For example, I wanted to find all the repos without a description or tags, so that I was able to one by one go through each of them and add them one. I can sort my repos by how many open pull requests each has, so that if I've lost a notification in the GitHub UI, pull requests (in theory) don't fall through the cracks.
There are definitely more columns I would like to add: whether or not Dependabot is enabled, whether or not gh-pages is enabled, what CI provider (if any) is configured, who (or how many) have contributed to the repo. I would also like to be able to configure rules like "the oldest open pull request on each repo must not be older than X", or "all repos on my org must have a code of conduct", and run a check every week to alert me if any of the rules are broken.
Check out GitHub Repo Organizer!
COVID-19 Growth Rate Display

In March 2020, when the world was going into lockdown, believe it or not, it used to be difficult to get information about the current COVID 19 case rates - and in particular, the growth rate. I had watched an excellent YouTube video by 3Blue1Brown about modelling virus growth rates, and wanted to monitor the R number representing the day-on-day growth of virus infections, rather than the absolute number of infections (or deaths) per day.
I built this viewer quickly using react, the Ant Design component library, @nivo/line for visualizations, and COVID-19 data from pomber.
Check out COVID-19 Growth Rate Display
Meyda

What if you could extract audio features in real time in the browser? This is the question my classmates and I sought to answer with Meyda, an implementation of many industry standard audio feature extraction algorithms in Javascript, that integrates with Web Audio, and runs fast enough to get real time audio features on even mobile browsers. Meyda has been used in audio visualizations, voice recognition, and nearly 200 open source projects. It has over 800 stars on GitHub. Meyda is a long-running project that began at Goldsmiths University in 2014 with Nevo Segal and Jakub Fiala. In 2015, we presented Meyda as part of a paper published in the proceedings of the first Web Audio Conference at IRCAM Paris.
Check out MeydaHacktoberfest Streams
I've been giving technical talks since university, in 2013 or so, on a variety of topics, from Git for students, to How Node JS can be leveraged in live musical performance. I've also spoken at hackathons and meetups as a representative of Spotify for Developers. One interview was featured on BBC One in a documentary Invented In... London, doing a segment about hackathons in the UK.
During the COVID-19 pandemic, developer meetups turned to Twitch! During Hacktoberfest in particular, the developer relations industry turned to live streams and video content as a means of developer outreach and engagement. I spoke on several streams about Meyda, an open source project I've worked on for years. My goal was to give prospective new open source contributors an insight into the realities of long term open source maintainership.
The streams were recorded, so here they are!
YouTube embeds track you.
YouTube embeds track you.