An Interview With Hadi Hariri, VP of Developer Advocacy, JetBrains
Coming from the world of .NET programming, I always associated JetBrains with their ReSharper refactoring tool that is a very popular extension to Microsoft’s Visual Studio. However, as I talked with Hadi Hariri, VP of Developer Advocacy at JetBrains and took a closer look at the company, I discovered that JetBrains has a very wide range of tools to make things easier for developers. Their products cover many different languages, platforms, and stages of development.
HostAdvice: Hadi, let’s start with a little bit about yourself and your background.
HostAdvice: I see that your title is VP of Developer Advocacy and that you have always been in a developer advocacy role at JetBrains. Tell me about that.
My relationship with JetBrains began with the JetBrains Academy, which would often sponsor speakers at user groups and other events. I was an avid ReSharper user and started collaborating with them at conferences and other community events.
At some point they asked if I would join them full time – so I did. At first I was the only technical evangelist, but the team grew quickly and I became the team lead and manager. More recently I was promoted to the position of Vice President, so I am now a member of the company’s leadership team.
Despite the title, I am still active in the field and engage with our customers and other community members at various conferences and events, as well as on social media. At JetBrains, everybody is hands-on – even the CEO does software development as much as he can. .
HostAdvice: OK, now please tell me about JetBrains and your products.
The company is now in its 16th year, having started with three developers who had previously worked together at Togethersoft, which was bought by Borland. . The first product was a plugin for renaming code elements. This plugin then evolved into a full IDE (Interactive Development Environment) – IntelliJ IDEA, which supports Java and any JVM (Java Virtual Machine) language.
About 10 years ago, JetBrains got into .NET development. We took many of the concepts and innovations of IntelliJ IDEA and built ReSharper as a Visual Studio extension. ReSharper is an extensive refactoring tool that integrates within the Visual Studio IDE and became – and continues to be – wildly popular with .NET developers.
We then started building out several smaller IDEs for specific languages, because we saw that there was a market demand for them.
TeamCity – our product for build management and continuous integration – was born out of our own needs and frustrations. We originally developed it to address our own in-house needs. It has since proven itself to meet the real needs of many other organizations as well. The same is true of our other teamwork tools such as YouTrack for tracking development issues.
In fact, all of our products – except for the smaller IDEs which we developed to meet market demand – were originally developed to meet our own needs. Once we found them to be very useful and we polished them up a bit, we offered them as products to the community.
HostAdvice: You have a very large and diverse selection of developer tools. Why not focus on just one or two technologies or categories?
Developers today are becoming much more “polygot” – someone who knows and uses multiple programming languages and platforms. Our goal is to provide a wide range of development tools that provide these users with the same experience, independenlty of the technology they use.
HostAdvice: What are your most popular tools today?
Currently, our most popular tools are clearly IntelliJ IDEA and ReSharper. After that, and growing rapidly in popularity, come some of our other IDEs – PyCharm, PhpStorm, and WebStorm. The TeamCity product that we discussed earlier is also very popular.
We recently released Kotlin, our own programming language. Kotlin is a statically typed programming language for the JVM, Android, and the browser. There has been exponential growth and interest in this product since we released it.
HostAdvice: I understand building developer productivity tools, but why have you developed your own language? Who uses niche languages?
Since 2010, all of our tools, except for the .NET tools, are written in Java. In some ways, Java is not the greatest programming language in the world and we found that it was missing a lot of features that we wanted when doing our own development. That is what triggered us to think about trying a different language and we began to investigate our options. With such a large Java code base, we needed something with a large emphasis on interoperability. When we didn’t find anything that met our needs, we developed Kotlin.
Kotlin is an open source project – Apache open source on GitHub. Using this language does not require you to use any of our other tools, although of course we do provide first class support for Kotlin in IntelliJ IDEA, both the free Community OSS version as well as the Ultimate one. The offering of Kotlin may increase the sales of our commercial products in an indirect way – but it may not. Time will tell.
Why are developers and companies interested in using a niche language like Kotlin? For starters, Kotlin is Java 6 compatible and when Android didn’t support Java 8 features there was a lot of interest. So there is a lot of interest and usage among mobile and Android developers. Once people were using it for mobile, they said : “Hey, why don’t we use this for server-side programming as well?” While the number of Kotlin Android developers is large, there’s an increasing number of server-side developers. Some of the companies that I can mention that are using Kotlin (besides us, of course) include NetFlix, Prezi.com, Expedia, and NBC Digital.
HostAdvice: Who do you see as your main competitors and how do you see your tools as different or better?
We obviously have competitors in every space where we have a product offering. For IntelliJ IDEA, our main competitor is Eclipse. NetBeans is also there. A recent developer survey by a third-party has reported that we have actually overtaken Eclipse.
For ReSharper, the main products that compete with us in this space would be CodeRush and JustCode. Although in recent years Microsoft’s Visual Studio has been incorporating more and more of ReSharper’s features into their standard IDE. Of course, we are now also providing Rider, which is an IDE for .NET.
HostAdvice: Back when I was still .NET coding, we used the CodeRush add-on, which competes head to head with your Resharper product. Where does that rivalry stand today?
In terms of specific numbers or market share, I don’t know of any third-party surveys that addressed these tools, so I wouldn’t be able to comment on this.
What do you think is your most unique product?
I don’t know if there’s anything specific that makes us unique. What I would say is that the majority of our projects are developed out of our own needs. What that means is that instead of saying “Let’s create this tool and see if it sells,” we start with the real needs and desires of developers (ourselves and/or our customers) and build the tool based on that.
It seems that some of your products are open source – is that correct?
Yes, some of our products are open source and some of them are not. Our Kotlin language is an open source project – it is very difficult to release a new language these days without making it open source.
While our IDE products themselves are not open source, our IntelliJ platform – which is the basic building block for all of our IDEs - is open source. We made the platform freely available in order to increase adoption and in order to guarantee adopters that they could build on the platform. In fact, Google’s Android Studio is built on the IntelliJ platform.
HostAdvice: I know you have several hundred employees spread out over five locations. How are the responsibilities distributed across those locations? How do you coordinate them?
We currently have about 600 employees. Our developers are split between our two main development centers in St. Petersburg and Munich. Our main sales office is in Prague, and we have several other smaller offices in Europe and North America.
The way we are organized is that each product has its own team, including development, quality assurance, marketing, etc. The only shared resources are (my) advocacy team, web team, sales, and infrastructure.
Each development team has some developers in each of the development centers. We want to hire the best developers and we give them the choice to work in whichever location they prefer. They are very self-motivated and self-sufficient and don’t need to be co-located with all of their team members. For communication and coordination, we have daily stand-up meetings and use Slack.
My advocacy team members generally work from virtual/home offices. They are located throughout the world.
HostAdvice: What can you tell me about your customer base? Where are most of your customers located?
Our customers are literally located all over the world. Most of them - about 40% - are located in North America. After that it is Europe and then the rest of the world.
Our customers are both individuals and organizations. While we have many individual customers, given the high discount we provide to Individual licenses, it is understandable that most of our revenues come from organizations.
HostAdvice: How do you normally reach and engage with your potential customers?
We mainly engage with potential customers via online campaigns, in addition to conferences and other developer-to-developer interactions. 80% of JetBrains’ employees are developers and they all talk directly with customers.
We use a very bottom-up approach as opposed to top-down. That is, we don’t have traditional Sales activities where tools are sold to organizations from Management level. It is more about developers trying our tools, using them and seeding them in companies. Our Sales team is more focused on helping people who already want to purchase our products with sales support and licensing.
HostAdvice: How do you see the developer tool market evolving in the coming years?
We are definitely seeing more diversification, rather than consolidation, of languages, platforms, and tools. Most of the conferences today discuss multiple languages. Developers choose whatever they feel is the right tool for the specific job at hand.
I personally feel that there is still too much wasted effort and churn going on in the software industry, with people rewriting code just so they can use the latest and greatest tools or programming stack. We need to think about why we do things at times, what is our main goal for a rewrite?
HostAdvice: How do you see the future growth of JetBrains in the coming years?
I’m hoping successful [Laughs]. I believe that we have done the right thing in deciding to go polyglot and not depending on only one technology or one language. I also believe our move to a subscription model , which is a more sustainable business model for our type of products, was the correct move. It allows us to continue to provide support for both new and existing customers.
But at the same time we are very much aware that the game can change significantly at any time. This keeps us on our toes and makes sure that we are always continuing to innovate and not getting comfortable.
HostAdvice: How many hours a day do you normally work? What do you like to do when you’re not working?
I typically spend about 12 hours a day on work related activities. I still love programming and continue that as a hobby as well, and sometimes the line between work and hobby gets a little blurry. The main thing I love to do when I am not working is to spend time with my family.
HostAdvice: If you were asked to give the graduation address to the class of 2016, what would be your message to them?
I would share with them the things that have inspired me over the years:
- Stay true to yourself and never sacrifice your integrity for a quick buck.
- Find something that you really enjoy doing and stick with it.
- Don’t be afraid to take risks.