What the F(p) is Kotlin?

Shelby Cohen
Jun 24, 2019 · 5 min read

By Shelby Cohen and Katie Levy

Image for post
Image for post

I’ve been working full time as a software engineer at Intuit after I interned at the company while still in college. My partner on this project, Katie Levy, followed a very similar path. Whether it be Android development, server-side development, functional programming, or developing full web applications in Kotlin, we both have the fierce dedication to the learning process and improving our skills as engineers. During my time at Intuit, I have worked on backend services of the mobile app Turbo and am currently working on the quality tools team building full stack products and back-end services in Kotlin and Java. While in the past, Katie has worked on the Mobile team developing the TurboTax and TaxCaster Android applications, she has now turned her focus towards the TurboTax Platform team where she is responsible for developing the Tax Engine and backend services for all platforms of TurboTax.

Leading the Kotlin Learning Community has been a very rewarding experience for us, as it has given us many opportunities and visibility to other engineers who are passionate about the same things that we are.

The Problem

When we were first introduced to Kotlin for the first time, we were awestruck by the exceptional enhancements it adds to Java, the language it is built off of. As a Java developer, there are many situations where you have to write “boilerplate code” to do common things, like creating a data class. These tasks become monotonous overtime and have little value to us as engineers as they are common patterns taking up space in the code. Herein lies the paramount value of Kotlin, as the boilerplate code is taken care of under-the-hood.

The Solution

We decided to use Kotlin in our everyday development for server side and android development as the solution to problems we observed in Java. Introducing the language to our development team has been extremely helpful in encouraging best coding practices. In addition, at Intuit we have “Paved Roads”, “Informed Adventures”, and “Accidental Detours” for using new technology. We have been contributing to help get Kotlin to be an official “Paved Road” for developing with at Intuit. Influencing the technology at Intuit is extremely important to us as it will impact the speed and efficiency of us as developers moving forward.

The Backstory

We started learning Kotlin in February 2018 and both integrated Kotlin code into our team’s projects for the first time in March 2018. From there, we started participating in community events to get more involved. We attended the local San Diego Kotlin Meetup Group as well as Google I/O. I attended KotlinConf in October 2018 which really opened my eyes to the large supportive Kotlin community out there. I learned how to build a full stack web application in Kotlin, attended many talks, and connected with some of the inspirational speakers who are forming the future of technology and Kotlin at their own companies.

Internally at Intuit, Katie and I started the Kotlin Learning Community. It is a place where anyone who is interested in learning more about Kotlin meets once a week to do coding exercises, read chapters in Kotlin in Action, participate in code reviews, and share internal opportunities to contribute to projects that are already using Kotlin.

Externally, we have been hard at work connecting with the Kotlin community in different ways. Katie has open sourced a library called Truffle Shuffle. It is a library of an Android UI component of a card gallery with a fun animation. The gallery is easily customizable and is data-driven based on the number of objects in an array and the content inside of those objects. The card gallery uses a custom-made Android ViewGroup with custom view attributes to specify the size of the individual cards as a percentage of the ViewGroup’s size. This card gallery is used on TurboTax’s mobile app in the product lineup. Truffle Shuffle is written 100% in Kotlin!

In addition, I had the pleasure of being a guest on the Talking Kotlin Podcast with Hadi Hariri from Jetbrains. I spoke about functional programming and the early stages we were going through when introducing Kotlin to my team. We also led a webinar around why Kotlin is making engineers’ lives better. You can access a recording of the webinar here. In October, Katie and I will be speaking together at Lambda World in Cadiz, Spain about our experiences and how we introduced functional programming with Kotlin to Intuit. We believe in the importance of connecting with the broader community, and external opportunities like these motivate us to continue teaching and learning with a network of like-minded technologists.

We are passionate about encouraging a positive work culture for engineers to do the best work of their lives and are dedicated to spreading the use of Kotlin as it has unlocked a whole new future for us as engineers. We are now able to write safer code more effectively with our time. With less boilerplate code and with features like null-safety, our lives as engineers are made easier and we want to share that ease with others in the tech industry. All in all, spreading the use of Kotlin will increase developer productivity and lead to higher quality products in the long term.

Image for post
Image for post

We’ve put together a white paper that goes in depth about Kotlin. We’re so happy to have the chance to share our learnings with the community, and looking forward to see where the future takes it.

More about Shelby and Katie:

Outside of our day-to-day engineering responsibilities, we are members of the Tech Women @ Intuit core team, helping to close the gender gap and contribute back to the community through mentoring at local schools, continued involvement with recruiting, and presenting to our peers. There are many things we like about working at Intuit but the engineering culture is a huge factor in why we both decided to stay here after we graduated. We are constantly learning from the engineers around us and are continually encouraged to explore new technologies.

Intuit Engineering

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store