Instil + Kotlin == Happiness

A Case Study of the JetBrains Training Partnership

Instil is a software development company based in Belfast, Northern Ireland. They specialize in mobile / cloud projects, consultancy, and training. Their training department is made up of 3 full-time and 4 associate trainers, all of whom have at least 15 years of experience in developing, coaching, and consultancy. 

At JetBrains,  we’re very excited to have partnered with Instil for our Kotlin Certified Training ProgramThe following post, which tells their Kotlin story, has been written by Garth Gilmour from Instil.

Instil first became involved in Kotlin in 2014. Back then Microservices, Single Page Applications and Cloud were very much in their infancy, and polyglot programming meant some adventurous soul had extended their Grade build file via Groovy. We were very much a traditional JVM shop focused around Java. Several of our developers had successfully completed the Coursera Scala certification and I had written a modestly popular Scala course, but there didn’t seem to be much appetite on either the development or the training side for pushing that option any harder.

It was my colleague Gareth Fleming who first spotted the merits of Kotlin and began to advocate for it within the company. This was no accident. Gareth has an extensive background in mobile development, but at the time was teaching Java courses in response to overwhelming demand on the services side of the business. So he was well placed to appreciate how Kotlin would be an advantage both to experienced software teams and to graduate developers trying to acclimatise to the JVM ecosystem. Gareth became such a fan he started speaking on Kotlin at conferences, managed to drag me away from Scala (not an easy task at the time) and persuaded our development teams to try Kotlin on new Android projects.

Workshop

For our software business the rest, as they say, is history. We used Kotlin internally with increasing enthusiasm and started making it an integral part of our sales pitch in 2016. Since then we have delivered multiple projects using Kotlin, including mobile applications, Spring Boot based Web Applications, and Serverless systems deployed to AWS. We actively evangelise Kotlin to the other software companies we work with, and have been instrumental in helping several of them make the switch. As part of this we set up the Belfast Kotlin User Group in March of this year, organised a Kotlin Everywhere event and are actively collaborating with our sister groups in Dublin, Cork and Limerick. 

Returning to 2017 those of us working in the services side of the business began to make Kotlin a priority. Every year we take a punt on a technology that we think is going to explode into the near future and write a new classroom-based course from scratch. As a team we decided Kotlin’s star was in the ascendent, so we reached out to JetBrains for some official collaboration. JetBrains were kind enough to provide us with reviews and feedback on the material.

This process continued for about six months, with additional feedback from our own coders and the wider development community in Belfast. By January 2018, we were ready to formally announce the course, so we ran a public training course with Svetlana Isakova (from JetBrains) attending as an official reviewer for the training. 

Svetlana at BASH Event

Since that first delivery, Kotlin training has become one of our specialities. My colleagues and I have been to Germany, Spain and all over the US to deliver bespoke Kotlin courses. Based on client demand we have written additional courses to convert Swift developers to Kotlin, explore advanced Functional Programming techniques and make use of new frameworks like Spring WebFlux and Ktor

As the good news about Kotlin has spread, we’ve also been approached to do talks and single-day workshops at Kotlin, including GOTO Amsterdam, GOTO Copenhagen, NI Dev Conf (video here), RebelCon, ACCU and (last but definitely not least) KotlinConf. We’ve had so many invites in 2019 that we ended up putting them on a t-shirt :-)

InstilOnTourTShirts

We’re hoping to collaborate with the other beneficiaries in 2020. If you are a software team considering Kotlin adoption, I would be unequivocal in recommending that you have a go. All of our experiences have been overwhelmingly positive, and the speed bumps we did encounter were never showstoppers. As a result of adopting Kotlin, both we at Instil and our partners are delivering projects faster, and we see developers having a more positive experience on the JVM.

Posted in Uncategorized | 1 Comment

Kotlin Heroes programming contest, round #2

Kotlin Heroes

