Kotlin developer salary September 2017

United States Kotlin developers labor market analysis according to the results of September, 2017
20 September 2017   1253

We publish the analysis of the labor market of developers in the United States monthly. For Haskell developers there were 25 vacancies. The vacancy rates were distributed as follows. 

Salary Estimate Kotlin September 2017Kotlin developer salary estimate 

The most of the developers are required in San Francisco, CA; the least in Phoenix, AZ.

Kotlin developer vacancies in different cities September 2017 Number of Kotlin developer vacancies in different cities

Among the companies that hire Kotlin developers the leaders are: 

  • Sphere, Inc.
  • Redfish Technology
  • Google

Number of vacancies in different companies Kotlin September2017 Number of Kotlin developer vacancies in different companies 

According to the experience required, the vacancies are distributed as follows.

Number of vacancies by experience level Kotlin September 2017Kotlin developer vacancies by the experience level

The average salary and salary according to the level of experience were distributed as follows. However, please, note that there's no data on salary for mid and senior level of experience as, probably, it is not so popular and only beginners are needed. 

Average salary Kotlin September 2017Kotlin developer average salary

The analysis was carried out by the Hype.codes portal method using the indeed.com data.

    JetBrains to Roll Out Kotlin/Native 0.8

    Version 0.8 of Kotlin/Native brings new features and bug fixes
    13 July 2018   137

    The project team of Kotlin / Native introduced the release of version 0.8. Corrections and additions have concerned the security of multithreaded programming, the expansion of library functionality and support for iOS devices. As always, alot of bugs are fixed.

    Parallelism

    Implemented the concept of object freezing

    object Config {
      var width: Int = 10
      private set
      init {
        val file = fopen("config.txt", "r")
        if (file != null) {
                  try {
                  val buffer = ByteArray(2 * 1024)
                     while (true) {
                     val nextLine = fgets(buffer.refTo(0), buffer.size, file)?.toKString()
                     if (nextLine == null || nextLine.isEmpty()) break
                     val records = nextLine.split('=')
                     if (records.size != 2) continue
                     val key = records[0].trim()
                     val value = records[1].trim()
                     when (key) {
                             "width" -> width = value.toInt()
                                }
                              }
                            }
                 } finally {
                    fclose(file)
                        }
             }
    }

    This code considers the configuration file and will later receive the Config.width property. 

    The Config file itself is divided for any number of threads or vorkers. After publication, the object is frozen and any attempt to change it will result in an exception (InvalidMutabilityException).

    The second peculiarity of parallelism in the Kotlin / Native project is indivisible values and references. Let's add an image:

    object Config {
    private val icon_ = AtomicReference()
    val icon: Image
    get() = icon_.get()!!
    fun updateIcon(file: String) {
    val imageData = Image(file)
    icon_.compareAndSwap(icon_.get(), imageData.freeze())
    }
    }

    All information about the icon in the AtomicReference is frozen. Any changes are indivisible and similar information is visible to each client.

    Kotlin Libraries

    Starting v 0.8, the standard library (kotlin. *) is compatible with other platforms. Standard number generator and the function of mixing the collections are designed to eliminate the use of sharpened for a specific platform API. As an experiment, the project supports other libraries, for example, kotlinx.coroutines, kotlinx.serialization, and also the Ktor HTTP client.

    Changes for iOS devices

    Fixed issues with the publication in the App Store and the initialization of the platform. Support for the 32-bit ARM architecture of iOS processors, which allows using Kotlin / Native on older devices from Apple added.