How I interned at JetBrains Data Analytics Team

JetBrains runs internships for students every summer. For two months, interns immerse themselves in the big world of development and, under the guidance of a mentor, implement a real finished project.

Last summer, Timofey Vasilevsky, a first-year student at the Higher School of Economics – St. Petersburg, became one of the company’s interns. Timofey studied user behavior when working in IntelliJ IDEA. In this post, he explained why he decided to go for an internship in data analysis, how he prepared and passed the selection, and what he did for these two months.

Photos from the days when internships were still held internally
Photos from the days when internships were still held internally

Why I chose Data Analytics Team

Hey! My name is Timofey, now I am a 2nd year student of the bachelor’s program “Applied Mathematics and Computer Science»At the Higher School of Economics – St. Petersburg, and I want to tell you about my summer internship after the 1st year.

I tried my hand at two companies: JetBrains and Yandex. Both there and there I passed the selection, but in the end I settled on JetBrains for several reasons. Firstly, the tasks in JB seemed more interesting to me. Secondly, the internship here lasted two months (July and August) and did not interfere with studies, which was important for me.

I could go for an internship in software engineering, but I chose an analyst: I had enough programming throughout the academic year, and it was very interesting to find out what analytics is and what they do there. Plus, in order to successfully pass all interviews, I had to learn math, which is not taught in the first year. I love to learn new things, for me it became an additional motivation.

Preparing for an internship

I approached the selection for the internship responsibly. At that time, I did not know a considerable amount of mathematics that is asked in interviews (for example, mathematical statistics), I was not familiar with SQL, so I had to learn a lot of new things.

For a couple of months, I consistently spent several hours a week on preparation: I mostly read textbooks and solved problems in matstatistics (by the way, if you want to quickly and not too deeply master mathematical statistics, I can recommend the textbook by Fadeeva and Lebedev – it gives a good understanding of all the basic things), I read the documentation and wrote queries using SQL, sometimes I listened to podcasts about analytics while on the road. In general, it seems to me that success in interviews strongly depends not on knowledge in general, but on preparation, so if you want to achieve a result, devote as much time as possible to it.

Selection stages

As with any summer internship at JetBrains, you had to complete a test assignment first. Unlike software development, in analytics, they were basically asked to tell how you see the implementation of the project, what methods you will use to solve the presented problems, why this is exactly the case, and much more.

Based on the results of the test task, I was invited for an interview, which again had a slightly non-standard conversation format for half an hour. During the interview, I was asked simple questions about theorver and mathematical statistics (a couple of simple tasks and knowledge of terms), machine learning (very superficially, some basic principles), SQL (it was necessary to dictate a simple query), python (something about data structures in him). I also needed to tell a little about myself and my motivation to take part in this particular project.

What did I do during my internship

I was working on the project “User behavior in IDE analysis”. My task was to study user logs in different development environments (mostly IntelliJ IDEA). Globally, we wanted to understand which features of development environments are in demand and which are not, what users learn to use quickly and how long, in which actions they often make mistakes and in which they do not, etc.

Work process

Unfortunately, I cannot share the details, but I will describe the internship process in general terms. All my work could be divided into parts:

The first… I chose a process (the simplest example is creating a project) and defined metrics that can be used to assess the success of the action, the time taken, or the number of attempts that the user made to achieve success.

Sounds simple, but it’s not always the case. Let’s analyze the case of creating a project: if a user managed to create a project, but at the same time he closed it after a minute and never returned, then such an action can hardly be considered successful, because most likely he did not achieve what he wanted. Or, for example, when a user changes some settings, you need to monitor how quickly he will return this or that setting back. Because if this happens quickly enough, then most likely the user has changed the wrong thing.

The second… I wrote requests to get the necessary logs, parsed them, received the necessary data. I used SQL for all this. The most difficult thing in this part was to determine which logs are responsible for what, and, accordingly, when they appear. It was also necessary to monitor the connections between the logs, because if, for example, we want to determine the time spent on creating a project, then we need different logs for the moments of the beginning of the project creation (opening the window) and the moments of the end (clicking on the create button).

The third… Standard procedures for analytics: built different graphs (most often interactive), displayed various statistics, confidence intervals, etc.

Fourth… I wrote a web application with these very interactive charts and the ability to display various statistics, including in order to embed them in the internal Analytics Platform. For this and the previous point, I used Python.

Schedule and format of work

In fact, I did not have a fixed schedule, I just had to cope with the tasks. Twice a week we called up with the mentor, discussed the work done and made plans for the next few days.

We also had weekly meetings with all the trainees of the team (which is 11 people). More often than not, several trainees talked about their projects and results, as well as shared problems. The rest expressed their ideas on how to solve these problems, and often these tips helped a lot. Also, other analysts from our team came to us just to chat, find out our impressions, and, perhaps, also help with some tasks.

Leisure activities

Unfortunately, the internship took place in a remote format, so it was a little tough with such activities. However, we regularly played board games online, and sometimes just got together to chat informally with a group of trainees. There was an idea to organize a chess tournament, but it didn’t work out.

Outcomes

Overall, I really enjoyed the internship and do not regret at all that I took it. I gained valuable experience of real work and interaction with the team. It was interesting to see how the preparation of presentations of ready-made tasks is organized, discussion of problems within the team and, of course, to participate in all this. If you have the strength and desire to go on an internship, be sure to take this opportunity.

If you would like to apply for an internship at JetBrains (selection will begin in the spring), stay tuned. on this page and in our group in VK JetBrains for Students

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *