Talks

Here goes the list of events, talks and workshops I’ve performed in the recent years. Need a speaker? Eugene is happy to speak at your event, training, or workshop. Reach him via twitter or email “me” at jonnyzzz.com.

In total, I've made 51 presentations: 1 interview, 3 keynotes, 42 talks, 5 workshops.

You may also check my contributions to open source or projects.

2022 | 2021 | 2020 | 2019 | 2018 | 2017 | 2016

2022

In the year I've made 1 presentation.

Kotlin User Group Munich

Gradle, buildSrc, and Kotlin

A nice 20 minutes talk on how to reuse code in Gradle when using Kotlin language in Gradle. Shows how buildSrc helps and explains a migration path from a single build.gradle.kts to a reusable script which can be included in several projects, or which helps to split scripts.

For more details check out the post.

2021

In the year I've made 3 presentations.

Android Online Meetup

Android Online Meetup

We are talking about recent Android updates, Kotlin and related topics

| More | Facebook | YouTube |

IntelliJ IDEA Conf

Indexing or How We Made Indexes Shared and Faster

Indexing is what IntelliJ IDEA needs to do to learn all about the project we open. This is the cost we pay to make the IDE smart so that it can help us with our daily tasks, be that for reading, writing, completion, navigation, renaming symbols, or refactoring our code.

Can we make IntelliJ IDEA index our projects faster? Many times faster? YES! Join Eugene to learn more!

We start the talk with a basic explanation of what indexing does in IntelliJ IDEA and how indexes are used by smart features. Next, we’ll discuss how we can share indexes and shorten the indexing time. What indexes are shared or how they are delivered to an IDE is our next topic. You’ll learn about our experiments and outcomes and see how the IntelliJ IDEA codebase indexing time has been halved recently.

As an outcome, you’ll learn how to apply this to all your projects.

| More | Link | Slides | YouTube |

Kotlin User Group Munich

inline fun with Kotlin

We cover how inline fun works, explain reified inline functions. We’ve come across the type erasure on the JVM and found the elegant way to workaround all the problems with the power of inline functions in Kotlin.

| More | Link | Meetup | Slides | YouTube |

2020

In the year I've made 1 presentation.

GOTOpia Europe 2020

Facts you may not know about Kotlin

Since Kotlin began back in 2010, many features have appeared in the language, some of them are still going, others only show up in the deepest darkest depths of source repository history.

Eugene will start the talk with several fun facts from Kotlin’s past. After that, he will go into detail on everything you need to know about Kotlin that you likely had no idea about. Nowadays, Kotlin is not just the JVM language it was in the very beginning, today it supports JVM, JS, and native platforms, including iOS.

Did you know you can share common code and libraries between JVM, JS and native platforms, including iOS? Join Eugene for more.

In this talk, you’ll learn:

  • More about the namesake-island, traits, generics and type erasure
  • How to write compact and clear Kotlin
  • What idiomatic code is

| More | Link | YouTube |

2019

In the year I've made 19 presentations: 1 keynote, 13 talks, 5 workshops.

Devoxx Belgium

Coroutines for Java Developers

Did you know that coroutines were invented about 50 years ago?

A coroutine is a function that can not only return but also suspend somewhere in the middle and resume later from that point. Coroutines are implemented in Kotlin, an open source, modern, pragmatic and statically typed, multiplatform and JVM programming language.

We’ll use coroutines as the remedy for the callback hell problem of non-blocking server-side applications, graphical, mobile or client applications.

We see how to write an equivalent code a linear looking code with suspend functions. You’ll learn how to apply Kotlin coroutines for your existing project independently of JVM version.

| More | Link | Slides | YouTube |

Facts you may not know about Kotlin

Since Kotlin began, back in 2010, many features have appeared in the language, some of them are still going, others only show up in the deepest darkest depths of source repository history.

We will start the talk with several fun facts from Kotlin’s past. You will learn a little about the namesake-island, traits, generics, and type erasure. Writing compact, clear, and idiomatic code will also be one of our topics.

Nowadays, Kotlin is not just the JVM language it was in the very beginning, today it supports JVM, JS, and native platforms, including iOS. Did you know of the possibility to share common code and libraries between these platforms?

Join us for more.

| More | Link | Slides | YouTube |

Devoxx Ukraine

Coroutines for Java Developers

