Problem: Academic publications are scattered around the internet. For
Computer Science, you have repositories such as DBLP and CrossRef - services
independently storing publication data that is either unique to them or present across
multiple repositories. Sometimes, a repository's data can be incorrect; sometimes, the data
can be outdated on one service yet updated on another. Some publication
repositories have different rules as to which publications they should include and
which they should not. This lack of any repository standardisation
can lead to difficulty in finding relevant and up-to-date publications,
requiring the researcher to go from site to site whilst browsing papers.
Solution: Publo is a TypeScript-based centralized publication aggregator that ethically collects and repairs data from various publication repositories across the internet (such as DBLP and CrossRef). It compares their data for differences and repairs the data based on what it heuristically believes to be the best version, storing it with PostgreSQL for access via the React website. The project maintains and queries a database containing over a million rows, hence there is a large focus on optimization. It acts as a central location for Computer Science publications.
Problem: The streaming platform Twitch began enforcing DMCA strikes sent by record
labels against all content containing copyrighted music. This included not only new content,
but old content that had been stored prior. This put both Twitch and their content creators
into an awkward position where the most viable solution (to avoid legal issues) was to delete
all past content indiscriminately – a solution that was of course not desired.
Solution: I created a program that accurately detects music being played in all previously created content on Twitch, storing the musical references using a MongoDB database. It then allows content creators to bulk delete all of their content containing music.
Problem: At the time of Vashtalk's development, Discord was quickly becoming one of the
fastest growing chatting applications in the world. However, there were several aspects where I
felt that the application was lacking.
Problem: The streaming platform Twitch has categories for viewing various games. However, each of these
categories is entirely generic. Regardless of the specification of the game, the
features available for each category on Twitch will be the same.
Solution: I enhanced Twitch’s functionality in this regard, picking the popular GTAV category (popular due to a custom modification known as "NoPixel") as the specific subject of improvement. I utilised Twitch’s API to create a REST endpoint cross-referencing active streams with various GTAV-specific data. This endpoint supplies a browser extension (created by myself) with the means to modify Twitch’s GTAV page to provide more useful data in a clear and practical manner.
Problem: When VaeBot was initially created, the (now) well-known chat application
Discord was still in its early stages. It lacked well-rounded bots that could make use of its API for
tasks that would improve each aspect of a Discord server. Most bots were for specific fields
such as music streaming or administration management and not many of them had much planning put
into their design.
Problem: The developers at Covéa Insurance wanted a system that could trace their CD (Continuous Delivery) builds
builds to the TFVC commits that went into them.
Solution: I developed a NodeJS and web-based service which utilized Octopus Deployment, TeamCity and TFVC to track each deployment of a service to the delivered build changes relevant to it. The service also displays the changes that will be going into the next deployment (which are necessary to review before the build is deployed).