What comes to your mind when I say ‘hackathon’? Atleast 24 to 48 hours to build your hack? You’re given an agenda (or atleast an idea) to build on? Because, that’s usually how a hackathon happens, right? What if I tell you that you have 4 hours to build your hack and given no idea about the technology to build it with? Sounds bogus? Illogical, even? Well, that was my first thought too.
On a fine Tuesday morning, Anurag, our Senior Technology Lead shares this exact idea with us. We sit there with puzzled faces trying very hard not to give away our absolute disbelief at this suggestion. The news was already out on the engineering Slack channel by Wednesday and before we knew it, the event was happening on Thursday!
Our only saving grace was that we were briefed about the importance of pair programming and test driven development. Then we were told about the technology we were going to use- nodejs, something about which my knowledge was pretty much null. How’s that for the icing on the cake?
6 teams. A pair per team. 1 mission. We were ready to declare war!
That very night, I sat at home in front of my PC which I’d been meaning to upgrade and sell off for a while now. I was conflicted about how I’d ace this event, what with zero knowledge about nodejs. Should I study the technology? Do I have enough time to get the basics right? Alas, the coveted prize would never be mine, I thought. I decided to upgrade and sell the PC instead. :D
It went like just another working day, but come 3 pm, it was time for a small presentation. Before we knew it, what began as any other day graduated to war zone by afternoon.
The agenda was explained -
a) A github app was supposed to be created using probot, nodejs
b) nock for testing gitHub API
c) coveralls to test code coverage
d) travis CI for build status
Using the above technology, 3 objectives were supposed to be completed. The end goal was simple. The team which submits their working source code first would win.
For some reason, I was now psyched!
The event began with everyone being asked to submit public URLs of the gitHub repo containing the app source code. To give us a kickstart, a boilerplate code was provided. My teammate, Akash (good friend, backend coding Ninja and proud owner of a KTM Duke 390) and I started researching the mentioned technology.
We hit multiple snags during setting up of the local system. We even started working on the same thing, then stopped to distribute work properly. Akash took care of the code coverage and build status using Travis. Anurag was a great mentor when we were stuck with the setup.
After a few initial glitches, it was not as much of a disaster as I’d imagined it would be. We even stopped to swap or re-assign some work among ourselves to make sure to build a working app. This kind of decision making on the fly to maximize efficiency was the ultimate thrilling test of our skills and instincts. And guess what? In between all the nervousness and free flowing pizza, we also somehow managed to submit the source code public URL just in time!
As the event graduated, there were 4 surviving teams out of 9. This was a make or break moment. 4 hours, 3 objectives, 9 teams and 1 working GitHub app later, our team was declared the winner! A sweet amazon gift card was a cherry on top.
This hackathon has been an interesting experience. It had all the flavours of a hackathon in a miniature time frame, which not only doubled the stress, but the fun too. It also made me realise that sometimes not knowing something can prove to be a great learning curve. Instead of sticking to what you already know, one should learn to face it head on.
Maybe that’s what Anurag had in mind when he came up with this event. To throw us into the deep end and see how we emerge.