Talks

There is a list of technical conferences talks I did, excluding ones I did during Ph.D. You may also check my contributions to open source or projects. If you’d like me to give a presentation at your event, feel free to reach me out.

2018

Devoxx Belgium 2018 (1 of 2)

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.

| Link | Slides | Video | GitHub | GitHub | GitHub |

Devoxx Belgium 2018 (2 of 2)

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

| Link | Slides | Video |

Oracle Code One 2018 (1 of 2)

Coroutines for Microservices [DEV5066]

Microservices communicate with each other via a network. The more efficient the communication, the better it scales and the fewer resources it requires. The thread-per-request approach is easy to implement, but it is limited by the number of threads. Event- or callback-driven microservices work more efficiently by using OS-level callbacks but are harder to code. This session discusses how Kotlin helps solve complexity and promotes scalability. You will see how a tiny microservice is developed in callback-driven fashion with linear-looking code and will learn how suspend functions and Kotlin coroutines are used to simplify callback-driven programming.

| Link | Slides |

Oracle Code One 2018 (2 of 2)

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.

| 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.

| Slides |

mDevCamp.eu

Multiplatform Kotlin in 42 minutes

See below

| Link | Slides | GitHub | Video |

CZ JUG

Kotlin DSLs in 42 minutes

See below

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

| Announce | GitHub | Slides | Video |

Kotlin User Group Czech

Multiplatform Kotlin in 42 minutes

See below

| Announce | Slides | GitHub | Video TBD

Kotlin User Group Czech Interview

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

| YouTube |

mgiET18 at msg.group Passau

Keynote. 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.

| 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.

| Site | Slides | GitHub | Video |

KTUG Munich May

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.

| Site | 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.

| Site | Slides | GitHub |

Enterprise Java User Group Austria, Linz

Kotlin DSLs in 42 minutes (actually one hour)

| Meetup | Slides | YouTube |

KTUG Munich March

inline functions vs type erasure

| Site | Slides |

CESIUM 2018

Kotlin in 42 minutes (actually one hour)

| Site | Slides |

2017

Code Europe Wroclaw 2017 (1)

Tools we use at JetBrains

Form the short talk you’ll know how people work at JetBrains, what tools we use daily.

| Site | Slides |

Code Europe Wroclaw 2017 (2)

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.

| Site | Slides |

GDG DevFest Coimbra 2017

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.

| Site | Slides |

GDG DevFest Bayern 2017

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.

| Site | Slides |

Devoxx Belgium 2017

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

| Devoxx Speaker Page | Slides | Code | YouTube | Posts by dsl tag |

KTUG Munich & GDG Munich Android

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.

| KTUG Meetup November | GDG Android + KTUG Kotlin Meetup November | Slides | Periscope | Posts by dsl tag |

JavaOne 2017 Keynote

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.

| JavaOne Keynote Video bookmark | 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.

| Meetup | Slides | Video |

Spring I/O 2017

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

| Conference | Slides | Video | Posts by Spring tag |

2016

JavaOne 2016

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.

| Conference | Slides | Posts by the dsl way tag |

GradleSummit 2016

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

| Conference | Slides | Video |