Like most well-run engineering organizations, ShopKeep regularly has hackathons. At ShopKeep our hackathons are referred to as CodeSmashes, and we have them three to four times a year. Due to some of the idiosyncrasies of developer life at ShopKeep, our CodeSmash follows a particular cadence that fits into the structure of our organization.
We have fewer than 100 people in product and engineering, so everyone knows each other, but we are split between two offices – New York City and Belfast, Northern Ireland – plus we have a few folks who work remote. The five hour time difference between Belfast and New York requires some creative scheduling to ensure that everyone can participate, share in all the fun, and attend our kick-off and closing ceremonies without having to stay late or come in early.
If we were a larger organization we might have each office run their own hackathons with their own timelines, but that wouldn’t reflect how we typically work here. When doing sprint work, we have teams that have developers working together from each office and remotely, which allows those teams to parallelize work in ways that people in the same time zone can’t. It is a beautiful thing to come to work in the morning in NYC to find your teammates in Belfast have had five hours to review your previous day’s PRs and have produced their own PRs for you to review in turn. We want our CodeSmash teams to have access to that same benefit of working staggered hours with teammates if they wish.
And of course, it’s not a good hackathon unless we make sure people have plenty of food, music, and prizes.
There are four main ceremonies during a CodeSmash. All ceremonies take place in our common areas and are broadcast on a video conference so that we can all take part. All of product and engineering take part but we also get participation from other parts of the company. Our specific cadence provides both offices about 1.5 days to work on their CodeSmash projects.
CodeSmash Kick-Off – Wednesday 4:00 PM GMT (11:00 AM EST) – The ground rules for the CodeSmash are laid out. The only true rule for a CodeSmash is that production outages take precedence. Other than that, all sprint work is supposed to stop and only CodeSmash projects should be worked on. The mid-day start is timed so the Belfast-based teams can get an early start on their projects, the cross-region teams can huddle up and make a plan, and the NYC-based teams can spend the day working. The Belfast-based developers get extra working time on the back end of CodeSmash to make sure everything is fair.
Retro Arcade Competition – Thursday 4:00 PM GMT (11:00 AM EST) – Everyone competes to see who has the best video game skills. We have played games like pac-man, tapper, and space invaders. Prizes are awarded for the highest score in each office – the prizes are always ridiculous. Check out the pictures of our latest winners, when we played Frogger.
Cage Match – Friday 3:00 PM GMT (10:00 AM EST) – All teams are encouraged to give a five minute presentation to show off what they’ve accomplished. Presentations have ranged from the very simple and practical of “here it is, check it out” to something so over the top that P.T. Barnum would be proud. Audiences are regularly wow’d by what was accomplished. Often times presentations are so over-the-top funny that we are left in in tears. Projects are grouped in categories (we will make future blog post about the CodeSmash categories) and each category has a winner. Following the last presentation, everyone votes for the winners via a Google form.
Awards Ceremony – Friday 5:00 PM GMT (12:00 PM EST) – The winners for each category are announced and honored. The award ceremony is a great way to end our CodeSmash and celebrate as a team.
After the CodeSmash is over, any project that wasn’t ready for production is discussed to see if it is something that should be quickly prioritized into sprint work for completion. It is incredible the amount of value that we’ve unlocked for our small business merchants through just 1.5 days worth of effort.