Did you know that coroutines were invented about 50 years ago? A coroutine is a function that can not only return but also suspend somewhere in the middle and resume later from that point. Coroutines are implemented in Kotlin, an open source, modern, pragmatic and statically typed, multiplatform and JVM programming language. We’ll use coroutines as the remedy for the callback hell problem of non-blocking server-side applications, graphical, mobile or client applications. We see how to write an equivalent code a linear looking code with suspend functions. You’ll learn how to apply Kotlin coroutines for your existing project independently of JVM version.

| More | Link | Slides | YouTube |

Oracle Code One

Kotlin for Java Developers

Have you heard about Kotlin, an open source, modern, pragmatic, statically typed, multiplatform JVM programming language? Attend this session to learn how to be more productive and to write less boilerplate code in your daily work with the help of the language’s embedded nullability checks, data classes, or fluent APIs. Nonblocking code authors will find Kotlin coroutines interesting and powerful. Full-stack developers and mobile developers will learn how to use the same code for JVM, JavaScript, native, or mobile. You will see how Kotlin/Java interop helps you use the language in existing Java 1.6 and newer project codebases with no code rewrite or conversion needed.

| More | Link | Slides | Demo | Game Of Life |

Kotlin User Group Meetup, Saint Petersburg

Kotlin: Нейтив код с удовольствием

Native with Kotlin/Native

Насколько сложно для Java программиста написать программу, которая работает без виртуальной машины на голом железе? Не нужно бояться! Мы поговорим, как можно это осуществить, даже без виртуальной машины, но с комфортом, к которому мы привыкли с Java. Мы напишем нативный код на Kotlin, современном языке с открытым исходным кодом и статической типизацией, который поддерживает много платформ, включая iOS, Android, JVM, JS, linux, macOS, windows и многие другие. Чтобы было еще интереснее, мы используем в нашей программе на Kotlin библиотеки написанные на С и Objective-C/Swift. Кстати, наш код можно сделать доступным и для этих языков. Напоследок, мы поговорим, как можно написать код на Котлине один раз и скомпилировать его для всех платформ сразу, используя Kotlin Multiplatform projects.

| More | Link | Slides | GitHub | Kotlin/Native MPP Templates | YouTube |

JetBrains Open Day Saint Petersburg

Kotlin: факты, о которых вы, возможно, не знали

Facts you may not know about Kotlin

C момента возникновения Kotlin в 2010 году, в нём появилось очень много всего: какие-то фичи успешно живут, о каких-то можно узнать, только покопавшись в истории репозитория. Мы начнём с забавных фактов из прошлого: вспомним об острове-тезке, трейтах, дженериках и стирании типов. Поговорим и о том, как писать чистый и аккуратный код. Котлин сегодня — это не просто ещё один язык для JVM, он поддерживает JS и компилирует под разные платформы в нативный код, в том числе под iOS. А вы знали, что можно использовать один и тот же код и библиотеки при разработке на разные платформы? Если нет — узнаете на докладе.

| More | Link | YouTube | Slides | GitHub |

TUM x JetBrains

Introduction to Kotlin with live coding

| More | Link | Slides | YouTube |

Conference for Kotliners

Facts you may not know about Kotlin (opening keynote)

Since Kotlin began, back in 2010, many features have appeared in the language, some of them are still going, others only show up in the deepest darkest depths of source repository history. We will start the talk with several fun facts from Kotlin’s past. You will learn a little about the namesake-island, traits, generics, and type erasure. Writing compact, clear, and idiomatic code will also be one of our topics. Nowadays, Kotlin is not just the JVM language it was in the very beginning, today it supports JVM, JS, and native platforms, including iOS. Did you know of the possibility to share common code and libraries between these platforms? Join us for more.

Feedback: 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9

| More | Link | Announce | Slides | GitHub | YouTube |

Voxxed Days Australian Tour: Sydney

Expressive APIs with Kotlin

We like when our code is easy to read and understand. It is indeed hard to design an API to be expressive enough for that. The popular approaches are builders or fluent APIs. Let’s see what one can achieve with the more expressive programming language?

Kotlin language grammar opens the way for it. Extension functions and lambdas are the very first steps in our way to make even exiting Java APIs more expressive. We start the talk with a basic introduction into Kotlin language. In the live coding session, we see, how a long Java code snippet with a builder is enlightened.

Configuration scripts, JSON, or XML are powerful examples of Kotlin APIs or DSLs in action. You’ll know existing libraries and see how to easily create your own APIs. We’ll see the HTML builder and React DOM builder APIs in action too.

From the talk, you will learn how to benefit from Kotlin language grammar to achieve the expressiveness of your code and APIs. You’ll no longer see the magic behind statically typed DSLs in Kotlin, but you will know libraries and patterns to bring it into your project

Feedback: 1

| More | Link | Slides | GitHub |

Voxxed Days Australian Tour: Melbourne

Expressive APIs with Kotlin

We like when our code is easy to read and understand. It is indeed hard to design an API to be expressive enough for that. The popular approaches are builders or fluent APIs. Let’s see what one can achieve with the more expressive programming language?

Kotlin language grammar opens the way for it. Extension functions and lambdas are the very first steps in our way to make even exiting Java APIs more expressive. We start the talk with a basic introduction into Kotlin language. In the live coding session, we see, how a long Java code snippet with a builder is enlightened.

Configuration scripts, JSON, or XML are powerful examples of Kotlin APIs or DSLs in action. You’ll know existing libraries and see how to easily create your own APIs. We’ll see the HTML builder and React DOM builder APIs in action too.

From the talk, you will learn how to benefit from Kotlin language grammar to achieve the expressiveness of your code and APIs. You’ll no longer see the magic behind statically typed DSLs in Kotlin, but you will know libraries and patterns to bring it into your project

Feedback: 1

| More | Link | Slides | GitHub | YouTube |

Voxxed Days Australian Tour: Sydney

Full-day Kotlin Workshop

Introduction to Kotlin, Kotlin/JVM, Kotlin/JS, Kotlin/Native. Workshop in 4 parts with hands-on experience.

Feedback: 1 , 2 , 3 , 4

| More | Link | Migration to Kotlin |

Voxxed Days Australian Tour: Melbourne

Full-day Kotlin Workshop

Introduction to Kotlin, Kotlin/JVM, Kotlin/JS, Kotlin/Native. Workshop in 4 parts with hands-on experience.

Feedback: 1 , 2 , 3 , 4

| More | Link | Migration to Kotlin |

Kotlin User Group Sydney

Native with Kotlin/Native

Have you tried Native with Kotlin/Native? It compiles your Kotlin code for various native platforms, including iOS, Mac, Linux, and Windows. No virtual machine is needed! The native world brings native libraries, C static and dynamic libraries, Apple frameworks, Swift and Objective-C dependencies. Kotlin adds multiplatform libraries to share Kotlin code between different platforms. That is the way to share code between Android and iOS, between backend and frontend, between JVM, JavaScript, C, and Swift/Objective-C. You benefit from both platform libraries and multiplatform pure Kotlin libraries. Join us to learn about native development new Kotlin/Native, code reuse between platforms and multiplatform development fun.

Feedback: 1 , 2

| More | Link | Slides | GitHub | Kotlin/Native MPP Templates |

Kotlin User Group Munich

Full-day Warkshop

We will start with a live coding introduction into the basics of the Kotlin language. We will discuss in depth the features of the language and cover fluent APIs, higher-order functions, lambdas, and type-safe DSLs. You’ll be able to see how these language features are used in real life examples. You will get an understanding of the magic behind type-safe builders. Kotlin Coroutines will be covered next, where you will be able to explain afterwards why Coroutines are not threads, not Fibers. You’ll learn how ‘suspend’ functions are used to simplify callback driven programming and how they can help you to turn callback-style code into linear looking code. With Kotlin you can compile your code for JVM, Android, iOS, Mac, and JS. With multiplatform projects, you may easily reuse your Kotlin code across different platforms. Logic, business rules, utilities, and RPC are all good examples of possible code parts you should reuse. You’ll see how Kotlin code can be used in React frontend, JVM backend, Android and iOS, and Native. Let’s have some fun!

| More | Link |

Kotlin User Group Melbourne

Native with Kotlin/Native

