Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

DejaView: user-facing analytics

Description

Motivation

Arguably, one of the most admired features of JetBrains as a brand is transparency with the user. One part of that is that we don’t collect any user data unless they explicitly allowed us to do so.

We are very cautious about keeping the data anonymized, which sometimes makes it harder for us to analyze it. For instance, IDEs don’t even report the exact number of files in the project. They are rounded to the next power of two.

As one can imagine, the number of events that we collect for such sophisticated products as IDE is quite large. At the end of the day, when a feature is shipped, we frequently want to cover it with statistics to assess the outcomes.

While it is no secret exactly which data IDE collects, the data itself isn’t accessible enough. Though it is available, wrapping one’s mind around it would require a significant effort.

Now, since the user owns the data and we have the tools to extract insights from it, why not provide them with the analytics about their usage? This is exactly what this project is about.

Our aim is to provide user with additional value, while increasing transparency about what data is collected. It can even increase the share of users who send us statistics or developers' willingness to implement some collectors, showing their feature usefulness, who knows.

Baseline

For the baseline implementation, we want to gather the tools that we have and provide them to the user conveniently. Various teams have had a number of attempts to do something similar. We had a gamification plugin for IDE, productivity-focused metrics, hackathon project about AI benefits and more. This project could be built on that experience.

Besides, we have an internal analytics platform that presents the data in a way that is convenient for regular person. We could adopt some of its features. For instance, there is a session-viewer, that shows stream of categorized events, that makes is easier to grasp, what happened within some user sessions.

Finally, we could enrich the above things with a simple dashboard that would show some interesting stats.

The important part is that all this data should be on a user level and everyone should be able to access only their logs.

Extensions
The existence of such user-facing analytics opens up a number of opportunities for so-called user-generated content, we could:

  • Create sharable highlights about IDE usage with some aggregate statistics. For instance, "top 5% typist" achievement.

  • Allow user to get aggregate statistics for certain events that they could then mention in a communication with the company. When asking for support for the new tech, one can say: "Hey, I noticed X% of users have this event, so they would benefit from support!"

What's in there for an intern?

During the project, one will familiarize themselves with the architecture of our IDE logs and work in tight collaboration with the analytics team to extract the meaningful user-facing features from them. An intern will hold ownership over the implementation, while analysts will serve their role as stakeholders. We don’t impose any restrictions on the tech stack or architecture of the solution. The result can be IDE plugin, React SPA or some fancy WASM + Rust app, as long as it satisfies baseline properties and timeline, we are fine with that. That said, previous solutions, that we aim to build upon, might bias the choices somehow.

Requirements

Apart from curiosity and general interest in the project, one will need skills required to present the data. It can either be familiarity with web stack or IJ plugins development.

Admission

Internship projects 2025-2026

Contact details

internship@jetbrains.com

Preferred internship location

Armenia
Cyprus
Czechia
Germany
Netherlands
Poland
Serbia

Technologies

Git
Kotlin
SQL
Virtualisation

Area

Development

Internship timing preferences

Flexible start

Candidate graduation status

Final-year students preferred