Hack week BTS: a jukebox and some SnapSongs
Aashiq and Patrick24 Feb, 2021
At SnapScan, we believe that having enthusiastic employees who are excited about the future of the SnapScan brand, workspace, and products leads to happy employees and a healthy company. This is why we think that it’s important to promote employee-led initiatives. Our last hack week was a great way to draw up a list of interesting, novel ways to utilise SnapScan, as well as ideas that got us excited at a time of year when we were starting to run out of steam.
Being given the space and time during office hours to apply our skills to a task with no immediate business value was a plus. We wanted to take advantage of the opportunity, and end the year with something light-hearted and fun but that would also add to our company culture and encourage engagement. You might not have heard, but 2020 was pretty hectic.
Building a jukebox was a long-standing idea that kept sneaking its way into conversations throughout the course of 2020. What ultimately inspired us to build one for hack week can be traced back to a few inside jokes.
First off, who are we?
Our team – com.fireid.snapsongs (another inside joke) – was made up of Aashiq and Logan, who are full-stack engineers in the core engineering team, as well as Patrick, our tech lead. Logan, in his free time, enjoys calling out tech corporations for their lack of competence, all from the comfort of Tashas. Patrick is a bagel & beer connoisseur who enjoys sim racing on his rig, while trying his best to be responsible enough to take care of a cactus. Lastly, Aashiq likes practising the piano and cultivating gourmet mushroom cultures.
Building a jukebox
For this project, we wanted to create a jukebox with 2 goals in mind:
1) Leverage our existing technology to create jukebox software which is able to receive payments like a SnapScan merchant, and queue songs accordingly.
2) Allow the software’s list of music to be dynamic, so that the playlist can be updated with new music without needing additional development.
We decided to explore this idea. We started with a remote call where we evaluated and weighed up different approaches, and then came up with the following solution.
Our solution consisted of 3 components:
- The app itself (which we called ‘SnapSongs’) was built using Kotlin, is run on Android, and speaks to Spotify App Remote Library.
- A Firebase realtime database.
- A tiny backend service to receive payment webhooks from SnapScan, written in Python.
The interaction between these components, so that a song plays after a SnapScan payment, is illustrated in the following diagram:
Unfortunately, the current landscape has prevented us from getting together to build an awesome frame (with way too many LED lights and massive speakers). However, as soon as it’s safe for us to do so, we will. Pictures to follow!
This little project was a fun experience for us because it allowed us to try out new concepts, learn a new programming language, and add a shiny new toy to our collection at the office. We have very diverse music tastes at SnapScan and having a jukebox that encourages the team to share their preferences in a fun and collaborative way is going to be awesome. As a neat little bonus, the jukebox’s SnapScan payments can be linked to a charity, so whenever the song is changed, we’re also making a donation to a worthy cause.
2020 has been a tough year worldwide and has left many of us feeling overwhelmed and flustered – whether it be from personal stress, changes in priorities, or the sudden shift to having to adapt to a completely different work environment. Now, more than ever, people are starting to appreciate a healthy work-life balance and hack week spoke volumes to this idea. It allowed us to take a break from our existing projects, and felt like a smooth and natural way to ease out of the year and into a well-deserved break. It is certainly something we look forward to doing again, and we only hope to get more participation from the various teams around SnapScan.
Behind the scenes of SnapScan’s hack week
Give your engineering team (and company) a boost with a hack week.
Hack week BTS: a little gratitude goes a long way
If you had a week to make anything you wanted, what would you build? For...
Stellenbucks: kickstarting a community economy
SnapScan worked with the Visit Stellenbosch team to create Stellenbucks.