In the eight years Natalia Chisler has been with JetBrains, the number of staff has exploded from 120 to over 800 working across 6 distributed offices. JetBrains software is used by millions of developers worldwide, and many of them dream of joining a JetBrains team to help improve the professional tools for themselves and their peers. So what does it take to become a part of JetBrains? Do you even stand a chance if you’re not a Senior Developer? Read our interview with Natalia for answers to these and other questions.
Photo by Alexander Nefedov
Today, all new hires go through the HR department before they join JetBrains. How did it work when you applied, and what is your background?
Well, most people around me are involved in programming in one way or another, including my parents, husband, son, and many of my friends. I went to the Physics and Mathematics Lyceum 239 in St. Petersburg, where I realized that even though I would not specialize in math or computer science, my life would still continue to revolve around people who do.
I liked working with people so I studied Human Resources at university. These two things, HR plus IT, turned out to be a good combination. Back in the early 2000s, the IT recruiting scene in Russia was just coming into its developing stages, so I was lucky to have been a part of really challenging large-scale projects for IT companies.
7 years later, I was invited to join the HR department of a British IT company. That’s where I met Andrey Ivanov, who later introduced me to JetBrains. That’s how this chapter ended… and then my story really began.
What does the role of VP of HR entail at JetBrains?
My job is to make sure the company is an attractive place for potential new hires and a place to call home for all our present colleagues. We want to keep all our people motivated and for them to keep advancing as professionals and evolving with our business needs. We try to make HR processes useful, keep the routine bureaucracy down to as little as possible, and provide colleagues with opportunities to grow.
Our ongoing tasks include interviewing candidates, motivating people, adapting processes, creating interesting training for our colleagues, and helping people overcome challenges that may come up from time to time. I also enjoy helping our team leads work with people, build their teams, and cooperate across products.
JetBrains has grown a lot since you joined it. What has changed, both for the company as a whole and for the HR department?
You know, it’s a lot like raising children. Other people look at your child and can see immediately how much they’ve grown, but as a parent, you see them day in and day out and so you just don’t notice it.
Seriously though, we have rebranded both our HR and the company as a whole. We’re more conscious of ourselves and our ambitions. With the advent and spread of Kotlin, JetBrains has come to be known to a much wider audience. Our colleagues’ attitudes are shifting, and not everyone is finding it easy to adapt to these changes. Because our teams are growing bigger, we’re having to carve out more managerial roles and provide mentoring. This has led to a lot of new opportunities, new projects, and new roles. At the same time, we are doing our best to preserve the kind of environment where each employee’s contribution is noticed and felt. The bigger the company gets, the harder this is to do. But despite the changing organizational structure, we’re trying to keep our original spirit and not become overly hierarchical.
Hundreds of people is quite a lot, but other companies with as many products and customers typically employ thousands. Why is JetBrains so small, relatively speaking?
Well, we’re pretty conservative when it comes to hiring. We’re not looking to employ as many people as possible, but instead we make sure that each new team member is a highly motivated professional. With this approach, it’s difficult to grow any faster than we already are.
Does this qualifications-oriented approach mean JetBrains is only looking for senior-level developers? Is extensive experience a must to pass the selection process?
If you’ve got talent and you’re hungry for it, experience is not a must! Granted, most of our job ads target senior-level developers, but that doesn’t mean that we’re not interested in anyone else. Everyone is welcome to apply with a cover letter that describes what they’d like to work on at JetBrains – even if that doesn’t fit any specific, clear-cut job or role that we have advertised. This kind of initiative can work out well for them! In addition, we run a number of educational and training projects. We have a lot of interns who stay on with us after their internships are over, as long the interest is mutual. This helps us satisfy our need for new raw talent. Interns are always very welcome!
There are some must-have skills that candidates can’t do without, but they’re nothing stellar. You don’t have to have 40 years of programming experience under your belt to be considered up to scratch. If you’re really into what you are doing, and you have an all-around education, you can meet our criteria. It’s not so much about your prior experience as it is about you being interested in working on the projects we have going.
Sometimes somebody doesn’t quite demonstrate the competencies we’re looking for, but they’re eager to work with us and they want to know how they can raise their expertise. We do our best to point them in the right direction.
As an example of a success story, a student applied to our internship program but failed to make the cut. This person then voluntarily developed a plugin for one of our products and attracted our attention that way, then eventually getting a job with us! Another candidate was not hired at first because they hadn’t been challenged enough at their previous place – at least not enough to be ready for the position we were looking to fill. They worked hard on improving their skills, re-applied, and are now part of our team. Applying again after working on the feedback and then being invited back for another interview is quite possible – if you want to talk with us again, then we want to talk with you too.
What does a typical interview look like?
Interviews are usually conducted by the hiring manager together with someone from the HR team. We ask the candidate what they’re passionate about, how they picture their future job, what their life goals are, and what specific things they would like to work on here at JetBrains.
In terms of interviewing developers, there are quite a few people who come to us with concrete ideas about what they want to improve in a specific product. This makes them very attractive to us. In our experience, people like this often keep great ideas coming once they’re part of the team.
Then again, having concrete ideas is not a prerequisite. We just want to know what you really crave doing. True motivation comes from within, so we try to hire people who want to tackle the specific challenges we can offer. In other words, their desires and our reality have to match up.
Interviews will also have a technical aspect, which depends on the role and the team. Plus, if the interview goes well and they pass the technical part, the candidate will usually get a test to complete.
To what extent does reality curb a candidate’s enthusiasm? I don’t imagine their list of improvement ideas becomes their list of work assignments once they join the team. Does it happen often that a person comes in wanting to do one thing but ends up working on something very different?
Yes, a lot of the time a developer lists a number of ways they’d like to enhance the product, and the team lead says, “In fact, these exact features are already in development and we’re about to make them available in the next major version.” We rarely hear completely new and awesome ideas in an interview that have never occurred to anyone at JetBrains before. But that is not what we’re after! We don’t want you to tell us what’s wrong with the product right there and then. We want to know how you think, whether you are self-motivated, have critical thinking skills, and so forth.
When that is taken care of, then it’s about how broad your interests are. Some people are interested in such a wide range of things that it’s up to us to narrow down the challenges we want to throw at them. There’s no single, cut-and-dried scenario. What I can tell you is that every developer has a say in what their key assignments look like.
Do candidates ever end up in a different project or team from the one they applied for?
Sure. When we interview people, our goal is not only to verify that their skills match the job description, but to identify where they would fit best in the whole company so their potential and desires can be realized in the best way possible.
Both our HR team members and our hiring managers have an understanding of what all of our projects and teams are doing and the kind of expertise they may need to add in the future. Of course, compared to team leads, HR team members have less technical insight into where a candidate’s knowledge and skills may fit best. But often they can help make the right connection.
Speaking of being self-motivated and coming up with new ideas, who decides which ideas to implement? Does the team lead single-handedly make that call?
We value mutual understanding and negotiations, so you will usually have to persuade your teammates that your idea is worth implementing and is viable. And if you’re successful, then you will likely need to lead the implementation efforts.
Terms like ‘flat structure’ and ‘culture of democracy’ are usually applied to startups, not large companies. Is there a startup culture at JetBrains?
We still have a flat hierarchy in the organization. We don’t write too many emails but we talk to each other a lot. Managers are often expected to ‘sell’ their ideas to their teammates instead of just passing them down. Naturally, with this many people and teams, we’re finding it more and more challenging to ensure smooth communication and cooperation across teams. But we avoid imposing unnecessary processes that can literally choke the spirit of creativity. A key part of our culture, which is crucial during recruiting as well, is that our people are enthusiastic and even fanatical about their work. This is true not only for developers, but of all our departments.
If you’re a passionate member of a startup, you’re likely working too much. You love the work, but the chances of you maintaining a work/life balance are slim. What’s it like at JetBrains?
Our folks have a lot of commitment. Sometimes they even commit code at 4 in the morning! They reply to emails on a Saturday and have been known to work while on vacation. But no one forces anyone to do this. I sometimes work when I’m on vacation because exciting things are happening and I don’t want to miss them.
Startups have little bureaucracy to speak of, which helps motivate developers – “I can just code and not worry about any monkey business.” But bureaucracy does have its upsides, like well-documented processes and other aids, which for example help onboard new hires. How do you strike a balance in this respect?
JetBrains is definitely not a bureaucratic machine. We do our best to make sure that our colleagues have everything they need to hand, and everything is as clear and transparent as possible.
When a new employee comes in, they don’t just sit down at their desk and know what they’re supposed to be doing. They join a team where they can talk to people, ask for directions or guidance, and understand how to become an integral part of everything. Of course we also have a wiki and repositories with lots of helpful information. It’s all organized in a way that works for each team.
In a strict hierarchy and bureaucracy, each employee has a well-defined role and responsibilities, and their performance is measured with well-defined KPIs. How does that work at JetBrains? How do you measure everyone’s effectiveness?
We don’t use any KPIs.
Our team leads talk with their team members. Each release cycle has defined objectives and targets. At the beginning of the cycle, each colleague either decides what tasks they want to work on, or the team lead assigns tasks to them. Everyone knows their general areas of responsibility in a product or project, and within that area they plan their activities and goals for the current release cycle. After the cycle is completed, everyone receives some feedback. There’s no standard process or format for this across the company, but we do value transparency and helpful feedback. I think our feedback culture is on a pretty good level right now. I trust our colleagues have a decent understanding of what’s going on, whether things are going well overall or there might be some issues. Simply put, JetBrains has a culture where managers and their team members talk with each other. We use common sense rather than KPIs!
This spring you held an OpenDay at your Moscow location. What were your goals for this event and how did it go?
We’ve had an office in Moscow for quite a while, but during our recruiting activities there we realized that many people were not aware of it. We wanted to raise awareness in the Moscow IT community and decided to attract people’s attention by holding some interesting technical talks and presentations. We wanted to share our knowledge and learn something new, too, and we wanted attendees to get both technical insights and to be able to discuss topics of interest with others. We also managed to tell a wider audience about what we do as a company and let them know they can become part of JetBrains while based in Moscow.
Recently you opened a new office in Novosibirsk. Can you already tell whether it was a good decision? Is it a part of your regional expansion strategy or just a one-off deal?
We just wanted to see what Novosibirsk had to offer, and it was a rather spontaneous decision. Intel was shutting down their office there at the time and it made sense to reach out to their people, because there’s some overlapping expertise between what their location was involved in and what we do. Of course we did not limit ourselves only to people that were connected with Intel; we took in a much broader view. Eventually, we became convinced it was the right step and we’ve strengthened our team with quite a few talented people from Novosibirsk.
Our locations are not divided functionally. We don’t say, “this office is effective and that one is not,” or “this office works on this product and that one works on that.” All our teams are geographically distributed, so all of our colleagues in Novosibirsk are spread across different teams. We’re committed to expanding in the city and we have big plans for organizing events in Novosibirsk. We’ll participate in a number of events next year and we’ll initiate some as well.
Is it possible to work remotely at JetBrains? I mean, you already have distributed teams located in many different time zones, don’t you?
Yes, we have teams distributed across multiple offices in different countries. In addition, we have over 25 people, like the Developer Advocacy team, who are mostly remote. However, I wouldn’t say we’re a remote-first company.
Having said this, we aren’t strictly opposed to remote and don’t mind having someone working even in the Antarctic circle. But to answer your question, I’d say it ultimately depends very much on the person and the team. Common sense!
One last question. JetBrains has some specialized roles like compiler engineers, and it also has some common ones like front-end developers. Does this force you to use different recruiting strategies depending on the job? I mean, if you post a job ad for a front-end developer, you’ll get hundreds of responses in no time, but the same would not work for compiler engineers.
Our hiring and recruiting philosophy does not change depending on the job we’re filling. We do our best to find the most talented, passionate, and competent people. Even for typical roles, we still seek out the best talent. We’re always trying to source new candidates instead of waiting for them to approach us. This is true for all our jobs.
Interview conducted by Eugene Trifonov