The 256th day of each year marks Day of the Programmer and this year it fell on Saturday 12th September. We asked our engineers to share their favourite open source projects with us.

As a rule, we weren’t allowed to choose Snowplow; we already know that would be everyone’s top choice!

Who: Ada - Engineering Intern

What: dmw

Why: “dmw is a window manager written in C. It is configurable through editing the source code, so using and customizing it is a learning experience. And also, it was the first open source project I forked.”

Who: Paul B - Data Engineer

What: rollup

Why: “I’ve recently been updating how we build our JavaScript based trackers and rollup has made this a breeze. The plugin ecosystem is great and rollup has let me easily modernise the libraries with multiple build formats, TypeScript support and Tree-Shaking support. What might have seemed like a daunting task at first, rollup has made it painless. It’s a great option for anyone that is building JavaScript or TypeScript based libraries.”

Who: Joao - Site Reliability Engineer

What: Jenkins

Why: “This is the project that made continuous integration and deployment go mainstream. I haven’t used it in almost 10 years, but is where the infrastructure automation bug started for me.”

What: Docker

Why: “Docker makes life so much easier when deploying software as it can be bundled as if in a box and no need to worry what is inside. As soon as I got my hands on it, 2011 for 0.9 buggiest version ever, I couldn’t stop using it.”

What: terraform/consul/vault/nomad

Why: “It provides so much cool functionality to run infrastructure as code, which allows big degrees of automation, is like being on the shoulders of giants.“

Who: Steve - VP Engineering

What: Drupal

Why: “For me the best (and for many, the worst) thing about Drupal is that it’s so easy for anyone to get started with. The hook and module architecture made it simple to make your first change. I’d like to adopt that premise where we can at Snowplow and make it more “pluggable”. There could/should be parts of the Snowplow pipeline you can drop in a few lines of code against a well-defined, testable interface. I believe it’s a key part of getting people started and bringing them into the community before they’ve learned the ins and outs of the full pipeline. “

Who: Colm - Data Engineer

What:Police Brutality

Why: “My current favourite OS project is the 2020 police brutality project. It’s a project which collects evidence of police brutality, documents it along with information about the incident being documented, and hosts an API to make it all more accessible and available.. The main reason I like it is because it’s important. It feels as though narratives are bound to be twisted and manipulated for political reasons, so it’s important to have a project which aims to host and document only the evidence of what has happened. It’s also a project with a low technical barrier to entry - people can contribute by submitting evidence, organising the information or metadata, hosting a backup of the data itself, contributing code, or building their own service to allow people to access the information itself.”

Who: Costas - Data Engineer

What: GNOME

Why: It has been powering my desktop for many years now, offering a highly functional, unobtrusive, beautiful computing experience. I love how it gets out of the way and lets me focus on my work, just like every desktop environment should do.

What: Signal

Why: Signal Messenger is a close second and just needs a mention!

Who: Nick - Site Reliability Engineer

What: tfenv

Why: At Snowplow we heavily leverage the HashiCorp stack (also brilliant open source projects!) and after a good couple thousand lines of Terraform, surprise surprise, not everything is running on the same version. Using tfenv makes managing and switching between multiple Terraform versions on my machine a doddle. Could I have hacked together some bash to do the same thing? Sure. But sometimes the best tools are the ones you don’t notice because they just work. All the potential headaches and time saved by using tfenv make it a solid personal fav.

What are some of your favourite open source projects?