We will start with a live coding introduction into the basics of the Kotlin language. We will discuss in depth the features of the language and cover fluent APIs, higher-order functions, lambdas, and type-safe DSLs. You’ll be able to see how these language features are used in real life examples. You will get an understanding of the magic behind type-safe builders. Kotlin Coroutines will be covered next, where you will be able to explain afterwards why Coroutines are not threads, not Fibers. You’ll learn how ‘suspend’ functions are used to simplify callback driven programming and how they can help you to turn callback-style code into linear looking code. With Kotlin you can compile your code for JVM, Android, iOS, Mac, and JS. With multiplatform projects, you may easily reuse your Kotlin code across different platforms. Logic, business rules, utilities, and RPC are all good examples of possible code parts you should reuse. You’ll see how Kotlin code can be used in React frontend, JVM backend, Android and iOS, and Native. Let’s have some fun!

Feedback: 1 , 2 , 3

| More | Link |

JetBrains Munich internal event

Native with Kotlin/Native

We will start with a live coding introduction into the basics of the Kotlin language. We will discuss in depth the features of the language and cover fluent APIs, higher-order functions, lambdas, and type-safe DSLs. You’ll be able to see how these language features are used in real life examples. You will get an understanding of the magic behind type-safe builders. Kotlin Coroutines will be covered next, where you will be able to explain afterwards why Coroutines are not threads, not Fibers. You’ll learn how ‘suspend’ functions are used to simplify callback driven programming and how they can help you to turn callback-style code into linear looking code. With Kotlin you can compile your code for JVM, Android, iOS, Mac, and JS. With multiplatform projects, you may easily reuse your Kotlin code across different platforms. Logic, business rules, utilities, and RPC are all good examples of possible code parts you should reuse. You’ll see how Kotlin code can be used in React frontend, JVM backend, Android and iOS, and Native. Let’s have some fun!

JASS School 2019

Kotlin Workshop

Introduction to Kotlin with some Android parts workshop for the JASS 2019 which held at Technical University (TUM) in Munich

| More | Link | Video | Slides |

Java Day Istanbul

Coroutines for Java Developers

Did you know that coroutines were invented about 50 years ago? A coroutine is a function that can not only return but also suspend its execution somewhere in the middle, it can be later resumed to continue the execution.Imagine, in Java or JVM, a function that can suspend its execution and free the call stack. Does it give power? It does! It simplifies the callback hell of your non-blocking application. A for-loop is now enough to implement an iterator, that lazily computes the elements. In Kotlin, “suspend” functions can suspend and are called coroutines. And it is the power. We’ll use it as the remedy for the callback hell problem of our non-blocking applications. Of course, we’ll build an iterator with for-loop and yield-return. Coroutines help to offload the work from a UI thread of a desktop or Android applications easily. The main giveaway is you’ll learn how to use Kotlin suspend functions and coroutines to simplify your daily tasks.

Feedback: 1 , 2

| More | Link | Slides | YouTube |

Kotlin User Group Munich

Easy Native with Kotlin/Native

Let’s switch to Native with Kotlin/Native. It compiles your Kotlin code for various native platforms, including iOS, Mac, Linux, and Windows. No virtual machine is needed! The native world brings native libraries, C static and dynamic libraries, Apple frameworks, Swift and Objective-C dependencies. Kotlin adds multiplatform libraries to share Kotlin code between different platforms. That is the way to share code between Android and iOS, between backend and frontend, between JVM, JavaScript, C, and Swift/Objective-C. You benefit from both platform libraries and multiplatform pure Kotlin libraries. Join us to learn about native development new Kotlin/Native, code reuse between platforms and multiplatform development fun

| More | Link | Slides | GitHub | Video |

2018

In the year I've made 16 presentations: 1 interview, 1 keynote, 14 talks.

Devoxx Belgium

Oppsless DevOps

The story, how we made 365 deployments in 365 days.

In the talk, I share my experience from creating and maintaining two regions in-house production service. We started with a set of Ansible scripts and Docker containers. To simplify it we use TeamCity build configurations with many parameters. It took several hours to roll a new build or maintain the system. No matter green-blue deployment was used.

It was timely to maintain. And I decided to make it faster. Now all deployments run by itself automatically in the night, the versions are stored in Consul. The system is resilient.

Join me to know more of easy steps we did to reduce the toil

| More | Link | Slides | YouTube |

Kotlin Deep Dive

Kotlin is a statically typed programming language for modern multiplatform applications language.

We start with the basics, the introduction into the language. We discuss language features in deep and cover DSLs. You’ll see how static typed DSLs are created and you will be able to understand the magic behind it.

