One of the most anticipated engineering traditions at Swift is our bi-yearly three-day hackathon event. In the weeks leading up to the hackathon, we open a hackathon Slack channel so we can start building excitement, sharing ideas and lobbying for team members. Everyone is welcome and Swifters can either be part of a hack team or sign up to do an individual hack.
We also create a hackathon Confluence page for sharing logistics and rules (there aren’t many). We shift our meetings to different days to free up time. Engineering leadership publishes prize categories and fun-loving Swifters who aren’t hacking order some pretty awesome prizes. Swifters are free to do anything Swift related. Some Swifters use the hackathon as a learning opportunity — doing something completely different from their day job — while others spend time tackling that low-priority task they never seem to have time for otherwise.
Here’s a look at what happened during our most recent hackathon:
Day One starts bright and early (for engineers) with a hackathon entry meeting. Optimism abounds! 27 hacks are pitched, last minute pleas for team members are made and then the hacking starts. Some of the ideas are altruistic: “Grafana dashboard tracking our AWS spending in real time”; some are practical “A heads up display for drive testing“; some are theoretical “Error model that sits in front of ME pseudorange playback for Starling Analysis”; some are cool new features “Add attitude to the Piksi console” and some are just plain fun: “A bicycle-powered shake table for vibration testing”!
Teams are engaged, energy is high and engineers quickly get into the zone. The hackathon Slack channel gets a couple of versions of “hello world”:
Some teams spend the day "requirements gathering" and some read up on their chosen technology. One team finds that their desired hack already exists once they read the manual on the SDK they wanted to use. The “bicycle-powered shake table” team leaves to work off-site at a team member’s house where they’ll have access to real power tools. The lunch crowd is hacking and eating, eating and hacking.
As it gets later and later, the team is a tiny bit more subdued. Asked about the progress, Swift hackers are a little more cautious:
"It builds. It doesn't do anything, but it builds." Seth
"It's all there. We just have to do the math part." Yizhe
"All the individual pieces look like they should work. Now they just need to be tied together." Josh S.
Pizza arrives and the teams finish out Day One over pizza and beer.
Teams are spread out over the office, with the comfy couches being prime real estate.
Teams are alternating between despair and optimism:
“Oh man, I should have recruited a team.” Seth
“I’ll get something, but I don’t think I’ll hit my stretch goal.” Josh K
“It’s working! Not well, but it’s working” Jared*
"I've got lots of data and charts, but the UI needs work!" Sara
"My dashboards aren't working, because I found a Grafana bug." Eliana
“The math is working. The code isn’t working.” Yizhe"
Teams that have UI components to their hack - are looking at screens that are functional but not very pretty:
Teams are moving beyond the first level of problems to the second.
“My FFT isn’t working because my grid points are nonlinear.” Denis
Hackers are moving fast and furious:
"I feel like I’m in a SpeedRunners game … got to keep moving. I’ll worry about the nitty, gritty documentation after the fact.” Acer
At dinner, no one is drinking alcohol. Caffeine is a different story. Some teams have got something working, but not necessarily all they were aiming for:
“It’s alive, but …” Martin
Eric, the hacker working on bringing “Error model that sits in front of ME pseudorange playback for Starling Analysis” can’t get Python to do what he needs to do. He switches to Haskell and begins to make progress.
The day closes with a video from the bike powered vibration team, showing a moving table - but the bike isn’t in the frame.
The mood is optimistic and hacks are starting to work. Front-end work is getting better and better.
The early birds grab the comfy chairs and Swifters seek help from each other, to get over the final hacker hurdles. Our Australia office has provided Tim Tams, so we have some sugar to go with our caffeine. A couple of “single” hackers have joined teams.
The bicycle-powered team shows up with their table in pieces - they had to fit it in a compact car to bring it in the office. They start to reassemble it and debate their presentation technique. And where should they put it? They decide demoing it as both an inertial vibration table and drink mixer would be appropriate. And of course, it belongs in the kitchen.
The prizes arrive and they get wrapped in Swift orange. Excitement builds.
We have a nice break for lunch—energy is high; many hacks are working, but not all of them.
As we get closer and closer to the hackathon sprint exit, you can see the intensity increase! Hands are furiously typing and teams are holed up in conference rooms. Murphy is alive too.
Yizhe tells me, “The code is working, the math is working, but the network is down!”
At 4:00 p.m., we shoo everyone into our break room for the hackathon exit. Amazingly enough, we still have 25 hacks to demo! We go around the room and each team has 3 minutes to present their hack. Some teams have presentations to go with their demos. It’s impressive the amount of innovation that can happen in three days!
The team has found ways to speed up our CI, save our AWS costs, add some cool new features and further delight our customers. The final hack demoed is the bicycle-powered shake table - which vibrates our Duro Inertial product nicely and also creates the perfect shaken (not stirred) cocktail!
The team then votes on the best hacks, adjourns to happy hour, where prizes are awarded and we partake in cocktails, shaken not stirred, and celebrate a hackathon well done. Hackathons are just one of the many perks of being a Swifter - we’re hiring, come join us!