JetBrains 6th Annual Hackathon: Shiftius Altius Ctrlius
“Don’t put a limit on anything. The more you dream, the further you get.” — Michael Phelps, winner of 23 Olympic gold medals
Faster. Higher. Stronger.
The stage was set for the event of the year; the coveted JetBrains hackathon.
The rules were very simple:
- The Hackathon starts on Wednesday, June 27, at noon sharp CEST and runs for 48 hours.
- The last commit is allowed no later than Friday, June 29 noon CEST. Presentations must be provided to the Org.Committee by this time as well.
- 5-minute presentations will start 1 hour later, at 13:00 CEST on the same Friday.
- Everyone at JetBrains can cast votes for the projects they loved.
- Winners get prizes.
Facilitated by a wiki page, ideas and concepts could be put forth, and potential partners found. After the date announcement, in the weeks leading up to the event, like-minded people eager to compete and bring to life their burning ideas formed the teams they would need to make this possible.
54 project ideas were entered from 125 participants. This was already a 25% increase in the number of people from last year.
On the start day, the registration opened at 10am providing the Hackatheletes with all the necessary gear they would need to get through the two days: toothbrush; washcloth; sports drinks; energy bars; t-shirt; badges and stickers.
48 projects showed up at the start line. With only 48 hours to go, teams had no time to spare if they were going to get their ideas working and ready for demo.
Additionally, each year the org.team comes up with a theme for the Hackathon and this year it was multicultural Olympics. The teams were supported throughout the event with different foods from Mexican, Greek, and Japanese cuisines which brought the teams together for a break from the code and a bit of friendly banter. As quick as you could say “This will be a comfortable sofa to sleep on” the two days were up. The 48 projects that began were whittled down to 39, and the presentations began… Almost 4 hours of them.
The 39 projects that finished could not have been more different or more incredible. Teams really used the opportunity to explore the limits of what is possible in 48 hours. Finding issues in their own spaces and exploring solutions to fix them. Here is a look at some of the Hachathlete projects (remember this was done in just 48 hours).
Have you ever wanted to step into your code and look at the areas where the memory is getting used up? This project made this possible giving you the ability to analyze a memory graph in Virtual reality from real-life dotMemory snapshots and Windows memory dumps. The result: explore the memory in 3D and see where your memory is being used.
TUNA (Terrific Unified Notification Apparatus):
Even when you are off saving the world from Skynet artificial intelligence (likely created in a future hackathon), it is important to get back on time. This project created a plugin for IntelliJ IDEA and a Slack bot, which would send you a notification when some long-running process in IDE (like indexing, checkout or running tests) finished.
Add on: It also allows sending code snippets with comments to Slack right from the IDE.
Slack went down for several hours for one of the days during the Hackathon, but this small issue was not enough to stop the project from still being successfully completed. True story.
Emotional intelligence for IntelliJ:
Using face recognition as the main source of data, and gaze tracking to identify current emotions, this project was able to give real-time translation of the emotions of people using the IDE, and making it possible to see what actions made users angry, disgusted, fearful, happy, sad, and surprised. If that wasn’t already impressive enough, live translation was provided for emotions from the audience during the hackathon presentations and an emotional rating given to each of the presentations.
Conf Yeti – Conference Management tool:
This team created a service that provides visibility for the conferences that the different teams inside JetBrains visit, including the ones that are only being considered and not yet logged in to YouTrack.
The tool provides a simple way to:
- a) add conferences for consideration
- b) tag and search conferences
- с) create a task for the conference in YouTrack in just one click
- d) ping team members for possible participation
- e) add personal notes to the events
It displays a list of conferences on a timeline, in a calendar view, and on a map.
Smart search lets you quickly find answers to questions like “Which conferences could we go to in September?”, “Is anything going on in London this spring?”, or “Are there any DevOps conferences coming up?”.
With over 100 events JetBrains teams attend yearly, this collaboration tool could be really helpful.
Typo-aware code completion for IntelliJ:
Ever mistype your code? Maxim Medvedev has too. And with code completion being the most used feature (Maxim used it 175,725 times since 2013), many mistakes for sure happen inside code completion. What did he do about it then? Well, he made typo-aware code completion for IntelliJ IDEA. Completion now understands certain kinds of typos (sibling key letter, swapped letters, and missing letter) and still offers what you expect there, not what you typed. Problem? Solved.
So as you can see, these projects are by no means simple and it is a testament to the level of innovation put forward this year (actually every year). As competitors really push forward with innovation and implement the most incredible cutting-edge ideas. On that note, let’s take a look at the finalists. Prepare to be amazed.
The CEO’s choice
The choices made by our CEO have a common theme: as JetBrains advances and grows, we run into new problems because of that growth. We are problem solvers though, and these projects were chosen because they work on finding solutions to help us handle the growth.
CEO’s Choice #1
The faster our company grows, the more challenging it is to recognize our colleagues in person and connect names with faces. One approach to this is to gamify the process of getting to know the team around you, for a fun way to help encourage inclusion inside the company.
The HTF (How To Find) app
Natalia Mashianova, Maxim Mazin, Elizaveta Semakova, Nastia Berezinskaya, Andrey Skladchikov, Oleg Bakhirev, Ekaterina Zaikina.
This system is integrated with a lot of our existing systems holding information about teammates offering quizzes, pictures, and information from Bios and welcome emails to help everyone get more acquainted with each other in the office, and not only that but across different offices in the company too.
In addition, the project offers a special screen for the TVs located in office public spaces and will help us know each other.
CEO’s Choice #2
The second project to get a CEO award also deals with a problem we face every day as developers, which is keeping on top of version control. When adding features to our products or doing any other changes in the code we often need to make additional cleanups and refactorings to the code… these though can make the Diff a mess and the version control history useless because the main change is mixed with the rest of the updates.
The solution is simple: record the automated IntelliJ IDEA refactorings and separate them from manual code operations and split a single commit into several. Some commits are sensible and need understanding and review, while others are trivial automated actions already proven to be correct by the IDE engine. The demo looked pretty impressive and it can even handle the Java->Kotlin conversion!
The Audience’s Choice
These projects accumulated the most points from ‘Likes’ on their projects from the voters. Basically, voters voted for their top 3 projects and then they could ‘like’ any they… erm… liked.
Dmitry Ivanov, Nikita Raba, Serge Baltic, Sergey Karashevich, Artyom Bukhonov, Leonid Stryuk, Semyon Atamas, Alexander Naumov, Leonid Skrobov.
As they say, “Shoot for the moon. Even if you miss, you’ll land among the stars… Where you will drift aimlessly in the vast empty abyss of space, until you succumb to death’s cold embrace.” I think that’s how it goes anyway. This brave attempt aimed a reusable rocket at the moon that could return after its first stage to the launch site.
Moving pictures are worth a thousand words:
Justify my existence
“Where has my time gone?” is the question many developers are asking themselves daily. Now you never have to worry about that ever again, as this IntelliJ IDEA plugin will let you know you what you did, how many bugs you fixed, how many you submitted, what you pushed into the version control, and how many personal builds you started on TeamCity … and how many of them failed. But it is a long day and there are other things that you’ve been working on. So now you can know too how many comments you made in the issue tracking system and remind you of all the changes you shelved in the IDE. Still got time to account for? It can even tell you what is in the cafeteria; after all, this is hungry work, and you need sustenance for all these activities.
Have trouble remembering what you did during your daily team standup? No more :)
The Winners’ Podium
The competition this year was close. It was so close in fact that there were only 2 points between third and second place. Not only that, the scores were so close that the photo finish result was that for third place two of the projects had exactly the same total score.
Internal Hiring Service
Maxim Manuylov, Oleg Rybak, Artem Tiunov, Vladislav Rassokhin.
Projects and variation internally is just one fun part about working at JetBrains. Do you feel you are ready to change your project and move into a new challenge? Or do you want to find a new member to your full-time or 20% project and prefer someone you know before a new candidate is found by HR? Then turn to this new internal service.
The available positions are also now displayed on the TVs around the offices so everyone can see them.
The HTF app
Natalia Mashianova, Maxim Mazin, Elizaveta Semakova, Nastia Berezinskaya, Andrey Skladchikov, Oleg Bakhirev, Ekaterina Zaikina.
HTF has won a second award? Yes, it has. Any way we can facilitate the friendly nature of JetBrains goes down well. Now there are no strangers here – just colleagues we haven’t met yet.
Olga Dyka, Kateryna Shlyakhovetska, Ivan Kuleshov, Sergo Golovachev, Roman Chernyatchik.
Using all the tools at their disposal including 3D printer, server, proximity sensors, smartphones, and smartwatches, JetRoom makes any rooms that are available visible on the office map. Need to take an urgent phone call or hold an impromptu meeting with a colleague? Which rooms are currently occupied and which are not? Maybe some were booked for regular meetings, but no one is there at the moment and they can be used. Some rooms do not have TVs in them, are not shown on the calendar, and cannot be booked online. No matter: find a place to go in seconds with JetRoom!
The Suite of Sweet Writing
David Watson, Dmitry Jemerov, Peter Gromov, Dmitry Trofimov
General tools exist for grammar checking, they can help a writer to get in place the correct grammar, but they don’t normally help a great deal with the actual style of the writing. So the team got together to create something better, not just taking the grammar aspect into account but making the writing better by applying the habits of developers working with the code and reusing the tools we’ve created for crafting code. What they were looking to create was a software which follows the style guide and gives hints on how to write. It picks up on things like passive voice, negative language, serial comma, contractions, and gender neutrality, so that writers don’t have to check each time against the style guide for how it should be. There are already so many features in our IDE for restructuring code, so why not try and apply these same possibilities to English text? Sure, it is harder to parse, as natural language can be ambiguous, unlike the formal language of code, but difficulties are meant to be overcome, aren’t they? Using an NLP engine to parse the text provided a syntax tree to build on. Then applying the same refactorings and inspections we have for code to writing, add in a web browser extension and a plugin for IntelliJ, and we have a great tool to make some sweet writing.
Actively Used Award
Create React Kotlin App
Filipp Riabchun, Eugene Datsky, and Andre Skladchikov
This is only the beginning for many of the Hackathon projects, as they will now go on to do great things. This year Create React Kotlin App was awarded the ‘Actively Used’ award. Having opened up the possibilities for Kotlin code to work with React components in last years hackathon, it allows front-end web development to easily harness the capability of this powerful language for themselves.
The Hackathon in Numbers:
- 48 hours to complete
- 5 minutes to present
- 54 project ideas
- 48 projects started
- 39 projects finished
- 125 participants
- 8 locations
- 7 non-JetBrainers
- 4 remote colleagues
- 235 voters
- 840 points altogether
- 385 ‘likes’
- 177 points to First prize
- 114.5 points to Second prize
- 112.5 points to Third Prize
- 5 people in the average winners podium team
- 3 people in an average team
- 19,000 dollars in total prizes
- 2 third places
- 1 first prize winner
- 0 limits
The Hackathon in Pictures:
Subscribe to Blog updates
Thanks, we've got you!
BeamSearch in code generation
In the previous article devoted to full-line code completion, we looked into the vocabulary that the neural net of our full line completion plugin uses for Python. However, just having 16384 tokens like self., or, s.append(, return value, and others described in the article is not enough to generate…
Looking at Python through the eyes of a neural net
The JetBrains full line code completion plugin for Python is now available as a public beta. We would like to talk about some of the technologies and algorithms used to create the plugin and share statistics about Python programming that we’ve collected in the process. What is “full line code co…
Code Completion, Episode 4: Model Training
The previous articles from the series covered the following topics: In the first episode, we discussed general code completion scenarios.The second episode was devoted to the difficulties of heuristics-based implementation and explaining the necessity of machine learning.In the third episode, we …
Code Completion, Episode 3: Where Is the Dataset?
As we discovered in the second installment of this series, a modern code completion system needs machine learning to rank the suggestions most effectively. Machine learning has one thing in common with human learning: it requires data to extract knowledge. There are many aspects to that process. …