My First Hackathon
In March, Le Wagon hosted their first ever Hackathon. Despite the fact that I’d been coding non-stop for 10 weeks and had just finished an unexpectedly intense Careers Week, I decided to take part. ‘Careers Week will be chilled’, the organiser had promised. ‘The Hackathon will be fun!’
So at 6pm on our last day as Le Wagon students, while our smart batch mates logged off Zoom for the last time and cracked open their Friday night beers, the keen beans among us settled in for another 48 hours at our desks. 🤓
There were about 100 alumni involved overall, split across 29 teams, which was an excellent turn out. The evening started with presentations from the three clients: Veeqo, Tray.io and Tenda. The companies presented their challenges for the Hackathon, providing both web development and data science problems for Le Wagon alumni to tackle.
Veeqo is a platform which allows online retailers to centralise their order and inventory management. Their web dev challenge was for an app which uses product dimensions to help product packers know which size parcel to use. Using the combination of the known width, height and length of all products in an order, the software should determine the most economical package solution. Their data science challenge involved using historical order data to determine targeted marketing campaigns, and it most definitely went over my junior web developer’s head…I’ll leave this to one of the data alumni to explain!
Tray.io is the leading general automation platform, enabling powerful automated workflows which connect different APIs together. There are over 500 connectors, and the software enables you to integrate your entire stack. This problem is that APIs change all the time and the communication of these changes is varied. The challenge presented by the client was for a dashboard which gathers information about API deprecations all in one place, providing alerts for changes before they are implemented. Their data challenge was for an integration strategy which algorithmically predicts which of the many SAAS products on the market are going to generate more interest and traffic.
Finally, Eztenda is a new online auction where bars can tender their listings deals and brands can bid on them. It’s like eBay for drinks deals, speeding up a process which is traditionally done in person. The challenge was to build the platform, enabling bars and brands to make these deals and sign contracts when they have been agreed.
The three companies all revealed their exciting prizes (a total of £2,000 cash plus merchandise/perks 😉🍸) and we split off into our teams to discuss our options.
I was in a team with my buddy from my final projects and someone who had graduated from the part-time bootcamp in September. We discussed our options and eventually decided on the third challenge, bearing in mind that we only had a day and a half to build the application and deciding to play to our new Ruby on Rails strengths. Our old teacher popped in to try and persuade us to choose one of the other projects, where we might have a better chance of winning (which suggested that everyone was going for the drinks app and the promise of free spritzers!), but we stuck to our guts and decided on Eztenda.
Next, there was a coding tournament. There had been one or two of these events during the bootcamp, but I’d been either working too late or too tired to join in on a Friday evening. I had no idea what to expect. The atmosphere in the zoom room was jovial, with Le Wagon teachers, alumni and students taking part. We had to solve challenges in Ruby (for web devs) or Python (for data scientists) in order to go through to the next round. It was quite intense to solve problems under time pressure with so many people watching you live code, but there was a friendly, non-competitive atmosphere. It was a really nice way to start the weekend, but I was most definitely ready for bed afterwards!
We logged back on at 9am on Saturday morning and were told how the weekend would play out. We had until 1pm on Sunday to build our product, so it was time to get cracking.
My teammates and I got straight down to it, sketching out the database of our app and set ourselves up to work collaboratively on GitHub. We divided the tasks and started coding. We were building a four model Ruby on Rails app, so I got working on the ListingDeals model. After a week off coding (Careers Week did not leave much time for personal projects or practice), I was surprised but relieved at how quickly it all came back. We didn’t hit too many stumbling blocks, and got pretty far in the first few hours. We kept checking in with each other to discuss our progress and worry about how much we had to do in such a short space of time, but we knew we could do it if we kept pushing on.
There was talk of another tournament mid-afternoon, but there was an almost unanimous decision among participants to skip this and use the time to hack instead. No rest for the wicked!
By mid afternoon, our teammate started working on the front end, and it started to feel like everything was coming together. A lot of the functionality was there, and we consulted our Trello board to decide what the next priorities would be. There was one issue which we kept going back and forth over, and which definitely wasted a lot of our time, but other than that we worked well collaboratively and just kept creating those pull requests.
At 6pm, after almost 9 hours at my desk, I decided to go for a walk around the block. The sun was shining and I could almost taste the gin and tonics that I would have been drinking if this was a normal weekend…
But it wasn’t a normal weekend, so I made a cup of tea and settled in for another few hours. By 8pm, we were at the level of tiredness where you can barely speak and type, let alone write coherent code. I spent half an hour on a front end fix which would usually take a fraction of that time. I’d create a branch and immediately forget what I had been going to do with it. It was surely time to get away from my laptop and get some rest, so I finished working on my branch and logged off for the evening.
Rumour has it that some of the other teams were working into the early hours, with one person making a pull request at 2am, but my teammates and I felt a lot better after a good night’s sleep. We had until 1pm to finish the website, and suddenly there were quite a few bugs in the code. We had complete functionality, but some of the validations on the forms weren’t working correctly. We worked through the issues together, making the relevant changes to the models to get our app working as before. It was really coming together, but we still wished we had another 24 hours to make it perfect. We would have liked to add photos to the site using Cloudinary, but we knew we didn’t have enough time for that. We also discussed deploying the site to Heroku at the last minute, but after several issues with it in the past (I spent four hours with a bug the day before demo day 😬), we didn’t want to risk it.
Our front end looked a lot like the prototype the client had provided, but we did wonder if we should have given it a more original look. The Le Wagon teachers were now offering free merch for the ‘most creative’ project, and we wondered if we should have gone for that, rather than trying to completely fit the brief. But we were happy with our product and didn’t want to make any drastic changes at the last minute.
We worked through lunch, leaving ourselves 5 minutes to practise the demonstration before the presentations started at 2pm. Talk about cutting it close to the wire..
Finally, we made it, and the demos began. The Veeqo projects went first, and there were some very high-quality solutions to what we had considered a challenging problem. The winning web development group integrated a very impressive 3D model so users can visualise the exact packing technique. When asked, they said they used Three.js to load a 3D JSON object model. It was incredible work and a much deserved win!
The Tray teams also provided some very complex solutions to the problem, using various APIs to demonstrate how this one dashboard can centralise the information. Again, excellent work all round.
9 teams had chosen the Eztenda challenge, so we were not expecting to win. Several of the apps looked very similar to ours, using the client’s prototype as a starting point. A couple of teams had made their apps mobile-first, one even using React for the front end (which the recent grads among us hadn’t even learned yet). The standout teams used external software like DocuSign and Adobe to create contracts for electronic signature, which particularly impressed the client. The winning team’s product combined this integration and a strong back end with a very attractive front end. With lots of images, it reminded us of the Mister Cocktail apps we built for our first ever Rails projects. It was a great website, and definitely deserved the prize. We hope they put those spritzers to good use!
With the prizes all awarded, the host thanked the guests and hackers for their participation and we logged out of Zoom for the last time. It was an expertly organised event (shoutout to Laura at Le Wagon for pulling off her first ever Hackathon so well!) and a lot of fun for all involved. It was great to meet old alumni and to spend one final weekend coding our socks off at the very end of the bootcamp before beginning the job hunt the next morning!