JetBrains 7th Annual Hackathon: Arranged Differently
Arranging a new hackathon
With the expansion of JetBrains this year and the move into our new offices, we had to push back this year’s hackathon a little bit. But, if anything, this ignited the drive to develop new ideas in our team. So here is a rundown of what went down this year.
The rules were simple:
- The Hackathon began Wednesday, September 18th, at noon sharp CEST and ran for 48 hours.
- The last commit was allowed no later than Friday, September 20th, noon CEST. Presentations needed to be provided to the Org.Committee by this time as well.
- 5-minute presentations started 1 hour later, at 13:00 CEST on the same Friday.
- Winners received prizes
Arranging the event
“Arrange whatever pieces come your way.” – Virginia Woolfe
This year’s theme was “arrange it your way.” The principle behind this is that there is no single way to do things, no unique solution, that the parts can be arranged in an infinite number of different combinations.
This year, even more ideas and concepts for projects were put forward than ever before. 70 projects were submitted by the 182 participants ready to bring their ideas to life. There are no limits to what people can dream up, but there were most definitely some common themes that emerged throughout.
On Wednesday, registration opened at 10am, providing participants with all the gear they would need to get through the two days: a toothbrush, a t-shirt, badges, and stickers.
The 56 projects that finished could not have been more different or more incredible. Teams again embraced this opportunity to explore their limits, finding issues in their own spaces, and exploring solutions to fix them. Here is a look at just some of the projects (remember: this was done in only 48 hours).
Arranging the winners
This year, there was a bit of a twist thrown in, with a surprising new method to decide the final winners.
A jury representing different teams and roles was brought in to:
- define nominations based on the types of projects that were ultimately submitted
- pick projects that stood out among those nominations
All the prizes were of the same value, and there was no limit to the number of projects that could win.
There was, of course, only one Trophy Winner, whose name is engraved on the legendary JB Hackathon Cup. The winner was decided by the individual votes from JetBrainers.
Awarded to the hackathon project which could provide the most value to the business
Mikhail Vink, Ivan Chirkov, Sergey Kesarev.
The idea behind this project was simple: JetBrains product + Plugin(s) = Bundle. So the team set out to create a means to distribute the IDE along with selected plugins. They wanted to provide additional value to users, promote high-quality plugins, add a new method of marketing (as bundles can target specific needs), add some cross-selling potential, and reduce costs.
So their goal for the hackathon was to:
Add a one-click purchasing option for plugins bundled with the IDE.
Experiment with using IntelliJ IDEA protocol and Toolbox integration.
Add bundle management support at plugins.jetbrains.com.
Prepare a pricing model for bundles with paid plugins.
Create marketing assets for some plugin bundles (and possibly a way to generate the assets semi-automatically).
They successfully created 10 bundles that will be supported in the Toolbox App and in the plugin repository (it’s coming in one of the next releases, stay tuned). So whichever specific technology you work with, there is going to be a bundle of plugins to help.
Awarded to the hackathon project with the best presentation.
Local History Browser
Maarten Balliauw, Matt Ellis
Best Tangible Mod
Awarded to the hackathon project with the best hardware design.
Apple Touch Bar Back to Basics (PushBar)
The hardware mod for Apple Touch Bar
In 2016, Apple decided that the “F” keys were not as crucial as smiley faces. So on their MacBook Pro, they got rid of them. What does one do when these essential buttons are missing? They hack one together. 30 hours of development, 3 apple keyboards, 2 pre-2016 Apple MacBook Pros, 18 cups of coffee, and 5 different concepts later… that is precisely what was done.
2 versions were produced for users to update their MacBook to the newest hardware. Welcome to a new age, Apple MacBook Pro Touch Bar Pro.
Dmitry Neverov, Victor Matchenko
Get extra information about how your program behaves, using one of your five senses that has long been overlooked in programming: hearing. Imagine being able to tune your breakpoints like you would a guitar, so when you debug a program, you can notice immediately when something is off. This can be useful if you have several threads of execution or a graphical user interface that also requires your attention, for example, an IDE. It can be particularly helpful for looking at cache assembly time. You can set up several “Extrasense” sound breakpoints, and if you hear the sound, that means the cache doesn’t work. With this approach, silence truly becomes golden. It will also help you understand the frequency of events, for instance, checking how often your web application calls the database. Also included is a continuous sine wave that is modulated through the allocation rate, which produces high pitched sounds when you do a massive computation. So with all this, you can literally tune your performance like you would with a tuning fork.
Most Useful Developer Tool
Spot profiler for IDEA
Spot profiler plugin
Automate ‘manual’ profiling (wrapping part of code in
System.out.println(System.nanoTime() - start)),displaying results right in editor.
This project took on the epic task of helping people make their code faster. So when considering measuring the execution time for a piece of code in the millisecond time range, a traditional profiler is not a great option as the sampling is not precise enough, and tracing usually adds overhead. What people typically do is insert the measurement instructions into their code. But, this does come with some shortcomings like working with VCS, and the results need to be read in the console.
So a better option is Spot profiler for IntelliJ IDEA. JPS lets us transform the source code before parsing it to JavaC. IntelliJ IDEA can read the output and show the results in the editor, showing you the execution times for the certain lines right there in the editor.
Svetlana Isakova, Sebastian Aigner, Ilya Chernikov, Pavel Nikolaev, Alexander Anisimov
What do you get if you create a game-based service similar to Kahoot! for “social learning” at conferences, talks, and training sessions, which can also be used later as a Kotlin MPP (Ktor + Kotlin/React) sample project? You get CodeQuiz.
Awarded to the hackathon project that best streamlined office life
Irina Manolova, Andrew Vasiliyev, Evelina Yun, Daria Pavlyuk, Maria Mikheyshina, and Alexandra Charikova.
Space is the name of our office in Saint Petersburg. It is big, it is new, and it needs help with onboarding new colleagues. “Hello, Space!” is a great start. This project makes the lives of HR easier and the experience that new employees have better! HR simply needs to fill out the details for the new employee:
From here it activates the automated ‘before your first-day’ campaign, which consists of a series of how-to welcome emails about Space office life (where to get food / borrow books from the library / join in with sports / recycle plastic / find the first aid kit etc.).
HTF (How To Find) app
Natalia Mashianova, Maxim Mazin, Elizaveta Semakova, Nastia Berezinskaya, Andrey Skladchikov, Oleg Bakhirev, Ekaterina Zaikina.
Last year’s HTF (How To Find) app (version 1.0), won the CEO’s choice prize. This year it has gone on to win the most actively used category.
Arranging Onboarding projects
It is no surprise that with the massive rate of growth JetBrains has been experiencing, the topic of interest that a lot of teams gathered together to solve was focused around onboarding. With no universal onboarding program in place, HTF app 2.0 and four of the other 56 projects submitted aimed to help make integration and fitting into the company a little smoother.
HTF (How To Find) app 2.0.
Natalia Mashianova, Maxim Mazin, Nastia Berezinskaya, Oleg Bakhirev, Arkady Bazhanov, and Ekaterina Zaikina
Revisiting their successful “HTF (How To Find) app,” which won the CEO’s choice last year, the team set out to improve the system integrated with our internal systems. In an attempt to help people across different offices in the company get acquainted with each other, the new variant of the app is filterable by the offices and teams, and the score is now saved, so you have a record of who you know and don’t know. The UI was also updated to make it even easier to look for colleagues and get to know them a little better.
Irina Manolova. Andrew Vasilyev, Evelina Yun, Daria Pavlyuk, Maria Mikheyshina, and Alexandra Charikova
As you may have gathered from the previous description, this automated onboarding program helps newcomers coming to the new Saint Petersburg Space office. And as if that were not enough, they also created an autonomous chat Bot that can search and tell you the must-know information you need to survive in the Space office.
Random Coffee (JetMate)
Yuriy Artamonov, Anastasia Goncharova, Yulia Obnovlenskaya, Sergey Boytsov, Alexander Izmaylov
With over 1154 people now working at JetBrains, it can be hard to know people, especially those who share similar passions to you. Developed to help people get to know each other and find common interests around the office, Random Coffee lets you book a 10-minute random coffee meeting and get to know someone new.
The Onboarding Game
Oscar Rodriguez, Ekaterina Ryabukha, and Joaquin Trevino.
A kind of treasure hunt for new (or not that new) employees to find different important documents, content, and internal platforms that every employee of JetBrains should know.
This project sets out to gamify the process of onboarding employees, leading them around the different platforms using clues and puzzles where they will find the next piece of information they need to know.
David Watson, Henry Wylde, Nikolay Sandalov, Scott Adams, Ekaterina Ivanova, Tobias Kahlert, Nadya Davydova, Pavel Ivanov, and Arina Chubarkova
Even this project had a go at improving onboarding, adapting their original concept of using the TeamCity Lego men booth swag to make onboarding webcomics for new employees to take them through their first day.
Arranging the Trophy Winner
There can be only one grand prize winner. With its third mention in this blog post alone, the winner of JetBrains Hackathon 7 is…
Irina Manolova, Andrew Vasiliyev, Evelina Yun, Daria Pavlyuk, Maria Mikheyshina, and Alexandra Charikova.
This project won the hearts and minds of many JetBrainers this year. With no formal onboarding in place, this project really did tick a lot of boxes for what every new employee needs when coming into the company. It covered all the aspects of getting acquainted with JetBrains in a good amount of detail and was very easy to set up.
The numbers arranged
6 hours 22 minutes of presentations
56 projects finished
70 projects submitted
18,000 dollars worth of prizes
JetBrains 6th Annual Hackathon: Shiftius Altius Ctrlius. Check it out!
The Drive to Develop
Subscribe to Blog updates
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. …