Sebastian and Márton talk to Vadim Briliantov, the Technical Lead for Koog: an agentic framework built by JetBrains. We learn about what AI agents are, and why building them in Kotlin with Koog is a great choice. We also discuss all the different ways AI agents can connect to other systems and your existing code, and look at advanced features for agents like custom strategies, model switching, and history compression.Resources: JetBrains/koog on GitHub Koog DocumentationHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Vadim Briliantov – LinkedIn | Medium | GitHub | Bluesky | Twitter/X Timeline:(0:00) Intro(1:11) Vadim’s history at JetBrains(4:21) What’s an AI Agent?(5:47) Koog!(7:12) Applications for agents(12:43) Koog’s building blocks(15:05) Strategies, feedback loops(23:55) The Kotlin DSL(26:12) Persistent state(29:48) Subgraphs(32:33) Tools(39:52) MCP support (and A2A)(44:01) Entry point and type safety(49:39) Spring and Ktor support(51:27) LLM Providers(53:30) Model switching(56:02) History and memory(59:22) Enterprise-ready(1:02:12) History compression(1:11:47) Markdown?!(1:14:37) What’s next?(1:18:22) Going open-source(1:20:32) Conclusion
--------
1:22:48
--------
1:22:48
Discussing Kotlin Coroutines with Marcin Moskała
Sebastian and Márton chat with Marcin Moskała about coroutines.Resources: Coroutines Mastery course Coroutines | Kotlin Documentation kotlinx.coroutines Taming Asynchronous Beasts | Marcin Moskała Coroutine Debugging in IntelliJ IDEA | Alexey Merkulov Lifecycles, Coroutines and Scopes | Alejandro Serrano Mena Collect Like a Pro | Manuel Vivo Untangling Coroutine Testing | Márton Braun JetBrains/lincheck – Concurrent testing framework #talking-kotlin on Kotlin SlackHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Marcin Moskała – kt.academy Timeline:(0:00) Introduction(1:18) Branding discussion(3:23) Handling preconceptions(4:54) What are coroutines?(7:17) Lightweight threads?(11:07) Where coroutines live(13:27) Sequence Builder Example(17:37) The design of coroutines(20:52) What Makes Coroutines special vs other languages?(26:56) Coroutines vs Loom(34:55) Easy to start, hard to master(41:07) Common mistakes(49:33) Flows(58:52) Thinking about Flows(1:02:41) Derailing the conversation(1:03:55) Flows for single values(1:12:27) Structured concurrency(1:18:53) The 4 advantages(1:24:40) Seb tries web dev / The web is broken?!(1:31:15) collectAsStateWithLifecycle(1:32:00) Gardening break(1:36:23) Scopes and contexts(1:43:22) Testing coroutines(1:50:29) Lincheck(1:51:32) Turbine(1:55:05) Coroutines Mastery course(2:01:43) Wrap-up
--------
2:03:27
--------
2:03:27
kotlinx.rpc
Sebastian and Alex chat about the kotlinx.rpc project, in a special episode recorded in the Munich JetBrains office. They explore all the different components of the library, how you can use it to define RPC services and clients, integrate with Ktor and existing gRPC definitions, and more. While the library is still experimental, it’s already feature-packed, and it has ambitious plans for the future!kotlinx-rpc on GitHub#kotlinx-rpc on Slackkotlinx.serialization on GitHub gRPC Host: Sebastian AignerWebsiteBlueskyGuest: Alex SysoevLinkedInGitHub
--------
1:30:52
--------
1:30:52
Powering TV Broadcasts Worldwide
Sebastian and Márton are joined by Denis Borisevich from RIEDEL Communications, and learn about how Kotlin is used behind-the-scenes to power media, sports, and entertainment broadcasts watched by millions around the globe. Tune in for an exciting story about how Kotlin, Ktor, and Arrow are being used in production for a use case where robust software is mission-critical.Resources: Riedel Communications TornadoFX Unsigned integer types Arrow Ktor EurovisionHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Denis Borisevich – LinkedIn Timeline:(0:00) Introductions(2:42) Events powered by Riedel(3:50) The Kotlin part(6:44) Routing video signals(9:12) Error handling in milliseconds(10:31) The Kotlin part, continued(13:29) TornadoFX!(19:19) On introducing Compose(23:30) Java to Kotlin migration(26:30) Learning Kotlin after C++(28:44) Unsigned ints in Kotlin(32:09) Arrow!(33:00) Server-side Kotlin(36:25) Functional programming(42:10) Why Kotlin over others?(45:55) Kotlin/Java interop(47:12) A 2-week long test suite(51:35) Confidence in Kotlin(53:05) Future plans(56:00) Wrap-up
--------
57:18
--------
57:18
Creator of Spring: No desire to write Java at All
Sebastian and Márton chat with Rod Johnson, the creator of the Spring Framework. Rod tells the story of how Spring was born more than two decades ago, and shares his recent journey of coming back to the JVM and discovering all the fun of being a newcomer to Kotlin.Resources: Expert One-on-One J2EE Design and Development: Rod Johnson Oh the Places You'll Go! Shoulders of Giants: Languages Kotlin Learned From | Andrey Breslav Revamping and Extending Kotlin's Type System | Ross Tate Scala in 2018 Keynote | Rod Johnson But Java has pattern matching! | Alejandro Serrano MenaHosts: Sebastian Aigner – Website | Bluesky Márton Braun – Website | Bluesky Guest: Rod Johnson – Twitter | LinkedIn Timeline:(0:00) Intro(0:52) The origins of Spring(6:40) You need a business model(8:21) Consistency is key(9:39) Sustainable open source(14:22) Parallels with JetBrains and Kotlin(15:29) Rod’s journey around the JVM(20:48) Shoulders of giants(22:34) The newcomer experience(24:40) LLMs write great Kotlin(30:34) “You can start without great pain”(33:32) Extension functions(36:15) Too much magic?(37:56) Rod’s feature wishlist(39:37) Versioning and compatibility(41:19) Ecosystems and interop(43:34) Kotlin type system evolution(46:27) Kotlin with Spring(52:24) Learning Spring with Kotlin(54:46) Kotlin in 5 years?(1:00:39) Rod’s current work(1:03:58) Wrap-up