Next, we switch to coroutines in Kotlin and explain how a suspend functions help. You’ll learn how ‘suspend’ functions and Kotlin coroutines are used to simplify callback driven programming and help to turn callback-style code it to a linear looking code.

With Kotlin you can compile your code for JVM, Android, iOS, Mac, and JS. With multiplatform projects, you may easily reuse Kotlin code between platforms. You’ll see how same Kotlin code is used in JS, JVM, Android, and iOS.

| More | Link | Slides | GitHub-1 | GitHub-2 | GitHub-3 | YouTube |

Oracle Code One

Coroutines for Microservices [DEV5066]

| More | Link | Slides |

Emerging Languages Bowl 2018: The Battle for Supremacy Rages On [DEV4983]

I took part in the competition to present Kotlin and language features as a comparison to Java and Project Amber.

| More | Link |

Private Webinar

Kotlin in 42 minutes

Yet another variation of the talk for a company, who were asking an introductory talk on Kotlin. Covered basics in a live-coding environment.

| More | Link |

mDevCamp.eu

Multiplatform Kotlin in 42 minutes

Join us to welcome the new world of reusable code. In the talk, we will be creating a web application with JVM backend, React JavaScript frontend. Eugene explains, how Kotlin allows us to reuse code between platforms. Kotlin will not help you to use your JVM library from iOS or JavaScript. We will do live-coding and go through several examples. One need multiplatform libraries too, we cover the topic and share and use some production-ready multiplatform libraries for the demo application we create.

You’ll learn about Kotlin multiplatform programming basics and understand how you can benefit from multiplatform Kotlin in your daily projects.

| More | Link | Slides | GitHub | Video |

JUG CZ

Kotlin DSLs in 42 minutes

The talk was a mixture of the DSLs talk with the Kotlin in 42 minutes talk done to make it easier for the audience with less of no Kotlin experience

| More | Link | GitHub | Slides | Video |

Kotlin User Group Czech

Multiplatform Kotlin in 42 minutes

Nowadays, one uses many languages to code an applications. Javascript, HTML, CSS, Java, SQL, Kotlin, Android, iOS and so on. Did you know, Kotlin compiles the same code to different platforms? With that, you reduce the number of languages in your application and benefit from code reuse, e.g., from server-side JVM and client-side JavaScript.

Join us to welcome the new world of reusable code. In the talk, we will be creating a web application with JVM backend, React JavaScript frontend. Eugene explains, how Kotlin allows us to reuse code between platforms. Kotlin will not help you to use your JVM library from JavaScript of vice versa. We will do live-coding and go through several examples. One need multiplatform libraries too, we cover the topic and share and use some production-ready multiplatform libraries for the demo application we create.

You’ll learn about Kotlin multiplatform programming basics and understand how you can benefit from multiplatform Kotlin in your daily projects.

| More | Link | GitHub | Slides |

Interview

We were speaking about Kotlin, Kotlin/Native and the future.

| More | YouTube |

mgiET18 at msg.group, Passau

Kotlin in 42 minutes

Welcome to Kotlin, the open source, statically typed programming language for multiplatform applications. It will be a big and exciting journey. To start with, we have an introduction to the language, no matter wether you target JVM, Android, JavaScript or Native. It covers basic syntax, type inference, lambdas, inline functions, data classes, statically typed DSLs, coroutines, reified generics and much more.

You’ll learn the ways to start using Kotlin in your existing project, to master Kotlin skills, to mix Java and Kotlin sources thanks to the interoperable back and forth interop.

An introduction is impossible without stories and examples, experiences and open source projects which are worth a try.

| More | Link | Slides | GitHub | GitHub-2 |

Voxxed Days Minsk

Multiplatform Kotlin in 42 Minutes

Nowadays, one uses many languages to code an applications. Javascript, HTML, CSS, Java, SQL, Kotlin, Android, iOS and so on. Did you know, Kotlin compiles the same code to different platforms? With that, you reduce the number of languages in your application and benefit from code reuse, e.g., from server-side JVM and client-side JavaScript.

Join us to welcome the new world of reusable code. In the talk, we will be creating a web application with JVM backend, React JavaScript frontend. Eugene explains, how Kotlin allows us to reuse code between platforms. Kotlin will not help you to use your JVM library from JavaScript of vice versa. We will do live-coding and go through several examples. One need multiplatform libraries too, we cover the topic and share and use some production-ready multiplatform libraries for the demo application we create.

