JetBrains at the ICPC North America Championship 2020

The first ICPC North America Championship (ICPC NAC 2020) took place February 19–23, 2020. The top teams from the ICPC North America Regional Contests advanced to the ICPC NAC in Atlanta, Georgia, hosted by the College of Computing at the Georgia Institute of Technology.

JetBrains was proud to be a Gold Sponsor of the event. We were also honored to receive an ICPC North America Outstanding Community Leadership Award for our three-year commitment to their North America Regional Contests, participation in the ICPC World Finals, and service as the official ICPC Global Programming Tools Sponsor. JetBrains was also recognized for our commitment to helping ICPC Global advance the art, science, and sport of programming through trustworthy competitions for universities all over the world for the benefit of society.


JetBrains was represented by members of the Educational Products and Kotlin teams, along with Andrey Ivanov, SVP of Investments, Research, and Education. We participated in different activities related to the event, and we also had a booth at the Career Fair, where we had an opportunity to speak with contestants and their coaches about best practices and tools in computer science and to discuss our open internship positions. Sebastian Aigner, JetBrains Developer Advocate in Education, gave a talk for the coaches about our Educational Products and JetBrains Academy, a hands-on platform for learning programming. Continue reading

Posted in Awards, Contests, Education, Events, Interviews | Leave a comment

What on Earth Was the JetBrains Quest?

We have a lot of developers at JetBrains, and many of us like games – challenging games. We came up with the idea of creating a treasure hunt in which the solution to each puzzle was the hint for the next one. We’d hide all the puzzles as easter eggs inside JetBrains sources. After a long period of brainstorming, JetBrains Quest was born.

JetBrains Quest was a series of puzzles spread throughout different JetBrains pages and products. The game consisted of 3 Quests, with 4-6 puzzles to solve per quest. The first quest was relatively easy to give people a chance to figure out what to expect with the difficulty increasing as you moved along. The Quest began on March 9 with a post on our social media networks (
Twitter, Facebook and Linkedin) and it ended on March 15 at 12:00 CET. At this point all of the puzzles were removed.

The response from the community was amazing!


Some of them struggled.Group_3_noblock-2-2-2

People were asking for more.Group_2_block-2

Based on the comments, it looks like the most difficult puzzle to solve was the Fibonacci exercise. This puzzle was hidden inside a Tip of the Day in a specific version of IntelliJ IDEA Community Edition.
final quest tip of the day

You have discovered our JetBrains Quest! If you don’t know what this is, you should start from the beginning.
This is it. The last puzzle. You are just one step away from glory!
Now you just need the Key to unlock the Quest page.
The Key is the first and last 4 digits of the 50 * 10^6 position of the Fibonacci sequence (F(50 Million)).
As you may know by now, not all that glitters is gold, and to solve this puzzle you should not go straight for the obvious answer. May you make a glorious choice.
Remember that you have until the 15th of March 12:00 CEST.

This was the last puzzle of the entire Quest. If you attempt to solve it using a linear approach, it will take hours or even days to get the answer. There were two main approaches to tackling this puzzle. The easy one was to use Wolfram|Alpha to get the first and last four digits.

The second way is more difficult, but it comes with a bonus: a bigger feeling of accomplishment! There are algorithms that make the computation for the Fibonacci sequence faster. We were expecting you to implement one of these options. Here’s an example:

First 4 digits: 4602
Last 4 digits: 3125

For those of you who didn’t manage to finish the Quest, you can see all the puzzles and their solutions here.

We would like to thank everyone who took part in our JetBrains Quest and joined in the fun. Leave a comment below and let us know which puzzle was your favorite.

Thanks for joining in! May you always have an adventure in your life!
– The JetBrains Quest Team

Posted in Contests, Uncategorized | Tagged | 1 Comment

Celebrate Python with us and win!

Happy Wednesday!

As you may know, we recently released a Python track at JetBrains Academy. We hope it becomes a useful learning resource for everyone who’s venturing into Python.

We’re now running a two-week Twitter campaign where we’re posting a series of cool Python facts and giving away 1000 hypercoins to each of 10 lucky commenters on our tweets!


Would you like to share in the fun? Add your own #PythonFacts in the comments to the facts shared by our Twitter account for a chance to win hypercoins, which you can use to get your project reviewed by expert dev mentors!

In any case, follow JetBrains_Edu on Twitter for even more interesting facts about programming and updates about our Educational Products!

Your Educational Products team.

Posted in Education | Leave a comment

Big Data Tools EAP 6: Google Cloud Storage, Proxy, Kerberos, and Parquet Improvements

It’s been a while since our last update, but today we’re excited to give you a new EAP build. Originally we planned to exclusively work on bug fixes and stability improvements in this build. However, we couldn’t resist and added a completely new feature that has been on our roadmap for some time – integration with Google Cloud Storage.

Using the Google Cloud Storage integration is similar to working with AWS S3. Once you’ve configured a Google Cloud Storage bucket configuration in Big Data Tools Connections, you’ll see it and its contents in the Big Data Tools tool window.

Here’s what the configuration page looks like:


You have to specify the path to your credentials JSON file, choose a bucket, and optionally a prefix if you’d like to work with a specific subfolder.

Once the bucket is configured, you’ll see the files and folders hierarchically in the Big Data Tools tool window:


