State of Kotlin — the story behind a survey

One of my first bigger pieces of work I’ve started as an evangelist has been surveying the Kotlin developer ecosystem. This post explains why I’ve decided on it, how I’m doing it, where I hope this leads, and how Star Wars gets into everything it touches.

Inspired by the State of JS, now in its second year with over 20,000 responses, I decided to create something for the Kotlin community. My choice was to go for a comprehensive survey of the entire Kotlin ecosystem, with a focus on how people learn and use it around the world.

But dude, what’s a Kotlin? 🤔

Kotlin is a programming language created by JetBrains that is completely interoperable with Java (asterisk, asterisk), has fantastic IDE support, and is being widely adopted by the Android community — even officially supported by Google. This is the exciting bit for me, as I’ve spent a vast chunk of my career in Android development. These are my people. 🙌

Android developers hearing that Google now officially supports Kotlin

Why do a survey? On Kotlin?

Kotlin has a weird characteristic. It makes developers happy. I’m not sure whether that’s because people are just glad to avoid the verbosity of Java, the null safety it brings, extension function or a combination of its features. 
To clarify: I don’t think Java is bad, I actually like it. We have tooling to cope with its verbosity, and Java tooling ecosystem is next to none.

Yet Kotlin just makes you happy for some odd reason. I’ve equated this to how my first Mac laptop made me feel when I bought it. That kind of bring-a-smile-to-my-face happy. As someone who spends his time yelling at the computer to do my bidding — smile on my face happy is good.

Secondly, the Kotlin community is young, and resembles a rocket ship flying to the stars 🚀. Preliminary results show that 40% of all responders have only started using Kotlin after Google announced its support for Android. That was in May 2017, less than a year ago. And these are predominantly Androiders nowadays. That’s some crazy Wayne-Gretzky’s-hockey-stick-on-fire growth numbers right here. 🏒🔥📈

Lastly, we use Kotlin at Pusher for all our new Android SDK development, including Chatkit and Push Notifications. As a developer, a resource for where the ecosystem is going is something I want too.

Surveys for dummies (and freshly brewed marketeers)

I went in here like Jon Snow, knowing nothing. Here’s what I learned.

I created the survey in Typeform — a.k.a. the thing that looks the least terrible when creating it. 
I liked the fact it allowed me to create logical jumps around it, to avoid asking people unnecessary questions. For example, if someone answers they’ve never used Kotlin in their work projects, the survey can skip the entire section asking them about said work projects. These have proven extremely popular — several people have complimented the survey’s design and the thoughtful questions — even compared to the StackOverflow’s survey. I just think that’s pure amazing 😊, and I love to see little things that are so valuable to people.

Typeform also integrates with Google Analytics well — just drop in a tracking ID. Next thing you know you’re able to track attribution and even analyse how long people are taking on each step —that is especially great as it allows us to make changes to the survey while it’s live. Essentially the online equivalent of in-air refueling.

Changing the survey while it’s live

Let’s face it — having a prize is good for business, especially if your business is making developers happy. We decided to offer a prize draw for the respondents of the survey — a trip to KotlinConf, the all Kotlin conference organised by Jetbrains that is going to be in Amsterdam in October. Pusher is flying the lucky winner to Amsterdam, paying for their hotel, and getting them a ticket to the conference → 🇳🇱 + ✈️ + 🏨 + 🎟

To design the survey itself, I went through several iterations of questions. I gathered feedback from different sides: 
- Technically from my circle of Android and Kotlin developers, 
- practically from my Pusher colleagues with experience in running surveys, and 
- finally from Hadi Hariri — the main Developer Advocate for Kotlin at Jetbrains, as he knows the ecosystem best after all.

Working off that feedback I decided to remove a whole section about the usage of tooling that I didn’t deem too interesting and useful. I guess no one wants to see a series of 20-option-multiple-choice-questions on what tools and libraries they had used, especially as they are not likely to be familiar with most of the options. Besides, as most tools are open-source I’ll be able to still use them by collecting the other most powerful metric in the universe — GitHub ⭐️. 
Another big piece of feedback I received and implemented was improving the flow, by adding the logical jumps I mentioned earlier.

Combining everything I learned, I was able to create a pretty cool survey that people seem to like and care about.

Going kray on social media

My first objective was to get the survey viral on social media. I mostly used Twitter, Reddit, Slack communities, and newsletters.

On Reddit, I posted the survey on the subreddits that I thought were interesting — /r/androiddev and /r/kotlin. It was on the front pages of these subreddits for a few days.
On Twitter, I tweeted my announcement, pinned the tweet to my profile, and started to DM as many people in the Kotlin community as possible, asking them to retweet it. Some of them did that, some of them quoted it, and some even shared their own tweets. The final tally at the time of writing this is just under 100 retweets.

I shared the survey in 5 Slack communities, including the main Kotlinlang with nearly 15,000 members. 
I also managed to get the survey included in 2 newsletters — Android Weekly, the largest newsletter for Android developers, and got a sponsored post in Kotlin Weekly for that week.
Finally, I shared the survey on the “other” networks too — such as Google+, Facebook, and LinkedIn. I didn’t expect much from these communities, but I had my announcement copy written already, and it cost me nothing to post so there was no reason why not. 
To add to the virality factor, the last page of the survey also includes a call to action with links to share it on social media.

The first “viral” phase of social media promotion was (mostly) free, and gained us over 1200 organic responses. In addition to this, over 35% of people who land on the survey actually also finish it, and my colleagues who had been in Marketing longer than myself tell me that’s a pretty good number.

Ads and other Mediums

A few weeks after the initial launch we changed the tactic and started implementing some ads. We chose social media — Twitter and Reddit to be precise, as they are the easiest networks to target by interests that are specific to Kotlin. It has proven difficult to target the survey on Facebook. Although it’s ginormous in size, there are limited ways to target people based on an interest like Kotlin.
I was impressed by the whole process of creating and running ads — especially the analytical aspect of it. I will probably do a post around this “numbers game” in the future.

Besides the paid ad campaign I also wrote a blogpost announcing the survey on Pusher’s blog, sent an email to the Android and Java developers on our mailing list, as well as wrote a post on Dev.to 
The last one is especially is interesting because they tend to tweet the submissions to their 150k strong (and growing) developer community.

Lastly, I wrote a sort of meta-announcement on Medium — the one you’re currently reading. (Hi there 👋, I’m running this little survey for Kotlin developers, please respond to it if you are one. I hear the prize is quite neat.)

fun facts

Functional programming under the influence of Star Wars is an interesting problem. We went to see The Last Jedi around the time when I was creating the survey and one of the question happened to mention “First Order functions”, instead of higher order functions.

First Order functors of the Stormtrooper type

We also got one job application based off this survey. That person didn’t know of Pusher before. Speaking of those — maybe You should come and join me. We ARE hiring a Developer Evangelist at Pusher.

Typeform gets wonky when there are too many answers to too many questions. It also tends to redesign on you. Twice — first the admin dashboard, and then the brand itself.

Typeform can’t handle Kotlin’s scale…

Bracing for the future

When I came up with the State of Kotlin survey, I took it as a a leap of faith to see how it pans out. 
Now, having seen the initial response, I think otherwise. I believe State of Kotlin is something we can repeat every year (maybe even twice a year), and continue helping the community grow.

I look forward to closing the survey in March, telling the lucky winner that they are going to KotlinConf, analysing the results and sharing the report with the Kotlin ecosystem. It’s going to be great. 🚀