{"id":515,"date":"2025-05-27T06:01:02","date_gmt":"2025-05-27T06:01:02","guid":{"rendered":"https:\/\/academy.xebia.com\/in\/?post_type=course&#038;p=515"},"modified":"2025-08-29T10:41:12","modified_gmt":"2025-08-29T10:41:12","slug":"reactive-spring-boot-with-kotlin-coroutines-training","status":"publish","type":"course","link":"https:\/\/academy.xebia.com\/in\/training\/reactive-spring-boot-with-kotlin-coroutines-training\/","title":{"rendered":"Reactive Spring Boot with Kotlin Coroutines"},"content":{"rendered":"\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"73497e65\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-group-hero js-group-hero\" data-id=\"a7fe76e8\">\n\t\t<div class=\"block-group-hero__background\">\n\t\t<div class=\"hero-theme block-group-hero__hero-theme\" data-id=\"490e32c9\">\n\t\n\t<div class=\"hero-theme__background\">\n\t\t\t\t\t<div class=\"hero-theme__background--software-white\">\n\t\t\t\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='54' height='55' viewBox='0 0 54 55' fill='none'><path d='M2.458 33.333c-3.277-3.387-3.277-8.878 0-12.265l17.717-18.31C25.46-2.706 34.5 1.164 34.5 8.89v36.62c0 7.727-9.039 11.596-14.325 6.133L2.458 33.333Z' fill='url(#3c1e2c78-7a40-45b0-9018-1aaac5fdccd5)'\/><path d='M52.077 22.43c2.564 2.635 2.564 6.906 0 9.54L38.21 46.21C34.074 50.461 27 47.451 27 41.441V12.96c0-6.01 7.074-9.019 11.211-4.77l13.866 14.24Z' fill='url(#b0ac0058-6d6d-4f3e-946f-dba1d605141e)'\/><path fill-rule='evenodd' clip-rule='evenodd' d='M34.112 6.22c.25.825.388 1.718.388 2.67v36.62a9.14 9.14 0 0 1-.388 2.67C30.564 48.461 27 45.707 27 41.441V12.96c0-4.266 3.564-7.02 7.112-6.74Z' fill='url(#c2b1ad86-e474-4a1b-90d6-8a38250681b7)'\/><defs><linearGradient id='3c1e2c78-7a40-45b0-9018-1aaac5fdccd5' x1='17.25' y1='0.200195' x2='17.25' y2='54.2002' gradientUnits='userSpaceOnUse'><stop stop-color='#F3F3F3' stop-opacity='0.5'\/><stop offset='1' stop-color='#84117C'\/><\/linearGradient><linearGradient id='b0ac0058-6d6d-4f3e-946f-dba1d605141e' x1='40.5' y1='48.2002' x2='40.5' y2='6.2002' gradientUnits='userSpaceOnUse'><stop stop-color='#F3F3F3' stop-opacity='0.5'\/><stop offset='1' stop-color='#84117C'\/><\/linearGradient><linearGradient id='c2b1ad86-e474-4a1b-90d6-8a38250681b7' x1='30.75' y1='6.2002' x2='30.75' y2='48.2002' gradientUnits='userSpaceOnUse'><stop stop-color='#84117C'\/><stop offset='0.9999' stop-color='#A80C9E'\/><stop offset='1' stop-color='#84117C' stop-opacity='0'\/><\/linearGradient><\/defs><\/svg>\t\t\t<\/div>\n\t\t\n\t<\/div>\n<\/div>\t<\/div>\n\t<div class=\"block-group-hero__content\">\n\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f09dc09c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-course-hero\">\n\t<div class=\"block-course-hero__row\">\n\t\t<div class=\"block-course-hero block-course-hero__title\">\n\t\t\t<div class=\"block-course-hero__title-container\">\n\t\t\t\t<h1\tclass=\"heading\"\n\tdata-id=\"737d8284\"\n>\n\t<strong><strong><strong><strong><strong><strong><strong><strong><strong><strong>Reactive Spring Boot with Kotlin Coroutines <\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/strong><\/h1>\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"block-course-hero__row\">\n\t\t<div class=\"block-course-hero\">\n\t\t\t<div class=\"block-course-hero__content\">\n\t\t\t\t<p class=\"block-course-hero__date-location\">\n\t\t\t\t\t<span data-training-meta-p-date>\n\t\t\t\t\t<\/span>   <span data-training-meta-p-address>\t\t\t\t\t<\/span>\n\t\t\t\t<\/p>\n\t\t\t\t<div class=\"course-tags block-course-hero__course-tags\" data-id=\"4ddaa02b\">\n\t<div class=\"tags course-tags__tags js-tags\">\n\t\t<button\tclass=\"btn tags__show-more js-tags-show-more\"\n\tdata-id=\"137f40fe\">\n\t<i class=\"icon btn__show-more\" data-id=\"e0023c73\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' fill='none' viewBox='0 0 25 24'><path stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 12h10M12 7v10'\/><\/svg><\/i>\n\t\n\t<\/button>\t<div class=\"tags__tippy-template js-tags-tippy-template\">\n\t\t<div class=\"tags__head\">\n\t\t\t<span><\/span>\n\t\t\t<button\tclass=\"btn tags__close js-tags-close\"\n\tdata-id=\"d3293f81\">\n\t<i class=\"icon btn__close\" data-id=\"67c95076\"  aria-hidden=\"true\">\n\t<svg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M15 5L5.00103 14.999' stroke='#6A1D57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M15 14.998L5.00103 4.99907' stroke='#6A1D57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><\/svg><\/i>\n\t\n\t<\/button>\t\t<\/div>\n\t<\/div>\n<\/div><\/div><p class=\"paragraph block-course-hero__description\" data-id=\"018e641d\">\n\tThis training course will let you master Kotlin\u2019s Coroutines features and combine them with Reactive Spring Boot. By doing so, you will unleash Kotlin\u2019s tremendous concurrency potential with Spring Boot, which gives you the best of both worlds: reactive application behavior without complexity. Based on a combination of theory, live coding, and hands-on exercises, you will get a Kotlin concurrency expert with the Spring Boot framework in no time!<\/p>\t\t\t\t<div class=\"block-course-hero__trainers-list\" aria-hidden=\"true\">\n\t\t\t\t\t<a href=\"https:\/\/example.com\" class=\"author-meta block-course-hero__author-meta author-meta__make-flex author-meta__link author-meta__make-flex\" rel=\"nofollow noopener\" target=\"_blank\">\n\t\t<picture class=\"image author-meta__image\" data-id=\"7404f9b8\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"https:\/\/example.com\"\n\t\talt=\"\"\n\t\tclass=\"image__img author-meta__image-img\"\n\t\/>\n<\/picture><h2\tclass=\"heading author-meta__heading\"\n\tdata-id=\"115bc6c7\"\n>\n\tTrainer Title<\/h2>\t<\/a>\t\t\t\t<\/div>\n\t\t\t\t<div\n\t\t\t\t\tclass=\"block-course-hero__review-widget block-course-hero__review-widget-spacing\"\n\t\t\t\t\taria-hidden=\"true\">\n\t\t\t\t\t<div class=\"springest-review-widget springest-review-widget-width:300 springest-review-widget-bg:FFFFFF\">\n\t<a href=\"\">\n\t\t\t<\/a>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<div class=\"block-course-hero__booking-container\">\n\t\t\t\t<div class=\"booking js-booking block-course-hero__booking booking__single-column\" data-id=\"666a8361\">\n\t\t<div class=\"booking__info\">\n\t\t<h2\tclass=\"heading booking__heading\"\n\tdata-id=\"629c5dd5\"\n>\n\t<strong>Looking to upskill your team(s) or organization?<\/strong><\/h2><p class=\"paragraph booking__paragraph\" data-id=\"dc9b6b42\">\n\tSurat will gladly help you further with custom training solutions for your organisation. <\/p><div class=\"author-meta booking__author-meta\">\n\t\t<picture class=\"image author-meta__image\" data-id=\"2b29e136\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"\/wp-content\/uploads\/sites\/20\/2025\/05\/Surat-Wahal.jpeg\"\n\t\talt=\"\"\n\t\tclass=\"image__img author-meta__image-img\"\n\t\/>\n<\/picture>\t\t<h2\tclass=\"heading author-meta__heading\"\n\tdata-id=\"39316b39\"\n>\n\tSurat Wahal<br>Training Advisor<\/h2>\t\t<p class=\"paragraph author-meta__paragraph\" data-id=\"bab8a728\">\n\t<a href=\"tel:09999644790\" data-type=\"tel\" data-id=\"tel:09999644790\">+91-9999644790<br><\/a><a href=\"mailto:Surat.wahal@xebia.com\" data-type=\"mailto\" data-id=\"mailto:Surat.wahal@xebia.com\">Surat.wahal@xebia.com<\/a><br><a href=\"https:\/\/www.linkedin.com\/in\/surat-wahal-12996513\" data-type=\"link\" data-id=\"https:\/\/www.linkedin.com\/in\/surat-wahal-12996513\" rel=\"nofollow noopener\" target=\"_blank\">linkedin.com\/in\/surat-wahal-12996513<\/a><br><\/p>\t<\/div><a class=\"btn booking__contact\" title=\"Get in touch\" data-id=\"9df623e4\" href=\"https:\/\/academy.xebia.com\/in\/about-us\/contact-us\">\n\t\n\t\t\t<span>Get in touch<\/span>\n\t\n\t<\/a>\t<\/div>\n<\/div>\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t<\/div>\n<\/div>\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"bb6a0bca\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-course-stats\" \n\tdata-id=\"1449eac6\" \n\taria-hidden=\"1\"\n\t>\n\t\n\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"71402a76\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"927a29b0\">\n\t\n\n<div class=\"block-column\" data-id=\"162da66f\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f070624f\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"dec12488\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"05e5473b\"\n>\n\tWhat will you learn?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"6344d20b\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-bullet-list\">\n\t\t\t\t<div class=\"block-bullet-list__columns\">\n\t\t\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"1a17cc0b\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"43777db9\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"06dfab6b\">\n\tYou will learn all the functional programming features Kotlin offers, how to use them as generic building blocks (higher-order functions) and as a means to scope your code for extra conciseness and readability.\u202f\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"828e8874\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"5a6c696b\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"acc619a7\">\n\tYou will learn how to use Kotlin in an idiomatic way making use of immutability, expression-oriented, and scoped constructs so that you can unleash Kotlin\u2019s true power.\u202f\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"174bde29\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"ca40f9ea\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"eabdfa01\">\n\tLearn how to use advanced language features like Delegates, advanced Generics, ContextReceivers and where to apply them best\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"c6589a3c\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"f54a107d\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"fe50557d\">\n\tGet to know how Kotlin helps you designing slick Domain Specific Languages (DSL\u2019s) using various Kotlin features like operators, Extensions, Type-Safe builders and ContextReceivers.\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"042446ea\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"00384e89\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"d77702f2\">\n\tThe last part will be dedicated to Kotlin\u2019s mind-rocking concurrency features Coroutines. You will get to know their benefits and how they work under the hood so that you can write and test concurrent\/parallel code in a snap.\u202f\u00a0<\/p><\/div>\n\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"387ae3e3\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"4f6611fd\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-group\" data-id=\"9b7ec641\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ceff94ec\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"017cd69c\">\n\t<h3\tclass=\"heading block-heading__heading\"\n\tdata-id=\"1e061c2d\"\n>\n\tKey takeaways<\/h3><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e7cd1913\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"f22f06cc\">\n\t<ol\tclass=\"lists block-lists__lists\"\n\tdata-id=\"bc098f67\"\n>\n\t<li>Learn how to master concurrency with Kotlin Coroutines effectively<\/li><li>Learn the (tremendous) benefits and simplicity of Coroutines over reactive programming with abstractions like Futures, Monos etc.\u00a0<\/li><li>Master communication between asynchronous processes and reactive Streams\u00a0<\/li><li>Get to know how to considerably reduce complexity by combining Coroutines on top of reactive Spring Boot\u00a0<\/li><li>Learn how to write resilient, highly performant and concurrent real-world applications with reactive Spring Boot and Coroutines\u00a0<\/li><\/ol><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"efd450b7\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"7c17c8d4\">\n\t\n\n<div class=\"block-column\" data-id=\"02107042\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"31fddc0e\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"68eb1463\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"a5376383\"\n>\n\tProgram<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"94bc97b3\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"05de0fef\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div\n\tclass=\"block-accordion js-block-accordion\"\n\tdata-close-adjacent=\"false\"\n>\n\t\t\n\n<div class=\"block-accordion-item js-block-accordion-item\" \n\taria-expanded=\"true\"\n>\n\t<button class=\"block-accordion-item__trigger js-block-accordion-item-trigger\" \n\t\taria-label=\"Day 1\" \n\t\taria-controls=\"d3730813\" \n\t\taria-expanded=\"true\" \n\t\tid=\"b764b052\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"88abc66c\"\n>\n\tDay 1<\/h2>\t\t\n\t\t<span class=\"block-accordion-item__wrap-icon\" aria-hidden=\"true\">\n\t\t\t<i class=\"icon block-accordion-item__icon\" data-id=\"e5549b12\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M13 5.5a1 1 0 1 0-2 0h2Zm-1.707 13.707a1 1 0 0 0 1.414 0l6.364-6.364a1 1 0 0 0-1.414-1.414L12 17.086l-5.657-5.657a1 1 0 0 0-1.414 1.414l6.364 6.364ZM11 5.5v13h2v-13h-2Z' fill='currentColor'\/><\/svg><\/i>\t\t<\/span>\n\t<\/button>\n\n\t<div role=\"region\" class=\"block-accordion-item__panel js-block-accordion-item-panel\" \n\t\taria-hidden=\"false\" \n\t\taria-labelledby=\"b764b052\" \n\t\tid=\"d3730813\"\n\t>\n\t\t<div class=\"block-accordion-item__content\">\n\t\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"3ca1389d\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"2b5b289f\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"d3d3b063\"\n>\n\t<li>Coroutines Introduction\u00a0<\/li><li>Testing Coroutines\u00a0<\/li><li>Coroutines Interoperability\u00a0\u00a0<\/li><li>Coroutines Cancellation and Exception handling\u00a0<\/li><li>Channels\u00a0<\/li><li>Flows\u00a0\u00a0<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\n<div class=\"block-accordion-item js-block-accordion-item\" \n\taria-expanded=\"false\"\n>\n\t<button class=\"block-accordion-item__trigger js-block-accordion-item-trigger\" \n\t\taria-label=\"Day 2\" \n\t\taria-controls=\"17bc407b\" \n\t\taria-expanded=\"false\" \n\t\tid=\"d1e40374\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"fe12780b\"\n>\n\tDay 2<\/h2>\t\t\n\t\t<span class=\"block-accordion-item__wrap-icon\" aria-hidden=\"true\">\n\t\t\t<i class=\"icon block-accordion-item__icon\" data-id=\"7ecec6df\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M13 5.5a1 1 0 1 0-2 0h2Zm-1.707 13.707a1 1 0 0 0 1.414 0l6.364-6.364a1 1 0 0 0-1.414-1.414L12 17.086l-5.657-5.657a1 1 0 0 0-1.414 1.414l6.364 6.364ZM11 5.5v13h2v-13h-2Z' fill='currentColor'\/><\/svg><\/i>\t\t<\/span>\n\t<\/button>\n\n\t<div role=\"region\" class=\"block-accordion-item__panel js-block-accordion-item-panel\" \n\t\taria-hidden=\"true\" \n\t\taria-labelledby=\"d1e40374\" \n\t\tid=\"17bc407b\"\n\t>\n\t\t<div class=\"block-accordion-item__content\">\n\t\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"c0c5f6c9\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"174b90c8\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"bcbdf136\"\n>\n\t<li>Kotlin and Springboot\u00a0\u00a0<\/li><li>Coroutines &amp; Springboot Webflux\u202f\u00a0<\/li><li>Reactive Non-Blocking Remoting \/Database Access \/ Controllers\u00a0<\/li><li>Cross-cutting concerns: Security, Transactions, contexts\u00a0<\/li><li>Building Streaming API\u2019s\u00a0<\/li><li>Kotlin Coroutines &amp; Project Loom\u00a0<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n\n\n<div class=\"block-accordion-item js-block-accordion-item\" \n\taria-expanded=\"false\"\n>\n\t<button class=\"block-accordion-item__trigger js-block-accordion-item-trigger\" \n\t\taria-label=\"Program topics\" \n\t\taria-controls=\"d6a876fe\" \n\t\taria-expanded=\"false\" \n\t\tid=\"6e4acbca\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"b28d82e2\"\n>\n\tProgram topics<\/h2>\t\t\n\t\t<span class=\"block-accordion-item__wrap-icon\" aria-hidden=\"true\">\n\t\t\t<i class=\"icon block-accordion-item__icon\" data-id=\"733736b1\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M13 5.5a1 1 0 1 0-2 0h2Zm-1.707 13.707a1 1 0 0 0 1.414 0l6.364-6.364a1 1 0 0 0-1.414-1.414L12 17.086l-5.657-5.657a1 1 0 0 0-1.414 1.414l6.364 6.364ZM11 5.5v13h2v-13h-2Z' fill='currentColor'\/><\/svg><\/i>\t\t<\/span>\n\t<\/button>\n\n\t<div role=\"region\" class=\"block-accordion-item__panel js-block-accordion-item-panel\" \n\t\taria-hidden=\"true\" \n\t\taria-labelledby=\"6e4acbca\" \n\t\tid=\"d6a876fe\"\n\t>\n\t\t<div class=\"block-accordion-item__content\">\n\t\t\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"0643ec53\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"e496912b\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"aa216b2e\">\n\t<strong>Kotlin Coroutines Basics\u00a0<\/strong><\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"a78d46c8\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"24aeeff4\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"1b7b7a2a\"\n>\n\t<li>Comparison of sequential blocking programming vs async\/reactive programming (Java example with CompletableFuture)\u202f\u00a0<\/li><li>Benefits and drawbacks\u00a0<\/li><li>Introduction to Coroutine concept\u00a0<\/li><li>Threads vs Coroutines\u00a0<\/li><li>Suspend Functions with implementation details for better understanding\u00a0<\/li><li>Coroutine builders\u00a0<\/li><li>Introduction to CoroutineContext and CoroutineScope \/ structured concurrency\u00a0<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"03129347\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"45ad036a\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"4285b2c8\">\n\t<strong><strong>Coroutines Interoperability with existing reactive libraries<\/strong><\/strong><\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e05310ea\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"b7c12ef8\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"7f90db8c\"\n>\n\t<li>Coroutine interoperability (kotlinx) with existing reactive libraries such as CompletableFutures, JavaRx, Webflux etc.\u202f + relevant implementation details\u00a0<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ee8a232b\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"98bac8e4\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"15cf69c2\">\n\t<strong><strong>Advanced Coroutines Building Blocks<\/strong><\/strong><\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ce47ac0c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"c5ee19ff\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"737906c3\"\n>\n\t<li>Introduction to Kotlin\u2019s stream primitives: hot streams (Channels) and cold streams (Flow)\u00a0<\/li><li>Introduction to hot streams &#8211; Channels: SendChannel, ReceiveChannel, lifecycle,\u202f channel types (rendezvous, conflated, buffered, unlimited), BroadcastChannel\u00a0<\/li><li>Introduction to cold streams &#8211; Flow: emitting data to \/ collecting data from a Flow, Flow operators, lifecycle, StateFlow, SharedFlow, Exception handling, interaction with Channels<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"fe2a8f91\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"5d4696e9\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"9ad76807\">\n\t<strong><strong>Kotlin Coroutines &amp; Virtual Threads<\/strong><\/strong><\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"b95cffa8\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"56cb399e\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"9a3e42a7\"\n>\n\t<li>Introduction to project Loom\u00a0<\/li><li>In-depth insights into VirtualThreads in comparison with Coroutines\u00a0<\/li><li>Differences \/ Commonalities between the two\u00a0<\/li><li>Combining VirtualThreads with Coroutines for the best of all worlds\u00a0<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f7623630\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"f96dc530\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"3b3ea152\">\n\t<strong><strong><strong>Kotlin &amp; Springboot\u202f\u00a0<\/strong><\/strong><\/strong><\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"acdddc4c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"276ffdbb\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"f50613d9\"\n>\n\t<li>Overview of how to use Kotlin in Springboot\u00a0<\/li><li>Build plugins\u00a0<\/li><li>Extension methods available\u00a0<\/li><li>Best practices\u00a0<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"4088c20a\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"a232ff45\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"2da33985\">\n\t<strong><strong><strong><strong>Kotlin Coroutines in Springboot on top of Webflux\u202f\u00a0<\/strong><\/strong><\/strong><\/strong><\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"6eadee66\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"87ac9aa6\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"dfe3f49d\"\n>\n\t<li>Short introduction to Springboot Webflux\u00a0<br>&#8211; Conceptual differences of reactive compared to blocking\u00a0<br>&#8211; In-depth details about the advantages of reactive vs blocking\u00a0<\/li><li>Springboot reactive primitive Mono and mapping to Coroutines\u00a0<br>&#8211; Introduction to Reactor\u2019s concurrency primitive: Mono\u00a0<br>&#8211; From Mono to suspend functions\u00a0<br>&#8211; How to convert Mono\u2019s to suspend functions using Spring\u2019s built-in extension methods\u00a0<br>&#8211; Explanation of the advantages of the Coroutine approach<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"ae409efc\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"705de1ac\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"bb17b312\"\n>\n\tWho is it for?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"3798fe88\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"a88f697d\">\n\t\n\n<div class=\"block-column\" data-id=\"1ae8613f\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"bd539173\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"fe02fc73\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"d41c6f6f\">\n\tThis course is for every developer or architect who wants to:<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"16a4cf95\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-lists\" data-id=\"99af960d\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"9d344036\"\n>\n\t<li>fully master concurrency with Kotlin\u2019s Coroutines\u00a0\u00a0<\/li><li>considerably reduce complexity for reactive Spring Boot applications\u00a0<\/li><li>get in-depth knowledge about concurrent application development with minimal complexity\u00a0<\/li><li>gain the foundation to help other Kotlin developers to make their next step with (reactive) Spring Boot and Kotlin\u00a0\u00a0<\/li><li>take a leap with his\/her Kotlin skills\u00a0<\/li><\/ul><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"190faa80\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"705c25a2\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-bullet-list\">\n\t\t\t<p class=\"paragraph block-bullet-list__paragraph\" data-id=\"bc921a2c\">\n\tRequirements<\/p>\t<div class=\"block-bullet-list__columns\">\n\t\t\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"6b3a8feb\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"b304e9db\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"71b29137\">\n\tAt least half a year of Kotlin experience\u00a0\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"528f6e96\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"0f91d1a3\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"f4c31964\">\n\tExperience with the Spring Boot framework\u00a0<\/p><\/div>\n\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"fa7c1d68\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"1c5c2536\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"9e071163\"\n>\n\tWhy should I follow this training?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"9cc4ddb4\" \n\tdata-bg-on-inner=\"true\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"bab71a71\">\n\t\n\n<div class=\"block-column\" data-id=\"ae589fe6\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"4bd79098\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-icon\">\n\t<i class=\"icon block-icon__icon\" data-id=\"fa20c894\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"7e7b783c\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"a78b0e32\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"5cc120da\"\n>\n\tBecome an expert in concurrency<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"e6e3d27e\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"5f12b5f4\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"ffbb1390\">\n\tMaster advanced concurrency use case and streaming with Kotlin Coroutines\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"8e1b7bf1\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"5678d520\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-icon\">\n\t<i class=\"icon block-icon__icon\" data-id=\"77e51dd2\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"86c85f97\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"2ec9fe43\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"64d72ab2\"\n>\n\tMaster Spring Boot<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"78140ba6\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"3f90afe7\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"48b57e20\">\n\tLearn how to use reactive Spring Boot without the tremendous complexity imposed when used without Coroutines\u00a0\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"86f16249\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"bbf8e536\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-icon\">\n\t<i class=\"icon block-icon__icon\" data-id=\"f8677c68\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'><path d='M10.97 4.97a.75.75 0 0 1 1.07 1.05l-3.99 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.267.267 0 0 1 .02-.022z'\/><\/svg><\/i><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"8c63ccda\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"1ed80082\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"a7b25fb6\"\n>\n\tTake Kotlin to the next step<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"c50e964d\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"0b62a575\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"51a9c2e4\">\n\tTake the next step with Kotlin to broaden your Kotlin experience significantly\u00a0and be taught be JetBrains certified Kotlin cracks, who coach Kotlin teams and contribute to open source regularly<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"edba4c08\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"b7e9e160\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"cc18775f\"\n>\n\tWhat else should I know?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"a240363e\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"fd7c1788\">\n\t\n\n<div class=\"block-column\" data-id=\"5ec57431\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"956df523\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-paragraph\" data-id=\"68c9e9ab\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"8b0942f3\">\n\tThe course contains theoretical sections, and many practical exercises so be sure to prepare your environment beforehand so that we can get the most out of our time. If you\u2019re already familiar with Kotlin, be sure to prepare and bring all your questions beforehand so that we can resolve all your doubts and questions.\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"95676cd8\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"ecc9d5c4\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-bullet-list\">\n\t\t\t<p class=\"paragraph block-bullet-list__paragraph\" data-id=\"9d1e4a6d\">\n\tCourse information<\/p>\t<div class=\"block-bullet-list__columns\">\n\t\t\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"209831b8\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"3da20e3e\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"c6fd8afe\">\n\tThe training is taught by Certified Kotlin trainers that use Kotlin daily, contribute to open source and coach teams in how to get the most out of Kotlin\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"e5472b88\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"1e18e28e\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"ca707c08\">\n\tYou need to bring your own laptop to this training\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"e5087931\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"39f28f7b\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"d6280283\">\n\tInstallation of Kotlin environment for practical sections\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"66056f40\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"1f62f08e\"  aria-hidden=\"true\">\n\t<svg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M11.25 11.25C11.4489 11.25 11.6397 11.329 11.7803 11.4697C11.921 11.6103 12 11.8011 12 12V15.75C12 15.9489 12.079 16.1397 12.2197 16.2803C12.3603 16.421 12.5511 16.5 12.75 16.5' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M11.625 9C12.2463 9 12.75 8.49632 12.75 7.875C12.75 7.25368 12.2463 6.75 11.625 6.75C11.0037 6.75 10.5 7.25368 10.5 7.875C10.5 8.49632 11.0037 9 11.625 9Z' fill='currentColor'\/><\/svg><\/i><p class=\"paragraph block-bullet-item__paragraph\" data-id=\"28a34354\">\n\tBring plenty of energy and motivation to level up your Kotlin skills\u00a0<\/p><\/div>\n\n\t<\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"78d3e597\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-heading\" data-id=\"eb171d97\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"74e0ad5d\"\n>\n\tMeet the trainers<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"beb166ae\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div class=\"block-columns\" data-id=\"cfa514b6\">\n\t\n\n<div class=\"block-column\" data-id=\"ed3f8e80\">\n\t\n<div class=\"card-trainer\" data-id=\"d7556e21\">\n\t\n\t<div class=\"card-trainer__content\">\n\t\t<h2\tclass=\"heading card-trainer__heading\"\n\tdata-id=\"09e1adc7\"\n>\n\tCommunication for Engineers<\/h2>\t\t<div class=\"card-trainer__button-container\">\n\t\t\t<div class=\"card-trainer__socials\">\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<a class=\"btn card-trainer__btn\" title=\"View profile\" data-id=\"714f4555\" href=\"https:\/\/academy.xebia.com\/in\/training\/communication-for-engineers\/\">\n\t\n\t\t\t<span>View profile<\/span>\n\t\n\t<\/a>\t\t<\/div>\n\t<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"c36daa9e\">\n\t<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"587d191b\">\n\t<\/div>\n\n<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"79715300\" \n\tdata-bg-on-inner=\"false\" \n\t>\n\t\t\n\t\t\t<div class=\"wrapper__inner\">\n\t\t\t\n<div\n\tdata-id=\"0d78b223\"\n\tclass=\"block-course-list js-block-course-list js-block-course-list-0d78b223\"\n\t>\n\t<h2\tclass=\"heading block-course-list__heading\"\n\tdata-id=\"f2f8227e\"\n>\n\tUpcoming courses<\/h2><a class=\"btn block-course-list__btn\" title=\"View all trainings\" data-id=\"cd2578cc\" href=\"https:\/\/academy.xebia.com\/in\/training\/\">\n\t\n\t\t\t<span>View all trainings<\/span>\n\t\n\t<\/a>\n\t<div class=\"block-course-list__slider-wrapper\">\n\t\t<div class=\"block-course-list__slider\">\n\t\t\t<div\n\t\t\t\tclass=\"block-course-list__swiper js-block-course-list-swiper swiper\"\n\t\t\t\tdata-allow-keyboard-controls=\"1\"\n\t\t\t>\n\t\t\t\t<div class=\"swiper-wrapper block-course-list__swiper-wrapper\">\n\t\t\t\t\t<div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"05097032\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Professional Product Management (PPM) \u2013 Product Strategy &amp; Roadmaps\u00a0\" data-id=\"be5db051\" href=\"https:\/\/academy.xebia.com\/in\/training\/professional-product-management-ppm-product-strategy-roadmaps\/\">\n\t\n\t\t\t<span>Professional Product Management (PPM) \u2013 Product Strategy &amp; Roadmaps\u00a0<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"51854d0b\" href=\"https:\/\/academy.xebia.com\/in\/training\/professional-product-management-ppm-product-strategy-roadmaps\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"d9b8f136\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Professional Product Management (PPM) \u2013 Value Maximization &amp; Product Analytics\u00a0\" data-id=\"3b5377c8\" href=\"https:\/\/academy.xebia.com\/in\/training\/professional-product-management-ppm-value-maximization-product-analytics\/\">\n\t\n\t\t\t<span>Professional Product Management (PPM) \u2013 Value Maximization &amp; Product Analytics\u00a0<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"52349b5e\" href=\"https:\/\/academy.xebia.com\/in\/training\/professional-product-management-ppm-value-maximization-product-analytics\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"0a604ee5\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Site Reliability Engineering (SRE) Next Gen Certification Program\" data-id=\"c5f782fb\" href=\"https:\/\/academy.xebia.com\/in\/training\/site-reliability-engineering-sre-next-gen-certification-program\/\">\n\t\n\t\t\t<span>Site Reliability Engineering (SRE) Next Gen Certification Program<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"89e04f2b\" href=\"https:\/\/academy.xebia.com\/in\/training\/site-reliability-engineering-sre-next-gen-certification-program\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"d4034ce0\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Google Certified Professional Cloud Developer\" data-id=\"8ae2113c\" href=\"https:\/\/academy.xebia.com\/in\/training\/google-certified-professional-cloud-developer\/\">\n\t\n\t\t\t<span>Google Certified Professional Cloud Developer<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t<div class=\"tags course-list-item__tags js-tags\">\n\t\n\t\t<div class=\"tags__tag tags__featured js-tags-tag tags__tag-show js-tags-tag-show\">\n\t\t\t<span >\t\t\tCloud\t\t\t<\/span>\n\t\t<\/div>\n\n\t\n\t\t<div class=\"tags__tag js-tags-tag tags__tag-show js-tags-tag-show\">\n\t\t\t<span >\t\t\tGoogle\t\t\t<\/span>\n\t\t<\/div>\n\n\t\t<button\tclass=\"btn tags__show-more js-tags-show-more\"\n\tdata-id=\"9137a0ca\">\n\t<i class=\"icon btn__show-more\" data-id=\"c15852c0\"  aria-hidden=\"true\">\n\t<svg xmlns='http:\/\/www.w3.org\/2000\/svg' fill='none' viewBox='0 0 25 24'><path stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M7 12h10M12 7v10'\/><\/svg><\/i>\n\t\n\t<\/button>\t<div class=\"tags__tippy-template js-tags-tippy-template\">\n\t\t<div class=\"tags__head\">\n\t\t\t<span><\/span>\n\t\t\t<button\tclass=\"btn tags__close js-tags-close\"\n\tdata-id=\"c8992ac8\">\n\t<i class=\"icon btn__close\" data-id=\"d93a2f45\"  aria-hidden=\"true\">\n\t<svg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http:\/\/www.w3.org\/2000\/svg'><path d='M15 5L5.00103 14.999' stroke='#6A1D57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><path d='M15 14.998L5.00103 4.99907' stroke='#6A1D57' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'\/><\/svg><\/i>\n\t\n\t<\/button>\t\t<\/div>\n\t<\/div>\n<\/div>\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"bd9ab2b4\" href=\"https:\/\/academy.xebia.com\/in\/training\/google-certified-professional-cloud-developer\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"1c5439dc\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"Google Certified Professional Cloud Network Engineer\" data-id=\"4dc60080\" href=\"https:\/\/academy.xebia.com\/in\/training\/google-certified-professional-cloud-network-engineer\/\">\n\t\n\t\t\t<span>Google Certified Professional Cloud Network Engineer<\/span>\n\t\n\t<\/a>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"438d4726\" href=\"https:\/\/academy.xebia.com\/in\/training\/google-certified-professional-cloud-network-engineer\/\">\n\t\n\t\t\t<span>View training<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div><div class=\"course-list-item swiper-slide js-tippy-container-isolated\" data-id=\"b3fe9570\">\n\t<h2\tclass=\"heading course-list-item__heading\"\n\tdata-id=\"d5b9145e\"\n>\n\tCan\u2019t find the course you\u2019re looking for? There\u2019s more!\n<\/h2>\t\t\n\t<div class=\"course-list-item__details-row\">\n\t\t\t\t\t<div class=\"course-list-item__date\">\n\t\t\t\t\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View all courses\" data-id=\"b2e294b3\" href=\"https:\/\/academy.xebia.com\/in\/training\/\">\n\t\n\t\t\t<span>View all courses<\/span>\n\t\n\t<\/a>\t<\/div>\n\n<\/div>\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"block-course-list__controls swiper-pagination\"><\/div>\n<\/div>\n\t\t<\/div>\n\t<\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":105,"featured_media":0,"template":"","tags":[],"class_list":["post-515","course","type-course","status-publish","hentry"],"acf":{"field_BrokersfeedIntroduction":"","field_BrokersfeedDescription":"","field_BrokersfeedFormat":"","field_BrokersfeedSubjects":"","field_BrokersfeedTakeaways":"","field_BrokersfeedTargetAudience":"","field_BrokersfeedPrerequisites":"","field_BrokersfeedCertificationValue":"","field_BrokersfeedNextSteps":"","field_BrokersfeedBanner":"","course_xebia_event_ids":"","course_xebia_event_group_id":"","course_xebia_discipline":"","course_xebia_sorting_order":5},"raw_content":null,"_links":{"self":[{"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/courses\/515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/courses"}],"about":[{"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/types\/course"}],"author":[{"embeddable":true,"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/users\/105"}],"version-history":[{"count":3,"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/courses\/515\/revisions"}],"predecessor-version":[{"id":2026,"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/courses\/515\/revisions\/2026"}],"wp:attachment":[{"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/media?parent=515"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/academy.xebia.com\/in\/wp-json\/wp\/v2\/tags?post=515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}