Kotlin developer salary

How much Kotlin developers earn in Russia? 
01 June 2017   1174

The Russian labor market for Kotlin coders is small. In May, companies offered only 98 jobs.


Statically-typed programming language that runs on the Java Virtual Machine and also can be compiled to JavaScript source code

The number is really small if you compare it with the number of vacancies for JavaScript developers which was almost 700.

The largest number of vacancies are in Moscow, St. Petersburg and Novosibirsk. Developers who own more common technologies can find work in almost any region of the country, which can not be said about Kotlin programmers. Jobs are available only in 16 regions.

kotlin Vacancies mapVacancies map

Wage level is led by Novosibirsk. In this region, JetBrains, which develops the language of Kotlin, is looking for employees actively.

Kotlin salary level graphKotlin salary level graph

Technology is young and naturally employers do not indicate that they are looking for developers with experience more than six years. 65.4% of vacancies are addressed to developers with experience up to 3 years. 34.6% of vacancies are addressed to the coders with an experience of 3 to 6 years. As is the case with Go coders, the average salary in the country has not fall under the mark of 100000 rubles even for developers with experience of up to 3 years. This, in spite of a small number of vacancies, speaks of the demand for specialists of the technology itself.

Diagram of kotlin vacancies, sorted by experienceDiagram of vacancies, sorted by experience

How to convert list to map in Kotlin

Two ways to convert list to map in Kotlin, with code examples
31 October 2017   535

For example, you have a list of strings like:

val list = listOf("a", "b", "c", "d")

and you need to convert it to a map, where the strings are the keys.

There are two ways to do this:

The first and most performant is to use associateBy function that takes two lambdas for generating the key and value, and inlines the creation of the map:

val map = friends.associateBy({it.facebookId}, {it.points})

The second, less performant, is to use the standard map function to create a list of Pair which can be used by toMap to generate the final map:

val map = friends.map { it.facebookId to it.points }.toMap()