{"id":54113,"date":"2025-06-03T11:41:51","date_gmt":"2025-06-03T11:41:51","guid":{"rendered":"https:\/\/academy.xebia.com\/us\/?post_type=course&#038;p=54113"},"modified":"2025-09-25T17:24:31","modified_gmt":"2025-09-25T17:24:31","slug":"functional-programming-with-arrow","status":"publish","type":"course","link":"https:\/\/academy.xebia.com\/us\/training\/functional-programming-with-arrow\/","title":{"rendered":"Functional Programming with Arrow\u00a0"},"content":{"rendered":"\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"26ade1a6\" \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=\"9dad43ea\">\n\t\t<div class=\"block-group-hero__background\">\n\t\t<div class=\"hero-theme block-group-hero__hero-theme\" data-id=\"2454720a\">\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=\"4df3fd6d\" \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=\"f918ef90\"\n>\n\t<strong><strong><strong><strong><strong><strong><strong><strong>Functional Programming with Arrow<\/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=\"49b9f6e9\">\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=\"c30d69b0\">\n\t<i class=\"icon btn__show-more\" data-id=\"62ec801e\"  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=\"14a4e74c\">\n\t<i class=\"icon btn__close\" data-id=\"3a9d745c\"  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=\"e224cca4\">\n\tThis 2-day course starts with the basics of functional programming in Kotlin, and we\u2019ll try to get as far as we can without relying on Arrow or other external libraries just using vanilla Kotlin.<br><br>Afterwards, we\u2019ll dive into Arrow and how you can leverage Arrow to make your code even more reliable, type-safe and composable. Splitting your code logic units, that promote readability, useability and reliability.<\/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=\"17e58181\">\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=\"1e0156bb\"\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=\"9dba9267\">\n\t\t<div class=\"booking__info\">\n\t\t<h2\tclass=\"heading booking__heading\"\n\tdata-id=\"c6e72f72\"\n>\n\t<strong>Looking to upskill your team(s) or organization?<\/strong>\u00a0<\/h2><p class=\"paragraph booking__paragraph\" data-id=\"69b016ed\">\n\tBrijesh will gladly help you further with custom training solutions for your organization. <\/p><div class=\"author-meta booking__author-meta\">\n\t\t<picture class=\"image author-meta__image\" data-id=\"78427d5c\">\n\n\t\n\t\n\t<img\n\t\tsrc=\"\/wp-content\/uploads\/sites\/21\/2025\/05\/Brijesh-Kohli-Profile-Picture-2-e1757405354999.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=\"b97e94cd\"\n>\n\tBrijesh Kohli<br>Training Advisor<\/h2>\t\t<p class=\"paragraph author-meta__paragraph\" data-id=\"55b15ea1\">\n\t<a href=\"tel:+14049883790\">+1 (404) 988-3790<\/a><a href=\"tel:\"><br><\/a><a href=\"mailto:brijesh.kohli@xebia.com\">brijesh.kohli@xebia.com<br><\/a><a href=\"https:\/\/www.linkedin.com\/in\/brijesh-kohli\/\" rel=\"nofollow noopener\" target=\"_blank\">https:\/\/www.linkedin.com\/in\/brijesh-kohli\/<\/a><\/p>\t<\/div><a class=\"btn booking__contact\" title=\"Get in touch\" data-id=\"5db4540d\" href=\"https:\/\/academy.xebia.com\/us\/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=\"049d551e\" \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=\"bdddb328\" \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=\"20eaffcc\" \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=\"5d931992\">\n\t\n\n<div class=\"block-column\" data-id=\"69801919\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"2e248578\" \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=\"2272692a\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"94d9cdf3\"\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=\"d5816ec4\" \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=\"3aa5af6c\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"6ca88a7f\">\n\tKotlin offers us many concepts from Functional Programming, which allow us to make our code more type-safe and reliable.<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"73279d53\" \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=\"0457c21b\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"82a7aad7\">\n\tThis course will take us through the concepts of Functional Programming applied in Kotlin. We&#8217;ll learn how to apply these techniques in Kotlin in a practical manner such that you can apply them in your existing -and new projects.\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"fd837a7e\" \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=\"7bc15436\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"c33369e9\">\n\tWhile Kotlin is a powerful and flexible language, it doesn&#8217;t contain all the tools available in the Kotlin Standard Library we care about in Functional Programming. The Arrow library complements Kotlin in this area, bringing more functional concepts to the Kotlin language in an idiomatic way. That\u2019s how you can maximize type safety and reliability of our code.\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"a0092db2\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"2a3db23b\" \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=\"3e51fb80\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"1d82b1df\" \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=\"9b2b27f7\">\n\t<h3\tclass=\"heading block-heading__heading\"\n\tdata-id=\"6391aa33\"\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=\"09b406c9\" \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=\"e1c6a53f\">\n\t<ol\tclass=\"lists block-lists__lists\"\n\tdata-id=\"b99241eb\"\n>\n\t<li>Make your code more reliable by leveraging functional programming techniques.\u00a0<\/li><li>Take your Kotlin skills to the next level by exploring Kotlin from a different perspective.\u00a0<\/li><li>Explore when to use which techniques, and combining the best of OOP and FP.\u00a0<\/li><li>Learn about Arrow, and how you can apply it in a practical way in your project.\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=\"a04a70e1\" \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=\"a2c5eea5\">\n\t\n\n<div class=\"block-column\" data-id=\"eacd8cd2\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"191bf00e\" \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=\"33a1f1cb\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"46135149\"\n>\n\tProgram<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"f8fff393\" \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=\"ed45105a\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"fde78e7d\">\n\tThis 2-day course dives right into how we can practically apply Arrow in our Ktor applications, and how we can use the different modules to achieve the different properties we care about. At the end of your course we\u2019ll have built an entire microservice using Arrow and Ktor in Kotlin.\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"68e4dcf1\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"9f2b9008\" \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=\"Overview\" \n\t\taria-controls=\"74fbf516\" \n\t\taria-expanded=\"true\" \n\t\tid=\"b6608d23\"\n\t>\n\t\t<h2\tclass=\"heading block-accordion-item__title\"\n\tdata-id=\"497236e5\"\n>\n\tOverview<\/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=\"963c244a\"  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=\"b6608d23\" \n\t\tid=\"74fbf516\"\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=\"56c9dc5c\" \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=\"c3aa81ab\">\n\t<ul\tclass=\"lists block-lists__lists\"\n\tdata-id=\"e36c9027\"\n>\n\t<li>Ktor and how to set it up\u00a0<\/li><li>The importance of immutability and how it impacts your code style.<\/li><li>How to approach validation in a more composable way.\u00a0\u00a0\u00a0<\/li><li>Keeping track of contexts and side effects.\u00a0<\/li><li>Make asynchronous code more resilient.<\/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=\"4321387c\" \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=\"aa78d785\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"920b5a37\"\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=\"4540100c\" \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=\"8c74b236\">\n\t\n\n<div class=\"block-column\" data-id=\"3a196d09\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"03170091\" \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=\"9036d117\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"a17cf92c\">\n\tEveryone who has a basic understanding of Kotlin, and has one or more years of hands-on experience developing and maintaining software applications. Learn how to leverage functional programming techniques in Kotlin, and maximize type safety and reliability. No prerequisite knowledge of functional programming is required.\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"a004b058\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"218efce7\" \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=\"4fab7304\">\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=\"ec8794d8\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"2fa13b09\"  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=\"94ae4af2\">\n\tHands-on experience with Kotlin, or basic understanding of the Kotlin language.\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"1516f082\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"b2d73685\"  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=\"9b9715a2\">\n\tHands-on experience with software development.\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=\"2588ce96\" \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=\"49c2b397\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"c3aa1aa8\"\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=\"0acd7127\" \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=\"250b905b\">\n\t\n\n<div class=\"block-column\" data-id=\"c5122d20\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"26a86675\" \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=\"d7307f89\"  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=\"a9f96b02\" \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=\"1b4db85d\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"f6776cbd\"\n>\n\t<strong><strong>Take Kotlin to the next level.\u00a0<\/strong><\/strong><\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"8e8c3a52\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"77fe4384\" \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=\"d702d60b\"  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=\"19c6c965\" \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=\"d85e5704\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"68751449\"\n>\n\t<strong><strong><strong>Make your code more reliable.\u00a0<\/strong><\/strong><\/strong><\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"551faf47\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"1806ed12\" \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=\"3d62d5eb\"  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=\"5beff656\" \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=\"eff0ddd2\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"35fa56d7\"\n>\n\t<strong><strong>Learn functional programming techniques.\u00a0<\/strong><\/strong><\/h2><\/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=\"3d9d5420\" \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=\"b0c522e8\">\n\t<h2\tclass=\"heading block-heading__heading\"\n\tdata-id=\"1464ab9a\"\n>\n\tWhat else <br>should I know?<\/h2><\/div>\n\t\t<\/div>\n\t<\/div>\n\n\n\n<div \n\tclass=\"wrapper\" \n\tdata-id=\"fef7aa79\" \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=\"3ac8a07d\">\n\t\n\n<div class=\"block-column\" data-id=\"4973c439\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"4f9b42d7\" \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=\"786ea562\">\n\t<p class=\"paragraph block-paragraph__paragraph\" data-id=\"c5e2d1e6\">\n\tThe course contains theoretical sections, and practical exercises. Make sure to prepare your environment beforehand, so that we can get the most out of our time. If you\u2019re already familiar with Functional Programming, or Arrow, be sure to prepare and bring all your questions beforehand so that we can resolve all your questions.\u00a0<\/p><\/div>\n\t\t<\/div>\n\t<\/div>\n\n<\/div>\n\n\n\n<div class=\"block-column\" data-id=\"2e5f62ad\">\n\t\n\n<div \n\tclass=\"wrapper wrapper--simple\" \n\tdata-id=\"b24ebe18\" \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=\"22a9210e\">\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=\"5767700c\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"3a3c1e03\"  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=\"f57a20c8\">\n\tThe training is thought by the maintainers of Arrow.\u00a0<\/p><\/div>\n\n\n\n<div class=\"block-bullet-item js-block-bullet-item\" data-id=\"e3afc021\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"672b5356\"  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=\"9594771c\">\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=\"eb6d1d65\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"30cd9056\"  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=\"f4f6c10b\">\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=\"86133397\">\n\t<i class=\"icon block-bullet-item__icon\" data-id=\"319639d8\"  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=\"890bd620\">\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=\"e5cb3bb3\" \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=\"b884a611\"\n\tclass=\"block-course-list js-block-course-list js-block-course-list-b884a611\"\n\t>\n\t<h2\tclass=\"heading block-course-list__heading\"\n\tdata-id=\"e0c30248\"\n>\n\tAlso interesting for you<\/h2><a class=\"btn block-course-list__btn\" title=\"View all trainings\" data-id=\"049d2808\" href=\"https:\/\/academy.xebia.com\/us\/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=\"685ac2b4\">\n\t<a class=\"btn course-list-item__btn course-list-item__heading-link\" title=\"MLOps on GCP\" data-id=\"ece174f7\" href=\"https:\/\/academy.xebia.com\/us\/training\/mlops-on-gcp\/\">\n\t\n\t\t\t<span>MLOps on GCP<\/span>\n\t\n\t<\/a><p class=\"paragraph course-list-item__paragraph\" data-id=\"3bc26e57\">\n\tWith this course, you will discover what MLOps is and how you can apply it in GCP (Google Cloud Platform). For example, you will learn more about Google Cloud&#8217;s Vertex AI, Cloud Run, and Cloud Function. This course is aimed at people with Python skills and general ML experience.<\/p>\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 js-tags-tag tags__tag-show js-tags-tag-show\">\n\t\t\t<span >\t\t\tGoogle Cloud Platform (GCP)\t\t\t<\/span>\n\t\t<\/div>\n\n\t\n\t\t<div class=\"tags__tag js-tags-tag\">\n\t\t\t<span >\t\t\tMachine Learning\t\t\t<\/span>\n\t\t<\/div>\n\n\t\n\t\t<div class=\"tags__tag js-tags-tag\">\n\t\t\t<span data-training-meta-p-duration>\t\t\t1 day\t\t\t<\/span>\n\t\t<\/div>\n\n\t\n\t\t<div class=\"tags__tag js-tags-tag\">\n\t\t\t<span >\t\t\tIn Person\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=\"e8f0c1e0\">\n\t<i class=\"icon btn__show-more\" data-id=\"e939047b\"  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=\"e6eb2db0\">\n\t<i class=\"icon btn__close\" data-id=\"00f200c7\"  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<p class=\"paragraph course-list-item__date-string\" data-id=\"86617e14\">\n\tNext:<\/p><p class=\"paragraph course-list-item__date-value\" data-id=\"c4e4af4b\">\n\t26 Aug, 2026<\/p>\t\t\t<\/div>\n\t\t\t\t\t<div class=\"course-list-item__price\">\n\t\t\t\t<p class=\"paragraph course-list-item__price-string\" data-id=\"7e0f399f\">\n\tFrom:<\/p><p class=\"paragraph course-list-item__price-value\" data-id=\"b9164237\">\n\t\u20ac1000<\/p>\t\t\t<\/div>\n\t\t<a class=\"btn course-list-item__btn\" title=\"View training\" data-id=\"10da28ea\" href=\"https:\/\/academy.xebia.com\/us\/training\/mlops-on-gcp\/\">\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=\"3d491122\">\n\t<h2\tclass=\"heading course-list-item__heading\"\n\tdata-id=\"e6b683cc\"\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=\"0f20f14f\" href=\"https:\/\/academy.xebia.com\/us\/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-54113","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\/us\/wp-json\/wp\/v2\/courses\/54113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/courses"}],"about":[{"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/types\/course"}],"author":[{"embeddable":true,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/users\/105"}],"version-history":[{"count":3,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/courses\/54113\/revisions"}],"predecessor-version":[{"id":56936,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/courses\/54113\/revisions\/56936"}],"wp:attachment":[{"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/media?parent=54113"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/academy.xebia.com\/us\/wp-json\/wp\/v2\/tags?post=54113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}