Tech Stack Transition: From Ruby on Rails to Kotlin
Heath Hohwald, AlphaSights’ CTO, discusses the software engineering team’s decision to transition from a Ruby on Rails to a Kotlin tech stack.
Why did you move to a Kotlin-based platform from a Ruby on Rails tech stack?
We’ve primarily been a Ruby on Rails (RoR) shop for the better part of ten years. We got a lot of mileage out of RoR and remained quite nimble. However, as our code and complexity expanded, we ran into considerable challenges that led us to change. In addition, we’ve found it difficult to attract top talent to work with RoR. As the community of experienced RoR engineers dwindles, the newer engineers look to get started with other languages and platforms.
When I started my career, there were only a handful of legitimate options for developing industrial-strength code. Now, there’s a proliferation and fracturing of the space as more choices appear every day. To narrow down our options and select a future direction, we created a shortlist of code that met our team’s criteria. Our original shortlist included Python/ Django and Java and Go. However, after further research, we uncovered a language that we had only heard in passing: Kotlin. The team coded up several new services in the different candidate languages and platforms on our list. We found that multiple languages could meet our needs, but Kotlin clearly stood out from the rest.
Kotlin met our long list of criteria: a language and environment that’s rising in popularity, is well-loved by developers, is highly expressive, incorporates many modern language improvements, feels familiar to our strongest developers, is mature with a wealth of available libraries, and attracts recent graduates and experienced engineers to our team.
Kotlin is interoperable with Java and runs on the JVM so it’s been battle-tested and contains a wealth of libraries. Google officially approved it for Android development, proving the platform’s growing popularity. Developers absolutely love it! The Java developers on our team also took to it very quickly. It feels familiar but has less boilerplate code and incorporates many modern language features. Kotlin just feels right and is a great choice for mobile and backend development.
Why do engineers want to work on a new programming language rather than one they’re used to? Will they receive training?
For engineers primarily with an RoR background, working in Kotlin presents an interesting challenge. Many of our developers are either familiar with or have professional experience with Java, making the transition to Kotlin both enjoyable and fairly easy. For engineers with no hands-on experience in a compiled language like Kotlin, there is a bit more of a learning curve. Luckily our team is always eager to grow their skillset and was even prototyping ideas in Kotlin during our 10% time before we officially began our transition. Our Head of Engineering, Kevin Lester, is highly experienced in Java, picked up Kotlin quickly, and is happily mentoring the rest of the team.
Heath Hohwald joined AlphaSights in January of 2018 and serves as the Chief Technology Officer on our Software Engineering Team.