We are excited to announce the second round of our Kotlin Heroes programming contest taking place on the Codeforces platform. JetBrains is working once again with Codeforces to promote Kotlin in the competitive programming community, as well as to give the Kotlin community a platform to compare and hone their algorithmic programming skills. We hope that any of you who entered our first round on the 22nd of May this year will join us again now you know what to expect and try to improve (or at least hold) your standing on the leaderboard.

You can see the standings from the first Kotlin heroes here, it was a closely fought contest. We would like to thank everyone for entering and submitting their answers and congratulate the top 3 winners Petr, ecnerwala, and abacabadabacaba on their incredible achievement, especially considering they were up against 4,500 other registrants from over 63 countries. We’d also like to give a shout out to tourist, for being the only other person who managed to solve every problem set.

Episode 2 of the Kotlin Heroes competition will be hosted again on Codeforces, this time on the 7th of September, 2019, at 14:35 UTC (17:35 MSK, 07:35 PDT, 22:35 CST). The contest will last 2,5 hours and will feature a set of problems designed for both beginners and seasoned competitive programmers alike. The top three winners will receive prizes of $512, $256, and $128, respectively. The top 50 contestants will win a Kotlin Heroes t-shirt and an exclusive Kotlin badge. Finally, every competitor who solves at least one problem will enter a draw for one of the 50 exclusive Kotlin Heroes t-shirts.

Join Kotlin Heroes!

Continue reading

Posted in community | 1 Comment

Kotlin 1.3.50 released

We’re happy to announce the release of Kotlin 1.3.50 today. In addition to the quality and tooling improvements, the main focus for this version has been on:

  • Designing a new Duration and Time Measurement API (available for preview).
  • Working on an improved Java-to-Kotlin converter.
  • Experimental generation of external declarations for npm dependencies in Gradle Kotlin/JS projects (using Dukat).
  • A separate plugin for debugging Kotlin/Native code in IntelliJ IDEA Ultimate.
  • Java compilation support in multiplatform projects.

You can find the complete list of changes in the change log. As always, we’d like to thank our external contributors. Now let’s dive into the details!

Null-check optimizations planned for Kotlin 1.4

As you probably know, Kotlin decreases the possibility of NullPointerExceptions by providing support for nullable types. However, because of interoperability with Java code, it’s impossible to avoid NPEs completely. To help developers better understand the source of a nullability problem if it occurs, Kotlin compiler throws different types of runtime exceptions with clear error messages instead of pure NPEs. It turned out that this approach has its disadvantages: it reduces possible null check optimizations that can be performed either by the Kotlin compiler or by various kinds of bytecode processing tools, such as the Android R8 optimizer.

Continue reading

Posted in Releases | Tagged | 27 Comments

Kotlin wins Breakout Project of the Year award at OSCON ’19

Today at the O’Reilly Open Source Awards 2019, we were honored to hear that Kotlin has won the prestigious Breakout Project of the Year award, this award recognizes a project that has started “breaking out in a big way” over the past year, which we are really happy about. We want to say a massive thank you to O’Reilly OSCON for this recognition, but more importantly, we want to take a minute to thank the incredible Kotlin community who have brought the project to where it is today.

Since our first commit to the GitHub repository on the 7th of November, 2010, we have watched in awe as the open-source community has embraced the language and driven it forward with their contribution, support, and ideas which have gone into the language we are all very proud of.

There is still work to do, but as long as we have such an incredible community behind us we know we can make this language what it needs to be for developers. If you haven’t used Kotlin yet, we would love to have you try. Your contributions and feedback are what help us improve. Get involved in the evolution of the language and let’s see how far we can go together.

Again, to everyone who has helped make Kotlin the success it is today, thank you and have a nice Kotlin! :)

Posted in Uncategorized | 4 Comments

Kotlin 1.3.40 released

We’re happy to present the new release today, Kotlin 1.3.40. In addition to the quality and tooling improvements the main focus for this version has been on:

  • Gradle support for NPM, Yarn, and Webpack for Kotlin/JS
  • Test runner improvements for multiplatform projects
  • New type inference
  • Performance and interoperability improvements for Kotlin/Native

