Meet the Kotlin community at Dynatrace
Piotr, Uriel, and Oriol are part of the Dynatrace community advocating for a more widespread use of the programming language Kotlin.
At Dynatrace we pride ourselves with always being at the forefront of technology, so we encourage a curious and open mindset among our employees when it comes to trying out new technologies and researching them.
One of the programming languages that is causing a lot of buzz lately in the software engineering space is Kotlin, which development started in 2011 by JetBrains and has become Google’s preferred language for Android developers. Kotlin is seen as a language which can perform as well as Java, but features more concise and understandable code, and it was voted as 4th most loved language in the 2020 Stack Overflow developer survey.
Even though our main programming language at Dynatrace is Java, Kotlin still managed to gain attention within our development teams — and this encouraged some of our developers to create a community within the company to advocate for its use. As of today, this community boasts 100+ Kotlin enthusiasts and has spread across the multiple labs, from Barcelona, to Linz, and all the way to Gdansk.
Let’s talk to some of those members in the Kotlin community to learn why they like this programming language so much, why they want to encourage its use in Dynatrace, and what their community goals are.
What’s your name and what do you do at Dynatrace?
Piotr: I’m Piotr Krzemiński, software engineer at Dynatrace in the Gdansk Lab since August 2020. I’m currently focused on creating an internal service for browsing and managing Dynatrace Teams and any related data.
Uriel: I’m Uriel Salischiker, senior software engineer at Dynatrace in the Barcelona Lab since September 2020. I mostly work in team Maia, in charge of storing and processing visits. Part of my time is dedicated to working with Piotr in Teams, an internal service for Dynatrace product produced in an internal hackathon.
Oriol: I am Oriol Barcelona, senior software engineer based in Barcelona. I joined Dynatrace three years ago and currently I am working in team Maia, where we’re in charge of processing and aggregating session data for real user monitoring purposes. Previously I used to work in the user sessions query features and the data explorer.
How long have you been working with Kotlin?
Piotr: About 3 years, I started with some private pet projects back then.
Uriel: I been working with Kotlin full time since 2018.
Oriol: I got interested a couple of years ago when I started exploring other languages running on the JVM and of course Kotlin was one of them. To be honest I’ve never worked in any production code implemented in Kotlin, I basically use it as a language for prototyping, tooling, and experimentation.
What made you interested in Kotlin?
Piotr: It’s funny because it started with anger! 😁 I heard that my teammate was creating a helper service that was supposed to help our team test an internal library that we were developing. I was angry because he was writing it in Kotlin as an experiment, and we were already behind the schedule so badly. I thought to myself: “Can we afford such experiment? Isn’t it faster to do it with Java, given that we have some new problems introduced by Kotlin?”.
Then I started participating in the code review of this service and Kotlin got my attention. It was a breath of fresh air in the Java world where I’d been sitting for 3 years at the time. It was a safer, modern alternative to Java, plus it tackled some problems, like the problem of targeting multiple platforms, in an interesting way. Everything was wrapped in pragmatism, so far from, e.g., purism in Haskell. The fascination phase started in my head and I started reading about Kotlin, playing around at home (then I started writing my toy music synthesizer). Since then, I’ve been using it more and more often, and because of Kotlin’s versatility, it became my default language to solve daily problems.
Uriel: What made me originally become interested in Kotlin is how the compiler was smart enough to detect things like nulls and types without having to change them all the time, and how much nicer the code looked. From there we introduced it to Expedia and it just grew from there.
Oriol: The qualities that gathered my interest was its expressiveness and flexibility. From my point of view, Kotlin is really good in providing different mechanisms of doing the same things so the solution can be implemented in a manner that is close to the problem. That’s really important in terms of maintenance and onboarding new people since most of the problems are coming because lack of knowledge rather than the usage of a certain technology.
Is Kotlin used in the Dynatrace product?
Oriol: Currently, Kotlin is not used in Dynatrace for building the product itself, but it does not mean it is not in our ecosystem. For instance, I am aware that the team which creates tooling for enhancing the developer experience uses Kotlin extensively for scripting but also to build internal services. There’s also a new project to view and manage the Teams organization, which is built in Kotlin on the server side. I am pretty sure there are more ongoing initiatives since Kotlin is gaining traction because of all its goodies.
Why did you decide to start a Kotlin community at Dynatrace?
Piotr: I believe that a strong community is the best and natural driver towards any kind of change, so I created a #help-kotlin internal Slack channel and Kotlin Island internal tech talks. I strongly believe that Kotlin is a good step towards better code, which leads to better product (created faster, with a smaller amount of bugs).
Oriol: To be honest I am not one of the “founders” of the community, but since I joined, I tried to be involved in the ongoing topics and provide my vision out of it. About the reasons, I guess it is because we’re a big company and we were missing a space where to gather together all the people using the language and have discussions about usage, findings, and possible patterns that could be extended to a wider scope.
What are your goals with this community? Are there any initiatives going on?
Uriel: The end goal is showing Kotlin is mature and performant enough to be used in production in the Dynatrace product. We currently have several initiatives with the higher up architects to show where our product could benefit from Kotlin. 😊
Piotr: The goals are promoting Kotlin and providing any related support, starting with raising awareness that it exists, going through organizing tech talks (4 in the past) or workshops (1 in the past). Plus, we gather community and leaders’ feedback, address any concerns, and collectively assess if reported concerns are valid.
Oriol: The goals are to share our experiences with Kotlin and to support and onboard other colleagues. We’re also trying to promote the usage of the language in new components but also trying to use it in stable components in production, maybe not for the production code but for other areas of the component like testing or building.
What’s next for the Kotlin community at Dynatrace?
The community is going to keep advocating for the widespread usage of Kotlin not only within Dynatrace, but also with the Java community at large. They recently took part in the Lighting Talks organized by the Barcelona Java community (called Barcelona JUG) and gave talks on various topics related to Kotlin. Click below to see them all:
- Functional Error Handling by Uriel Salischiker
- Kotlin/JS: pleasant Web development for backend developers by Piotr Krzemiński
- Building command-line tools with CliKt by Oriol Barcelona
As Piotr says, “it’s sometimes hard to leave our comfort zone (like staying with Java) and it’s easy to keep certain misconceptions and myths regarding Kotlin in our heads. The community also tries to address these cases and is engaged within the company-internal dialogue. This is a long process, but from my perspective, the almost 1-year old community has already brought a lot of Kotlin inside the company.”
It looks like there is a lot going on in this community, so watch this space for future updates on what the Kotlin community is up to at Dynatrace.
Interested in a new challenge? Check out all our open positions at Dynatrace R&D here.