The big question I like to ask is, “What can we create that would be helpful to a million of people?”
Anna Kutarba, RubyMine Team Lead, interviewed her JetBrains colleague Konstantin Bulenkov, UI Team Lead and the person behind JetBrains Mono, Darcula, JetBrains Runtime, and the Toolbox App. Konstantin shared his insights about innovating in areas where no more innovations were thought possible, inspiring teammates, and making products that are used by millions.
Konstantin Bulenkov, UI Team Lead at JetBrains
You’ve been creating user interfaces at JetBrains for almost 10 years. How did you wind up working in UI/UX?
I guess it happened naturally. JetBrains uses a lot of dogfooding, which is when you use the products you make. For example, we develop IntelliJ IDEA by coding in IntelliJ IDEA. We spend hours using our products every day. So it’s no surprise that we fine-tune them all the time – to help ourselves code faster, cut down on the routine, minimize errors, and so on.
How a piece of software looks and feels is also important. That’s why I started tinkering with the UI and tweaking it here and there. I worked on my own for a while, until I realized I had more ideas on how to improve the UI than I had the time to implement, and there were more bugs to fix than I could ever fix alone. So I invited more people to join the effort, including knowledgeable UX designers and developers with experience in areas that I wasn’t. That’s how the UI team got its start.
You have a large and distributed team. How did you manage to surround yourself with so many experienced professionals?
No matter who I’m hiring – a developer, a designer, or a tester – I expect two things. First of all, they should have some charisma and be able to carry on a conversation about anything. Second, they need to be highly skilled in at least one specific area. This helps make sure that every new member strengthens the team by contributing expertise that the others don’t have.
There’s another trait that I really value in people, and that is the ability to debate effectively and argue their point of view. Constructive criticism, diverse perspectives, and discussing the pros and cons of each decision are essential in our work. At our last team gathering, I remember thanking everyone for all the intensive discussions and arguments we had had, and for their critical feedback. Being passionate is what fuels us and drives us forward.
We have a great team and I’m proud of every one of my teammates. We have people based in Russia, Germany, Czechia, Israel, and the Netherlands. We used to gather in St. Petersburg each year for a week or two to discuss important things in person. The lockdowns these last few years have made that impossible, which is a shame, so now all our meetings take place online.
Tell me about JetBrains Mono. How did you come up with the idea to create it, and why does JetBrains need its own font?
The idea was born out of conversations we had in the office canteen a few years ago. One question that would often come up was, “What can we introduce in our UI to make our users go “Wow!”?” Without a clear understanding of what that might be, we just went through everything we could think of. One conversation focused on how Apple switched to the new San Francisco font and how that helped them make their gadgets more readable. We thought, wouldn’t it be nice if we could do something like that.
That piqued my interest. If we could make code more readable in our editor, surely that would improve the UI and the whole user experience.
Why do we need yet another font for developers? Answering this question has been one of my greatest challenges. The underlying problem was obvious: the fonts developers use are typically created without their involvement. A company outsources the job to an external designer who designs the font and delivers it to the customer. The font isn’t then necessarily very usable for developers, who are its end users. But making adjustments based on their feedback takes too much time and money, so everything is just left as is.
Think about a Coca Cola bottle. If you cut it into pieces and then show the pieces to someone, then just by looking at any piece they will recognize it’s a Coca Cola bottle. That’s what I wanted our font to be like – so that a developer could tell at a glance it’s a JetBrains font.
We started by looking for a company that could do this for us. But after six months of searching and not getting anywhere, I decided to switch gears and look for an individual font designer instead, someone we could onboard and really integrate into JetBrains. I was lucky enough to meet Philipp Nurullin and get him to share my vision. That was the game-changer.
It took us a year to create Mono, and that process deserves its own story. Let me just say it was a rough year, but the results have been fantastic! Even some of our competitors use JetBrains Mono in their products now. I’m thrilled with my team and what we’ve achieved together!
Designing interfaces has a lot to do with user preferences. People tend to stick with their habits. How do you go beyond the familiar interfaces and invent something new?
We shouldn’t try to change people’s habits, but we must keep them in mind. Imagine what would happen if we broke something that ten million users were accustomed to. They would probably switch to competing products in a second! For example, many people use the mouse for everything. Even if using keyboard shortcuts is quicker, these users will stick with the mouse anyway. It’s what they know, and it’s just more natural for them. So we keep that in mind and we give the users options so that they can choose what works best for them.
When we’re evaluating a new potential design, we look at things like quick access, attention economy (if a frequently used action takes ages to find every time, then that needs improvement), informative value, discoverability, habits, and programming complexity. Those are the ABC’s of UI design. And of course, the big question I like to ask is, “What can we create that would be helpful to a million users?”.
Another practice we follow is running UX sessions with external users. We ask them to perform a certain task in the user interface and record the whole process on video. This has been instrumental in helping us understand the habits of developers outside of JetBrains. In fact, it has dispelled many of our preconceptions of how people use our IDEs. At JetBrains we develop IntelliJ IDEA by coding right in it, so we know the product very well and we use a wide range of its features. But only when we look at how real users out there – beginners and professionals alike – use it do we begin to realize what sorts of challenges and issues they face with the UI.
How does JetBrains test feature prototypes?
We do demos. Once a week our team meets for 1–2 hours and listens to talks by designers. Each presenter defines the problem they’re trying to solve; explains why it is important; describes their solution, including its advantages and drawbacks; and updates us on their progress and their plan going forward. The rest of the team then weighs in. If we can’t all agree on a solution the first time around, we consider alternative approaches. Then, if we still have trouble reaching a decision, we perform SWOT analysis.
After we’ve reached a consensus, we move on to dogfooding and testing. We make the feature available inside the company to have it more comprehensively tested and to collect feedback. JetBrains has hundreds of developers working on very different tasks, so there is some diverse feedback that is helpful and quite representative of the community. For instance, we have a blind developer in our team, and understanding his experience has really helped us consider the needs of visually impaired users in our design processes.
At JetBrains, we’re extremely lucky that we use our own products, because dogfooding lets us get immediate feedback. Our colleagues are very honest and straightforward, by the way. If they don’t like how we’ve changed something, they tell it like it is, without holding back. I love them for that.
Another powerful tool we use to evaluate changes is our EAP (Early Access Program) builds that we offer to the community. We realize that major UI changes can polarize users. When they dislike a change, our job is to figure out why. Is the change breaking their habits, or do they just need a bit of time to get used to it and see it as an improvement? We let EAP users take the feature for a test for about a week, and then we collect their feedback and carefully consider it. If it turns out that something doesn’t work for most users, we can roll it back.
What’s more important, design or functionality?
I think most things should be released a little bit early, before their design is polished. Making sure each new feature makes our users’ lives easier is what we’re after.
My favorite example from the realm of product design is Juicy Salif, the lemon squeezer from the design guru Philippe Starck. It’s gained something of a cult status thanks to its smooth, out-of-this-world look. But at the same time, it is probably the least usable squeezer on earth. Functionally, it couldn’t be made any worse! It’s not steady, juice spatters everywhere, the seeds end up in the glass right with the juice, and some of the pulp sticks to the tool, which means you must wash it right after use to prevent corrosion.
In our work, the focus is definitely on practical usefulness. When coming up with the best design, we consider the trends and adopt the best ones, while inventing and innovating some things of our own, too.
UI/UX technologies are moving rapidly, with new standards emerging all the time. How do you keep pace with the industry?
I have a couple of rules I follow. First, I avoid meetings on a Friday, and I spend half of each Friday learning – watching videos, reading, and taking in things that might change my world view.
Second, I always prepare a plan for each meeting, and then I take notes of everything that is discussed. When everyone comes to meetings prepared, it saves a lot of time.
What inspires you? Traveling, books, cool apps?
I’ve always enjoyed taking on difficult tasks: overcoming them is satisfying and motivates me to grow. I like challenging myself to do things. As a child I once heard someone say, “Extra effort is extra rewarding,” and that maxim has stuck with me. For example, once I decided to jog 10 kilometers every night for a month. The exercise helped shake off the stress after work, and it was an interesting experience.
I love visiting modern art museums. Some of the exhibits there can really mess with your mind. You keep looking at them from different points of view and still can’t wrap your head around what they mean. It can be a great mental distraction and a welcome change of pace.
I also get a kick out of traveling to different parts of the world with no plan or agenda and just meeting people. The more extreme and reckless, the better! When I feel like taking a stroll through Rio’s favelas or walking into some shady bar in Mexico, I just get on a plane and go. I have done things like pick up Spanish from scratch while touring South America, just to understand what the people around me were saying, and then switched to Brazilian Portuguese on the fly. My wildest trip, though, was to Somalia. I had to hire a bodyguard with an AK-47 just to get around. I guess these adventures make me think outside the box and adapt to different situations, which then helps me in my work.
What kinds of trends do you think the future holds for us?
It looks like it’s going to take less and less time for people to go from a concept to its implementation. Lots of new inventions aim to keep ideas alive while they’re being put into reality. Take photography, for example. Very recently, you had to take your camera, adjust lots of settings on it, take a shot, develop the film, and then print the photo. Now you just grab your cell phone, snap a picture, apply some filters, and share it with friends. It’s almost instantaneous by comparison.
Bringing complex ideas to life takes teamwork. This is why an important trend will be in breaking down the barriers for people to interact and collaborate. The fewer barriers, the more ideas we’ll be able to turn into reality quicker. At JetBrains we understand this and we released two new products for collaboration, Code With Me and JetBrains Space.
Collaboration doesn’t just happen between people but also between humans and machines. The more skilled we are at working with hardware, the faster we’ll be able to tell it what we need it to do. Computers can now understand human speech and the written word, but this might not be the most effective way to communicate. It will be interesting to see how this area of technology evolves. We might even learn to communicate with computers through our power of thought, which should be a lot faster than typing or speaking.
Would you like to try your hand at something other than software development?
Absolutely! I’m a big fan of creative video ads, with unexpected twists and special effects – the kind they show on The Night of the AD Eaters show. Back in my high school and university days, I loved editing videos from the trips I took with friends. I would spend hours doing that using two VHS players, including adding music to make my viewers smile and laugh. Is that what people do in TikTok these days?
What work achievement are you most proud of?
I’m proud of the people I work with. I’m truly happy for them when they do something awesome, like release an important new feature, solve a complex problem, or believe in themselves and grow professionally. And if I manage to play a small part in that, then I’m overjoyed.
Anna Kutarba, RubyMine Team Lead at JetBrains (Photographer Vera Wagenpfeil)