You’ll learn about Kotlin multiplatform programming basics and understand how you can benefit from multiplatform Kotlin in your daily projects.

| More | Link | Slides | GitHub | YouTube |

Kotlin User Group, Munich

Multiplatform fractals with Kotlin

Nowadays, one uses many languages to code an applications. Javascript, HTML, CSS, Java, SQL, Kotlin, Android, iOS and so on. Did you know, Kotlin compiles the same code to different platforms? With that, you reduce the number of languages in your application and benefit from code reuse, e.g., from server-side JVM and client-side JavaScript.

Join us to welcome the new world of reusable code. Eugene explains, how Kotlin allows us to reuse code between platforms. Kotlin will not help you to use your JVM library from JavaScript of vice versa. We will do live-coding and go through several examples. One need multiplatform libraries too, we cover the topic and share and use some production-ready multiplatform libraries for the demo application we create.

You’ll learn about Kotlin multiplatform programming basics and understand how you can benefit from multiplatform Kotlin in your daily projects.

| More | Link | Slides | GitHub |

NDC Minnesota 2018

Kotlin for curious C# developers

There is a lot of talk about Kotlin here and there. Kotlin is a statically typed programming language for multiplatform applications.

Here is the reason: just like C# it provides amazing features to remove ceremony and boost productivity. But how to get started? What tools do I need? Am I using the idiomatic or the best syntax to solve my problem?

In this talk, Maarten, a curious C# developer, and Eugene, a Kotlin developer, sit together and tour the Kotlin ecosystem and language, comparing the latest C# 7.2 code with Kotlin, all in the IDE with live coding.

You’ll walk away knowing more about nice and powerful language features of both languages, and as a curious C# developer who now knows how to start with Kotlin.

| More | Link | Slides | GitHub |

Enterprise Java User Group Austria

Kotlin DSLs in 42 minutes (actually one hour)

| More | Link | Slides | GitHub |

Kotlin User Group, Munich

inline functions vs type erasure

| More | Link | Slides |

CESIUM

Kotlin in 42 minutes (actually one hour)

| More | Link | Slides |

2017

In the year I've made 9 presentations: 1 keynote, 8 talks.

Code Europe Wroclaw

Tools we use at JetBrains

The bigger a monolithic application, the larger the dependency set. Adding or changing dependencies becomes a tricky task. Similarly, the complexity is in the number of beans and their dependencies in components container. You learn how to split a monolithic SpringFramework ApplicationContext into a set of sub-contexts, how to isolate sub-context internal components, clear their APIs and avoid non-trivial dependencies. Each sub-context can have its own classpath, which tackles the dependency hell problem. After being divided, a monolithic system becomes easier to split into a set of micro-services or processes. From the talk, attendees will learn several practical tips and tricks on how to split component containers into smaller ones to reduce the complexity.

| More | Site | Slides |

Refactoring monolithic component containers to sub-containers

The bigger a monolithic application, the larger the dependency set. Adding or changing dependencies becomes a tricky task. Similarly, the complexity is in the number of beans and their dependencies in components container. You learn how to split a monolithic SpringFramework ApplicationContext into a set of sub-contexts, how to isolate sub-context internal components, clear their APIs and avoid non-trivial dependencies. Each sub-context can have its own classpath, which tackles the dependency hell problem. After being divided, a monolithic system becomes easier to split into a set of micro-services or processes. From the talk, attendees will learn several practical tips and tricks on how to split component containers into smaller ones to reduce the complexity.

| More | Site | Slides |

GDG DevFest Coimbra

Kotlin in 42 minutes

Welcome to Kotlin, the open source, statically typed programming language for multi-platform applications. This gonna be a big and exciting journey. To start with, we have an introduction to the language, no matter you target native, JVM, Android or JavaScript. It covers basic syntax, type inference, lambdas, inline functions, data classes, statically typed DSLs, and much more. An introduction is impossible without stories and future plans. In addition, I’ll share my own Kotlin experience and several open source projects I created with it.

| More | Link | Slides |

GDG DevFest Bayern

Kotlin in 42 minutes

Welcome to Kotlin, the open source, statically typed programming language for multi-platform applications. This gonna be a big and exciting journey. To start with, we have an introduction to the language, no matter you target native, JVM, Android or JavaScript. It covers basic syntax, type inference, lambdas, inline functions, data classes, statically typed DSLs, and much more. An introduction is impossible without stories and future plans. In addition, I’ll share my own Kotlin experience and several open source projects I created with it.

