A few days ago our St. Petersburg and Munich offices together held an exciting Hackathon. Dozens of teams put their regular projects aside and devoted 48 hours to designing and coding their own new product.
Hackathons, also called hack days, hackfests or codefests, have been around for a while. We’ve done something similar on a single-product scale from time to time, for example TeamHackCity last December or the so-called Eating our own dog food with RubyMine earlier this year, but this hackathon was a first company-wide event for us at JetBrains.
We decided to open the code fest to company employees as well as their friends, which was received very positively by all. A dedicated Intranet page was created for anyone interested to put forth their ideas and concepts and find potential partners. Finally, the contest kicked off, our regular work processes slowed down and the participants began working on their projects. Heaps of code started being uploaded to GitHub as soon the repository was open for developers.
We took a number of steps to help the contestants keep up their focus and enthusiasm. Hot breakfasts, lunches and dinners were served for hackathonians’ refuel, so that they could share their progress, challenges encountered and solutions found. A Red Bull booth opened at the right moment as well (some say that no hackathon is complete without one). We also invited a professional masseur to help participants relax and replenish their strength.
The event effectively combined both the competitive spirit and the collaborative approach. As a battle of wits, it challenged people to win and gain recognition (and a piece of the prize purse). At the same time, it allowed developers from different product teams to work together, helping them get to know each other and facilitating the spreading of ideas across the company. Some Müncheners took a special trip to St. Petersburg just to collaborate for the hackathon.
Here are some essential numbers:
- Over 70 people took part in the contest itself.
- There were 3-4 members per team on average, ranging from mavericks to quite large ones.
- 22 projects made it to the voting stage.
- The presentation featuring all projects was attended by over 150 people.
- The prize purse totalled $10,000, divided among the top 3 projects.
Winners were chosen by popular voting. Every JetBrains employee and participant had three votes to give out, excluding their own project of course.
Maxim Shafirov, JetBrains Co-CEO, opened the presentation. After thanking all participants and wishing them luck in the voting round, he said: “I’m impressed by what I saw and by everything you guys have accomplished in just 48 hours. I’m definitely taking part myself next time!” He added: “I believe this is one of the best things that have happened to our company this year — and you all know it’s been a very positive one. This kind of excitement will be difficult to repeat or surpass, but I know we all will try our best.”
And now, for the juicy part — the winning projects!
But first, some competitive ideas that did NOT win this time:
- IntelliJ Code Golf, a plugin for IntelliJ IDEA designed to run competitions testing one's knowledge of the IDE's features. It downloads tasks from a server, automatically checks the solution and upload results to the server.
- YouTrack Offline, an IntelliJ IDEA plugin allowing you to access your YouTrack issues and save them locally.
- Git Log, a UI for git that allows you to rebase by drag-and-drop, rename, reorder and squash commits instantly.
- Collaborative Code Editing, an IntelliJ plugin that brings collaborative editing capabilities to IntelliJ IDEA and other JetBrains IDEs.
- Picaroon, a plug-in for Visual Studio that calculates certain metrics associated with user productivity. There is also a link from the plug-in to the website where you can compare your results with others.
- dExodus, an Exodus-based distributed database with http+json client api.
- JetFuscator, a .NET obfuscator for public/internal API.
- Embeditor, a plugin that embeds vim (emacs, etc.) editor into the IDE editor and provides native editing abilities, at the same time allowing you to use IntelliJ completion/resolve.
- JetBrains Wave, a productivity tracker & social network for IntelliJ-based product users.
Third place was shared by two projects. One of them, Feature Suggester by Alexander Podkhalyuzin, was inspired by the observation that even experienced users of IntelliJ IDEA don’t use all of its capabilities. Many times, something you do repeatedly and manually is actually automated and has a shortcut in in the IDE. Acting on this simple fact, Alexander created a plugin for IntelliJ IDEA that tracks some typical user actions and suggests ways to streamline and optimize them. This plugin is expected to become a real helper for novice users of the IDE as well as instructors, trainers and students. And since the pool of suggestions is growing quickly, even experienced coders will be able to benefit from Feature Suggester — and to offer their own additions:
The plugin is available from the plugin repository for IntelliJ IDEA 12.1.3 or IntelliJ IDEA 13 EAP.
The other finalist who shared third place was Vassily Kudryashov with his project Sovietoons, aimed at those who nurture a nostalgia for Soviet animated cartoons. His website lets you find your favorite cartoons from the Soviet era and to discover lesser-known ones from a variety of Soviet directors and artists. The project includes filmographies for many animators, a comprehensive list of animation studios and their creations, as well as a list of animation techniques.
The second prize went to Book’n’Meet, created by Ann Oreshnikova, Antonina Vesna, Stas Kurilov, Andrei Krotov and Alexey Kireev. They noticed that JetBrains offices have many conference rooms that always stay busy hosting regular stand-up meetings and teleconferences for geographically dispersed teams. Quite a bit of confusion results as different teams vie for using certain rooms at certain times, or to find a vacant room for their meeting. Enter Book'n'Мeet: an application for tablet PCs placed next to each conference room and serving as information displays. The screen shows the status of the room (Vacant / In Use), how much longer it will stay that way, who’s meeting inside and why, and the room’s timetable for today. If the room is vacant, it can be booked on the spot. If it’s in use, the app helps you find the nearest vacant room and book it, or book another a future time spot for this room.
The real shocker was the winning project, one that really stood out from its competitors. It both looked and sounded different — literally.
A team of eight, including Dmitry Ivanov, Sergey Baltiysky, Leonid Stryuk, Artyom Bukhonov, Nikita Raba, Sergey Coox, Ivan Serdyuk and Denis Korneev, created an original musical instrument called Ideafone. Based on tubular bells, it is made of gas pipes and managed by an automated system powered by Arduino. It includes a web server and a client for operating the instrument (a web app with black and white keys familiar to musicians).
A picture is worth a thousand words, and a video many more, so here’s one of Ideafone in action:
The winners did it all: enjoyed the creative process, snatched the main prize and gained the admiration of their peers. Now they are also proud that their oversized mechanism will perform a useful function in the development process by melodically summoning team members to stand-up meetings.
The winners also got a trophy with their project name engraved on it. It will roll over to the winner of our next hackathon:
Still euphoric about this event, we are all looking forward to the next one. Until then, we have to get back to improving our existing products for you