Tech Blog
Photo of Barnaby

Welcome!

My name's Barnaby Collins, and I'm a software engineer currently working at Switch2Zero, a carbon offsetting and reduction startup based in the UK. In my current role, I work as a full-stack engineer managing a complex and modern tech stack built on AWS Lambda and TypeScript. I was the first engineer at Switch2Zero, but the team has now grown to five people. My work covers the complete platform, from infrastructure and security to styling and UX, as well as supporting the other engineers on code standards and working on developer experience when not building new features.

Outside my work, I enjoy all kinds of music, and take an interest in diverse disciplines from music production and sound synthesis to instrument maintenance and orchestral arranging. I also am involved in three local charities, focussed around sustainability and music making.

More information about me can be found below, along with a form in case you are interested in getting in touch.

Skills & Interests

Disciplines
Web Development Music Tech Electronics Repair Events Logistics Live Broadcasting Arts Administration Computer Engineering
Web Technologies
TypeScript Next.js Serverless NestJS React Bootstrap Web Audio Sass Vite HTML5 JavaScript CSS Three.js SEO
Services
HubSpot Sentry Stripe Google Drive API Shopify Rutter Google Analytics
Other Technologies
Git Terraform AWS GitLab CI/CD GitHub Actions PostgreSQL LaTeX Python Faust Unity C# C/C++ Solidity
Live Sound
Behringer X32 Pioneer DJ Soundcraft Signature A&H Zed DiGiCo SD-Range Denon DJ Behringer Xenyx Roland V-Mixer
Software
Visual Studio Code Open Broadcasting Software (OBS) GitKraken rekordbox Ableton Live MuseScore pgAdmin DaVinci Resolve GIMP ffmpeg iZotope Elements Suite Audacity HitFilm Blender IntelliJ IDEA Thunderbird Microsoft Office
Music
Bass Clarinet Clarinet DJ Akai EWI Novation Circuit Drums Orchestral Arrangement
Other Interests
Repair & DIY Sustainability & Ethics Sport Politics Cooking Music Production Fiction Electronics Design & Engineering Gaming

Projects

Programming

I volunteer at a local repair charity in my spare time, and was asked about the best way setting up a pair of TVs to display slideshows in the shop window and inside the shop itself. I suggested Raspberry Pis for this, and chose to set up a lightweight static web application that fetches images from a Google Drive folder to facilitate ease of updating. All options are set via URL query parameters, so the application can be reused by anyone, for any Google Drive folder.

Once the web app was ready, I configured the two Raspberry Pis to open the application on in a fullscreen browser when they turned on. The TVs now run on a timer inside the shop and have been very reliable so far. I also plan to provide documentation for the web app, and write a blog post explaining how I set up the Raspberry Pis. The application itself can be seen at window.barnabycollins.com.

I originally developed this script for Rewind Gaming as an in-house solution to reduce broadcasters' workload by allowing a remote moderator to keep on-screen information up to date. It runs inside an HTML overlay on the broadcast host computer and automatically updates broadcast graphics with data from the Google Sheets API.

It was open-sourced upon Rewind Gaming's closure and is now in regular use by a range of entities across the Rocket League scene - notably including popular streamer JohnnyBoi_i, who uses it as a backend for all tournament streams. The idea of using Google Sheets as a remote data source also sparked a number of similar projects from others - such as Grandy's SheetsIO.

During my university course, I was part of a 6-person group working on a project for the local foodbank. An existing inventory management system for their warehouse had been designed in Excel VBA by a volunteer, but this had a wide range of shortcomings including lack of scalability, poor user experience and extreme difficulty of maintenance.

We designed a web application to replace it, named TrayMaster and written in React TypeScript. To support development, we used an agile development methodology with JetBrains WebStorm as our chosen IDE, GitHub for source control, Heroku for hosting and Firebase for storage.

We all worked on the full stack, but my particular focus was on designing the UI to be intuitive, functional, responsive, clean, flexible, consistent and attractive. This was a particular challenge as the program was to be used as a Progressive Web App by untrained volunteers on dated Android tablets and the warehouse's structure varied significantly between different areas.

Events

Taking place in summer 2018, the Colosseum was Rewind Gaming's first major tournament. On the team preparing for the event, I initially took responsibility for motion graphics and took charge of broadcasting alongside our other broadcaster, bntsw., who I had previously trained.

I designed all moving graphics on the stream's overlay, including the transitions and occasional popups - predominantly animating static work from our graphic designers to produce attractive and professional content to raise the broadcast's production value. A series of these transitions can be found in the minute following this point in the recorded livestream of the finals, which I also produced on the day.

We had tasked a member of the development team with writing a broadcast backend in NodeCG, but did not hear from him after some time, so I had the idea of using Google Sheets as a database and connecting with its API to update the overlays. Due to the short notice, I had to write the script and integrate it into our HTML overlays within a few days before they were needed. This was the first version of the Updater.js script mentioned above, worked flawlessly, and paved the way for a range of other organisations who use the same methods to this day.

Following a successful campaign involving a fully-online livestream in 2020, we at DDJS once again teamed up with DJ societies around the country to raise money for the Last Night a DJ Saved My Life foundation the following year. This time, we took over the bar in Durham Students' Union and had performances running for 8 hours between 15:00 and 23:00. The event was streamed online in real time and a range of people also came into the bar to listen.

We wanted to maximise production value, so there was a large amount of technical work to be done in setting up the event. As well as a standard DJ performance setup with a Pioneer XDJ-RR, two main speakers, a booth speaker and booth microphone, we took control of the bar's AV system by outputting our live sound to the PA and setting up attractive visuals to go on the projector and TVs around the room. Other equipment included a Sony α6400 DSLR paired with a Blackmagic Design ATEM Mini for video capture, and a second external mixer sending audio to various ancillary outputs like the bar speakers and the booth monitor as well as to the stream laptop with its inbuilt audio interface.

I also designed and set up the HTML-based overlays containing a live feed from the stream chat, Just Giving donation widgets, our DDJS name tag widget, a custom transition and subtle background animations for the start and end screens. The stream was run on my laptop, and a full-screen live feed of the stream output was displayed so that performers could keep up to date on donations and chat messages. The event ended up reaching its goal with £200.00 raised, and all money generated going to fund children's projects across the world.

Contact

I haven't included much information on this page for privacy reasons. If you're after a CV or more information, or you just want to chat, please don't hesitate to get in touch using the form below or send me a connection request on LinkedIn!