The context menu provides the same actions that work for AWS S3. You can copy, move, and rename your files and folders, download them to your local disk, and open them for a preview. In the case of a preview, the IDE downloads only a chunk of the file. This is very handy if you’d like to preview a large file, e.g. a Parquet or CSV.

Speaking of Parquet support, we’ve made certain improvements. First, we’ve fixed some edge cases in which it didn’t work. Second, we’ve reworked the appearance of the header to properly display the headers of the column and allow the user to sort the rows by any of the columns:


Last but not least, we’ve added actions that let you copy the selected values, columns, or rows, or dump the whole document to the clipboard or a .CSV file.

The connection configuration for Spark and Zeppelin now supports HTTP proxies. Now you can configure a proxy for any of the connections in the Big Data Tools Connections settings:


We hope this will make it easier for you to connect to Spark and Zeppelin in your secure environments.

Speaking of security, now the plugin also allows you to use and configure Kerberos authentication for connecting to your Spark server:


For more details on how to use the HTTP proxy and Kerberos, please see the updated documentation.

Those are all the major improvements in this update. The full list of changes (bug fixes and minor improvements) can be found in the release notes.

Having said that all, we’d like to ask you to try the new version of the plugin and share your feedback and bug reports with us.

If you have an idea for a cool feature that the Big Data Tools plugin could add in the future, please share it here in the comments or in the bug tracker, use this feedback form, or sound off in our Slack workspace. Thanks a lot!

The Big Data Tools team
The Drive to Develop

Posted in Big Data Tools | Leave a comment

EduTools plugin v3.5 released!

Please welcome EduTools v3.5! In this post, you’ll learn about several new features that are available in the latest plugin version:

For the full list of issues addressed in EduTools 3.5, please see the release notes.



Continue reading

Posted in Education, Learning Courses | 1 Comment

The JetBrains Website is Now Available in Brazilian Portuguese

Read this post in Brazilian Portuguese

A couple of months ago we launched the JetBrains site in 7 new languages. Today we’re happy to announce that we’re adding Brazilian Portuguese to the list of supported languages.

You can change the language of the site anytime: just use the switch at the bottom of the page.

We would love to get your feedback on our Brazilian Portuguese website: there’s a button on the right-hand side of every page that you can use to highlight an area on the page and provide a comment.

Check out our website in Brazilian PortugueseChinese (Simplified), French, German, Japanese, Klingon, Korean, Russian, Spanish, or English!

The JetBrains Team

Posted in News | Leave a comment

Software Development the JetBrains Way: Dogfooding and Other Key Principles

JetBrains has turned 20, and over the years, we’ve honed methods for development that match the style, values, and needs of our company. These processes work so well for us that we want to share them with others. Dogfooding, for example, has always played a central role in the development of our products, and with this video we want to share its role in our creative process with you.

In the software development industry, dogfooding is the practice of testing your products within your company, using them as the end users would. Effectively, you have to eat your own dog food to ensure that your product is of the highest quality.

We at JetBrains have always been in a good position to do this. Indeed, since 2000, when we started to create the first JetBrains product, the ideas for our tools have often developed in response to an internal need. The products we build, from IntelliJ IDEA to Kotlin and Space, are all designed first for ourselves, and we use them in our daily work.

Of course dogfooding is not a panacea, and in addition to its benefits, it also has a number of pitfalls that we discuss in this video.

On the one hand, the practice of dogfooding gives us the advantage of being able to solve product-related problems, such as UI/UX issues, early, before users have had a bad experience. It also helps us discover the functionality that real customers will expect from the product. Basically, dogfooding allows us to step into our users’ shoes. On its own, writing good code doesn’t necessarily result in developing the right product, and dogfooding helps us address this issue.

On the other hand, dogfooding is not a silver bullet for developing software. It can sometimes cause bias, and it must be combined with other practices or used carefully to ensure that the final product is appropriate for the target user. And in this video we examine our best practices for handling these situations.

Watch the video

Learn more about the way we create products at JetBrains and about how the products are made to meet not only our users’ high standards but also our own.

The Drive to Develop

Posted in Behind-the-scenes, New Products | Tagged | 2 Comments

Learn Python with JetBrains Academy!

Starting today, Python joins the good company of Java and Kotlin as a programming language that you can learn with JetBrains Academy. We’re glad to announce the Python Track is ready and is waiting for learners!


Start the Python Track or read the Start Guide for more details.

Continue reading

Posted in Education, Learning Courses | Tagged | 4 Comments

EduTools Plugin v3.4 Released!

EduTools 3.4 is here! In this update, we’re introducing support for programming challenges from Codeforces, the programming contest platform, and support for version 2020.1 of all IntelliJ-based IDEs.


Codeforces support
IntelliJ Platform 2020.1 support
IntelliJ IDEA Edu and PyCharm Edu

Continue reading

Posted in Education | 1 Comment

Update on Big Data Tools Plugin: Spark, HDFS, Parquet and More

It’s been a while since our last update. If you remember, last year, we announced IntelliJ IDEA’s integration with Apache Zeppelin, S3, and its experimental integration with Apache Spark. The latter integration was released as an experimental feature and was only available in the unstable update channel. But we have great news. Today we’re releasing a new version of the plugin that finally makes Spark support publicly available. It also adds support for HDFS and Parquet.

Spark Monitoring

Now that the Spark integration is available in the public update, let us quickly catch you up on what it can do for you. Continue reading

Posted in Big Data Tools | Leave a comment