Senior Software Engineer and JetBrains certified Kotlin Trainer
Urs is a seasoned software engineer and trainer with over 18 years of experience in building resilient, scalable, and mission-critical systems, mostly involving Kotlin and Scala. Besides his job as a consultant, he is also a passionate trainer and author of a great variety of trainings ranging from language courses for Kotlin and Scala to architectural trainings such as Microservices and Event-Driven Architectures. As a people person by nature, he loves to share knowledge and inspire and get inspired by peers on meetups and conferences. Urs is a JetBrains certified Kotlin trainer.
Kotlin & Functional Programming: pick the best, skip the rest
Applying Functional Programming practices in your code can quickly lead to heated debates: Hard-core FP advocates strive for the hegemony of 'functions everywhere,' whereas more conservative developers want to stay far away from the abstractions and complexity they add. The question is, who is right?
Drawing on my rich experience with FP, I will share my learnings with numerous teams I have led and coached over the years with the quest to unleash the potential FP offers while avoiding the pitfall of blindly proclaiming functions as the silver bullet to everything.
With many live-coded examples, we will explore the benefits of various functional concepts, ranging from basic higher-order functions, function composition, and Monads rigidly focusing on practical problems they solve rather than getting lost in academic considerations. Along the way, you will get a line-up of all the functional features Kotlin offers as well as the goodies functional libraries such as Arrow have in store.
Ultimately, we want to create code that our colleagues love to maintain and extend, for which FP should be a friend rather than a burden. At the end of this talk, you will have the recipe for accomplishing this quest.
Reactive Spring Boot With Coroutines
If you want to get the most out of Spring Boot in terms of low-latency, high-throughput, and resource efficiency, there is no way around Spring Boot's reactive stack Webflux. However, the price you pay in terms of complexity, readability, and maintainability of Webflux code is tremendous and will likely give you a lot of headaches.
In this workshop, you’ll learn how Spring Boot's Coroutine support will wipe out all the downsides of the 'raw' Webflux approach and provide you with the best of both worlds: reactive characteristics without the complexity.
During the workshop, we’ll explore Kotlin's reactive building blocks, such as Coroutines, Channels, and Flows, and apply them in Spring Boot. By building a reactive API in Spring Boot from scratch, you’ll learn how to:
Perform non-blocking remote API calls using WebClient. Access a relational database with the reactive R2DBC driver. Apply parallelism in your business logic. Write and test reactive API endpoints. Create an advanced streaming API based on ServerSentEvents that combines Coroutines and Flow. At the end of the workshop, you’ll know all the ins and outs of reactive programming in Spring Boot with Coroutines while having experienced the tremendous benefits they offer over raw Webflux. With the knowledge you gain, you can enlighten your reactive Spring Boot project with Coroutines the very next day.