Projects!

I've done a lot of different projects over the years. Here are some fun ones!

GitHub Repo Organizer

A screenshot of the GitHub Repo Organizer web page

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

A screenshot of the COVID-19 Growth Rate Display web page

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

A screenshot of the Meyda documentation homepage

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 Meyda

Hacktoberfest 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.