| More | Link | Slides |

Kotlin User Group Munich &GDG Android Munich

Kotlin DSLs in 42 minutes

Learn how to create type-safe and statically typed DSLs in Kotlin. The session starts with an introduction to DSL related Kotlin language features. Next, we create a simple DSL in a live coding session and then continue adding expressiveness and language features. We cover a number of examples, like JSON or XML builder’s, data binding, configuration & template engines, HTML builders, React wrapper, Web frameworks, Anko for Android layouts, server side and more.

You will learn how to create and understand the magic behind statically typed DSLs in Kotlin

We had a live coding session in which we converted a Java code snippet into a nice and easy to read DSL in Kotlin.

| More | Link | Link-2 | Slides | Periscope |

Devoxx Belgium

Kotlin DSLs in 42 minutes

Learn how to create type-safe and statically typed DSLs in Kotlin. The session starts with an introduction to DSL related Kotlin language features. Next, we create a simple DSL in a live coding session and then continue adding expressiveness and language features. We cover a number of examples, like JSON or XML builder’s, data binding, configuration & template engines, HTML builders, React wrapper, Web frameworks, Anko and Android layouts, server side and more. You will learn how to create and understand the magic behind statically typed DSLs in Kotlin.

| More | Slides | GitHub | YouTube |

JavaOne

IntelliJ Demo

I did a 5-minute demo of IntelliJ IDEA Java 9 support features. The demo was mostly presenting Java Modules (aka Jigsaw) related features including module-info.java, module graph and so on. It was live demo.

| More | YouTube | On Stage |

Kotlin Helsinki User Group's Kick-Off event

Kotlin in 42 minutes

Welcome to Kotlin, the open source, statically typed programming language for multi-platform applications. This gonna be a big and exciting journey. To start with, we have an introduction to the language, no matter you target native, JVM, Android or JavaScript. It covers basic syntax, type inference, lambdas, inline functions, data classes, statically typed DSLs, and much more. An introduction is impossible without stories and future plans. In addition, I’ll share my own Kotlin experience and several open source projects I created with it.

| More | Link | Slides | YouTube |

Spring I/O

Splitting component containers to simplify dependencies

The bigger a monolithic application, the larger the dependency set. Adding or changing dependencies becomes a tricky task. Similarly, the complexity is in a number of beans and their dependencies in components container.

In this talk, we’ll discuss a way to simplify things by splitting component containers into smaller ones. We’ll see how to split a monolithic ApplicationContext into a number of sub-contexts, how to isolate sub-context internal beans, clear their APIs and avoid non-trivial dependencies.

Each sub-context can have its own classpath, which tackles the dependency hell problem. After being divided, a monolithic system becomes easier to split into a set of micro-services or processes. From the talk, attendees will learn several practical tips and tricks on how to split component containers into smaller ones.

| More | Link | Slides | YouTube |

2016

In the year I've made 2 presentations.

JavaOne

Generating Kotlin Code for Better Refactorings, Tests, and IDE Support [CON3575]

An IDE is so much more than an editor. It helps developers a lot only if it knows something about the code. There are many ways to extend an IDE. This session shows how to extend an IDE without writing any IDE-specific code. It discusses how to create an API library (DSL) in Kotlin (an open source JVM language) and a code generator to empower IDE integration. It also covers applications such as semantics, tests, project models, and refactorings.

| More | Link | Slides |

GradleSummit

Building Self-Contained Toolset with Gradle

Consider a toolset, which helps to edit configuration files. For a given list of configuration files it generates source code in Kotlin. From the compiled source code it generates configuration files back. Editing the generated source code in IDE helps to view, change, refactor and test configuration easier. The setup of such a toolset from scratch is usually complicated. It contains a tricky IDE configuration, dependency resolution, source code compilation, classpath construction and test running.

The complexity makes such a toolset hard to use in practice and in continuous integration. Our goal is to simplify the setup. For this purpose we created an opensource Gradle plugin which will be discussed in this talk. The talk contains examples and tips that illustrate how one can hide and reuse tricky details and turn a domain specific toolset into a easy-to-use self-contained piece of software

| More | Link | Slides | YouTube |