Also, new functions were added to the standard library in an experimental state.

You can find the complete list of changes in the change log. As always, we’re really grateful to our external contributors.

Let’s dive into the details!

Continue reading

Posted in Releases | Tagged | 15 Comments

Kotlin Is Everywhere! Join the Global Event Series

When we say ‘Kotlin is everywhere’, we mean it. Kotlin works on all platforms, and it allows you to develop all types of applications. Developers are excited about Kotlin and hungry for opportunities to learn more. Now it’s time to bring it to your city with the support of JetBrains and Google.

Blog Post - Grey

We’re happy to announce our new program, Kotlin/Everywhere – a series of community-driven events focusing on the potential of Kotlin on all platforms. Its goal is to help people learn the essentials and best practices of using Kotlin everywhere, be it for Android, iOS, back-end, or front-end.

Join the Kotlin/Everywhere global event series between June and December 2019.

Continue reading

Posted in community, Events, Uncategorized | Tagged | 1 Comment

Kotlin Census 2018 Infographics and Report

Kotlin 1.0 was released 3 years ago. It has been an amazing journey and a huge achievement to get to where we are today: Kotlin/Native has opened up incredible possibilities for Kotlin usage on all platforms, Kotlin was announced as a first-class language on Android, and our KotlinConf has become a successful annual event. The potential for the language is immense: every year Kotlin users double in number. Programmers all over the world are using Kotlin to create their server- and client-side web applications, Android and iOS mobile applications, and even data science.

This is the first year when we present the Kotlin Census infographics report to provide you with more insights and trends around Kotlin. Check it out!

Kotlin_Census_2018_blogpost_1@2
Continue reading

Posted in community, Uncategorized | Comments Off on Kotlin Census 2018 Infographics and Report

Kotlin 1.3.30 released

We’re happy to announce the release of Kotlin 1.3.30, a new bug fix and tooling update for Kotlin 1.3. The main areas of focus for this release have been around Kotlin/Native, KAPT performance, as well as improvements for IntelliJ IDEA.

You can find the complete list of changes in the change log. As always, we’d like to thank our external contributors. Now let’s dive into the details!

Continue reading

Posted in Releases | Tagged | 10 Comments

Kotlin/Native Support for AppCode 2019.1

We are happy to announce the new and improved Kotlin/Native plugin for AppCode 2019.1! Enjoy working on Kotlin, Swift, and Objective-C projects for macOS and iOS inside the same IDE. New to AppCode? AppCode is macOS-only IDE from JetBrains designed specifically for iOS/macOS developers. It offers extensive support for Objective-C and Swift.

To try the plugin out open AppCode 2019.1 (EAP or Release), navigate to Preferences | Plugins and type Kotlin/Native in the Marketplace tab search to find and install the Kotlin/Native for AppCode plugin

New Kotlin/Native Projects for iOS

The Kotlin/Native plugin for AppCode adds support for Kotlin/Native projects written in Gradle. For reusing code between iOS and Kotlin, we set up Kotlin/Native build to produce a framework which is used in Xcode. AppCode helps to configure an Xcode build for this scenario. We’ve added items to the New Project wizard to help us get started with a pre-configured project from scratch.

Continue reading

Posted in Native, Uncategorized | 1 Comment

Kotlin 1.3.20 released

We’re happy to announce the release of Kotlin 1.3.20, a new bug fix and tooling update for Kotlin 1.3. In addition to improvements to the compiler and IDE, this version:

  • Allows running Gradle tasks in parallel within a single project
  • Allows building multiplatform projects via Gradle Kotlin DSL
  • Brings improvements for inline classes
  • Introduces a separate command line tool for Kapt
  • Enables incremental compilation for Kotlin/JS by default
  • Brings improvements to Kotlin/Native

As always, we’d like to thank our numerous external contributors. The complete list of changes for this release can be found in the change log. Let’s dive in!

Continue reading

Posted in Releases | Tagged , | 22 Comments