CINXE.COM

Workshops - NDC London 2025 | Conference for Software Developers

<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0" class="jsx-2027673028"/><script class="jsx-2027673028">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WC8LZRF5');</script><link rel="icon" href="/favicon.ico" class="jsx-2027673028"/><link rel="icon" href="/favicon.ico?v=2" type="image/x-icon" class="jsx-2027673028"/><link rel="shortcut icon" href="/favicon.ico?v=2" type="image/x-icon" class="jsx-2027673028"/><link rel="apple-touch-icon" href="/devsummit/apple-touch-icon.png?v=2" class="jsx-2027673028"/><meta name="description" content="NDC London 2025 is a 5-day event for Software Developers, 27-31 Jan at the Queen Elizabeth II Centre, Westminster."/><meta name="og:description" property="og:description" content="NDC London 2025 is a 5-day event for Software Developers, 27-31 Jan at the Queen Elizabeth II Centre, Westminster."/><meta name="twitter:description" content="NDC London 2025 is a 5-day event for Software Developers, 27-31 Jan at the Queen Elizabeth II Centre, Westminster."/><meta name="og:image" property="og:image" content="https://cdn.sanity.io/images/fhoo4r9z/production/b61bf6b789c15cc5b7d3e2b12261abdc35d7f41a-2400x1256.jpg"/><meta name="twitter:image" content="https://cdn.sanity.io/images/fhoo4r9z/production/b61bf6b789c15cc5b7d3e2b12261abdc35d7f41a-2400x1256.jpg"/><meta name="twitter:card" content="summary_large_image"/><script type="application/ld+json">{ "@context": "https://schema.org", "@type": "Event", "startDate": "2025-01-27", "endDate": "2025-01-31", "location": { "@type": "Place", "address": { "@type": "PostalAddress", "streetAddress": "", "addressLocality": "", "postalCode": "", "addressCountry": "" }, "name": "NDC London" }, "image":["https://cdn.sanity.io/images/fhoo4r9z/production/b61bf6b789c15cc5b7d3e2b12261abdc35d7f41a-2400x1256.jpg"], "url": "https://ndclondon.com/", "description": "NDC London 2025 is a 5-day event for Software Developers, 27-31 Jan at the Queen Elizabeth II Centre, Westminster.", "name": "NDC London 2025" }</script><title>Workshops - NDC London 2025 | Conference for Software Developers</title><meta name="twitter:title" content="Workshops - NDC London 2025 | Conference for Software Developers"/><meta name="og:title" property="og:title" content="Workshops - NDC London 2025 | Conference for Software Developers"/><meta name="og:type" property="og:type" content="website"/><meta name="og:site_name" property="og:site_name" content="NDC"/><meta name="twitter:site" content="@NDC_Conferences"/><meta name="next-head-count" content="20"/><link rel="preload" as="font" href="/fonts/Calibre-Medium.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="preload" as="font" href="/fonts/Calibre-Regular.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="preload" as="font" href="/fonts/Calibre-Light.woff2" type="font/woff2" crossorigin="anonymous"/><link rel="preload" as="font" href="/fonts/Calibre-Thin.woff2" type="font/woff2" crossorigin="anonymous"/><script type="text/javascript" id="hs-script-loader" async="" defer="" src="//js.hs-scripts.com/145209505.js"></script><link rel="preload" href="/_next/static/css/6983bd73a17d8ff3.css" as="style"/><link rel="stylesheet" href="/_next/static/css/6983bd73a17d8ff3.css" data-n-g=""/><link rel="preload" href="/_next/static/css/54f2b4a2648f6bcc.css" as="style"/><link rel="stylesheet" href="/_next/static/css/54f2b4a2648f6bcc.css" data-n-p=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js"></script><script src="/_next/static/chunks/webpack-dc7e281bb9c850f8.js" defer=""></script><script src="/_next/static/chunks/framework-caa50651a91d07b1.js" defer=""></script><script src="/_next/static/chunks/main-f41fe53fe789e0bb.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7e5993eeb8ccd78b.js" defer=""></script><script src="/_next/static/chunks/863-688fcb47374c30b3.js" defer=""></script><script src="/_next/static/chunks/111-430ab192cd87d31e.js" defer=""></script><script src="/_next/static/chunks/793-96809e47b665fdbc.js" defer=""></script><script src="/_next/static/chunks/pages/workshops-b9e36a70f7bc925b.js" defer=""></script><script src="/_next/static/CDXjbtHyjMVc1jpTa6aY1/_buildManifest.js" defer=""></script><script src="/_next/static/CDXjbtHyjMVc1jpTa6aY1/_ssgManifest.js" defer=""></script><style id="__jsx-3177089827">.menu.jsx-3177089827{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}@media (min-width:900px){.menu.jsx-3177089827{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}}.menu__items.jsx-3177089827{display:none;height:72px;line-height:72px;padding:0px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:900px){.menu__items.jsx-3177089827{height:108px;line-height:108px;}}@media (min-width:1200px){.menu__items.jsx-3177089827{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;margin-right:50px;}}@media (min-width:1920px){.menu__items.jsx-3177089827{height:98px;line-height:98px;}}.menu__items__empty.jsx-3177089827{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;}@media (min-width:1200px){.menu__items__empty.jsx-3177089827{display:none;}}.menu__item-menu-and-ticket.jsx-3177089827{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:144px;height:72px;padding:0px;margin:0px;cursor:pointer;line-height:24px;text-align:center;z-index:9;}@media (min-width:900px){.menu__item-menu-and-ticket.jsx-3177089827{width:216px;height:108px;}}@media (min-width:1200px){.menu__item-menu-and-ticket.jsx-3177089827{display:block;width:108px;height:216px;}}.menu__devfest__item-menu-and-ticket.jsx-3177089827{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;width:144px;height:72px;padding:0px;margin:0px;cursor:pointer;line-height:24px;text-align:center;z-index:9;}@media (min-width:900px){.menu__devfest__item-menu-and-ticket.jsx-3177089827{width:216px;height:108px;}}@media (min-width:1200px){.menu__devfest__item-menu-and-ticket.jsx-3177089827{display:block;width:108px;height:216px;}}@media (min-width:2140px){.menu__devfest__item-menu-and-ticket.jsx-3177089827{display:block;position:relative;left:108px;width:108px;height:216px;}}.menu__item-menu.jsx-3177089827{width:72px;height:72px;padding:8px 0px 0px 0px;-webkit-transition:opacity 250ms ease-out;transition:opacity 250ms ease-out;background-color:var(--menu-box-menu-bg-color);}@media (min-width:900px){.menu__item-menu.jsx-3177089827{width:108px;height:108px;padding:25px 0px 0px 0px;}}.menu__item-menu.jsx-3177089827:hover{opacity:0.5;}.menu__item-ticket.jsx-3177089827{width:72px;height:72px;padding:8px 0px 0px 0px;-webkit-transition:opacity 250ms ease-out;transition:opacity 250ms ease-out;background-color:var(--menu-box-tickets-bg-color);}@media (min-width:900px){.menu__item-ticket.jsx-3177089827{width:108px;height:108px;padding:25px 0px 0px 0px;}}.menu__item-ticket.jsx-3177089827:hover{opacity:0.5;}.menu__item.jsx-3177089827{-webkit-transition:opacity 250ms ease-out;transition:opacity 250ms ease-out;text-align:right;cursor:pointer;}@media (min-width:900px){.menu__item.jsx-3177089827{text-align:left;}}@media (min-width:1200px){.menu__item.jsx-3177089827:not(:last-of-type){margin-right:25px;}}@media (min-width:1500px){.menu__item.jsx-3177089827:not(:last-of-type){margin-right:50px;}}.menu__item.jsx-3177089827:hover{opacity:0.5;}.menu__item--link.jsx-3177089827{font-family:'Poppins';font-size:16px;line-height:36px;-webkit-text-decoration:none;text-decoration:none;color:#232323;font-weight:700;}</style><style id="__jsx-3131272695">.navigation__wrapper.jsx-3131272695{display:block;background-color:transparent;height:72px;overflow:visible;}@media (min-width:900px){.navigation__wrapper.jsx-3131272695{height:108px;}}@media (min-width:1200px){.navigation__wrapper.jsx-3131272695{height:216px;}}.navigation.jsx-3131272695{position:fixed;left:50%;top:0%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;width:100%;height:72px;margin:0px;background-color:#FFFFFF;z-index:1;}@media (min-width:900px){.navigation.jsx-3131272695{height:108px;}}@media (min-width:1920px){.navigation.jsx-3131272695{width:1920px;height:108px;margin:0px auto;}}.navigation__col1__padding.jsx-3131272695{width:15%;}.navigation__col2__logo.jsx-3131272695{width:53%;height:72px;text-align:left;}@media (min-width:900px){.navigation__col2__logo.jsx-3131272695{width:26%;height:108px;}}@media (min-width:1200px){.navigation__col2__logo.jsx-3131272695{width:20%;}}@media (min-width:1500px){.navigation__col2__logo.jsx-3131272695{width:20%;}}@media (min-width:1920px){.navigation__col2__logo.jsx-3131272695{height:98px;}}.navigation__col3__space.jsx-3131272695{display:none;width:0%;font-family:'CascadiaMono';font-weight:400;font-size:14px;line-height:20px;color:#000000;}@media (min-width:900px){.navigation__col3__space.jsx-3131272695{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:left;-webkit-justify-content:left;-ms-flex-pack:left;justify-content:left;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:26%;height:108px;}}@media (min-width:1200px){.navigation__col3__space.jsx-3131272695{width:20%;}}@media (min-width:1500px){.navigation__col3__space.jsx-3131272695{width:20%;}}.navigation__col4__menu.jsx-3131272695{width:33%;height:72px;}@media (min-width:900px){.navigation__col4__menu.jsx-3131272695{height:108px;}}@media (min-width:1200px){.navigation__col4__menu.jsx-3131272695{width:45%;}}@media (min-width:1500px){.navigation__col4__menu.jsx-3131272695{width:45%;}}@media (min-width:1920px){.navigation__col4__menu.jsx-3131272695{height:98px;}}.navigation__logo__devsummit.jsx-3131272695{height:72px;line-height:72px;white-space:nowrap;margin-right:15px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}@media (min-width:900px){.navigation__logo__devsummit.jsx-3131272695{height:108px;line-height:108px;}}.navigation__title.jsx-3131272695{font-size:28px;line-height:72px;white-space:nowrap;margin-right:15px;-webkit-transition:opacity 250ms ease-out;transition:opacity 250ms ease-out;}@media (min-width:900px){.navigation__title.jsx-3131272695{font-size:36px;line-height:108px;}}@media (min-width:1920px){.navigation__title.jsx-3131272695{line-height:98px;}}.navigation__title.jsx-3131272695:hover{opacity:0.5;}.navigation__title-link.jsx-3131272695{font-family:'Poppins';font-style:normal;font-weight:600;-webkit-text-decoration:none;text-decoration:none;color:#000000;margin:0px;border:0px;}.navigation__title__devfest-link.jsx-3131272695{font-family:'Poppins';font-style:normal;font-weight:600;font-size:24px;-webkit-text-decoration:none;text-decoration:none;color:#000000;margin:0px;border:0px;}.navigation__title-medium.jsx-3131272695{font-weight:500;}.navigation__title-light.jsx-3131272695{font-weight:300;}.navigation__submenu.jsx-3131272695{position:absolute;right:144px;top:0;z-index:3;width:calc(100% - 144px);}@media (min-width:900px){.navigation__submenu.jsx-3131272695{right:216px;width:calc(100% - 216px);}}@media (min-width:1200px){.navigation__submenu.jsx-3131272695{right:108px;width:calc(100% - 108px);}}</style><style id="__jsx-3721560230">.navigation__container.jsx-3721560230{display:block;overflow:visible;z-index:1;}</style><style id="__jsx-842277577">.filter__title.jsx-842277577{margin-bottom:20px;font-family:'Calibre';font-style:normal;font-weight:600;font-size:16px;line-height:24px;color:#232323;}.filter__pills.jsx-842277577{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-bottom:-10px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}.filter__pill.jsx-842277577{background-color:white;padding:10px 15px 5px 15px;font-family:'Calibre';font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:rgba(0,0,0,0.25);border-radius:calc(1em + 20px);border:1px solid rgba(0,0,0,0.25);margin-bottom:10px;-webkit-transition:background-color 150ms ease-out,color 150ms ease-out;transition:background-color 150ms ease-out,color 150ms ease-out;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.filter__pill.jsx-842277577:not(:last-of-type){margin-right:10px;}.filter__pill--enabled.jsx-842277577{cursor:pointer;border:1px solid #000000;color:rgba(0,0,0,0.75);}.filter__pill--enabled.jsx-842277577:hover{background-color:var(--page-level-three-color);color:white;}.filter__pill--selected.jsx-842277577{background-color:var(--page-level-four-color);border:1px solid #000000;color:white;}</style><style id="__jsx-632376003">.filter.jsx-632376003{padding:40px 0px 0px 0px;}@media (min-width:800px){.filter.jsx-632376003{padding:0px;}}.filter__title.jsx-632376003{margin-bottom:20px;font-family:'Calibre';font-style:normal;font-weight:600;font-size:16px;line-height:24px;color:#232323;}.filter__pills.jsx-632376003{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;margin-bottom:-10px;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;background-color:white;border:1px solid #000000;border-radius:calc(1em + 20px);}.filter__pill.jsx-632376003{background-color:white;margin:5px;padding:5px 10px 0px 10px;font-family:'Calibre';font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:#232323;border-radius:calc(1em + 20px);-webkit-transition:background-color 150ms ease-out,color 150ms ease-out;transition:background-color 150ms ease-out,color 150ms ease-out;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;}.filter__pill.jsx-632376003:not(:last-of-type){margin-right:2px;}.filter__pill.jsx-632376003:hover{color:#FFFFFF;background-color:var(--page-level-three-color);}.filter__pill--selected.jsx-632376003{color:#FFFFFF;background-color:var(--page-level-four-color);}.filter__pill--selected.jsx-632376003:hover{color:#FFFFFF;background-color:var(--page-level-three-color);cursor:auto;}</style><style id="__jsx-2175120967">.filter__pills.jsx-2175120967{display:block;}@media (min-width:600px){.filter__pills.jsx-2175120967{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}}.filter__pill.jsx-2175120967{font-family:'Calibre';font-style:normal;font-weight:600;font-size:20px;line-height:100%;color:rgba(0,0,0,0.5);cursor:pointer;-webkit-transition:color 300ms ease-out;transition:color 300ms ease-out;-webkit-transition-delay:150ms;transition-delay:150ms;padding:15px 0px;}.filter__pill.jsx-2175120967:hover{color:black;}@media (min-width:600px){.filter__pill.jsx-2175120967:not(:last-of-type){margin-right:100px;}}.filter__pill--selected.jsx-2175120967{color:var(--page-level-one-color);}.filter__pill__date.jsx-2175120967{font-weight:300;font-size:16px;}</style><style id="__jsx-3832051792">.slot-card.jsx-3832051792{padding:30px;background-color:var(--page-level-one-color);height:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:justify;-webkit-justify-content:space-between;-ms-flex-pack:justify;justify-content:space-between;}.slot-card--compact.jsx-3832051792{padding:15px;}.slot-card--compact.jsx-3832051792 .slot-card__room.jsx-3832051792{font-size:0.75em;}.slot-card__room.jsx-3832051792{color:white;font-weight:300;font-size:14px;margin-bottom:15px;}.slot-card__title.jsx-3832051792{margin-bottom:20px;line-height:1.3em;font-size:20px;font-weight:500;color:white;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;}.slot-card--compact.jsx-3832051792 .slot-card__title.jsx-3832051792{font-size:1em;}.slot-card__speaker.jsx-3832051792{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.slot-card__speaker.jsx-3832051792:not(:last-of-type){margin-bottom:-13px;}.slot-card__speaker.jsx-3832051792 img.jsx-3832051792{width:40px;border-radius:50%;-webkit-filter:grayscale(100%);filter:grayscale(100%);border:solid 3px #272727;}.slot-card--compact.jsx-3832051792 .slot-card__speaker.jsx-3832051792 img.jsx-3832051792{width:30px;}.slot-card__speaker-title.jsx-3832051792{margin-left:10px;color:white;font-weight:300;font-size:14px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;}.slot-card--compact.jsx-3832051792 .slot-card__speaker-title.jsx-3832051792{font-size:0.75em;}.slot-card__tags.jsx-3832051792{margin-top:15px;}.slot-card__tag.jsx-3832051792{font-size:14px;font-weight:300;background-color:white;display:inline-block;padding:8px 10px 3px;border-radius:calc(1em + 16px);}.slot-card--compact.jsx-3832051792 .slot-card__tag.jsx-3832051792{font-size:0.75em;}.slot-card__day.jsx-3832051792{margin-left:8px;}</style><style id="__jsx-3733322596">.agenda.jsx-3733322596{padding:60px 15%;}.agenda__heading.jsx-3733322596{display:grid;margin-bottom:30px;grid-row-gap:30px;}@media (min-width:600px){.agenda__heading.jsx-3733322596{grid-template-columns:1fr 1fr;}}.agenda__filters.jsx-3733322596{display:block;}.agenda__heading-filter.jsx-3733322596{display:block;padding:0px 0px 40px 0px;}@media (min-width:800px){.agenda__heading-filter.jsx-3733322596{display:grid;grid-row-gap:20px;grid-template-columns:70% 30%;padding:0px 0px 60px 0px;}}@media (min-width:1500px){.agenda__heading-filter.jsx-3733322596{grid-row-gap:30px;grid-template-columns:80% 20%;}}.agenda__heading-filter__horizontal.jsx-3733322596{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow;-ms-flex-flow;flex-flow;row:nowrap;}.agenda__title.jsx-3733322596{font-family:'Calibre';font-style:normal;font-weight:600;font-size:96px;line-height:100%;color:#232323;}.agenda__filter.jsx-3733322596{margin-bottom:60px;}.agenda__time-slot.jsx-3733322596:not(:last-of-type){margin-bottom:70px;}.agenda__time-slot-title.jsx-3733322596{font-size:30px;font-weight:500;margin-bottom:30px;}.agenda__items.jsx-3733322596{display:grid;grid-template-columns:1fr;grid-gap:20px;}@media (min-width:800px){.agenda__items.jsx-3733322596{grid-gap:40px;grid-template-columns:repeat(2,1fr);}}@media (min-width:1000px){.agenda__items.jsx-3733322596{grid-template-columns:repeat(4,1fr);}}.agenda__item.jsx-3733322596{-webkit-text-decoration:none;text-decoration:none;color:black;cursor:pointer;-webkit-transition:-webkit-transform 150ms ease-out;-webkit-transition:transform 150ms ease-out;transition:transform 150ms ease-out;will-change:transform;}.agenda__item.jsx-3733322596:hover{-webkit-transform:scale(1.025);-ms-transform:scale(1.025);transform:scale(1.025);}</style><style id="__jsx-1067068481">.page__container.jsx-1067068481{margin:0 auto;padding:0px;background:#FFFFFF;}@media (min-width:1920px){.page__container.jsx-1067068481{max-width:1920px;margin:0 auto;padding:0;}}</style><style id="__jsx-3089119235">.linkNoDecoration.jsx-3089119235>a.jsx-3089119235:link{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference.jsx-3089119235{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;color:white;width:300px;height:500px;margin:0px;padding:50px 10px 40px 40px;background-image:url('https://cdn.sanity.io/images/fhoo4r9z/production/8cc1950e9803b379c8887ea77848dc7dfc3500c0-2000x1300.jpg?h=500');background-size:cover;background-blend-mode:multiply;-webkit-text-decoration:none !important;text-decoration:none !important;-webkit-transition:-webkit-transform 150ms ease-out;-webkit-transition:transform 150ms ease-out;transition:transform 150ms ease-out;will-change:transform;}.conference.jsx-3089119235:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.conference__title.jsx-3089119235{width:100%;font-family:'Calibre';font-style:normal;font-weight:500;font-size:36px;line-height:36px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__title.jsx-3089119235:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference__date.jsx-3089119235{width:100%;font-family:'Calibre';font-style:normal;font-weight:400;font-size:24px;line-height:24px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__date.jsx-3089119235:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}</style><style id="__jsx-1651966692">.linkNoDecoration.jsx-1651966692>a.jsx-1651966692:link{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference.jsx-1651966692{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;color:white;width:300px;height:500px;margin:0px;padding:50px 10px 40px 40px;background-image:url('https://cdn.sanity.io/images/fhoo4r9z/production/c4a7d0bc33ccd7741663f6461588132a027ea0f8-2400x2239.jpg?h=500');background-size:cover;background-blend-mode:multiply;-webkit-text-decoration:none !important;text-decoration:none !important;-webkit-transition:-webkit-transform 150ms ease-out;-webkit-transition:transform 150ms ease-out;transition:transform 150ms ease-out;will-change:transform;}.conference.jsx-1651966692:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.conference__title.jsx-1651966692{width:100%;font-family:'Calibre';font-style:normal;font-weight:500;font-size:36px;line-height:36px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__title.jsx-1651966692:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference__date.jsx-1651966692{width:100%;font-family:'Calibre';font-style:normal;font-weight:400;font-size:24px;line-height:24px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__date.jsx-1651966692:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}</style><style id="__jsx-3773934132">.linkNoDecoration.jsx-3773934132>a.jsx-3773934132:link{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference.jsx-3773934132{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;color:white;width:300px;height:500px;margin:0px;padding:50px 10px 40px 40px;background-image:url('https://cdn.sanity.io/images/fhoo4r9z/production/94f596039f5dad137731bfc08eefe71a611915e8-5632x3755.jpg?h=500');background-size:cover;background-blend-mode:multiply;-webkit-text-decoration:none !important;text-decoration:none !important;-webkit-transition:-webkit-transform 150ms ease-out;-webkit-transition:transform 150ms ease-out;transition:transform 150ms ease-out;will-change:transform;}.conference.jsx-3773934132:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.conference__title.jsx-3773934132{width:100%;font-family:'Calibre';font-style:normal;font-weight:500;font-size:36px;line-height:36px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__title.jsx-3773934132:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference__date.jsx-3773934132{width:100%;font-family:'Calibre';font-style:normal;font-weight:400;font-size:24px;line-height:24px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__date.jsx-3773934132:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}</style><style id="__jsx-659175116">.linkNoDecoration.jsx-659175116>a.jsx-659175116:link{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference.jsx-659175116{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;color:white;width:300px;height:500px;margin:0px;padding:50px 10px 40px 40px;background-image:url('https://cdn.sanity.io/images/fhoo4r9z/production/710ef8dec6c69db85d59bfd83d3f6d2e5ee005ea-1000x633.jpg?h=500');background-size:cover;background-blend-mode:multiply;-webkit-text-decoration:none !important;text-decoration:none !important;-webkit-transition:-webkit-transform 150ms ease-out;-webkit-transition:transform 150ms ease-out;transition:transform 150ms ease-out;will-change:transform;}.conference.jsx-659175116:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.conference__title.jsx-659175116{width:100%;font-family:'Calibre';font-style:normal;font-weight:500;font-size:36px;line-height:36px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__title.jsx-659175116:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference__date.jsx-659175116{width:100%;font-family:'Calibre';font-style:normal;font-weight:400;font-size:24px;line-height:24px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__date.jsx-659175116:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}</style><style id="__jsx-4069550746">.linkNoDecoration.jsx-4069550746>a.jsx-4069550746:link{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference.jsx-4069550746{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;color:white;width:300px;height:500px;margin:0px;padding:50px 10px 40px 40px;background-image:url('https://cdn.sanity.io/images/fhoo4r9z/production/2034a7bd972d3603d25c8a492b06b1c829d037b3-1162x1237.png?h=500');background-size:cover;background-blend-mode:multiply;-webkit-text-decoration:none !important;text-decoration:none !important;-webkit-transition:-webkit-transform 150ms ease-out;-webkit-transition:transform 150ms ease-out;transition:transform 150ms ease-out;will-change:transform;}.conference.jsx-4069550746:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.conference__title.jsx-4069550746{width:100%;font-family:'Calibre';font-style:normal;font-weight:500;font-size:36px;line-height:36px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__title.jsx-4069550746:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference__date.jsx-4069550746{width:100%;font-family:'Calibre';font-style:normal;font-weight:400;font-size:24px;line-height:24px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__date.jsx-4069550746:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}</style><style id="__jsx-2049758436">.linkNoDecoration.jsx-2049758436>a.jsx-2049758436:link{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference.jsx-2049758436{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:flex-end;-webkit-box-align:flex-end;-ms-flex-align:flex-end;align-items:flex-end;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:end;-webkit-justify-content:flex-end;-ms-flex-pack:end;justify-content:flex-end;color:white;width:300px;height:500px;margin:0px;padding:50px 10px 40px 40px;background-image:url('https://cdn.sanity.io/images/fhoo4r9z/production/0f7785cf67e46323dd7efc431e3fe3b2daa21139-1000x750.jpg?h=500');background-size:cover;background-blend-mode:multiply;-webkit-text-decoration:none !important;text-decoration:none !important;-webkit-transition:-webkit-transform 150ms ease-out;-webkit-transition:transform 150ms ease-out;transition:transform 150ms ease-out;will-change:transform;}.conference.jsx-2049758436:hover{-webkit-transform:scale(1.1);-ms-transform:scale(1.1);transform:scale(1.1);}.conference__title.jsx-2049758436{width:100%;font-family:'Calibre';font-style:normal;font-weight:500;font-size:36px;line-height:36px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__title.jsx-2049758436:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}.conference__date.jsx-2049758436{width:100%;font-family:'Calibre';font-style:normal;font-weight:400;font-size:24px;line-height:24px;color:white;-webkit-text-decoration:none !important;text-decoration:none !important;margin:0px;padding:0px;}.conference__date.jsx-2049758436:visited{-webkit-text-decoration:none !important;text-decoration:none !important;}</style><style id="__jsx-3878632968">.footer__conferenceboxes.jsx-3878632968{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:0px 20px;}</style><style id="__jsx-2096302040">.partners.jsx-2096302040{display:block;}.partners__title.jsx-2096302040{width:100%;font-family:'Playfair Display Medium Italic';font-weight:400;font-size:24px;line-height:36px;text-align:center;color:white;margin:0px;padding:0px;}@media (min-width:800px){.partners__title.jsx-2096302040{font-size:36px;line-height:46px;}}@media (min-width:1200px){.partners__title.jsx-2096302040{font-size:48px;line-height:56px;}}.partners__title-bold.jsx-2096302040{font-family:'Playfair Display';font-style:normal;font-weight:800;font-size:24px;line-height:36px;}@media (min-width:800px){.partners__title-bold.jsx-2096302040{font-size:36px;line-height:46px;}}@media (min-width:1200px){.partners__title-bold.jsx-2096302040{font-size:48px;line-height:56px;}}.partners__logos.jsx-2096302040{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.partners__logo.jsx-2096302040{margin:20px 15px;-webkit-transition:opacity 150ms ease-out;transition:opacity 150ms ease-out;}.partners__logo.jsx-2096302040:hover{opacity:0.8;}.partners__logo.jsx-2096302040 img.jsx-2096302040{width:75px;-webkit-filter:brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(1%) hue-rotate(197deg) brightness(101%) contrast(101%);filter:brightness(0) saturate(100%) invert(100%) sepia(0%) saturate(1%) hue-rotate(197deg) brightness(101%) contrast(101%);opacity:0.75;}@media (min-width:1200px){.partners__logo.jsx-2096302040 img.jsx-2096302040{width:120px;}}@media (min-width:1500px){.partners__logo.jsx-2096302040 img.jsx-2096302040{width:150px;}}.partners__line.jsx-2096302040{width:100%;border:1px solid #EDE3E3;margin:0px;padding:0px;}</style><style id="__jsx-1564649870">.newsletter__links__container.jsx-1564649870{width:100%;display:block;margin:0px;padding:0px;}.newsletter__subcontainer.jsx-1564649870{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.links__subcontainer.jsx-1564649870{width:100%;display:grid;grid-template-columns:50% 50%;padding:0px 0px 0px 0px;}@media (min-width:1200px){.newsletter__links__container.jsx-1564649870{display:inline-block;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.newsletter__subcontainer.jsx-1564649870{width:33%;float:right;padding:0px;}.links__subcontainer.jsx-1564649870{width:67%;float:left;padding:0px;}}.links__sub__column.jsx-1564649870{display:block;}.links__sub__column.jsx-1564649870 a.jsx-1564649870{width:100%;font-family:'Poppins';font-style:normal;font-weight:700;font-size:18px;line-height:24px;color:#FFFFFF;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0px 0px 40px 0px;}@media (min-width:1200px){.links__sub__column.jsx-1564649870 a.jsx-1564649870{font-size:20px;line-height:28px;}}.newsletter__links__info.jsx-1564649870{width:100%;text-align:left;}.newsletter__links__info__text.jsx-1564649870{width:100%;font-family:'Poppins';font-style:normal;font-weight:400;font-size:14px;line-height:20px;color:#FFFFFF;padding:0px 0px 12px 0px;}.newsletter__links__info__text__header.jsx-1564649870{font-family:'Poppins';font-style:normal;font-weight:700;font-size:18px;line-height:24px;color:#FFFFFF;padding:40px 0px 12px 0px;}@media (min-width:1200px){.newsletter__links__info__text.jsx-1564649870{font-size:16px;line-height:24px;}.newsletter__links__info__text__header.jsx-1564649870{font-size:20px;line-height:28px;padding:0px 0px 12px 0px;}}</style><style id="__jsx-3103933071">.newsletter__container.jsx-3103933071{width:100%;display:block;margin:0px;padding:0px;}.newsletter__subcontainer.jsx-3103933071{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.empty__subcontainer.jsx-3103933071{width:100%;display:grid;grid-template-columns:50% 50%;padding:0px 0px 0px 0px;}@media (min-width:1200px){.newsletter__container.jsx-3103933071{display:inline-block;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.newsletter__subcontainer.jsx-3103933071{width:33%;float:right;padding:0px;}.empty__subcontainer.jsx-3103933071{width:67%;float:left;padding:0px;}}.newsletter__header.jsx-3103933071{font-family:'Poppins';font-style:normal;font-weight:700;font-size:18px;line-height:24px;color:#FFFFFF;padding:40px 0px 12px 0px;}@media (min-width:1200px){.newsletter__header.jsx-3103933071{font-size:20px;line-height:28px;padding:0px 0px 12px 0px;}}.mailchimp__container.jsx-3103933071{display:block;width:100%;}.mailchimp__form.jsx-3103933071{display:inline-block;width:100%;line-height:56px;vertical-align:bottom;}.mailchimp__form__email.jsx-3103933071{width:calc(100% - 150px);height:56px;background:#FFFFFF;border:1px solid #FFFFFF;font-family:'Poppins';font-style:normal;font-weight:500;font-size:16px;line-height:20px;color:#5A5A5A;margin:0px;padding:0px 10px;vertical-align:bottom;}.mailchimp__form__submit.jsx-3103933071{width:140px;height:56px;font-family:'Poppins-Bold';background-color:var(--page-level-four-color);background-image:url(/SignUp.svg);background-repeat:no-repeat;background-position:center;background-size:140px auto;border:none;color:transparent;margin:0px 0px 0px 10px;padding:0px;vertical-align:bottom;}.mailchimp__loading.jsx-3103933071{width:100%;height:40px;font-family:'Poppins';font-style:normal;font-weight:500;font-size:20px;line-height:40px;vertical-align:center;color:#ff6969;}.mailchimp__info.jsx-3103933071{width:100%;height:40px;font-family:'Poppins';font-style:normal;font-weight:500;font-size:20px;line-height:40px;vertical-align:center;color:#000000;}</style><style id="__jsx-2802981732">.socials__links__container.jsx-2802981732{width:100%;display:block;margin:0px;padding:0px;}.socials__subcontainer.jsx-2802981732{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-align-content:center;-ms-flex-line-pack:center;align-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:0px 0px 50px 0px;}.links__subcontainer.jsx-2802981732{width:100%;display:block;text-align:center;}@media (min-width:1200px){.socials__links__container.jsx-2802981732{display:inline-block;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;}.socials__subcontainer.jsx-2802981732{width:33%;float:right;padding:0px;}.links__subcontainer.jsx-2802981732{width:67%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;float:left;text-align:left;}}.socials__item.jsx-2802981732{margin:0px 35px 0px 0px;}@media (min-width:1200px){.socials__item.jsx-2802981732{margin:0px 15px 0px 0px;}}@media (min-width:1500px){.socials__item.jsx-2802981732{margin:0px 30px 0px 0px;}}.socials__item.jsx-2802981732 img.jsx-2802981732{max-width:30px;max-height:30px;}.socials__item.jsx-2802981732 a.jsx-2802981732{width:30px;height:30px;-webkit-text-decoration:none;text-decoration:none;color:#fff;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-flow:row nowrap;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}.links__subcontainer.jsx-2802981732 a.jsx-2802981732{font-family:'Poppins';font-style:normal;font-weight:400;font-size:14px;line-height:20px;-webkit-text-decoration-line:underline;text-decoration-line:underline;color:#FFFFFF;padding:0px 24px 0px 0px;}@media (min-width:1200px){.links__subcontainer.jsx-2802981732 a.jsx-2802981732{font-size:18px;line-height:24px;padding:0px 64px 0px 0px;}}</style><style id="__jsx-2563101321">.footer__container.jsx-2563101321{display:block;width:100%;}.footer__conferences.jsx-2563101321{width:100%;min-height:900px;background-color:var(--page-level-three-color);}.footer__conferences-title.jsx-2563101321{width:100%;font-family:'Calibre';font-style:normal;font-weight:600;font-size:56px;line-height:56px;text-align:center;color:white;margin:0px;padding:132px 0px 70px 0px;}.footer__conferences-list.jsx-2563101321{width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;padding:0px 0px 30px 0px;}.footer__partners-and-socials.jsx-2563101321{display:block;width:100%;min-height:600px;background-color:var(--page-level-two-color);}.footer__partners.jsx-2563101321{display:block;padding:40px 24px;}.footer__links-and-newsletter.jsx-2563101321{display:block;padding:0px 24px;}.footer__socials-and-links.jsx-2563101321{display:block;padding:50px 24px;}@media (min-width:600px){.footer__partners.jsx-2563101321{padding:46px 10%;}.footer__links-and-newsletter.jsx-2563101321{padding:0px 10%;}.footer__socials-and-links.jsx-2563101321{padding:56px 10%;}}@media (min-width:1200px){.footer__partners.jsx-2563101321{padding:56px 18%;}.footer__links-and-newsletter.jsx-2563101321{padding:0px 18%;}.footer__socials-and-links.jsx-2563101321{padding:90px 18%;}}.footer__devsummit__partners-and-socials.jsx-2563101321{display:block;width:100%;min-height:600px;background-image:linear-gradient(180deg,#00020A,#6A39A8);}.footer__devsummit__conferences-title.jsx-2563101321{font-family:'CascadiaMono';font-style:normal;font-weight:700;font-size:24px;line-height:28px;text-align:center;color:white;margin:0px auto;padding:50px 0px;}@media (min-width:600px){.footer__devsummit__conferences-title.jsx-2563101321{font-size:36px;line-height:42px;padding:60px 0px;}}@media (min-width:1200px){.footer__devsummit__conferences-title.jsx-2563101321{font-size:48px;line-height:56px;padding:80px 0px;}}.footer__devsummit__partners.jsx-2563101321{display:block;padding:40px 24px;}@media (min-width:600px){.footer__devsummit__partners.jsx-2563101321{padding:46px 15%;}}@media (min-width:1200px){.footer__devsummit__partners.jsx-2563101321{padding:56px 15%;}}.footer__devsummit__socials.jsx-2563101321{width:100%;display:block;padding:30px 24px;}.footer__devsummit__socials-pin.jsx-2563101321{display:none;}.footer__devsummit__socials-mailchimp.jsx-2563101321{display:block;}@media (min-width:600px){.footer__devsummit__socials.jsx-2563101321{display:grid;grid-template-columns:1fr 1fr;gap:0px;padding:0px;}.footer__devsummit__socials-pin.jsx-2563101321{display:block;background-image:url('/devsummit/pins/azuredevsummit-footer.png');background-size:80% auto;background-repeat:no-repeat;background-position:bottom left;width:100%;height:100%;}.footer__devsummit__socials-mailchimp.jsx-2563101321{width:100%;}}</style><style id="__jsx-2229072646">.layout__footer-rubber-band-background.jsx-2229072646{background-color:#0e0e0e;height:300px;position:fixed;bottom:0;left:0;right:0;-webkit-transform:translateY(300px);-ms-transform:translateY(300px);transform:translateY(300px);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;z-index:0;}</style><style id="__jsx-2027673028">.cookie-notice.jsx-2027673028{position:fixed;bottom:0;left:0;right:0;z-index:2;}</style></head><body><div id="__next" data-reactroot=""><noscript class="jsx-2027673028"><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WC8LZRF5" height="0" width="0" style="display:none;visibility:hidden;"></iframe></noscript><div class="jsx-2229072646 home"><div class="jsx-1067068481 page__container"><div class="jsx-3721560230 navigation__container"><div class="jsx-3131272695 navigation__wrapper"><div class="jsx-3131272695 navigation"><div class="jsx-3131272695 navigation__col1__padding"></div><div class="jsx-3131272695 navigation__col2__logo"><h1 class="jsx-3131272695 navigation__title"><a class="jsx-3131272695 navigation__title-link" href="/"><span class="jsx-3131272695"><span class="jsx-3131272695 navigation__title-medium">NDC  </span><span class="jsx-3131272695 navigation__title-light">{ London }</span></span></a></h1></div><div class="jsx-3131272695 navigation__col3__space"></div><div class="jsx-3131272695 navigation__col4__menu"><div class="jsx-3177089827 menu"><div class="jsx-3177089827 menu__items"><div class="jsx-3177089827 menu__item"><a class="jsx-3177089827 menu__item--link" href="/tickets">Tickets</a></div><div class="jsx-3177089827 menu__item"><a class="jsx-3177089827 menu__item--link" href="/workshops">Workshops</a></div><div class="jsx-3177089827 menu__item"><a class="jsx-3177089827 menu__item--link" href="/agenda">Agenda</a></div><div class="jsx-3177089827 menu__item"><a class="jsx-3177089827 menu__item--link" href="/speakers">Speakers</a></div></div><div class="jsx-3177089827 menu__items__empty"></div><div class="jsx-3177089827 menu__item-menu-and-ticket"><div class="jsx-3177089827 menu__item-menu"><svg width="47" height="64" viewBox="0 0 47 64" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M34.3334 10.7507H35.0834V9.25065H34.3334V10.7507ZM12.6667 10.7507H34.3334V9.25065H12.6667V10.7507Z" fill="#FFFFFF"></path><path d="M34.3334 20.7507H35.0834V19.2507H34.3334V20.7507ZM12.6667 20.7507H34.3334V19.2507H12.6667V20.7507Z" fill="#FFFFFF"></path><path d="M34.3334 30.7507H35.0834V29.2507H34.3334V30.7507ZM12.6667 30.7507H34.3334V29.2507H12.6667V30.7507Z" fill="#FFFFFF"></path><path d="M0.992 58H3.728V51.248L6.256 58H8.464L10.976 51.264V58H13.712V46.768H10.496L7.376 54.544L4.224 46.768H0.992V58ZM19.6155 51.136C20.5275 51.136 21.2955 51.696 21.2955 52.672H17.8715C18.0315 51.68 18.7195 51.136 19.6155 51.136ZM23.8875 55.04H20.9755C20.7515 55.52 20.3195 55.904 19.5515 55.904C18.6715 55.904 17.9515 55.36 17.8555 54.192H24.0475C24.0795 53.92 24.0955 53.648 24.0955 53.392C24.0955 50.672 22.2555 48.944 19.6475 48.944C16.9915 48.944 15.1355 50.704 15.1355 53.536C15.1355 56.368 17.0235 58.128 19.6475 58.128C21.8715 58.128 23.4555 56.784 23.8875 55.04ZM31.6989 58H34.4189V52.784C34.4189 50.384 33.0429 48.976 30.9789 48.976C29.7789 48.976 28.8189 49.504 28.2749 50.256V49.072H25.5389V58H28.2749V53.152C28.2749 51.936 28.9469 51.264 29.9869 51.264C31.0269 51.264 31.6989 51.936 31.6989 53.152V58ZM45.1361 49.072H42.4001V53.92C42.4001 55.136 41.7281 55.808 40.6721 55.808C39.6481 55.808 38.9601 55.136 38.9601 53.92V49.072H36.2401V54.288C36.2401 56.672 37.6321 58.096 39.6961 58.096C40.8961 58.096 41.8561 57.552 42.4001 56.784V58H45.1361V49.072Z" fill="#FFFFFF"></path></svg></div><div class="jsx-3177089827 menu__item-ticket"><svg width="61" height="64" viewBox="0 0 61 64" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M21.2281 19.7578C20.8433 19.7578 20.531 20.0701 20.531 20.4549C20.531 20.8396 20.8433 21.1519 21.2281 21.1519C21.6128 21.1519 21.9251 20.8396 21.9251 20.4549C21.9251 20.0701 21.6128 19.7578 21.2281 19.7578Z" fill="#232323" stroke="#232323" stroke-width="3"></path><mask id="path-2-inside-1_842_291" fill="#000000"><path d="M47.1586 16.9705C47.5435 16.9705 47.8556 16.6583 47.8556 16.2734V12.0911C47.8556 10.9381 46.9175 10 45.7645 10H14.2579C13.1048 10 12.1667 10.9381 12.1667 12.0911V16.2734C12.1667 16.6583 12.4788 16.9705 12.8638 16.9705C14.7856 16.9705 16.349 18.534 16.349 20.4557C16.349 22.3775 14.7856 23.941 12.8638 23.941C12.4788 23.941 12.1667 24.2531 12.1667 24.638V28.8203C12.1667 29.9734 13.1048 30.9115 14.2579 30.9115H45.7645C46.9175 30.9115 47.8556 29.9734 47.8556 28.8203V24.638C47.8556 24.2531 47.5435 23.941 47.1586 23.941C45.2368 23.941 43.6733 22.3775 43.6733 20.4557C43.6733 18.534 45.2368 16.9705 47.1586 16.9705ZM42.2792 20.4557C42.2792 22.9096 44.1001 24.9462 46.4615 25.2854V28.8203C46.4615 29.2047 46.1488 29.5174 45.7645 29.5174H21.9254V27.4262C21.9254 27.0413 21.6134 26.7292 21.2284 26.7292C20.8434 26.7292 20.5313 27.0413 20.5313 27.4262V29.5174H14.2579C13.8735 29.5174 13.5608 29.2047 13.5608 28.8203V25.2854C15.9223 24.9462 17.7431 22.9096 17.7431 20.4557C17.7431 18.0019 15.9223 15.9653 13.5608 15.626V12.0911C13.5608 11.7068 13.8735 11.3941 14.2579 11.3941H20.5313V13.4852C20.5313 13.8702 20.8434 14.1823 21.2284 14.1823C21.6134 14.1823 21.9254 13.8702 21.9254 13.4852V11.3941H45.7645C46.1488 11.3941 46.4615 11.7068 46.4615 12.0911V15.626C44.1001 15.9653 42.2792 18.0019 42.2792 20.4557Z"></path></mask><path d="M47.1586 16.9705C47.5435 16.9705 47.8556 16.6583 47.8556 16.2734V12.0911C47.8556 10.9381 46.9175 10 45.7645 10H14.2579C13.1048 10 12.1667 10.9381 12.1667 12.0911V16.2734C12.1667 16.6583 12.4788 16.9705 12.8638 16.9705C14.7856 16.9705 16.349 18.534 16.349 20.4557C16.349 22.3775 14.7856 23.941 12.8638 23.941C12.4788 23.941 12.1667 24.2531 12.1667 24.638V28.8203C12.1667 29.9734 13.1048 30.9115 14.2579 30.9115H45.7645C46.9175 30.9115 47.8556 29.9734 47.8556 28.8203V24.638C47.8556 24.2531 47.5435 23.941 47.1586 23.941C45.2368 23.941 43.6733 22.3775 43.6733 20.4557C43.6733 18.534 45.2368 16.9705 47.1586 16.9705ZM42.2792 20.4557C42.2792 22.9096 44.1001 24.9462 46.4615 25.2854V28.8203C46.4615 29.2047 46.1488 29.5174 45.7645 29.5174H21.9254V27.4262C21.9254 27.0413 21.6134 26.7292 21.2284 26.7292C20.8434 26.7292 20.5313 27.0413 20.5313 27.4262V29.5174H14.2579C13.8735 29.5174 13.5608 29.2047 13.5608 28.8203V25.2854C15.9223 24.9462 17.7431 22.9096 17.7431 20.4557C17.7431 18.0019 15.9223 15.9653 13.5608 15.626V12.0911C13.5608 11.7068 13.8735 11.3941 14.2579 11.3941H20.5313V13.4852C20.5313 13.8702 20.8434 14.1823 21.2284 14.1823C21.6134 14.1823 21.9254 13.8702 21.9254 13.4852V11.3941H45.7645C46.1488 11.3941 46.4615 11.7068 46.4615 12.0911V15.626C44.1001 15.9653 42.2792 18.0019 42.2792 20.4557Z" fill="#232323"></path><path d="M46.4615 25.2854H49.4615V22.6856L46.8881 22.3159L46.4615 25.2854ZM21.9254 29.5174H18.9254V32.5174H21.9254V29.5174ZM20.5313 29.5174V32.5174H23.5313V29.5174H20.5313ZM13.5608 25.2854L13.1342 22.3159L10.5608 22.6856V25.2854H13.5608ZM13.5608 15.626H10.5608V18.2258L13.1342 18.5955L13.5608 15.626ZM20.5313 11.3941H23.5313V8.3941H20.5313V11.3941ZM21.9254 11.3941V8.3941H18.9254V11.3941H21.9254ZM46.4615 15.626L46.8881 18.5955L49.4615 18.2258V15.626H46.4615ZM47.1586 19.9705C49.2003 19.9705 50.8556 18.3152 50.8556 16.2734H44.8556C44.8556 15.0015 45.8867 13.9705 47.1586 13.9705V19.9705ZM50.8556 16.2734V12.0911H44.8556V16.2734H50.8556ZM50.8556 12.0911C50.8556 9.28123 48.5744 7 45.7645 7V13C45.2607 13 44.8556 12.5949 44.8556 12.0911H50.8556ZM45.7645 7H14.2579V13H45.7645V7ZM14.2579 7C11.448 7 9.16675 9.28123 9.16675 12.0911H15.1667C15.1667 12.5949 14.7617 13 14.2579 13V7ZM9.16675 12.0911V16.2734H15.1667V12.0911H9.16675ZM9.16675 16.2734C9.16675 18.315 10.8218 19.9705 12.8638 19.9705V13.9705C14.1359 13.9705 15.1667 15.0017 15.1667 16.2734H9.16675ZM12.8638 19.9705C13.1287 19.9705 13.349 20.1908 13.349 20.4557H19.349C19.349 16.8771 16.4424 13.9705 12.8638 13.9705V19.9705ZM13.349 20.4557C13.349 20.7206 13.1287 20.941 12.8638 20.941V26.941C16.4424 26.941 19.349 24.0343 19.349 20.4557H13.349ZM12.8638 20.941C10.8218 20.941 9.16675 22.5965 9.16675 24.638H15.1667C15.1667 25.9098 14.1359 26.941 12.8638 26.941V20.941ZM9.16675 24.638V28.8203H15.1667V24.638H9.16675ZM9.16675 28.8203C9.16675 31.6302 11.448 33.9115 14.2579 33.9115V27.9115C14.7617 27.9115 15.1667 28.3165 15.1667 28.8203H9.16675ZM14.2579 33.9115H45.7645V27.9115H14.2579V33.9115ZM45.7645 33.9115C48.5744 33.9115 50.8556 31.6302 50.8556 28.8203H44.8556C44.8556 28.3165 45.2607 27.9115 45.7645 27.9115V33.9115ZM50.8556 28.8203V24.638H44.8556V28.8203H50.8556ZM50.8556 24.638C50.8556 22.5962 49.2003 20.941 47.1586 20.941V26.941C45.8867 26.941 44.8556 25.91 44.8556 24.638H50.8556ZM47.1586 20.941C46.8937 20.941 46.6733 20.7206 46.6733 20.4557H40.6733C40.6733 24.0343 43.58 26.941 47.1586 26.941V20.941ZM46.6733 20.4557C46.6733 20.1908 46.8937 19.9705 47.1586 19.9705V13.9705C43.58 13.9705 40.6733 16.8771 40.6733 20.4557H46.6733ZM39.2792 20.4557C39.2792 24.4247 42.2195 27.7068 46.0349 28.255L46.8881 22.3159C45.9806 22.1856 45.2792 21.3944 45.2792 20.4557H39.2792ZM43.4615 25.2854V28.8203H49.4615V25.2854H43.4615ZM43.4615 28.8203C43.4615 27.5478 44.492 26.5174 45.7645 26.5174V32.5174C47.8057 32.5174 49.4615 30.8615 49.4615 28.8203H43.4615ZM45.7645 26.5174H21.9254V32.5174H45.7645V26.5174ZM24.9254 29.5174V27.4262H18.9254V29.5174H24.9254ZM24.9254 27.4262C24.9254 25.3846 23.2704 23.7292 21.2284 23.7292V29.7292C19.9563 29.7292 18.9254 28.698 18.9254 27.4262H24.9254ZM21.2284 23.7292C19.1864 23.7292 17.5313 25.3846 17.5313 27.4262H23.5313C23.5313 28.698 22.5005 29.7292 21.2284 29.7292V23.7292ZM17.5313 27.4262V29.5174H23.5313V27.4262H17.5313ZM20.5313 26.5174H14.2579V32.5174H20.5313V26.5174ZM14.2579 26.5174C15.5304 26.5174 16.5608 27.5478 16.5608 28.8203H10.5608C10.5608 30.8615 12.2167 32.5174 14.2579 32.5174V26.5174ZM16.5608 28.8203V25.2854H10.5608V28.8203H16.5608ZM13.9875 28.255C17.8029 27.7068 20.7431 24.4247 20.7431 20.4557H14.7431C14.7431 21.3944 14.0418 22.1856 13.1342 22.3159L13.9875 28.255ZM20.7431 20.4557C20.7431 16.4868 17.8029 13.2046 13.9875 12.6565L13.1342 18.5955C14.0418 18.7259 14.7431 19.517 14.7431 20.4557H20.7431ZM16.5608 15.626V12.0911H10.5608V15.626H16.5608ZM16.5608 12.0911C16.5608 13.3636 15.5304 14.3941 14.2579 14.3941V8.3941C12.2167 8.3941 10.5608 10.0499 10.5608 12.0911H16.5608ZM14.2579 14.3941H20.5313V8.3941H14.2579V14.3941ZM17.5313 11.3941V13.4852H23.5313V11.3941H17.5313ZM17.5313 13.4852C17.5313 15.5268 19.1864 17.1823 21.2284 17.1823V11.1823C22.5005 11.1823 23.5313 12.2135 23.5313 13.4852H17.5313ZM21.2284 17.1823C23.2704 17.1823 24.9254 15.5268 24.9254 13.4852H18.9254C18.9254 12.2135 19.9563 11.1823 21.2284 11.1823V17.1823ZM24.9254 13.4852V11.3941H18.9254V13.4852H24.9254ZM21.9254 14.3941H45.7645V8.3941H21.9254V14.3941ZM45.7645 14.3941C44.492 14.3941 43.4615 13.3637 43.4615 12.0911H49.4615C49.4615 10.0499 47.8057 8.3941 45.7645 8.3941V14.3941ZM43.4615 12.0911V15.626H49.4615V12.0911H43.4615ZM46.0349 12.6565C42.2195 13.2046 39.2792 16.4868 39.2792 20.4557H45.2792C45.2792 19.517 45.9806 18.7259 46.8881 18.5955L46.0349 12.6565Z" fill="#232323" mask="url(#path-2-inside-1_842_291)"></path><mask id="path-4-inside-2_842_291" fill="#000000"><path d="M38.7949 15.5762H26.8057C26.4207 15.5762 26.1086 15.8883 26.1086 16.2732C26.1086 16.6581 26.4207 16.9703 26.8057 16.9703H38.7949C39.1798 16.9703 39.492 16.6581 39.492 16.2732C39.492 15.8883 39.1798 15.5762 38.7949 15.5762Z"></path></mask><path d="M38.7949 15.5762H26.8057C26.4207 15.5762 26.1086 15.8883 26.1086 16.2732C26.1086 16.6581 26.4207 16.9703 26.8057 16.9703H38.7949C39.1798 16.9703 39.492 16.6581 39.492 16.2732C39.492 15.8883 39.1798 15.5762 38.7949 15.5762Z" fill="#232323"></path><path d="M38.7949 12.5762H26.8057V18.5762H38.7949V12.5762ZM26.8057 12.5762C24.7637 12.5762 23.1086 14.2316 23.1086 16.2732H29.1086C29.1086 17.545 28.0778 18.5762 26.8057 18.5762V12.5762ZM23.1086 16.2732C23.1086 18.3148 24.7637 19.9703 26.8057 19.9703V13.9703C28.0778 13.9703 29.1086 15.0015 29.1086 16.2732H23.1086ZM26.8057 19.9703H38.7949V13.9703H26.8057V19.9703ZM38.7949 19.9703C40.8367 19.9703 42.492 18.315 42.492 16.2732H36.492C36.492 15.0013 37.523 13.9703 38.7949 13.9703V19.9703ZM42.492 16.2732C42.492 14.2315 40.8367 12.5762 38.7949 12.5762V18.5762C37.523 18.5762 36.492 17.5452 36.492 16.2732H42.492Z" fill="#232323" mask="url(#path-4-inside-2_842_291)"></path><mask id="path-6-inside-3_842_291" fill="#000000"><path d="M38.7949 19.7578H26.8057C26.4207 19.7578 26.1086 20.07 26.1086 20.4549C26.1086 20.8398 26.4207 21.1519 26.8057 21.1519H38.7949C39.1798 21.1519 39.492 20.8398 39.492 20.4549C39.492 20.07 39.1798 19.7578 38.7949 19.7578Z"></path></mask><path d="M38.7949 19.7578H26.8057C26.4207 19.7578 26.1086 20.07 26.1086 20.4549C26.1086 20.8398 26.4207 21.1519 26.8057 21.1519H38.7949C39.1798 21.1519 39.492 20.8398 39.492 20.4549C39.492 20.07 39.1798 19.7578 38.7949 19.7578Z" fill="#232323"></path><path d="M38.7949 16.7578H26.8057V22.7578H38.7949V16.7578ZM26.8057 16.7578C24.7637 16.7578 23.1086 18.4133 23.1086 20.4549H29.1086C29.1086 21.7266 28.0778 22.7578 26.8057 22.7578V16.7578ZM23.1086 20.4549C23.1086 22.4964 24.7637 24.1519 26.8057 24.1519V18.1519C28.0778 18.1519 29.1086 19.1831 29.1086 20.4549H23.1086ZM26.8057 24.1519H38.7949V18.1519H26.8057V24.1519ZM38.7949 24.1519C40.8367 24.1519 42.492 22.4966 42.492 20.4549H36.492C36.492 19.1829 37.523 18.1519 38.7949 18.1519V24.1519ZM42.492 20.4549C42.492 18.4131 40.8367 16.7578 38.7949 16.7578V22.7578C37.523 22.7578 36.492 21.7268 36.492 20.4549H42.492Z" fill="#232323" mask="url(#path-6-inside-3_842_291)"></path><mask id="path-8-inside-4_842_291" fill="#000000"><path d="M38.7949 23.9414H26.8057C26.4207 23.9414 26.1086 24.2535 26.1086 24.6385C26.1086 25.0234 26.4207 25.3355 26.8057 25.3355H38.7949C39.1798 25.3355 39.492 25.0234 39.492 24.6385C39.492 24.2535 39.1798 23.9414 38.7949 23.9414Z"></path></mask><path d="M38.7949 23.9414H26.8057C26.4207 23.9414 26.1086 24.2535 26.1086 24.6385C26.1086 25.0234 26.4207 25.3355 26.8057 25.3355H38.7949C39.1798 25.3355 39.492 25.0234 39.492 24.6385C39.492 24.2535 39.1798 23.9414 38.7949 23.9414Z" fill="#232323"></path><path d="M38.7949 20.9414H26.8057V26.9414H38.7949V20.9414ZM26.8057 20.9414C24.7637 20.9414 23.1086 22.5969 23.1086 24.6385H29.1086C29.1086 25.9102 28.0778 26.9414 26.8057 26.9414V20.9414ZM23.1086 24.6385C23.1086 26.68 24.7637 28.3355 26.8057 28.3355V22.3355C28.0778 22.3355 29.1086 23.3667 29.1086 24.6385H23.1086ZM26.8057 28.3355H38.7949V22.3355H26.8057V28.3355ZM38.7949 28.3355C40.8367 28.3355 42.492 26.6802 42.492 24.6385H36.492C36.492 23.3665 37.523 22.3355 38.7949 22.3355V28.3355ZM42.492 24.6385C42.492 22.5967 40.8367 20.9414 38.7949 20.9414V26.9414C37.523 26.9414 36.492 25.9104 36.492 24.6385H42.492Z" fill="#232323" mask="url(#path-8-inside-4_842_291)"></path><path d="M21.6269 16.9703C21.5094 17.0376 21.3732 17.0762 21.2281 17.0762C21.0829 17.0762 20.9467 17.0376 20.8292 16.9703C20.9467 16.9029 21.0829 16.8644 21.2281 16.8644C21.3732 16.8644 21.5094 16.9029 21.6269 16.9703Z" fill="#232323" stroke="#232323" stroke-width="3"></path><path d="M21.6269 23.941C21.5094 24.0084 21.3732 24.0469 21.2281 24.0469C21.0829 24.0469 20.9467 24.0084 20.8292 23.941C20.9467 23.8736 21.0829 23.8351 21.2281 23.8351C21.3732 23.8351 21.5094 23.8736 21.6269 23.941Z" fill="#232323" stroke="#232323" stroke-width="3"></path><path d="M1.36838 48.96H4.34438V58H7.08038V48.96H10.0564V46.768H1.36838V48.96ZM11.4295 58H14.1655V49.072H11.4295V58ZM12.8055 48.144C13.7655 48.144 14.4215 47.488 14.4215 46.672C14.4215 45.84 13.7655 45.184 12.8055 45.184C11.8295 45.184 11.1735 45.84 11.1735 46.672C11.1735 47.488 11.8295 48.144 12.8055 48.144ZM15.6043 53.536C15.6043 56.368 17.4603 58.128 20.0843 58.128C22.3243 58.128 23.9083 56.832 24.3723 54.768H21.4603C21.2203 55.424 20.7883 55.792 20.0363 55.792C19.0603 55.792 18.3883 55.024 18.3883 53.536C18.3883 52.048 19.0603 51.28 20.0363 51.28C20.7883 51.28 21.2363 51.68 21.4603 52.304H24.3723C23.9083 50.176 22.3243 48.944 20.0843 48.944C17.4603 48.944 15.6043 50.72 15.6043 53.536ZM25.8358 58H28.5718V54.256L31.2918 58H34.6838L30.9398 53.552L34.6518 49.072H31.2758L28.5718 52.704V46.16H25.8358V58ZM39.6624 51.136C40.5744 51.136 41.3424 51.696 41.3424 52.672H37.9184C38.0784 51.68 38.7664 51.136 39.6624 51.136ZM43.9344 55.04H41.0224C40.7984 55.52 40.3664 55.904 39.5984 55.904C38.7184 55.904 37.9984 55.36 37.9024 54.192H44.0944C44.1264 53.92 44.1424 53.648 44.1424 53.392C44.1424 50.672 42.3024 48.944 39.6944 48.944C37.0384 48.944 35.1824 50.704 35.1824 53.536C35.1824 56.368 37.0704 58.128 39.6944 58.128C41.9184 58.128 43.5024 56.784 43.9344 55.04ZM46.0178 54.896C46.0178 57.216 47.3138 58 49.1698 58H50.5618V55.68H49.5858C48.9778 55.68 48.7538 55.456 48.7538 54.928V51.344H50.5458V49.072H48.7538V46.896H46.0178V49.072H44.9298V51.344H46.0178V54.896ZM59.3338 55.408C59.2858 52.08 54.4538 53.088 54.4538 51.664C54.4538 51.232 54.8058 50.976 55.4458 50.976C56.2138 50.976 56.6778 51.376 56.7578 51.984H59.2858C59.1098 50.224 57.8298 48.944 55.5258 48.944C53.1898 48.944 51.8938 50.192 51.8938 51.712C51.8938 54.992 56.7578 53.952 56.7578 55.392C56.7578 55.792 56.3898 56.112 55.6858 56.112C54.9338 56.112 54.3738 55.696 54.3098 55.072H51.6058C51.7338 56.8 53.3338 58.128 55.7178 58.128C57.9578 58.128 59.3338 56.96 59.3338 55.408Z" fill="#232323"></path></svg></div></div></div><div class="jsx-3131272695 navigation__submenu"></div></div></div></div></div><main class="jsx-2229072646"><div class="jsx-1067068481 page__container"><div class="jsx-3733322596 agenda"><div class="jsx-3733322596 agenda__heading"><h2 class="jsx-3733322596 agenda__title">Workshops</h2></div><div class="jsx-3733322596 agenda__filters"><div class="jsx-3733322596 agenda__heading-filter"><div class="jsx-842277577 filter"><p class="jsx-842277577 filter__title">Filter by category</p><div class="jsx-842277577 filter__pills"><div class="jsx-842277577 filter__pill filter__pill--enabled">.NET</div><div class="jsx-842277577 filter__pill filter__pill--enabled">Functional Programming</div><div class="jsx-842277577 filter__pill filter__pill--enabled">Architecture</div><div class="jsx-842277577 filter__pill filter__pill--enabled">AI</div><div class="jsx-842277577 filter__pill filter__pill--enabled">Microservices</div><div class="jsx-842277577 filter__pill filter__pill--enabled">Soft Skills</div><div class="jsx-842277577 filter__pill filter__pill--enabled">DevOps</div><div class="jsx-842277577 filter__pill filter__pill--enabled">Python</div><div class="jsx-842277577 filter__pill filter__pill--enabled">Cloud</div><div class="jsx-842277577 filter__pill filter__pill--enabled">People</div></div></div><div class="jsx-3733322596 agenda__heading-filter__horizontal"><div class="jsx-632376003 filter"><p class="jsx-632376003 filter__title">Filter by length</p><div class="jsx-632376003 filter__pills"><div class="jsx-632376003 filter__pill filter__pill--selected">All</div><div class="jsx-632376003 filter__pill">2 Days</div></div></div></div></div></div><div class="jsx-3733322596 agenda__filter"><div class="jsx-2175120967 filter"><div class="jsx-2175120967 filter__pills"><div class="jsx-2175120967 filter__pill filter__pill--selected">Show All Workshops<div class="jsx-2175120967 filter__pill__date"></div></div><div class="jsx-2175120967 filter__pill">Monday<div class="jsx-2175120967 filter__pill__date">27 January</div></div><div class="jsx-2175120967 filter__pill">Tuesday<div class="jsx-2175120967 filter__pill__date">28 January</div></div></div></div></div><div class="jsx-3733322596 agenda__time-slots"><div class="jsx-3733322596 agenda__time-slot"><h3 class="jsx-3733322596 agenda__time-slot-title">09:00 - 17:00<!-- --> (UTC±00)</h3><div class="jsx-3733322596 agenda__items"><a class="jsx-3733322596 agenda__item" href="/workshops/building-scalable-cloud-native-distributed-systems-in-dotnet/e2aa615d2725"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Abbey - L4</p><h3 class="jsx-3832051792 slot-card__title">Building scalable, cloud native, distributed systems in .NET</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/236aae267db3b8baa504804d3b6cb2734d93af38-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Nick Chapsas" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Nick Chapsas</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/designing-apis/ba1b14906985"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Albert - L2</p><h3 class="jsx-3832051792 slot-card__title">Designing APIs</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/8c047bf3fddae58a65466dac0ba0585f206cffa8-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Irina Dominte" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Irina Dominte</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/public-speaking-from-keyboard-to-keynote/017f2ba82309"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Burns - L4</p><h3 class="jsx-3832051792 slot-card__title">Public Speaking: From Keyboard to Keynote</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/7ebb99258d83f515c7e78d745f6ae2e3b79ffc46-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Dylan Beattie" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Dylan Beattie</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/reliable-messaging-in-azure/eac5656b1f90"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Chaucer - L4</p><h3 class="jsx-3832051792 slot-card__title">Reliable Messaging in Azure</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/2bb85377ec9af7b18f41d48a6e09069d92e448bc-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Daniel Marbach" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Daniel Marbach</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/domain-modeling-made-functional/028bcb07c7b8"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Keats -L4</p><h3 class="jsx-3832051792 slot-card__title">Domain Modeling Made Functional</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/b45e2293a976199274ebd2a11d7298545aaa9373-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Scott Wlaschin" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Scott Wlaschin</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/high-performance-net-development/4bd5d221a1f7"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Moore - L4</p><h3 class="jsx-3832051792 slot-card__title">High Performance .NET Development</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/fdc4e3a17e3d25e31697f67f6fa2936d0e708a35-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Rendle ." class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Rendle .</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/riding-the-architect-elevator-visiting-the-upper-floors/062cb4f23d20"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Rutherford - L4</p><h3 class="jsx-3832051792 slot-card__title">The Architect Elevator: Visiting the Upper Floors</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/ce796a42473fe80e2fd23779a63afd9c8214d0e1-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Gregor Hohpe" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Gregor Hohpe</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/building-ai-powered-applications-with-net/c8d8ae01a39a"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: St. James - L4</p><h3 class="jsx-3832051792 slot-card__title">Building AI-powered applications with .NET</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/07cafb890c94a8478d04abdda1e28386f4d24bc4-1437x1437.jpg?w=60&amp;h=60" alt="Portrait photo of Steve Sanderson" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Steve Sanderson</h4></div><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/1531f66831e1b603f90c5144e20ac6c17e3333da-240x320.jpg?rect=0,40,240,240&amp;w=60&amp;h=60" alt="Portrait photo of Diego Colombo" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Diego Colombo</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/building-future-proof-apps-with-the-modular-monolith/4d6692e7566c"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Victoria - L2</p><h3 class="jsx-3832051792 slot-card__title">Building Future-Proof Apps with the Modular Monolith </h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/2149f87cea577e3d7747f4176347c8f958dfacf3-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Layla Porter" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Layla Porter</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/practical-messaging-workshop/377bfb56107c"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Wesley - L4</p><h3 class="jsx-3832051792 slot-card__title">Practical Messaging</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/18f49ab1c417b19449ba90eb49ef87975ad4294d-318x318.png?w=60&amp;h=60" alt="Portrait photo of Ian Cooper" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Ian Cooper</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a><a class="jsx-3733322596 agenda__item" href="/workshops/advanced-software-architecture-with-residuality-theory/988a19cd21f5"><div class="jsx-3832051792 slot-card"><div class="jsx-3832051792"><p class="jsx-3832051792 slot-card__room">Room: Wordsworth - L4</p><h3 class="jsx-3832051792 slot-card__title">Advanced Software Architecture with Residuality Theory</h3></div><div class="jsx-3832051792"><div class="jsx-3832051792 slot-card__speakers"><div class="jsx-3832051792 slot-card__speaker"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/c6d7169636df52b8bffbf426f784d34e8c29a6bf-400x400.jpg?w=60&amp;h=60" alt="Portrait photo of Barry O&#x27;Reilly" class="jsx-3832051792"/><h4 class="jsx-3832051792 slot-card__speaker-title">Barry O&#x27;Reilly</h4></div></div><div class="jsx-3832051792 slot-card__tags"><div class="jsx-3832051792 slot-card__tag">2 Days</div><div class="jsx-3832051792 slot-card__tag slot-card__day">27-28 Jan</div></div></div></div></a></div></div></div></div></div></main><footer class="jsx-2563101321 footer__container"><div class="jsx-2563101321 footer__conferences"><h4 class="jsx-2563101321 footer__conferences-title">Discover our worldwide events</h4><div class="jsx-2563101321 footer__conferences-list"><div class="jsx-3878632968 footer__conferenceboxes"><div class="jsx-3878632968"><div class="linkNoDecoration"><a href="https://ndcmelbourne.com/"><div class="jsx-3089119235 conference"><div class="jsx-3089119235 conference__title">NDC Melbourne</div><div class="jsx-3089119235 conference__date">29 April - 1 May 2025</div></div></a></div></div><div class="jsx-3878632968"><div class="linkNoDecoration"><a href="https://ndcoslo.com"><div class="jsx-1651966692 conference"><div class="jsx-1651966692 conference__title">NDC Oslo</div><div class="jsx-1651966692 conference__date">19-23 May 2025</div></div></a></div></div><div class="jsx-3878632968"><div class="linkNoDecoration"><a href="https://ndccopenhagen.com"><div class="jsx-3773934132 conference"><div class="jsx-3773934132 conference__title">NDC Copenhagen</div><div class="jsx-3773934132 conference__date">8-12 September 2025</div></div></a></div></div><div class="jsx-3878632968"><div class="linkNoDecoration"><a href="https://ndctechtown.com"><div class="jsx-659175116 conference"><div class="jsx-659175116 conference__title">NDC TechTown</div><div class="jsx-659175116 conference__date">22-25 September 2025</div></div></a></div></div><div class="jsx-3878632968"><div class="linkNoDecoration"><a href="https://azuredevsummit.com"><div class="jsx-4069550746 conference"><div class="jsx-4069550746 conference__title">Azure Dev Summit</div><div class="jsx-4069550746 conference__date">13-16 October 2025</div></div></a></div></div><div class="jsx-3878632968"><div class="linkNoDecoration"><a href="https://ndcporto.com/"><div class="jsx-2049758436 conference"><div class="jsx-2049758436 conference__title">NDC Porto</div><div class="jsx-2049758436 conference__date">20-24 October 2025</div></div></a></div></div></div></div><div class="jsx-2563101321 footer__conferences-list"></div></div><div class="jsx-2563101321 footer__partners-and-socials"><div class="jsx-2563101321 footer__partners"><div class="jsx-2096302040 partners"><h4 class="jsx-2096302040 partners__title"><span class="jsx-2096302040 partners__title-bold">Our </span>Partners and Exhibitors</h4><div class="jsx-2096302040 partners__logos"><a href="https://abp.io" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/2d7ba361e911c939eb22b6fc24db2046d8b4787a-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://apryse.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/daae3cfb4fc6fc7d662fa70c1a665533cbb115cd-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://auth0.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/80d833bea76408d6099cae0f63dd73b5d54775b8-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://aws.amazon.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/03bafc47e49ff521ee80855f97c8302a71d8b3ea-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://circleci.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/a1d3038617efe03cc27d0514582c64cdc2cad1bd-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://devitjobs.uk/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/d2479d795825d6935116280395aac5cff4cd25c7-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://www.digitalocean.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/b24b8e0d50eade500567d2d21cae105ce81323de-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://duendesoftware.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/03d8ea7d7268e0b22b383509cba1fe4fa73da433-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://www.elastic.co/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/0120c3d0d73985a598d14212b122acd07a6bea53-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://www.gravitee.io/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/b3ceebb3df52e91465a1a0873087231e51698cc8-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://www.janestreet.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/c543b568e4ec9174d68b91f40bb03017a4f17d02-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://docs.microsoft.com/en-gb/learn/?wt.mc_id=AID2447412_QSG_380120" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/f1fd12e53230ab8417e6a722b2167f2558dace56-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://www.netapp.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/6624cd6671b7c05448b6bed0400696012dc6a508-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://owasp.org/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/3ab4af16dde204a9737743a614eac04da01e8661-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://particular.net/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/6fb4dbe244ccf715c9ad57c62f222efaca1ad3e5-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://www.progress.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/2ef2f106defb6eceebfe724e680cb1350e0908bf-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://ravendb.net/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/0d9c24f6b8a06411dc54b7ece10cea9d0ddeff70-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://redis.io/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/02b09499c9373c63a8b8c9f1bf9473cc1dd5b434-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://retool.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/09c5684ad4c975dfa9b43e44cf676b4820d0fac2-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://safestack.io/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/83670b52fed9d56196d9dfbc1fd47b1c8a2baec0-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://www.textcontrol.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/5a492ac78b90c9d505f80b8608f3ff72a6a6d11c-300x140.png?w=300" class="jsx-2096302040"/></a><a href="https://tina.io/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/136d3291268bbfd014f1820d7a97b6903ebaef3c-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://valkey.io/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/93d8becf2f7b71745275c9e087a4dbdc806f0169-600x280.png?w=300" class="jsx-2096302040"/></a><a href="https://www.zuplo.com/" target="_blank" rel="noopener" class="jsx-2096302040 partners__logo"><img src="https://cdn.sanity.io/images/fhoo4r9z/production/1738d8f73e699d385136f3c9c5ba177f082b1c9a-300x140.png?w=300" class="jsx-2096302040"/></a></div><hr class="jsx-2096302040 partners__line"/></div></div><div class="jsx-2563101321 footer__links-and-newsletter"><div class="jsx-1564649870 newsletter__links__container"><div class="jsx-1564649870 links__subcontainer"><div class="jsx-1564649870 links__sub__column"><a href="" class="jsx-1564649870">About</a><a href="" class="jsx-1564649870">Code of Conduct</a><a href="" class="jsx-1564649870">FAQ</a><a href="" class="jsx-1564649870">Privacy Policy</a></div><div class="jsx-1564649870 links__sub__column"><a href="" class="jsx-1564649870">Venue</a><a href="" class="jsx-1564649870">Tickets</a><a href="" class="jsx-1564649870">Hotel Packages</a><a href="" class="jsx-1564649870">Partnerships</a></div></div><div class="jsx-1564649870 newsletter__subcontainer"><div class="jsx-1564649870 newsletter__links__info"><div class="jsx-1564649870 newsletter__links__info__text__header">NDC Conferences UK LTD</div><div class="jsx-1564649870 newsletter__links__info__text">5 St. Johns Lane, Farringdon - <br class="jsx-1564649870"/>EC1M 4BH - London - UK</div><div class="jsx-1564649870 newsletter__links__info__text"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="731a1d151c331d1710101c1d151601161d1016005d101c1e">[email&#160;protected]</a></div><div class="jsx-1564649870 newsletter__links__info__text">397 2824 51 VAT</div></div></div></div><div class="jsx-3103933071 newsletter__container"><div class="jsx-3103933071 empty__subcontainer"> </div><div class="jsx-3103933071 newsletter__subcontainer"><div class="jsx-3103933071 mailchimp__container"><div class="jsx-3103933071 newsletter__header">Sign up for newsletter</div><div class="jsx-3103933071"><form class="jsx-3103933071 mailchimp__form"><input placeholder="Email ..." name="EMAIL" id="mce-EMAIL" required="" class="jsx-3103933071 mailchimp__form__email" value=""/><input type="submit" name="subscribe" id="mc-embedded-subscribe" class="jsx-3103933071 mailchimp__form__submit"/></form></div></div></div></div></div><div class="jsx-2563101321 footer__socials-and-links"><div class="jsx-2802981732 socials__links__container"><div class="jsx-2802981732 socials__subcontainer"><div class="jsx-2802981732 socials__item"><a href="https://www.youtube.com/ndcconferences" target="_blank" class="jsx-2802981732"><svg height="100%" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 512 512"><path fill-rule="nonzero" fill="#fff" d="M501.303 132.765c-5.887-22.03-23.235-39.377-45.265-45.265C416.106 76.8 256 76.8 256 76.8s-160.107 0-200.039 10.7c-22.026 5.888-39.377 23.235-45.264 45.265C0 172.693 0 256.003 0 256.003s0 83.308 10.697 123.232c5.887 22.03 23.238 39.382 45.264 45.269C95.893 435.2 256 435.2 256 435.2s160.106 0 200.038-10.696c22.03-5.887 39.378-23.239 45.265-45.269 10.696-39.924 10.696-123.232 10.696-123.232s0-83.31-10.696-123.238zM204.797 332.804V179.201l133.019 76.802-133.019 76.801z"></path></svg></a></div><div class="jsx-2802981732 socials__item"><a href="https://x.com/NDC_Conferences" target="_blank" class="jsx-2802981732"><svg viewBox="0 0 24 24"><g><path fill="#fff" d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></g></svg></a></div><div class="jsx-2802981732 socials__item"><a href="https://facebook.com/ndcconferences/" target="_blank" class="jsx-2802981732"><svg height="100%" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 512 512"><path fill-rule="nonzero" fill="#fff" d="M512 257.555c0-141.385-114.615-256-256-256S0 116.17 0 257.555c0 127.777 93.616 233.685 216 252.89v-178.89h-65v-74h65v-56.4c0-64.16 38.219-99.6 96.695-99.6 28.009 0 57.305 5 57.305 5v63h-32.281c-31.801 0-41.719 19.733-41.719 39.978v48.022h71l-11.35 74H296v178.89c122.385-19.205 216-125.113 216-252.89z"></path></svg></a></div><div class="jsx-2802981732 socials__item"><a href="https://www.instagram.com/ndc_conferences/" target="_blank" class="jsx-2802981732"><svg height="100%" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 600 600"><g fill-rule="nonzero" fill="#fff"><path d="M251.921.159c-68.418 0-76.997.29-103.867 1.516-26.814 1.224-45.127 5.482-61.152 11.71-16.566 6.438-30.615 15.052-44.62 29.057-14.005 14.005-22.619 28.054-29.057 44.62-6.228 16.024-10.486 34.337-11.71 61.151C.289 175.083 0 183.662 0 252.08c0 68.417.289 76.996 1.515 103.866 1.224 26.814 5.482 45.127 11.71 61.151 6.438 16.566 15.052 30.615 29.057 44.621 14.005 14.005 28.054 22.619 44.62 29.057 16.025 6.227 34.338 10.486 61.152 11.709 26.87 1.226 35.449 1.516 103.867 1.516 68.417 0 76.996-.29 103.866-1.516 26.814-1.223 45.127-5.482 61.151-11.709 16.566-6.438 30.615-15.052 44.621-29.057 14.005-14.006 22.619-28.055 29.057-44.621 6.227-16.024 10.486-34.337 11.709-61.151 1.226-26.87 1.516-35.449 1.516-103.866 0-68.418-.29-76.997-1.516-103.867-1.223-26.814-5.482-45.127-11.709-61.151-6.438-16.566-15.052-30.615-29.057-44.62-14.006-14.005-28.055-22.619-44.621-29.057-16.024-6.228-34.337-10.486-61.151-11.71C328.917.449 320.338.159 251.921.159zm0 45.392c67.265 0 75.233.256 101.797 1.468 24.562 1.121 37.901 5.225 46.778 8.674 11.759 4.57 20.151 10.03 28.966 18.845 8.816 8.815 14.275 17.208 18.845 28.966 3.45 8.877 7.554 22.216 8.674 46.778 1.212 26.564 1.469 34.532 1.469 101.798 0 67.265-.257 75.233-1.469 101.797-1.12 24.562-5.224 37.901-8.674 46.778-4.57 11.759-10.029 20.151-18.845 28.966-8.815 8.816-17.207 14.275-28.966 18.845-8.877 3.45-22.216 7.554-46.778 8.674-26.56 1.212-34.527 1.469-101.797 1.469-67.271 0-75.237-.257-101.798-1.469-24.562-1.12-37.901-5.224-46.778-8.674-11.759-4.57-20.151-10.029-28.967-18.845-8.815-8.815-14.275-17.207-18.844-28.966-3.45-8.877-7.554-22.216-8.675-46.778-1.212-26.564-1.468-34.532-1.468-101.797 0-67.266.256-75.234 1.468-101.798 1.121-24.562 5.225-37.901 8.675-46.778 4.569-11.758 10.029-20.151 18.844-28.966 8.816-8.815 17.208-14.275 28.967-18.845 8.877-3.449 22.216-7.553 46.778-8.674 26.564-1.212 34.532-1.468 101.798-1.468z" transform="translate(44 43.838) scale(1.01619)"></path><path d="M251.921 336.053c-46.378 0-83.974-37.596-83.974-83.973 0-46.378 37.596-83.974 83.974-83.974 46.377 0 83.973 37.596 83.973 83.974 0 46.377-37.596 83.973-83.973 83.973zm0-213.338c-71.447 0-129.365 57.918-129.365 129.365 0 71.446 57.918 129.364 129.365 129.364 71.446 0 129.364-57.918 129.364-129.364 0-71.447-57.918-129.365-129.364-129.365zM416.627 117.604c0 16.696-13.535 30.23-30.231 30.23-16.695 0-30.23-13.534-30.23-30.23 0-16.696 13.535-30.23 30.23-30.23 16.696 0 30.231 13.534 30.231 30.23z" transform="translate(44 43.838) scale(1.01619)" fill="#fff"></path></g></svg></a></div><div class="jsx-2802981732 socials__item"><a href="https://www.linkedin.com/company/ndc-conferences/" target="_blank" class="jsx-2802981732"><svg height="100%" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" clip-rule="evenodd" viewBox="0 0 512 512"><path fill-rule="nonzero" fill="#fff" d="M473.305-1.353c20.88 0 37.885 16.533 37.885 36.926v438.251c0 20.393-17.005 36.954-37.885 36.954H36.846c-20.839 0-37.773-16.561-37.773-36.954V35.573c0-20.393 16.934-36.926 37.773-36.926h436.459zm-37.829 436.389V301.002c0-65.822-14.212-116.427-91.12-116.427-36.955 0-61.739 20.263-71.867 39.476h-1.04V190.64h-72.811v244.396h75.866V314.158c0-31.883 6.031-62.773 45.554-62.773 38.981 0 39.468 36.461 39.468 64.802v118.849h75.95zM150.987 190.64H74.953v244.396h76.034V190.64zM112.99 69.151c-24.395 0-44.066 19.735-44.066 44.047 0 24.318 19.671 44.052 44.066 44.052 24.299 0 44.026-19.734 44.026-44.052 0-24.312-19.727-44.047-44.026-44.047z"></path></svg></a></div></div><div class="jsx-2802981732 links__subcontainer"></div></div></div></div></footer></div><div class="jsx-2229072646 layout__footer-rubber-band-background"></div></div></div><script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"slots":[{"_id":"06afd04c-dc19-4e7f-9e61-a1e5eb18de7f","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"High Performance .NET Development","slotType":"course","length":{"id":"7jI1FGU_vhl8DUvKcbpND","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Moore - L4","isRemote":false,"slug":"high-performance-net-development","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"4bd5d221a1f7","topics":[{"title":".NET","_id":"101230"}],"tags":[],"speakers":[{"_id":"70590ad0-b1b3-40b8-b05d-b58722ef9d9d","firstName":"Rendle","lastName":".","position":"Chief Everything Officer","twitterUrl":"https://twitter.com/markrendle","twitterName":"@markrendle","description":{"en":[{"style":"normal","_key":"70590ad0-b1b3-40b8-b05d-b58722ef9d9d_0becpk4xywl_block","markDefs":[],"children":[{"text":"Rendle is the founder of RendleLabs, which provides consulting services and workshops to .NET development teams across all industries. Their particular obsessions are API design and development, performance, Observability and code-base modernisation, as well as eliminating unnecessary complexity wherever possible. They also use skills acquired during a few years as a professional stand-up comic to deliver entertaining and informative talks at conferences around the world, and recently learned to play bass so they could join tech parody band The LineBreakers.","_key":"70590ad0-b1b3-40b8-b05d-b58722ef9d9d_08gkczqesrb_span","_type":"span","marks":[]}],"_type":"block"}]},"slug":"rendle","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/fdc4e3a17e3d25e31697f67f6fa2936d0e708a35-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGgABAAIDAQAAAAAAAAAAAAAAAAUGAQMEB//EACMQAAICAQQCAgMAAAAAAAAAAAECAwQABRESIQYxE1EiUmH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAwECBAX/xAAgEQABBAEEAwAAAAAAAAAAAAACAAEDMREEEhMhMkFh/9oADAMBAAIRAxEAPwCspdsyapcraavKyZnUA+l+98xf8flFdLGpSo0QcCUxjYqCff8AcltGq15ZzdaaD5H5czF0WLfedtyrBaLV3WUKyhT372zNMW0+qXU0cAHC7k3a2XPBK16RZpb07ngoUgDbiB1jLAmrwQxpEIZQEUKOvrGJ5Pqs0OPS8ZktzLqUPBuAMg/Feh7y8eQSvTp2J4GKy9EHf1jGMktkQ+JKFreT6o0ClpgTt+uMYwcWzSgTLFr/2Q==","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/fdc4e3a17e3d25e31697f67f6fa2936d0e708a35-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":".NET 8.0 can be fast. The modern, cross-platform .NET and ASP.NET Core are highly optimised, enabling incredible performance across desktop and web applications. But to take the best advantage of this underlying power, your code needs to be optimised too.\n"},"article":{"_type":"defaultBlockSimple","en":[{"style":"normal","_key":"a7f225102070","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Writing code with performance in mind makes your application more responsive for users, and can lower hosting costs for cloud-based deployments.","_key":"9bac3d42a848"}],"_type":"block"},{"markDefs":[],"children":[{"_key":"1d88545f51800","_type":"span","marks":["strong"],"text":"This workshop covers:"}],"_type":"block","style":"normal","_key":"352986db7cd0"},{"_key":"a9d7c722af4b","listItem":"bullet","markDefs":[],"children":[{"_key":"6e496840e6ab0","_type":"span","marks":[],"text":"Tools for analysing .NET performance"}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"443c03d63291","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Load testing for APIs and web applications","_key":"baf07de9bca70","_type":"span"}],"level":1},{"_key":"a67c769b9962","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Patterns and framework features for writing efficient C# code","_key":"e60386aa83120","_type":"span"}],"level":1,"_type":"block","style":"normal"},{"listItem":"bullet","markDefs":[],"children":[{"text":"Optimising database operations","_key":"6f01643118620","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"49eea9fbc51a"},{"style":"normal","_key":"2ac63b0f82aa","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Making performance testing part of your CI/CD pipeline","_key":"f0758d1c71320","_type":"span"}],"level":1,"_type":"block"},{"_key":"9dde8794c0f2","listItem":"bullet","markDefs":[],"children":[{"_key":"0a493c02e24a0","_type":"span","marks":[],"text":"Monitoring applications in production"}],"level":1,"_type":"block","style":"normal"},{"children":[{"_type":"span","marks":[],"text":"","_key":"78925f2d19190"}],"_type":"block","style":"normal","_key":"71ede39b16c0","markDefs":[]},{"style":"normal","_key":"c0b49a9842fd","markDefs":[],"children":[{"marks":["strong"],"text":"Requirements","_key":"2479d36947b1","_type":"span"},{"marks":[],"text":"\nAttendees will be expected to be familiar with .NET and C#.","_key":"60f74bd34a470","_type":"span"}],"_type":"block"},{"_key":"0d1419f77b49","markDefs":[],"children":[{"text":"","_key":"a0ade444b7d5","_type":"span","marks":[]}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_key":"23c7474e51d6","_type":"span","marks":["strong"],"text":"Computer setup"}],"_type":"block","style":"normal","_key":"2fd92605d746"},{"children":[{"_key":"a6431b7db41b","_type":"span","marks":[],"text":".NET 8"}],"level":1,"_type":"block","style":"normal","_key":"4f7e2bf2cb5b","listItem":"bullet","markDefs":[]},{"_type":"block","style":"normal","_key":"f43762cce13a","listItem":"bullet","markDefs":[],"children":[{"_key":"9dc2f669f965","_type":"span","marks":[],"text":"Your preferred IDE or editor"}],"level":1},{"level":1,"_type":"block","style":"normal","_key":"55ae319d091b","listItem":"bullet","markDefs":[],"children":[{"_key":"92d2833d0663","_type":"span","marks":[],"text":"Docker"}]}]}},{"_id":"37c8c6a1-2918-441a-86e8-85ed9828a693","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Domain Modeling Made Functional","slotType":"course","length":{"id":"xkoxaUDguFMXa49VA-Otm","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Keats -L4","isRemote":false,"slug":"domain-modeling-made-functional","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"028bcb07c7b8","topics":[{"title":"Functional Programming","_id":"42875"}],"tags":[],"speakers":[{"_id":"89335661-3092-4afa-b53f-3d203cafa2a1","firstName":"Scott","lastName":"Wlaschin","position":"Developer, architect and author","twitterUrl":"https://twitter.com/ScottWlaschin","twitterName":"@ScottWlaschin","description":{"en":[{"children":[{"text":"Scott Wlaschin is a developer, architect and author. He is the author of the popular F# site fsharpforfunandprofit.com, and the book \"Domain Modeling Made Functional\", published by Pragmatic Bookshelf.\r\n\r\nKnown for his non-academic approach to functional programming, Scott is a popular speaker and has given talks at NDC, F# Exchange, DDD Europe, and other conferences around the world.","_key":"89335661-3092-4afa-b53f-3d203cafa2a1_0hbjakoqj9y_span","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"89335661-3092-4afa-b53f-3d203cafa2a1_0ljz61v6qrs_block","markDefs":[]}]},"slug":"scott-wlaschin","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/b45e2293a976199274ebd2a11d7298545aaa9373-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAcFBgj/xAAjEAACAQQBBAMBAAAAAAAAAAABAwIABAUREgYHIWETMXEU/8QAFwEAAwEAAAAAAAAAAAAAAAAAAgMEAf/EABsRAAMAAgMAAAAAAAAAAAAAAAABAgMREiFB/9oADAMBAAIRAxEAPwCY9qemlZ3LxNxwMIy0Iyq1dZ9vMKvphsitZdrwYDXH3UY7XvnY39wi7E1hq9w0dSB9VUI5JD7C4axd1GCUygZOYTEn8pVquXRRjUuHs873qTbXjkb38czHf5StV+HfcvY6E1anIy8mlOJjatY8rlDNkTBOiD6rbyuZvW4z+djeSpDyNfdKUaN8OdJI8D6pSlCCf//Z","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/b45e2293a976199274ebd2a11d7298545aaa9373-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"en":"Functional programming and domain-driven design might not seem to be a good match, but in fact functional programming can be an excellent approach to designing decoupled, reusable systems with a rich domain model. This workshop will show you why.","_type":"localeText"},"article":{"_type":"defaultBlockSimple","en":[{"_key":"bd3460471317","markDefs":[],"children":[{"_key":"7abef35dbc19","_type":"span","marks":[],"text":"This will be a hands-on workshop designed for beginners in functional programming. We'll do lots of domain modeling exercises starting with some simple models and then enhancing them with constraints, state machines, error handling, commands and events, and so on."}],"_type":"block","style":"normal"},{"style":"normal","_key":"ebdc76b6afce","markDefs":[],"children":[{"marks":["strong"],"text":"We'll cover these topics in detail:","_key":"ebdc76b6afce0","_type":"span"}],"_type":"block"},{"style":"normal","_key":"6dbff72c5514","markDefs":[],"children":[{"_key":"6dbff72c55140","_type":"span","marks":[],"text":"The core concepts of functional programming and how they can be applied to Domain Driven Design"}],"level":1,"_type":"block"},{"_type":"block","style":"normal","_key":"17ad4f0367c9","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"How to represent the nouns and verbs of a domain (e.g. the ubiquitous language) using types.","_key":"17ad4f0367c90"}],"level":1},{"listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Why representing the domain model using types is better than UML or other documentation (hint: it can never get out of sync)","_key":"72a6b59d46be0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"72a6b59d46be"},{"listItem":"bullet","markDefs":[],"children":[{"_key":"104ec883cb4c0","_type":"span","marks":[],"text":"How to capture constraints and business rules in the domain model itself instead of being buried in the implementation"}],"level":1,"_type":"block","style":"normal","_key":"104ec883cb4c"},{"children":[{"marks":[],"text":"How to represent state transitions","_key":"39b292d97bb90","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"39b292d97bb9","listItem":"bullet","markDefs":[]},{"markDefs":[],"children":[{"_key":"05d1c21cc6990","_type":"span","marks":[],"text":"How to treat errors as a part of the domain"}],"level":1,"_type":"block","style":"normal","_key":"05d1c21cc699","listItem":"bullet"},{"children":[{"_key":"08fd94c751da0","_type":"span","marks":[],"text":"How to build a complete business workflow from smaller components using composition"}],"level":1,"_type":"block","style":"normal","_key":"08fd94c751da","listItem":"bullet","markDefs":[]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"How to design a functional architecture with bounded contexts, validation, I/O and on.","_key":"ad69815ad8d50"}],"level":1,"_type":"block","style":"normal","_key":"ad69815ad8d5","listItem":"bullet"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"","_key":"db2e6e4cf3d7"}],"_type":"block","style":"normal","_key":"e8ab8f15efac"},{"style":"normal","_key":"800cd52e51fb","markDefs":[],"children":[{"text":"At the end of the workshop you'll know how to accurately represent a rich domain using some simple code which can then be used as the starting point for an implementation","_key":"800cd52e51fb0","_type":"span","marks":[]}],"_type":"block"}]}},{"_id":"7366d0a2-e5e2-4cfb-b960-40582a938ccf","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Building scalable, cloud native, distributed systems in .NET","slotType":"course","length":{"id":"BoZaXQRDacwbCawmg2YF1","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Abbey - L4","isRemote":false,"slug":"building-scalable-cloud-native-distributed-systems-in-dotnet","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"e2aa615d2725","topics":[{"_id":"101230","title":".NET"}],"tags":[],"speakers":[{"_id":"560ec4ef-359a-4c97-abb6-b8267016cb54","firstName":"Nick","lastName":"Chapsas","position":"Author \u0026 Founder @ Dometrain","twitterUrl":"https://twitter.com/nickchapsas","twitterName":"@nickchapsas","description":{"en":[{"markDefs":[],"children":[{"text":"Nick is a Content Creator focusing on C# \u0026 .NET and an Author and Founder of the educational platform Dometrain.","_key":"560ec4ef-359a-4c97-abb6-b8267016cb54_0txf54bti94_span","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"560ec4ef-359a-4c97-abb6-b8267016cb54_0hhny3qqoem_block"}]},"slug":"nick-chapsas","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/236aae267db3b8baa504804d3b6cb2734d93af38-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGQABAQADAQAAAAAAAAAAAAAAAAcBBAYI/8QAIxAAAQQBBAIDAQAAAAAAAAAAAQACAwQFBhESIQcTMVFhYv/EABgBAAIDAAAAAAAAAAAAAAAAAAMEAAIF/8QAHREAAgEFAQEAAAAAAAAAAAAAAAERAgQSMjOBA//aAAwDAQACEQMRAD8Aul+UUMbYtesyephdwHy78XOaR1TPm7UlW/i5aE4bzZyO4c1b2sNSUMNh7MtuZgZGAHgn7+AuOwutMBRyFeS7fgabLdonB24b+H6SiluEg+KxdTZRZIRyKLMdqGdjZYZGvjcN2uadwQikFZIF5/ldHgq7WnYWLRdJ/RA6UJ3JY47nodIi0LHl6xa66eI9I+GMrbl0HU9knLg97AT30EREn9N2Go1R/9k=","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/236aae267db3b8baa504804d3b6cb2734d93af38-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":"Building cloud native distributed systems that are resilient and scalable can be really hard. The number of variables that need to be balanced to build a system that works harmoniously and scales with your customer's needs can be daunting, but it doesn't have to be. Join Nick on this two-day journey to learn how to build scalable and resilient services in .NET using the latest industry standards and bleeding-edge practices."},"article":{"en":[{"children":[{"text":"This workshop will teach you everything you need to know to start building distributed systems in .NET and ASP.NET Core and how to combine multiple services to choose the right tool for each use case you might encounter. We will define clear requirements for a system and proceed to build the entire system using all the services and tools you will use to build your own systems later at your company.","_key":"d8fd5133c3a3","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"9f43be62364f","markDefs":[]},{"_key":"b54ae5ccecd7","markDefs":[],"children":[{"_key":"f0a2fbad9c4a","_type":"span","marks":[],"text":""}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"text":"Topics","_key":"c202306669740","_type":"span","marks":["strong"]}],"_type":"block","style":"normal","_key":"3bb27dbea6ad"},{"_type":"block","_key":"41414b32e61a","listItem":"bullet","markDefs":[],"children":[{"_key":"8a219737a8bb","_type":"span","marks":[],"text":"Defining the system we need to build with clear requirements"}],"level":1},{"children":[{"marks":[],"text":"Introduction to RESTful Services","_key":"a7edd0a4b2bc0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"9f7ddbc700bf","listItem":"bullet","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"bcd44d53fd8c","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Understanding Monoliths and Microservices","_key":"bc08709d040f0"}]},{"_key":"167e904d4f3b","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Using relational databases","_key":"01c089ab90e60"}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"af1e8a39f65b","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Using NoSQL databases","_key":"e57251d702bb0"}],"level":1},{"children":[{"text":"Understanding what “cloud native” means","_key":"21d4c95a4f260","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"6c59cd77dacb","listItem":"bullet","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"57500256af8b","listItem":"bullet","markDefs":[],"children":[{"_key":"6ca5026f1f330","_type":"span","marks":[],"text":"Understanding event-driven architecture"}]},{"listItem":"bullet","markDefs":[],"children":[{"_key":"b40e292977b20","_type":"span","marks":[],"text":"Using Messaging and Queues"}],"level":1,"_type":"block","style":"normal","_key":"057656addc97"},{"listItem":"bullet","markDefs":[],"children":[{"text":"Using Events","_key":"a41dad26008e0","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"dc6ce157fbb2"},{"markDefs":[],"children":[{"marks":[],"text":"Using Redis as a distributed cache","_key":"1801eaf701d20","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"cfa7aec1e0d3","listItem":"bullet"},{"_type":"block","style":"normal","_key":"67a07375101f","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Implementing observability with OpenTelemetry","_key":"a8ce9554bafa0"}],"level":1},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Using .NET Aspire to run our system locally","_key":"35703ba940f30"}],"level":1,"_type":"block","style":"normal","_key":"9df4f4e3abfc","listItem":"bullet"},{"level":1,"_type":"block","style":"normal","_key":"b6481c9ef953","listItem":"bullet","markDefs":[],"children":[{"text":"Dockerizing our system","_key":"e25e4314e93d0","_type":"span","marks":[]}]},{"children":[{"_type":"span","marks":[],"text":"Deploying services to the cloud","_key":"e75ec7fa695c0"}],"level":1,"_type":"block","style":"normal","_key":"7f06de5e16cc","listItem":"bullet","markDefs":[]},{"children":[{"marks":[],"text":"Introduction Performance testing","_key":"914859f453f20","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"b7903fcaefd7","listItem":"bullet","markDefs":[]},{"_type":"block","style":"normal","_key":"e5b6040a6f17","markDefs":[],"children":[{"_key":"4715e46cb7240","_type":"span","marks":[],"text":""}]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Who is this Workshop For","_key":"2a9ed2132863"}],"_type":"block","style":"h3","_key":"ab115e61e3d2"},{"_type":"block","style":"normal","_key":"2da65d116820","markDefs":[],"children":[{"_key":"e2b2a40f5850","_type":"span","marks":[],"text":"This workshop is for backend developers with some experience writing web applications using C# and ASP.NET Core. You must be able to read, write, and debug C# at a decent level and have some experience with ASP.NET Core."}]},{"markDefs":[],"children":[{"marks":[],"text":"","_key":"3d5e0508255c","_type":"span"}],"_type":"block","style":"normal","_key":"b390bc14d25a"},{"_type":"block","style":"h3","_key":"79d1798a53e7","markDefs":[],"children":[{"marks":[],"text":"Equipment and Software","_key":"02f11ba735c30","_type":"span"}]},{"_type":"block","style":"normal","_key":"359108cf34c1","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Visual Studio 2022 or JetBrains Rider or Visual Studio Code with the C# Dev Kit installed","_key":"254f810a1b7b0"}],"level":1},{"markDefs":[],"children":[{"marks":[],"text":".NET 9","_key":"bb4a9704ba460","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"6add4328367d","listItem":"bullet"},{"_key":"74222bb3838d","listItem":"bullet","markDefs":[],"children":[{"text":"Docker or Podman","_key":"e2dc427ce0860","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Minikube","_key":"8f209be61c990"}],"level":1,"_type":"block","style":"normal","_key":"2ced21a3e61f","listItem":"bullet"},{"children":[{"marks":[],"text":"Azure CLI","_key":"1342aada4dae0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"0d7ff7472a35","listItem":"bullet","markDefs":[]},{"_key":"ca0f155c8a08","listItem":"bullet","markDefs":[],"children":[{"_key":"1a938113e7d60","_type":"span","marks":[],"text":"Lens or k9s (Optional)"}],"level":1,"_type":"block","style":"normal"},{"level":1,"_type":"block","style":"normal","_key":"c650fa28ef46","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Insomnia (Optional)","_key":"0ae91f968c6b0","_type":"span"}]},{"_key":"65ab17502903","listItem":"bullet","markDefs":[],"children":[{"_key":"73fff508664b0","_type":"span","marks":[],"text":"A Free Tier Azure Accoun"}],"level":1,"_type":"block","style":"normal"}],"_type":"defaultBlockSimple"},"video":{"id":"945766450"}},{"_id":"795638a1-bb34-4264-bf72-415aab3c71a0","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"The Architect Elevator: Visiting the Upper Floors","slotType":"course","length":{"id":"7mLssKV2gMUTmZwPp5tlN","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Rutherford - L4","isRemote":false,"slug":"riding-the-architect-elevator-visiting-the-upper-floors","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"062cb4f23d20","topics":[{"_id":"101234","title":"Architecture"}],"tags":[],"speakers":[{"_id":"33d2dff0-56ec-4022-a72e-107fba3874ef","firstName":"Gregor","lastName":"Hohpe","position":"Architect Elevator","twitterUrl":"https://twitter.com/ghohpe","twitterName":"@ghohpe","description":{"_type":"defaultBlockSimple","en":[{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Gregor helps technology leaders transform both their organization and their technology platform. You’ll find him riding the Architect Elevator from the engine room to the penthouse, perhaps automating serverless solutions in the morning and preparing board presentations in the afternoon. His favorite pastime is dissecting buzzwords and replacing them with meaningful decisions and architectural trade-offs.\r\n\r\nGregor is known as co-author of the seminal book Enterprise Integration Patterns, which provided the reference vocabulary for all modern ESBs. His book The Software Architect Elevator tells stories from the trenches of IT transformation while his articles have been featured in Best Software Writing by Joel Spolsky and 97 Things Every Software Architect Should Know. He is an active member of the IEEE Software advisory board.","_key":"33d2dff0-56ec-4022-a72e-107fba3874ef_0bxw22d6ge8_span"}],"_type":"block","style":"normal","_key":"33d2dff0-56ec-4022-a72e-107fba3874ef_0da5nmfmavn_block"}]},"slug":"gregor-hohpe","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/ce796a42473fe80e2fd23779a63afd9c8214d0e1-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAAAAUGA//EACcQAAICAgECBAcAAAAAAAAAAAECAwQABREGURIhIkEHExQyUmFx/8QAGQEAAQUAAAAAAAAAAAAAAAAAAwABAgQF/8QAHBEBAQACAgMAAAAAAAAAAAAAAQADEQISEzFx/9oADAMBAAIRAxEAPwDQ/EzbWaw1uuo3vo3ty+F5F+5V/WR+qrFjpCfXbGDf2L1diqzwyHkFT7jNB1trEtGns0jV56D+P1fh75M2dEdUU61Wp8u1WMizTME4CJ2/uCyd/IBGwmNwry9lsIpktQxzpyUkUMOexxnAFIVWKP0ogCgdgMZcs/dzuxibU2WctyPLyOWOkq8dNkhrgJC8YYoAOOcYwwGh+0NukrU+rqTSF3hXxHtjGMU1/9k=","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/ce796a42473fe80e2fd23779a63afd9c8214d0e1-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"en":"IT architecture isn’t just about software and design patterns. If the greatest technology isn't aligned with the business strategy or not appreciated by senior executives, it won't have much impact. ","_type":"localeText"},"article":{"_type":"defaultBlockSimple","en":[{"children":[{"_type":"span","marks":[],"text":"This highly interactive workshop upgrades IT architects and senior developers to play a more impactful role across their organization. They will learn how to forge a crucial connection between the IT engine room and the organization’s leadership by tackling complexity, more effectively communicating with senior management, and influencing the organization's operating model.\n","_key":"0ab9d69666e3"}],"_type":"block","_key":"b178469f34d3","markDefs":[]},{"markDefs":[],"children":[{"text":"","_key":"8476455c4a12","_type":"span","marks":[]}],"_type":"block","_key":"effc244fc117"},{"markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Topics","_key":"2550afe2967d"}],"_type":"block","_key":"68f41f1035cf"},{"listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Rethinking the role of architects","_key":"937c8a4309af0"}],"level":1,"_type":"block","style":"normal","_key":"120088408d9f"},{"children":[{"_type":"span","marks":[],"text":"Rethinking the role of IT","_key":"0d06d6a62d0a0"}],"level":1,"_type":"block","style":"normal","_key":"67d83196ab60","listItem":"bullet","markDefs":[]},{"_type":"block","style":"normal","_key":"8575fab21f4f","listItem":"bullet","markDefs":[],"children":[{"_key":"9a752731cdf00","_type":"span","marks":[],"text":"Learning about disruption from Silicon Valley"}],"level":1},{"_type":"block","style":"normal","_key":"af5183644ce3","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"From the engine room to the penthouse","_key":"222bd846c4210","_type":"span"}],"level":1},{"children":[{"_type":"span","marks":[],"text":"Understanding strategy","_key":"83cd152142220"}],"level":1,"_type":"block","style":"normal","_key":"5137333f22e0","listItem":"bullet","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"a54e09d16c6e","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Influencing the organization","_key":"e8116f46c1740"}]},{"_type":"block","style":"normal","_key":"ee286dd264bd","listItem":"bullet","markDefs":[],"children":[{"text":"Organizational systems","_key":"ff8d2314d1570","_type":"span","marks":[]}],"level":1},{"_type":"block","style":"normal","_key":"01d267cb25df","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Establishing architecture as a practice","_key":"ae6662fd0ebd0"}],"level":1},{"listItem":"bullet","markDefs":[],"children":[{"text":"Thinking like an architect","_key":"4c92bc3cf6f00","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"29f0b77ad304"},{"_type":"block","style":"normal","_key":"b041ab5120a8","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Architecture is selling options","_key":"8b69451d1e0b0","_type":"span"}],"level":1},{"_key":"0192287a1e55","listItem":"bullet","markDefs":[],"children":[{"_key":"634eb4f538930","_type":"span","marks":[],"text":"Better decisions with models"}],"level":1,"_type":"block","style":"normal"},{"style":"normal","_key":"c9dbd70a54af","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Thinking in systems","_key":"4dc7a78405080"}],"level":1,"_type":"block"},{"_key":"23381c681cfc","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Articulating architecture","_key":"c77c9b00afb80","_type":"span"}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"401c12419619","markDefs":[],"children":[{"text":"","_key":"39e11bc13bf3","_type":"span","marks":[]}]},{"markDefs":[],"children":[{"marks":[],"text":"Participants will vote, discuss, debate, draw, and present in small groups. No preparation is required except for an open mind and interest in group work.","_key":"c230afea8f010","_type":"span"}],"_type":"block","style":"normal","_key":"288e7b1f6057"},{"children":[{"text":"","_key":"97e56740539c","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"6079b28a0cab","markDefs":[]},{"markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Who is this workshop for","_key":"2e3dcf381551"},{"_type":"span","marks":[],"text":"\nThis workshop targets senior developers, architects, technical product managers, or tech leads who are looking to build a tighter linkage between their technical work and the organization's strategy. We assume participants already have a solid technical foundation, and now it's time to help them reach the \"upper floors\".\n","_key":"c230afea8f012"}],"_type":"block","style":"normal","_key":"c3c456f7eaba"}]}},{"_id":"851da465-1335-42fa-9012-9020dd4fae94","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Building AI-powered applications with .NET","slotType":"course","length":{"id":"IBoZ8jGuiWNR4hvB-lf6N","type":"2 Days","title":"2 Days"},"room":"Room: St. James - L4","isRemote":false,"slug":"building-ai-powered-applications-with-net","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"c8d8ae01a39a","topics":[{"title":"AI","_id":"101232"},{"_id":"101230","title":".NET"}],"tags":[],"speakers":[{"_id":"ce334380-e737-425a-8921-d510055cd7ba","firstName":"Steve","lastName":"Sanderson","position":"Developer","twitterUrl":"https://twitter.com/stevensanderson","twitterName":"@stevensanderson","description":{"_type":"defaultBlockSimple","en":[{"_type":"block","style":"normal","_key":"ce334380-e737-425a-8921-d510055cd7ba_0bswkdptw44_block","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Steve Sanderson works on the ASP.NET team at Microsoft, making the platform better for client-side application developers.","_key":"6d6abb268cc2"}]}]},"slug":"steve-sanderson","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/07cafb890c94a8478d04abdda1e28386f4d24bc4-1437x1437.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAYDBwX/xAAlEAACAgIBAwMFAAAAAAAAAAABAgMEAAUGERIhB0FRFCJCcbH/xAAXAQEBAQEAAAAAAAAAAAAAAAAFBAEC/8QAIBEAAgIBBAMBAAAAAAAAAAAAAQIAAxEEEiExFEFRwf/aAAwDAQACEQMRAD8Ail43feWMQIzh/cjp0/eUs3DrFKWEQbBDKydzgjp2n4zanyOzvNrFR0lcK7n7S/5Z4PM9dvtRfeTczmKKQdIkRv6cRr0FtgR6iCDk98wxdWorcWja3GJTLxOyyg/VoSR58Yzmy8j2NYCNLcoA9u7GR+Wg4Kmd+PcemEpNXYl13Gq9+m5itLbYBx8dMwobC1yLb6yDczNbiE7eJPfGM3TMRUMH037LrVBtAI9rOraz0/45LUV5aAdmJJJbGMYAWOe4ltX5P//Z","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/07cafb890c94a8478d04abdda1e28386f4d24bc4-1437x1437.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"},{"_id":"8a7dd88c-368b-4a5b-947f-9abee0c8e1d5","firstName":"Diego","lastName":"Colombo","position":"Microsoft","twitterUrl":"https://twitter.com/colombod","twitterName":"@colombod","description":{"_type":"defaultBlockSimple","en":[{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Diego is working as a Principal Software Engineer at Microsoft. Over the past 20 years he is been working in lots of different industries using .NET technologies in video games, finance and robotics. With a researcher background he still gives presentations and lectures in Universities around Europe.","_key":"0ca01358b462"}],"_type":"block","style":"normal","_key":"7be81af53044"}]},"slug":"diego-colombo","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/1531f66831e1b603f90c5144e20ac6c17e3333da-240x320.jpg?rect=0,40,240,240\u0026w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAbABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAcEBQYI/8QAJhAAAgEDBAEDBQAAAAAAAAAAAQIDAAQRBQYhMRITQVEicYGhsf/EABgBAAMBAQAAAAAAAAAAAAAAAAIDBQEG/8QAHhEAAgICAgMAAAAAAAAAAAAAAQIAAxESQVEFEyH/2gAMAwEAAhEDEQA/AJ+oa/PdbkUWU4a2UZ8M4rT7am8L1rqaRfTCnOD0fiucdp7j1KfUUWcsyKnjlV/ZpladqhEM2LlyVx11+amksj4lBKlsrLcxzpepGuHmCk84zRSri1eZlybgnnjiit9z8EQRSvIMTlpNcXlyr2ICSj2UYBrd7ZWRoLgPCiXPieh2R8il3tqR49ZXwYjPxTPEjLNA6nDE4JHvxQu2pxidhUlbHcr9EpL25v2kV7VCEZckKOjyD/KKvNsMXs7gv9RFw4GR9qKeFXqJPiq3O3c//9k=","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/1531f66831e1b603f90c5144e20ac6c17e3333da-240x320.jpg?rect=0,40,240,240\u0026w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":"AI presents an enormous opportunity to make your applications more powerful and productive. It can automate many existing business processes, and can let your users zip through their tasks at much greater speed while remaining in control. Intelligent features can include semantic search, data extraction, anomaly detection, translation, summarization, sentiment scoring, autocompletion, classification and workflow automation, and of course Q\u0026A chatbots that work with enterprise data."},"article":{"_type":"defaultBlockSimple","en":[{"_key":"1bf20c7128fe","markDefs":[],"children":[{"marks":[],"text":"For .NET developers, there’s a whole raft of new libraries, services, models, and concepts to get your teeth into. This workshop aims to cut through the complexity and focus on what you really need to know to get started with AI programming on .NET. It will emphasize foundational topics in .NET+AI, including the new Microsoft.Extensions.AI standards, then go onto the next level of understanding of real-world production AI systems.","_key":"818a29bc35ef","_type":"span"}],"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"a3b8cab3c330","markDefs":[],"children":[{"marks":[],"text":"","_key":"06e432de4c93","_type":"span"}]},{"_type":"block","style":"normal","_key":"c2444e0019b2","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"You’ll learn:","_key":"40a124c24f16"}]},{"level":1,"_type":"block","style":"normal","_key":"ee408d457c1e","listItem":"bullet","markDefs":[],"children":[{"marks":["strong"],"text":"Core concepts","_key":"4ba0d647f7660","_type":"span"},{"_type":"span","marks":[],"text":" of AI for app developers","_key":"4ba0d647f7661"}]},{"markDefs":[],"children":[{"text":"Embeddings","_key":"c4b5ac3f43550","_type":"span","marks":["strong"]},{"text":", semantic search, vector databases, vector indexing","_key":"c4b5ac3f43551","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"45ce44cd1ac1","listItem":"bullet"},{"level":1,"_type":"block","style":"normal","_key":"403be91735c0","listItem":"bullet","markDefs":[],"children":[{"text":"Large language models","_key":"c5af0eebb2bf0","_type":"span","marks":["strong"]},{"marks":[],"text":", chat, function calling, structured output, middleware pipelines","_key":"c5af0eebb2bf1","_type":"span"}]},{"level":1,"_type":"block","style":"normal","_key":"42705bd66ff7","listItem":"bullet","markDefs":[],"children":[{"marks":["strong"],"text":"Q\u0026A chat/RAG","_key":"6d8fb63da9e50","_type":"span"},{"text":": Ingestion/chunking, retrieval-augmented-generation, evaluation","_key":"6d8fb63da9e51","_type":"span","marks":[]}]},{"style":"normal","_key":"c22e27166261","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Vision and multimodality","_key":"055f372c8d750"},{"marks":[],"text":", automating business processes","_key":"055f372c8d751","_type":"span"}],"level":1,"_type":"block"},{"children":[{"_type":"span","marks":["strong"],"text":"Prompt engineering","_key":"8573a7de39410"},{"_key":"8573a7de39411","_type":"span","marks":[],"text":" and prompt injection attacks/defenses"}],"level":1,"_type":"block","style":"normal","_key":"e90e651fdf34","listItem":"bullet","markDefs":[]},{"children":[{"marks":["strong"],"text":"Realtime AI","_key":"7435fec5fbeb0","_type":"span"},{"marks":[],"text":" (just released by OpenAI)","_key":"7435fec5fbeb1","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"ac7a7c3ff441","listItem":"bullet","markDefs":[]},{"listItem":"bullet","markDefs":[],"children":[{"marks":["strong"],"text":"Advanced RAG patterns","_key":"076abf0677de0","_type":"span"},{"_key":"076abf0677de1","_type":"span","marks":[],"text":" with agents, implementing CRAG"}],"level":1,"_type":"block","style":"normal","_key":"60e223dd5755"},{"children":[{"text":"Lessons learned from AI in production","_key":"cb92e6504c640","_type":"span","marks":["strong"]},{"text":" and at scale","_key":"cb92e6504c641","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"83925a74c84a","listItem":"bullet","markDefs":[]},{"_type":"block","style":"normal","_key":"aadd0310f23f","markDefs":[],"children":[{"marks":[],"text":"","_key":"fe045b91c84d0","_type":"span"}]},{"_key":"23c2bbe264a4","markDefs":[],"children":[{"marks":[],"text":"In each case we’ll have explanations/demos plus guided exercises in C#, some being open-ended for more advanced exploration. We hope what you’ll get out of it is a broad understanding of current-day AI+.NET app development, and a sense that you’ve experienced most of the main pieces","_key":"7e3844ab03110","_type":"span"}],"_type":"block","style":"normal"},{"_key":"922441a86f4d","markDefs":[],"children":[{"_key":"ee3e9067cfd70","_type":"span","marks":[],"text":""}],"_type":"block","style":"normal"},{"_key":"81c263fd8f69","markDefs":[],"children":[{"marks":["strong"],"text":"Prerequisites","_key":"636f6d82d9f50","_type":"span"},{"text":"\nFamiliarity with C# and typical .NET application patterns, such as dependency injection","_key":"81616433bafd0","_type":"span","marks":[]}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"text":"","_key":"da4fcb6259ac0","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"46495c20703f"},{"children":[{"_type":"span","marks":[],"text":"You don’t need to know web programming with ASP.NET Core or Blazor in any significant detail, though one or two exercises will use them. Mostly we’ll work in console apps to preserve focus on AI.","_key":"dfb73d8ded6c0"}],"_type":"block","style":"normal","_key":"2055590a47eb","markDefs":[]},{"children":[{"_type":"span","marks":[],"text":"","_key":"3c3de270b2330"}],"_type":"block","style":"normal","_key":"6695d8f91454","markDefs":[]},{"children":[{"text":"What to bring","_key":"59bb4d687e5a0","_type":"span","marks":["strong"]},{"_type":"span","marks":[],"text":"\nYou’ll need a Windows/Linux/macOS laptop with:","_key":"87d27aee98290"}],"_type":"block","style":"normal","_key":"e55d58609e37","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"9e561856c949","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":".NET 9 – whatever the latest preview is","_key":"786fdf8232300"}]},{"style":"normal","_key":"2f4555352999","listItem":"bullet","markDefs":[],"children":[{"_key":"fe4878b37c250","_type":"span","marks":[],"text":"An editor – either Visual Studio, VS Code, or Rider"}],"level":1,"_type":"block"},{"children":[{"text":"Docker","_key":"33919c36625d0","_type":"span","marks":["6dae0e0b9301"]}],"level":1,"_type":"block","style":"normal","_key":"31c19c9fe594","listItem":"bullet","markDefs":[{"_type":"link","href":"https://www.docker.com/products/docker-desktop/","_key":"6dae0e0b9301"}]},{"style":"normal","_key":"c10643d15b7a","listItem":"bullet","markDefs":[{"_type":"link","href":"https://ollama.com/","_key":"edaf2845f9a7"}],"children":[{"text":"Ollama","_key":"c6ec5a2795fd0","_type":"span","marks":["edaf2845f9a7"]},{"_type":"span","marks":[],"text":" (and while you’re on a fast network at home, run “ollama pull llama3.1” because that’s a 4.7GB download)","_key":"c6ec5a2795fd1"}],"level":1,"_type":"block"},{"markDefs":[],"children":[{"marks":[],"text":"","_key":"0e0bc55c19d10","_type":"span"}],"_type":"block","style":"normal","_key":"35856bc64510"},{"markDefs":[{"_key":"608d5e36922d","_type":"link","href":"https://platform.openai.com/signup"},{"_type":"link","href":"https://learn.microsoft.com/azure/ai-services/openai/overview","_key":"743ce6a01470"}],"children":[{"_type":"span","marks":["strong"],"text":"Optional\n","_key":"2e26e861e31c0"},{"_key":"a2a75079744c","_type":"span","marks":[],"text":" If at all possible, also have an "},{"_type":"span","marks":["608d5e36922d"],"text":"OpenAI platform subscription","_key":"2e26e861e31c1"},{"_key":"2e26e861e31c2","_type":"span","marks":[],"text":" or "},{"_type":"span","marks":["743ce6a01470"],"text":"Azure OpenAI","_key":"2e26e861e31c3"},{"text":"deployment. It’s not strictly required since you can just use Ollama, but OpenAI/AzureOpenAI will be much faster – especially if your laptop doesn’t have a good GPU. And you’ll learn more if you can compare small models on Ollama with the big ones like GPT 4o.","_key":"2e26e861e31c4","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"bf2537fdb97a"}]}},{"_id":"a31ffe6f-cfde-4d4d-b852-e358495f9c47","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Designing APIs","slotType":"course","length":{"id":"mmaWISqCVZPYRpp0nQJbi","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Albert - L2","isRemote":false,"slug":"designing-apis","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"ba1b14906985","tags":[],"speakers":[{"_id":"0704043f-e78b-41ae-a4d5-8321f87de92b","firstName":"Irina","lastName":"Dominte","position":"Microsoft MVP, Software Architect @Particular Software","twitterUrl":"https://twitter.com/irina_scurtu","twitterName":"@irina_scurtu","description":{"en":[{"children":[{"_key":"0704043f-e78b-41ae-a4d5-8321f87de92b_0q3ej52d5cf_span","_type":"span","marks":[],"text":"Software Architect @Particular Software, Microsoft MVP for Developer Technologies, Microsoft Certified Trainer, always in a quest for the latest trends and best practices in architecture, .NET, and the world around it.\r\n\r\nIrina has more than 1000 hours of delivered training, workshops, and presentations, is passionate about .NET and the world around it.\r\n\r\nShe is the founder of DotNet Iasi User Group where she tries to gather people who are willing to share their knowledge with others, and from time to time publishes articles on her blog: http://irina.codes\r\n"}],"_type":"block","style":"normal","_key":"0704043f-e78b-41ae-a4d5-8321f87de92b_011gjjvl7dm_block","markDefs":[]}]},"slug":"irina-domintescurtu","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/8c047bf3fddae58a65466dac0ba0585f206cffa8-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGQABAQEAAwAAAAAAAAAAAAAAAAYEBQcI/8QAJBAAAAYCAgICAwAAAAAAAAAAAAECAwQFERIGIQcxImEjQUL/xAAXAQADAQAAAAAAAAAAAAAAAAAAAgQD/8QAHBEAAgICAwAAAAAAAAAAAAAAAAECAyExBBFB/9oADAMBAAIRAxEAPwDy4wWziSwZ9+iF95GlKcraRhtS1RExk6kr+VfshUeFqqvZ4xY3NgwytZL1bW6WdRWczqaFyljHZuIxrlvUyypR+8CW6xKccF3Hqcq5ZOnaLlTldXIjKTnQzwf0A0TqqriOpQRGrKdvkffYDfsmycxIkOQvDcJEdWhPv/k+xExJ0mTPhIfeccQhwiSSlZIuwAC9CT0aeVuKO5c76JJEQAAZaEez/9k=","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/8c047bf3fddae58a65466dac0ba0585f206cffa8-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":"Having an API ready for production should mean more than just deploying functionality. Certain architectural aspects often get overlooked, only considering them too late in the process, if at all.\n"},"article":{"_type":"defaultBlockSimple","en":[{"_type":"block","style":"normal","_key":"1abe3eab766b","markDefs":[],"children":[{"_key":"e3afd5b67bc8","_type":"span","marks":[],"text":"In this workshop, we will design APIs with respect to the non-functional requirements that are paramount to any serious application running in production."}]},{"children":[{"_key":"b82254964bee","_type":"span","marks":[],"text":"We will cover the design process of several API types, including REST, and then we will transition towards messaging, always with an eye on the Cloud."}],"_type":"block","_key":"07117a332d43","markDefs":[]},{"_key":"67b4efc8db06","markDefs":[],"children":[{"text":"This is a hands-on workshop, so be prepared to write code! We will start by designing an API with all the production-ready quality attributes. Then, we expand the feature set so that, in the end, we have an overview of the steps we have to take to have robust APIs that are reliable and capable to effortlessly manage heavy loads without breaking a sweat.","_key":"21159f559edd0","_type":"span","marks":[]}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"text":"By the end of the workshop, you will know how you can evolve your architecture from simple to complex that has the most sought-after quality attributes, from RESTful to messaging-based. We will deep dive into a new world that covers queues, topics, brokers, different abstractions, and patterns like outboxes or sagas specific to distributed systems.","_key":"15374d00f0f90","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"63b446c9bfec"},{"_type":"block","style":"normal","_key":"1aeddda03b8c","markDefs":[],"children":[{"_type":"span","marks":[],"text":"We will see what the usual steps are to do that and what transformations we have to make in our architecture to accommodate everything.","_key":"5bc8dc0b0d5e0"}]},{"markDefs":[],"children":[{"_key":"62c67f1c8c890","_type":"span","marks":[],"text":"This is a hands-on workshop, so be prepared to write code!"}],"_type":"block","style":"normal","_key":"6a0f11c088da"},{"markDefs":[],"children":[{"_key":"ecb2fb14f1440","_type":"span","marks":[],"text":""}],"_type":"block","style":"normal","_key":"28425180ce29"},{"markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Workshop Structure \u0026 Contents","_key":"e3fab7987998"}],"_type":"block","style":"normal","_key":"8f33fff73547"},{"_key":"b85ac7123be2","listItem":"bullet","markDefs":[],"children":[{"_key":"f08d36c61f760","_type":"span","marks":[],"text":"Why API design matters"}],"level":1,"_type":"block","style":"normal"},{"children":[{"_key":"3921ba028c6c0","_type":"span","marks":[],"text":"How we address the NFRs"}],"level":1,"_type":"block","style":"normal","_key":"414bde34ab13","listItem":"bullet","markDefs":[]},{"_key":"e6fbc35f1237","markDefs":[],"children":[{"_type":"span","marks":[],"text":"","_key":"87cf0216e1e30"}],"_type":"block","style":"normal"},{"children":[{"_key":"683a408cda2b","_type":"span","marks":["strong"],"text":"Introduction to API design"},{"_type":"span","marks":[],"text":"\nWe will cover","_key":"757ea8afaacb"}],"_type":"block","style":"normal","_key":"245a976374b9","markDefs":[]},{"style":"normal","_key":"57af8d2f8a10","listItem":"bullet","markDefs":[{"_type":"link","href":"https://learning.oreilly.com/library/view/irresistible-apis/9781617292552/OEBPS/Text/kindle_split_015.html#ch05","_key":"4aef4094c126"}],"children":[{"_key":"8aa8ae49cef20","_type":"span","marks":["4aef4094c126"],"text":"Guiding principles for API design"}],"level":1,"_type":"block"},{"_type":"block","style":"normal","_key":"b7a58bd34deb","listItem":"bullet","markDefs":[],"children":[{"text":"Modular design","_key":"262ba4af972e0","_type":"span","marks":[]}],"level":1},{"style":"normal","_key":"7c576f48768f","listItem":"bullet","markDefs":[],"children":[{"_key":"1b9512e562a00","_type":"span","marks":[],"text":"what makes a good API"}],"level":1,"_type":"block"},{"style":"normal","_key":"b122dd2c69f2","markDefs":[],"children":[{"_type":"span","marks":[],"text":"","_key":"2f2cd893d5ae0"}],"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Desiging REST - based APIs","_key":"0b4f4d95e743"},{"_type":"span","marks":[],"text":"\nIn this section we delve into intricacies of REST-based APIs, the client/server nature of it and we explore the decision-making process behind choosing REST, by offering a detailed guide to the API design process, documenting and the most common usage scenarios.","_key":"dee4114626250"}],"_type":"block","style":"normal","_key":"a1b0361ffacd"},{"_key":"b73f2198c7fd","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Http methods","_key":"2c829689bf370"}],"level":1,"_type":"block","style":"normal"},{"_key":"afa123915028","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Http status codes","_key":"cc08acc8e7860"}],"level":1,"_type":"block","style":"normal"},{"style":"normal","_key":"f9825d465552","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Http headers","_key":"d4a7d5f144d30","_type":"span"}],"level":1,"_type":"block"},{"style":"normal","_key":"fcf83541b5d6","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Endpoint naming","_key":"58dac76232e60","_type":"span"}],"level":1,"_type":"block"},{"_key":"dea7daf1735d","listItem":"bullet","markDefs":[],"children":[{"text":"Media-type selection, design \u0026 custom media types","_key":"c4f0af72e8be0","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"eba2abe37274","markDefs":[],"children":[{"marks":[],"text":"","_key":"41af5b969ed40","_type":"span"}]},{"markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Designing gRPC APIs","_key":"fbeaa2852317"},{"marks":[],"text":"\nThis section we cover gRPC and we outline the RPC API design process. We start by exposing and defining operations, particularities of consuming these APIs and document them. This succinctly summarizes the key components covered in this part, providing an overview of the gRPC protocol, considerations for RPC, and the step-by-step process for designing RPC APIs.","_key":"d0bded1d4f9e0","_type":"span"}],"_type":"block","style":"normal","_key":"e8d1831771e4"},{"style":"normal","_key":"6eb9a00dc303","markDefs":[],"children":[{"marks":[],"text":"","_key":"775efe6ea7c20","_type":"span"}],"_type":"block"},{"_key":"2042d45f1a3a","markDefs":[],"children":[{"marks":["strong"],"text":"Messaging-based APIs","_key":"204fe756d53f","_type":"span"},{"_type":"span","marks":[],"text":"\nIn this section we take our previously designed API, and we start doing the necessary changes to make use of asynchronous messaging.","_key":"41367105774d0"}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_key":"b60972fe36500","_type":"span","marks":[],"text":"We deep dive into a new world that covers queues, topics, message brokers, different abstraction and patterns and we will see what changes are needed to adapt our previous architecture."}],"_type":"block","style":"normal","_key":"ba6a81aa820c"},{"style":"normal","_key":"3b4fafce244a","markDefs":[],"children":[{"_type":"span","marks":[],"text":"In this section we will see how we can introduce patterns like Outbox, Competing consumers, Sagas, Routing Slips and learn what we gain from using them, as well as looking at how we can monitor our system.","_key":"9423d7c341ae0"}],"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"","_key":"0557f440e2dc0"}],"_type":"block","style":"normal","_key":"dd27ecfff936"},{"_type":"block","style":"normal","_key":"f55ac5c03fba","markDefs":[],"children":[{"_key":"ac50581f70fb","_type":"span","marks":["strong"],"text":"Addressing non-functional requirements:"}]},{"children":[{"_key":"a700cd78297e0","_type":"span","marks":[],"text":"Versioning strategies for backwards and forward compatibility"}],"level":1,"_type":"block","style":"normal","_key":"7729a3ea629e","listItem":"bullet","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"d76aa24fbef5","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Observability","_key":"309035c928ec0"}]},{"children":[{"marks":[],"text":"Reliability ","_key":"22bd4b51572a0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"a95e32d4a787","listItem":"bullet","markDefs":[]},{"listItem":"bullet","markDefs":[],"children":[{"_key":"b53a7659571d0","_type":"span","marks":[],"text":"Error Handling"}],"level":2,"_type":"block","style":"normal","_key":"24abe4584bad"},{"level":2,"_type":"block","style":"normal","_key":"186308be3d8b","listItem":"bullet","markDefs":[],"children":[{"_key":"0eea9da9b3060","_type":"span","marks":[],"text":"Fault tolerance"}]},{"level":2,"_type":"block","style":"normal","_key":"56a9b6d0e8fc","listItem":"bullet","markDefs":[],"children":[{"text":"Resilience tactics","_key":"7164f48a2ce10","_type":"span","marks":[]}]},{"listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Documenting the API","_key":"3933ffd14c9e0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"3325f84675e2"},{"_key":"2e51bb647cc6","listItem":"bullet","markDefs":[],"children":[{"_key":"2940842a3fd00","_type":"span","marks":[],"text":"Why document and why is it important"}],"level":2,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"e826ef1b71ec","listItem":"bullet","markDefs":[],"children":[{"text":"Performance, Optimization and Scalability ","_key":"b63cef68f8ad0","_type":"span","marks":[]}],"level":1},{"children":[{"_type":"span","marks":[],"text":"Throttling","_key":"d7fc1f753bc50"}],"level":2,"_type":"block","style":"normal","_key":"30b5f7d7577e","listItem":"bullet","markDefs":[]},{"children":[{"text":"Measuring performance","_key":"7dfdf9e57ecb0","_type":"span","marks":[]}],"level":2,"_type":"block","style":"normal","_key":"47b435758f86","listItem":"bullet","markDefs":[]},{"children":[{"_key":"b432aabf674a0","_type":"span","marks":[],"text":"Compression and caching types"}],"level":2,"_type":"block","style":"normal","_key":"47858b9eeccb","listItem":"bullet","markDefs":[]},{"style":"normal","_key":"674c8f31ce65","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Rate limiting","_key":"af2be4fec6260"}],"level":2,"_type":"block"},{"level":2,"_type":"block","style":"normal","_key":"26fcee4a8d91","listItem":"bullet","markDefs":[],"children":[{"_key":"3eebaa03bdee0","_type":"span","marks":[],"text":"Caching \u0026 Conditional caching"}]},{"_key":"b4c2ab77d7fb","markDefs":[],"children":[{"marks":[],"text":"","_key":"a0910b51788d0","_type":"span"}],"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"67cb53f9a783","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Prerequisite","_key":"fdd59256d7e4"},{"marks":[],"text":"\nThis is a Bring Your Own Device (BYOD) workshop. Therefore, attendees are required to bring their own device with the necessary software already installed:","_key":"72d6c1b14d960","_type":"span"}]},{"level":1,"_type":"block","style":"normal","_key":"4d380735e273","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Need to have Visual Studio, or an IDE you are familiar with","_key":"ef64c89e2ef90","_type":"span"}]},{"style":"normal","_key":"96142c8be8d9","listItem":"bullet","markDefs":[],"children":[{"_key":"22346165ef010","_type":"span","marks":[],"text":".NET 9 or higher"}],"level":1,"_type":"block"},{"children":[{"_type":"span","marks":[],"text":"Docker","_key":"25f1cf64e0e10"}],"level":1,"_type":"block","style":"normal","_key":"c5473da8c529","listItem":"bullet","markDefs":[]},{"listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Github","_key":"149e1327dff20"}],"level":1,"_type":"block","style":"normal","_key":"75ad61d1755e"},{"_key":"35fadcbc2bc7","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"RabbitMq installed as standalone instance or we will install it in Docker","_key":"29bb91c7e1d90","_type":"span"}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"cdf0b68d3e6f","markDefs":[],"children":[{"marks":[],"text":"","_key":"4613a881fb5e0","_type":"span"}]},{"children":[{"_type":"span","marks":["strong"],"text":"Who should attend?","_key":"d4d2e06658da"}],"_type":"block","style":"normal","_key":"c23f1b664c48","markDefs":[]},{"style":"normal","_key":"fc65442fcaa3","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"The workshop targets .NET Software developers that want to have a more architecture-focused approach","_key":"16b279fba64b0","_type":"span"}],"level":1,"_type":"block"},{"children":[{"_type":"span","marks":[],"text":"C# developers that want to understand what are the communication patterns, and the best practices for APIs in distributed architectures.","_key":"c59705e3e9bb0"}],"level":1,"_type":"block","style":"normal","_key":"3f7f9a49ea12","listItem":"bullet","markDefs":[]},{"children":[{"text":"","_key":"ea461d0abe7e0","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"e710625bd093","markDefs":[]},{"style":"normal","_key":"372f1f088900","markDefs":[],"children":[{"text":"At the end of this workshop you will be able to:","_key":"65c1edaeabe3","_type":"span","marks":["strong"]}],"_type":"block"},{"_type":"block","style":"normal","_key":"40a0e76a08d6","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"understand which APIs are best suited for which scenarios","_key":"e48a9513ad800"}],"level":1},{"_type":"block","style":"normal","_key":"c3476ff4e0fc","listItem":"bullet","markDefs":[],"children":[{"_key":"4ecfaba096d70","_type":"span","marks":[],"text":"understand what are the non-functional requirements needed for a production-ready APIs"}],"level":1},{"children":[{"_type":"span","marks":[],"text":"evolve a ‘traditional’ architecture to a more complex one that uses asynchronous messaging","_key":"48344c928f200"}],"level":1,"_type":"block","style":"normal","_key":"a72a94e2a48b","listItem":"bullet","markDefs":[]},{"style":"normal","_key":"5a55307038c8","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Understand what asynchronous messaging brings to the table and where it can benefit our distributed systems","_key":"e8d36cf932830","_type":"span"}],"level":1,"_type":"block"}]}},{"_id":"c46e72f6-cd0d-492a-b0d1-7307f345e76c","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Advanced Software Architecture with Residuality Theory","slotType":"course","length":{"id":"tMx2qaOY8_G69MeEpyhrE","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Wordsworth - L4","isRemote":false,"slug":"advanced-software-architecture-with-residuality-theory","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"988a19cd21f5","topics":[{"_id":"101234","title":"Architecture"},{"_id":"101254","title":"Microservices"},{"_id":"101260","title":"Soft Skills"}],"tags":[],"speakers":[{"_id":"e700041c-ef94-4379-963e-74529620ae9c","firstName":"Barry","lastName":"O'Reilly","position":"CEO/Founder at Black Tulip Technology","twitterUrl":"https://twitter.com/technologytulip","twitterName":"@technologytulip","description":{"en":[{"_key":"e700041c-ef94-4379-963e-74529620ae9c_01l180p7dnl_block","markDefs":[],"children":[{"_key":"e700041c-ef94-4379-963e-74529620ae9c_0a778zlq25x_span","_type":"span","marks":[],"text":"Barry is a veteran Architect who has held Chief Architect positions at Microsoft among others. He has also been a startup CTO, the Worldwide Lead for the Solutions Architecture Community at Microsoft, and founder of the Swedish Azure User Group. He is also a PhD candidate in software design and complexity science. "}],"_type":"block","style":"normal"}]},"slug":"barry-oreilly","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/c6d7169636df52b8bffbf426f784d34e8c29a6bf-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAAAAUGBwj/xAAkEAACAgICAQMFAAAAAAAAAAABAwACBBEFBhIHE4EUITFBYf/EABgBAQADAQAAAAAAAAAAAAAAAAMAAQIE/8QAHBEAAwABBQAAAAAAAAAAAAAAAAECEQMSITJB/9oADAMBAAIRAxEAPwDdEo38yjv7V7XbUYJbjNxmtKDUW1elhMcX6mdtJU1HKkoI2RZQ3IJuM9bk845rHPY05DvG2rAb/QhXuXJ2zc+nWN6nyMTnrke+9rY1d+DzKnBsupr50BPyYlJ5RHaTwUDG5J+MmiVhft0Ghuu5M9et9XRzXgWv5Gm/5r8REfV6gFC5DkMvFznpx8hlFUuRWoP2EREykgsn/9k=","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/c6d7169636df52b8bffbf426f784d34e8c29a6bf-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":"Residuality theory is a revolutionary new theory of software design that aims to make it easier to design software systems for complex business environments. Residuality theory models software systems as interconnected residues - an alternative to component and process modeling that uses applied complexity science to make managing uncertainty a fundamental part of the design process."},"article":{"_type":"defaultBlockSimple","en":[{"_type":"block","style":"normal","_key":"1728ca399a32","markDefs":[],"children":[{"_key":"202f2625b3ba","_type":"span","marks":["strong"],"text":"This is what you will learn"},{"marks":[],"text":"\nThis workshop teaches advanced, cutting edge techniques based on ongoing research that are designed to identify and decrease risk, improve confidence in decision making and protect your architecture when the domain is characterized by uncertainty.","_key":"54f7cc99a9b70","_type":"span"}]},{"_key":"7e6b67640680","markDefs":[],"children":[{"text":"The workshop introduces ideas on the philosophy of architecture, forcing participants to think outside of the technology and relate decision making to markets, culture, economic and societal concerns. It teaches practical techniques in stressor analysis and the use of matrices to make component decisions and gives participants the chance to work with these techniques in labs and groups.","_key":"345d7c9ce8f20","_type":"span","marks":[]}],"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"38692004f5ba","markDefs":[],"children":[{"_key":"20ef1761f7da","_type":"span","marks":[],"text":""}]},{"_type":"block","style":"normal","_key":"94f855643099","markDefs":[],"children":[{"_key":"87ae6f8ec061","_type":"span","marks":["strong"],"text":"Target Audience"},{"_key":"de828e814f620","_type":"span","marks":[],"text":"\nThis workshop is suitable for senior developers who want a head start into the world of architecture, for teams embarking on large, risk filled projects, and for seasoned architects seeking new techniques. It has also been successful in unting teams around a common definition of architecture."}]},{"children":[{"text":"","_key":"0ccf02f78835","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"a00d2dcf707d","markDefs":[]},{"markDefs":[],"children":[{"text":"Agenda","_key":"c1b6cbb5c3c4","_type":"span","marks":["strong"]}],"_type":"block","style":"normal","_key":"495ec5f290b4"},{"markDefs":[],"children":[{"_key":"4a65d68069890","_type":"span","marks":["strong"],"text":"Day 1:"}],"_type":"block","style":"normal","_key":"11ebf65defe8"},{"style":"normal","_key":"7a1bdf7028fa","listItem":"bullet","markDefs":[],"children":[{"_key":"abc6d4b152a10","_type":"span","marks":[],"text":"Philosophy of Architecture"}],"level":1,"_type":"block"},{"markDefs":[],"children":[{"_key":"c92660d2775d0","_type":"span","marks":[],"text":"Concrete Complexity for Software Engineering"}],"level":1,"_type":"block","style":"normal","_key":"e180faf7bada","listItem":"bullet"},{"_type":"block","style":"normal","_key":"6bd1767eebc6","listItem":"bullet","markDefs":[],"children":[{"_key":"ab54a0a2d1230","_type":"span","marks":[],"text":"Representation in Architecture"}],"level":1},{"children":[{"_key":"72fc5d6c45ec0","_type":"span","marks":[],"text":"Residuality Theory"}],"level":1,"_type":"block","style":"normal","_key":"652dc29fb849","listItem":"bullet","markDefs":[]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Networks","_key":"e8b1cdc9a9a20"}],"level":1,"_type":"block","style":"normal","_key":"dd16185f251c","listItem":"bullet"},{"level":1,"_type":"block","style":"normal","_key":"6c4c108cc3a1","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Modelling stress: socio-economic architecture","_key":"bebc5b5c2bd80"}]},{"_key":"495df0c62d95","markDefs":[],"children":[{"marks":["strong"],"text":"Day 2","_key":"55fb6bae3dfe","_type":"span"}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_key":"da8d8407eeef0","_type":"span","marks":[],"text":"Defining residues"}],"level":1,"_type":"block","style":"normal","_key":"fe6b0b9c4462","listItem":"bullet"},{"_type":"block","style":"normal","_key":"96e7acec55d2","listItem":"bullet","markDefs":[],"children":[{"_key":"1229bcbf816e0","_type":"span","marks":[],"text":"Surviving unknown unknowns"}],"level":1},{"_key":"b87d4ada5da7","listItem":"bullet","markDefs":[],"children":[{"_key":"199f5864c1cb0","_type":"span","marks":[],"text":"Producing a real world architecture"}],"level":1,"_type":"block","style":"normal"},{"children":[{"marks":[],"text":"Contagion analysis and component decisions","_key":"79ed8e1e75550","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"3da8bdf47466","listItem":"bullet","markDefs":[]},{"markDefs":[],"children":[{"_key":"8076a7590efd0","_type":"span","marks":[],"text":"Adjacency matrix techniques"}],"level":1,"_type":"block","style":"normal","_key":"87660c6085ad","listItem":"bullet"},{"_key":"ff23ed0ad755","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Incidence matrix techniques","_key":"e4fe94f35c880","_type":"span"}],"level":1,"_type":"block","style":"normal"},{"_key":"8578ab70e058","listItem":"bullet","markDefs":[],"children":[{"text":"Testing the architecture","_key":"69722187a0480","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"","_key":"6286e77adbc6"}],"_type":"block","style":"h4","_key":"1b81136f215b"},{"style":"normal","_key":"633f32ec40b9","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Prerequisites","_key":"6663688dafe9"},{"_type":"span","marks":[],"text":"\nGood understanding of software design. A laptop with Excel will be necessary.","_key":"fbb52d06dbc50"}],"_type":"block"}]},"video":{"id":"945767052"}},{"_id":"d15e43e0-6977-4d71-aa2f-f0dfdfbce1b5","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Practical Messaging","slotType":"course","length":{"id":"S3oY-iHLQg6gS6rk-qXVW","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Wesley - L4","isRemote":false,"slug":"practical-messaging-workshop","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"377bfb56107c","topics":[{"_id":"9e9b5a0f-9723-44fc-9d66-348983f806fd","title":"DevOps"},{"title":"Python","_id":"9b037724-81c2-4f69-a9a1-10d25ada503f"},{"_id":"63679","title":".NET"}],"tags":[],"speakers":[{"_id":"90e467a1-2706-4845-8c3f-a0d429749819","firstName":"Ian","lastName":"Cooper","position":"Coding architect","twitterUrl":"https://twitter.com/ICooper","twitterName":"@ICooper","description":{"_type":"defaultBlockSimple","en":[{"style":"normal","_key":"90e467a1-2706-4845-8c3f-a0d429749819_0f5lugy90rf_block","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Polyglot Coding Architect in London, founder of #ldnug, speaker, tabletop gamer, geek. Tattooed, pierced, and bearded. The 'guv' on @BrighterCommand","_key":"039ade9a1546"}],"_type":"block"}]},"slug":"ian-cooper","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/18f49ab1c417b19449ba90eb49ef87975ad4294d-318x318.png?w=60\u0026h=60","imageBase64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAIAAAAC64paAAAACXBIWXMAAAsTAAALEwEAmpwYAAAEv0lEQVQ4jR3L+U9TBwAA4Jet9/Xa1/a1pcc7Wl5vaoVXWqRCp8UC0lGQtqzUKlDLVWwrClVOQYZDLkFBvNCIM+Bk2QYyNYpT5+KSLXObcTEeeGxZsj9i0e/3D1BxKEo2RcGhoiAdgxhiJpVL+SiDw/RYtEORimudzRdTkYaivEyZCGTQMIhlkXEsEnamgKngMgCUR0F5VAykaiC6RsiE2TQhg+okkLFY4NGpwWcLJx+fP7qQjoYLczAxHxUwjTCbgBhKDi2DTQPUfAoGUjCQSojoOpiVwWOgAk79lty1sUP/3pj/797Su5W5X2f7x6OVBXpEK+aYJWwCYmawqVIWFTCIaEYJyyhlGyVMg5StErB0MD/mdnw7kPzj8uSTr04/np94MNk90xwM2nUFuKAQB60yDsKjy9g0wCJlOAnRZq3YquCY5SAhAa0KqCbfMlpXeSXdeK0vsdgdP53Y1RcqafPaDnp1e12KrRqQELJVIBPQixjZSjBbBZplHCsGk5ny4ixlotg2Et5+ak/gfDx8piV0pMbbHiie3rfj5pB3bo+xygLpYS4iYAMqLg3h0VCQoZfyHQa8YAPhy9V2+DaPhEpHq0un6yovxENj9f6OUPlQk+9im/sLP1Gq42vFnPdZyqYquPSNiCTgIhPV25v9np0eZ1O5+3CwdDxUdrLeP9Uc7toVCG/3lDjtJbnmIgu+EZFoxHzVh0y3KOG413X189SDuaO3ZwfO9rR2NUT6Y5HpRHQq1dAZ213vryoq3GI0kRrCmklYMjUGtUIpF3ABk1QY+cR2uTP2+5ejL5fPvFo++9vC1OLE4Ym+9GhPur9jf2NtbaW33G4v0BhsmI7E9KRaT6KYDhZAgN9mGmuo+u5o8u507y+XRp59M/v2zpWnN+dvzJ+YGTly8MCBmtBOl2ubIcuB6khEm4PpbbjBrlKbRRAMpLyu4/HgYJ2vK+ydTOxaGk7/fHXm1f1rz9cWrl8Y721P7agMkPZC3GBT6UhEZ0P1dszoQDQWiUgKjCb3TLRFqwrILFS+yURUFOamwr75Y51PVi/+uXrh3HBPyB+w5DiRDxMzvJ+YMQ/J3ACLZcD975eX5maqS7bCfJDLYolAHi4TlxfY5ofTL9auPFo63ZtsdOQVKokclc72fpryMNMmFbFRBCuBd2///vH2zb11ER2Gw3xIyAPFfFCrzGj9zPtw4cTre4ur547Faqot1jwiK89odxvzSwmbG9GTYikKvH33z8Mf1rr3Jd35TjOhxeUKTKHUKJVFdutsT/yv1fPPb11anOyPBv3bij/17G5xN7Tn+iK4mRQIpcD66zd376z1pA9VlZU5bKQGw3EVqkYwE45Fy7euTHU9XTn709WZib50LL53Z89QYGDCVdeKGixMJhtYX39z69adg/vbg8Xu/GwLrlQppRmoTIFIZA4D0V1XsTDcvni8f3ygtyOdbunsDnT05lSGhHKE8jENePFy/frK9VS0viTbZEZkcqFQJoBUQhEqFKlh8RarvtXvGWiMDCaaBtua2pNN3toonutk8iAKhQ48e/5y+eullqCPVEkkHAbEYsFcrgLkqyEI4fMIWFBmMyQrPP21VaPN/nSsusjnk2h0NAaHSmP9DwAua+P2JhTrAAAAAElFTkSuQmCC","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/18f49ab1c417b19449ba90eb49ef87975ad4294d-318x318.png?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":"Increasingly developers are relying on distributed architectures to solve the problems of scaling their applications and their development teams. But that means they now have to consider the problem of getting the parts of their systems to talk to each other."},"article":{"_type":"defaultBlockSimple","en":[{"_key":"38cb294237ff","markDefs":[],"children":[{"marks":[],"text":"In this tutorial, we will look at distributed systems, such as microservices, and how we integrate them. We will understand why we would prefer to messaging, the fundamentals and key concepts of messaging and how to build an event driven architecture. If you have ever been put off moving from HTTP or RPC-based solutions to messaging because of the need to learn how to implement messaging-based solutions, this workshop will get you started. if you have been using messaging but want to gain a firmer understanding of how to build event driven architectures, this workshop will help you understand how to succeed with reactive approaches.\n\n","_key":"66baa965b28c","_type":"span"}],"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"1e8acabc11f6","markDefs":[],"children":[{"_type":"span","marks":[],"text":"The material is presented in four parts: integrating distributed systems, an introduction to messaging (hands-on exercises), advanced messaging, and event driven architectures.\n\nHands-on exercises are offered in C#, JavaScript, Python and Go.\n\n","_key":"b7d259e2d81d0"},{"text":"Topics covered will include:","_key":"b7d259e2d81d1","_type":"span","marks":["strong"]}]},{"markDefs":[],"children":[{"marks":["strong"],"text":"Day 1: ","_key":"94ecb1ced24e","_type":"span"},{"text":"Messaging Architectures and Simple Patterns","_key":"7436fc4de8b2","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"6019cb4d24f1"},{"_type":"block","style":"normal","_key":"00b884f7a935","markDefs":[],"children":[{"_key":"62750e167952","_type":"span","marks":[],"text":""}]},{"_key":"a69c8692b613","markDefs":[],"children":[{"text":"Integrating Distributed Systems","_key":"e2d4e6d6711a","_type":"span","marks":["em"]}],"_type":"block","style":"normal"},{"style":"normal","_key":"50710156a6ad","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Why Distribute","_key":"44aa2f7256820"}],"level":1,"_type":"block"},{"markDefs":[],"children":[{"marks":[],"text":"Work Queues","_key":"511f4f18abb5","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"d4e89e60a7a4","listItem":"bullet"},{"level":1,"_type":"block","style":"normal","_key":"92ba453cb9c1","listItem":"bullet","markDefs":[],"children":[{"_key":"ec3901b5b4820","_type":"span","marks":[],"text":"Microservices"}]},{"_type":"block","style":"normal","_key":"2b83cc31411a","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Integration Styles","_key":"d0c1e24511550","_type":"span"}],"level":1},{"style":"normal","_key":"24458a31eb4a","markDefs":[],"children":[{"_key":"564b435d1c81","_type":"span","marks":["em"],"text":"Hands On Messaging"}],"_type":"block"},{"markDefs":[],"children":[{"_key":"03b3cad80101","_type":"span","marks":[],"text":"Channels, Endpoints"}],"level":1,"_type":"block","style":"normal","_key":"339edcbc3e18","listItem":"bullet"},{"children":[{"text":"Command. Events, \u0026 Documents","_key":"224aaef2abaf","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal","_key":"d1c581e569cd","listItem":"bullet","markDefs":[]},{"_type":"block","style":"normal","_key":"1a31400a8781","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Request-Reply","_key":"dcd6459a59bf0"}],"level":1},{"listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Point-to-Point","_key":"fc52af853cbc0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"02b7b5ca3710"},{"style":"normal","_key":"3ef3b75331a1","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Publish-Subscribe","_key":"830f6752cd010"}],"level":1,"_type":"block"},{"children":[{"_key":"ca4876c089790","_type":"span","marks":[],"text":"Dead Letter Channel"}],"level":1,"_type":"block","style":"normal","_key":"1aff2a6d1321","listItem":"bullet","markDefs":[]},{"style":"normal","_key":"31f36d541690","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Data Type Channel","_key":"ccdffd52251d0","_type":"span"}],"level":1,"_type":"block"},{"children":[{"marks":[],"text":"The Message Pump","_key":"633ef8959db10","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"22a93df1891b","listItem":"bullet","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"bc4ed6249d90","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Consumers","_key":"ce63a1bb4c960"}]},{"markDefs":[],"children":[{"_key":"d8fab4ec35ef0","_type":"span","marks":[],"text":"Service Activator"}],"level":1,"_type":"block","style":"normal","_key":"88f663761090","listItem":"bullet"},{"_type":"block","style":"normal","_key":"bb707b0ea695","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Pipes and Filters","_key":"4595296d92210"}],"level":1},{"style":"normal","_key":"6dd906dac7f5","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Control Bus","_key":"1c98aef79916"}],"level":1,"_type":"block"},{"_type":"block","style":"normal","_key":"ef5c35ac1fe6","markDefs":[],"children":[{"text":"","_key":"e27cb474bdf10","_type":"span","marks":[]}]},{"markDefs":[],"children":[{"text":"Day 2: ","_key":"ab5ccb9e36a8","_type":"span","marks":["strong"]},{"text":"Distributed Systems Advanced Patterns","_key":"f2e2e00cd7d1","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"193b05ce44c8"},{"_type":"block","style":"normal","_key":"b8f9562204f3","markDefs":[],"children":[{"_key":"7252803ce148","_type":"span","marks":["em"],"text":"Advanced Messaging"}]},{"level":1,"_type":"block","style":"normal","_key":"bce4cd4e2564","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Messaging vs Eventing","_key":"681ba6c02713"}]},{"listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Streams vs. Queues","_key":"6cf043f3282b0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"96f0366c8e20"},{"style":"normal","_key":"45148079ab45","listItem":"bullet","markDefs":[],"children":[{"_key":"16ad10cda07f0","_type":"span","marks":[],"text":"Ordering"}],"level":1,"_type":"block"},{"_key":"38d8fee7da0e","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Guaranteed Delivery","_key":"880866b299010","_type":"span"}],"level":1,"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_type":"span","marks":["em"],"text":"Event Driven Architectures","_key":"f71954c5e31f"}],"_type":"block","style":"normal","_key":"adbab4ddc748"},{"_type":"block","style":"normal","_key":"ed1abfc4316e","listItem":"bullet","markDefs":[],"children":[{"text":"Asynchronous Conversations","_key":"f92adcde3a430","_type":"span","marks":[]}],"level":1},{"style":"normal","_key":"d9bb4068416d","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Insights from Paper Offices and Flow-Based Programming","_key":"bd9b9e2ca90f0","_type":"span"}],"level":1,"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Commands or Event? Orchestration and Choreography.","_key":"7a90962839fb0"}],"level":1,"_type":"block","style":"normal","_key":"8996d37ca5f2","listItem":"bullet"},{"_key":"31825c91bbf2","listItem":"bullet","markDefs":[],"children":[{"_key":"53fd6604d3010","_type":"span","marks":[],"text":"Event Carried State Transfer (ECST)"}],"level":1,"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_type":"span","marks":["em"],"text":"Additional Topics","_key":"0ea5089fe79f"}],"_type":"block","style":"normal","_key":"f14c265630ec"},{"_type":"block","style":"normal","_key":"34cef3052384","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"CAP Theorem","_key":"3cdbcb0a077d0"}],"level":1},{"level":1,"_type":"block","style":"normal","_key":"595882615d56","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Working with Asynchronous UIs","_key":"0287e3914f140"}]},{"children":[{"text":"","_key":"0e34d89f2053","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"e8bff21e2296","markDefs":[]},{"_key":"e8395cbfc472","markDefs":[],"children":[{"_key":"b41b1e05dd49","_type":"span","marks":["strong"],"text":"Computer setup:"},{"_type":"span","marks":[],"text":"\nWe will use Rabbit MQ for examples. You need not have the latter installed on your machine, but you should have Docker installed on your machine, as exercises will use Docker Compose.","_key":"81764d807d1b"}],"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"322c6db03d34","markDefs":[],"children":[{"_type":"span","marks":[],"text":"This is a Bring Your Own Device (BYOD) course. At BYOD courses delegates are required to bring their own laptop with the necessary software installed.","_key":"dd4eb77614110"}]},{"_type":"block","style":"normal","_key":"ab24c955fbf5","markDefs":[],"children":[{"_type":"span","marks":[],"text":"The exercises are self-paced and you will find it helpful to have headphones to listen to the material that accompanies each exercise (though scripts are provided for those who cannot use headphones).","_key":"cec144380ba70"}]},{"children":[{"_type":"span","marks":[],"text":"\n","_key":"ddb16f8a10ad"}],"_type":"block","style":"normal","_key":"a638b4e5bd04","markDefs":[]}]},"video":{"id":"395914557"}},{"_id":"e99fda6e-cb6e-4a2a-bca2-8ed7595b3e68","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Reliable Messaging in Azure","slotType":"course","length":{"id":"ABvIaYxsY5rsXQsLdgvQg","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Chaucer - L4","isRemote":false,"slug":"reliable-messaging-in-azure","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"eac5656b1f90","topics":[{"_id":"101230","title":".NET"},{"_id":"101236","title":"Cloud"},{"_id":"101234","title":"Architecture"}],"tags":[],"speakers":[{"_id":"7e39dc71-6d7a-477a-bcb6-842be6e533b4","firstName":"Daniel","lastName":"Marbach","position":"Software Engineer, Microsoft MVP","twitterUrl":"https://twitter.com/danielmarbach","twitterName":"@danielmarbach","description":{"en":[{"markDefs":[],"children":[{"marks":[],"text":"As a distinguished Microsoft MVP and software maestro at Particular Software, Daniel Marbach knows a thing or two about code. By day, he's a devoted .NET crusader, espousing the virtues of message-based systems. By night? He's racing against his own mischievous router hack, committing a bevy of performance improvements before the clock strikes midnight.","_key":"7e39dc71-6d7a-477a-bcb6-842be6e533b4_054yzv5txah_span","_type":"span"}],"_type":"block","style":"normal","_key":"7e39dc71-6d7a-477a-bcb6-842be6e533b4_0cpfyira7k7_block"}]},"slug":"daniel-marbach","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/2bb85377ec9af7b18f41d48a6e09069d92e448bc-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAMEBQYH/8QAIhAAAgIBBAEFAAAAAAAAAAAAAQIAAxEEBRIhBhQiMUFh/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwIE/8QAGhEAAwEBAQEAAAAAAAAAAAAAAAECMQMRQf/aAAwDAQACEQMRAD8A8m2+hdRqqamJAdgCRNjyXaKNrtpGmsd0dckv85nN+oVLKxyKnkDyH1NfyXdKNXqqG0zPYtaBWdhjJ/Ibi3aawub5rnSelAjuJGtgcZES/AzKdibmzJ3tdqErJHEdiImhYjN9Zae0kJ7VGFA6EREF6KsP/9k=","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/2bb85377ec9af7b18f41d48a6e09069d92e448bc-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":"Azure offers multiple services to achieve durable and reliable messaging. But, which one (or ones) do you need and why? What features does each one offer that make them stand out and where do they fall short? What about cost? In this two-day workshop, you will learn the fundamentals of reliable messaging using a range of Azure services and get hands-on experience coding against them. Examples will be in C# .NET."},"article":{"en":[{"_type":"block","style":"normal","_key":"cc08c59cfcbe","markDefs":[],"children":[{"_key":"30c989d59d73","_type":"span","marks":[],"text":"First, we start with Azure Queue Storage-a basic, cost-effective, and durable message queue that enables effective decoupling of components, increases resilience, and supports scalability scenarios."}]},{"style":"normal","_key":"f836aaeadc77","markDefs":[],"children":[{"_type":"span","marks":[],"text":"After getting our feet wet with this no-frills queuing technology, we dive deep into feature-rich Azure Service Bus. This service is replete with all the bells and whistles needed to build robust and reliable applications leveraging the publish/subscribe pattern.","_key":"dbc5eb658683"}],"_type":"block"},{"_key":"340ae102823a","markDefs":[],"children":[{"_type":"span","marks":[],"text":"We also take a peek into Azure Event Hubs, which supports streaming millions of events per second to build real-time data ingestion services.\n\nWe end the day by learning how to leverage the power of Azure Event Grid to combine various messaging services in order to take advantage of their potential without the need for polling.","_key":"fd4fc0f99ada"}],"_type":"block","style":"normal"},{"children":[{"_type":"span","marks":[],"text":"After this workshop, you will be armed with a solid foundational understanding of Azure messaging service offerings and will be able to identify which one is appropriate for your needs. Furthermore, you will walk away with the benefits of practical experience coding against those services, jump-starting your career building reliable messaging solutions in Azure.","_key":"6e151a5cee3a"}],"_type":"block","style":"normal","_key":"9deb05560f3d","markDefs":[]},{"markDefs":[{"_type":"link","href":"https://azure.microsoft.com/free/dotnet/","_key":"462b7326027e"},{"href":"https://visualstudio.microsoft.com/subscriptions/","_key":"95d50aaba7fe","_type":"link"},{"_type":"link","href":"https://azure.microsoft.com/account","_key":"f331a63f9eab"}],"children":[{"_type":"span","marks":[],"text":"This is a Bring Your Own Device (BYOD) course. At BYOD courses, attendees are required to bring their own laptop with the necessary software already installed. To use Azure messaging services, you'll need a subscription (*). If you do not have an existing Azure account, you may sign up for a free trial (","_key":"d64ea2377661"},{"_key":"c80bc4e5784b","_type":"span","marks":["462b7326027e"],"text":"https://azure.microsoft.com/free/dotnet/"},{"_key":"87a89139b8f2","_type":"span","marks":[],"text":") or use your Visual Studio Subscription ("},{"marks":["95d50aaba7fe"],"text":"https://visualstudio.microsoft.com/subscriptions/","_key":"b79e3052dd3a","_type":"span"},{"text":") benefits when you create an account (","_key":"1eaa98f606b3","_type":"span","marks":[]},{"text":"https://azure.microsoft.com/account","_key":"a533a732ad04","_type":"span","marks":["f331a63f9eab"]},{"text":").","_key":"7bd0155dd513","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"80acf1b4389b"},{"_type":"block","style":"h3","_key":"5601640aa9af","markDefs":[],"children":[{"marks":[],"text":"Required:","_key":"4f821df71aae","_type":"span"}]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":".NET 8 or higher","_key":"9c2aff345031"}],"level":1,"_type":"block","style":"normal","_key":"fda19f6024fb","listItem":"bullet"},{"_type":"block","style":"normal","_key":"58867f3023bc","listItem":"bullet","markDefs":[],"children":[{"text":"Visual Studio/Rider/VS Code","_key":"eb52d79f85c9","_type":"span","marks":[]}],"level":1},{"style":"normal","_key":"164b449dce9c","listItem":"bullet","markDefs":[],"children":[{"_key":"db13dc1220ea","_type":"span","marks":[],"text":"VS Code Extension for Bicep"}],"level":1,"_type":"block"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"","_key":"992b9af1a392"}],"_type":"block","style":"normal","_key":"2532e307d93a"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Optional:","_key":"3f20e9c18757"}],"_type":"block","style":"h3","_key":"a35eb6cac92d"},{"_type":"block","style":"normal","_key":"e6da8823db37","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Azure Service Bus Explorer","_key":"184715f23da4","_type":"span"}],"level":1},{"level":1,"_type":"block","style":"normal","_key":"c0dc4f3ce2a8","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Azure Storage Explorer","_key":"6e36f48b8141","_type":"span"}]},{"_key":"59c5bf45b814","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Free ngrok account with a custom domain","_key":"8fa284ccbd36"}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"2fa58ef63fa8","markDefs":[],"children":[{"text":"\n(*) Some Azure resources may be created and provided to attendees with connection strings on a limited basis.","_key":"2c2c1e6d536c","_type":"span","marks":[]}]}],"_type":"defaultBlockSimple"}},{"_id":"ec4d5948-47bd-42fe-9053-2642cc678102","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Building Future-Proof Apps with the Modular Monolith ","slotType":"course","length":{"id":"ttT5f6mQlUCpJe8lp2JuP","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Victoria - L2","isRemote":false,"slug":"building-future-proof-apps-with-the-modular-monolith","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"4d6692e7566c","topics":[{"_id":"101234","title":"Architecture"}],"tags":[],"speakers":[{"_id":"ac105033-2b20-4b45-8d47-5647d8accf84","firstName":"Layla","lastName":"Porter","position":"International speaker, software architect and game studio founder.","twitterUrl":"https://twitter.com/laylacodesit","twitterName":"@laylacodesit","description":{"en":[{"_type":"block","style":"normal","_key":"ac105033-2b20-4b45-8d47-5647d8accf84_0doihcoqa8l_block","markDefs":[],"children":[{"_key":"ac105033-2b20-4b45-8d47-5647d8accf84_09xgu3xu3f7_span","_type":"span","marks":[],"text":"Layla is a Microsoft MVP, Progress Champion, 3 times GitHub Star, and former director on the board at the .NET Foundation.\r\nShe is the co-founder of November North, a micro-game studio, developing and producing a first-person stealth game code-named \"HorroTown\".\r\nLayla is passionate about .NET, enterprise software development, and system architecture. She has recently started bringing those architecture concepts into game development, live coding Unity game development on Twitch.\r\nLayla lives in the UK with her husband Jim and dogs Lily and Cookie."}]}]},"slug":"layla-porter","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/2149f87cea577e3d7747f4176347c8f958dfacf3-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGAABAQEBAQAAAAAAAAAAAAAAAAcFBgH/xAAlEAABBAEDBAIDAAAAAAAAAAABAAIDBAUGERIHITFBExQiUWH/xAAXAQADAQAAAAAAAAAAAAAAAAABAgME/8QAHREAAwACAgMAAAAAAAAAAAAAAAECAyEEERJRcf/aAAwDAQACEQMRAD8AqOcpwtv4eOrYYZDy37+h3Ux64au1DiBXnpZKSq5kgZ8cD/xA29hYOX1zbx1B0wkL59uMbvJBUfy+cs5X5vvWJp5C/kC49v6snGyZLbqloq3HWiw0+oORzFOG3JLI6QsDXnf2PKLltEavwGI0/DUyNdzrLXEuIZvvuiWrzJvqNfQeM+zJ6lk1JoY4DxY/yFwcBPIgoipwt4EIe2O0g2/SIi1AP//Z","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/2149f87cea577e3d7747f4176347c8f958dfacf3-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"_type":"localeText","en":"In the world of software development, finding the right balance between monolithic and microservices architectures is crucial to creating maintainable and scalable applications. However, the journey to microservices is not without its challenges, and teams often find themselves grappling with the repercussions of early adoption."},"article":{"en":[{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Introducing the modular monolith; all the benefits of a monolith such as reduced complexity, ease of deployment, easier debugging, and so on - but ready to be easily decomposed into services as required.","_key":"84804749f3f7"}],"_type":"block","style":"normal","_key":"cd1a0629714d"},{"style":"normal","_key":"610519ef47c1","markDefs":[],"children":[{"_key":"9847dbc689820","_type":"span","marks":[],"text":"Join us as we explore the principles, patterns, and practices that empower developers to build robust, flexible, and extensible applications without prematurely involving the complexities of microservices and distributed systems."}],"_type":"block"},{"children":[{"_type":"span","marks":[],"text":"In this workshop, we will use the fictional case study of a thriving business aspiring to expand, exploring key topics.","_key":"d5b64d0c92310"}],"_type":"block","style":"normal","_key":"1726c5fbdabe","markDefs":[]},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"We'll investigate the different requirements that need to be met, starting with a code kata and how we can apply various design patterns to our way of thinking.","_key":"16b049dca7280"}],"_type":"block","style":"normal","_key":"7a52af27a2e8"},{"children":[{"marks":[],"text":"We'll then move on to actually building out a functioning, all-be-it, contrived application in .NET 8 and C#, learning as we go.","_key":"d1b7a7fe7af60","_type":"span"}],"_type":"block","style":"normal","_key":"3052f758a56f","markDefs":[]},{"style":"normal","_key":"e8355ff68d6d","markDefs":[],"children":[{"text":"\n","_key":"76ccdadae94d0","_type":"span","marks":[]},{"_key":"e81d4d024f00","_type":"span","marks":["strong"],"text":"Topics we'll cover:"}],"_type":"block"},{"children":[{"_key":"fc84f0aa4d540","_type":"span","marks":[],"text":"Modular Design Principles: Learn how to break down your application into cohesive modules that encapsulate distinct functionalities, promoting code reuse and easier maintenance."}],"level":1,"_type":"block","style":"normal","_key":"56b1574558f7","listItem":"bullet","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"6aa51403ea54","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Dependency Management: Discover techniques for managing dependencies between modules, ensuring clear boundaries and minimising tight coupling.","_key":"9221f28dd2960","_type":"span"}]},{"children":[{"_type":"span","marks":[],"text":"Scalable Architecture: Explore strategies for designing monoliths that can scale vertically and horizontally to accommodate growing demands.","_key":"d8c25dcd7d4a0"}],"level":1,"_type":"block","style":"normal","_key":"41bf1c932929","listItem":"bullet","markDefs":[]},{"style":"normal","_key":"046a067ad18f","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Architecture enforcement: Dive into architecture testing and other approaches that help with maintaining the architecture and design.","_key":"c1c842e3ee2a0"}],"level":1,"_type":"block"},{"markDefs":[],"children":[{"marks":[],"text":"Performance Optimization: Gain insights into optimizing module communication and data flow to enhance the overall performance of your application.","_key":"d7fd8f90911f0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"d7b9c618df4c","listItem":"bullet"},{"children":[{"_key":"94a676a0cb4d0","_type":"span","marks":[],"text":"Future Migration Considerations: Explore how modular monoliths can serve as a stepping stone towards a microservices architecture, and the factors to consider when planning a future migration."}],"level":1,"_type":"block","style":"normal","_key":"a6cf92137d01","listItem":"bullet","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"952c33122c9c","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Reverse migration: Understand the considerations and techniques for reverse migration from distributed system back to a monolithic architecture.","_key":"3d0d40dc1b730"}]},{"markDefs":[],"children":[{"marks":[],"text":"We'll also cover aspects of event-driven architecture, messaging, No-SQL databases, and various supporting design patterns.","_key":"208535f574110","_type":"span"}],"_type":"block","style":"normal","_key":"24ea07ec8e05"},{"children":[{"_key":"80b8d4d9ffae","_type":"span","marks":["strong"],"text":"Intended Audience"},{"_key":"fd3826001774","_type":"span","marks":[],"text":"\nThis workshop is aimed at backend developers with some experience writing web applications using C# and .NET. The workshop will not cover .NET Framework."}],"_type":"block","style":"normal","_key":"159e09b87c41","markDefs":[]},{"style":"normal","_key":"367f04055e12","markDefs":[],"children":[{"text":"Computer Setup","_key":"167f5c67198b","_type":"span","marks":["strong"]},{"_type":"span","marks":[],"text":"\nThis is a hands-on practical workshop where you will be writing a lot of code. You will need to have the following to effectively participate:","_key":"fbd359a1274d"}],"_type":"block"},{"style":"normal","_key":"3aeeaf52604c","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Laptop (Windows PC or macOS)","_key":"275f9a0a99fb0"}],"level":1,"_type":"block"},{"children":[{"_key":"90b54615d9e00","_type":"span","marks":[],"text":"Visual Studio 2022 or JetBrains Rider"}],"level":1,"_type":"block","style":"normal","_key":"78a18efdf6dd","listItem":"bullet","markDefs":[]},{"_type":"block","style":"normal","_key":"8c1a2d1378ed","listItem":"bullet","markDefs":[],"children":[{"text":"VS Code","_key":"ee26be4bada20","_type":"span","marks":[]}],"level":1},{"children":[{"_type":"span","marks":[],"text":"SQL Server 2017 or later, with SQL Server Management Studio or Azure Data Studio","_key":"a4f81ef7a67a0"}],"level":1,"_type":"block","style":"normal","_key":"66c640755112","listItem":"bullet","markDefs":[]},{"style":"normal","_key":"425a5a5bf5d4","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":".NET 8 or higher","_key":"0d18a9df22cb0"}],"level":1,"_type":"block"},{"style":"normal","_key":"c71a2ee0c304","listItem":"bullet","markDefs":[],"children":[{"_key":"c75b77c59e4b0","_type":"span","marks":[],"text":"Docker Desktop"}],"level":1,"_type":"block"},{"_key":"6481ce2a15de","listItem":"bullet","markDefs":[],"children":[{"text":"Postman or similar","_key":"737452b5724e0","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"25a0228f60a3","listItem":"bullet","markDefs":[],"children":[{"_key":"33f4d7bbd4b40","_type":"span","marks":[],"text":"Azurite"}],"level":1},{"listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":".NET Aspire Workload installed","_key":"fa3ff67ebb2b0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"808271b37406"}],"_type":"defaultBlockSimple"}},{"_id":"ff51a225-565b-4e8f-b178-e6b880b107b6","firstDay":{"day":"Monday","date":"2025-01-27"},"days":[{"day":"Monday","date":"2025-01-27"},{"day":"Tuesday","date":"2025-01-28"}],"startDate":"2025-01-27","title":"Public Speaking: From Keyboard to Keynote","slotType":"course","length":{"id":"IUE4DrMTs1r4qR1tPAJzX","type":"2 Days","title":"2 Days","titleDays":"27-28 Jan"},"room":"Room: Burns - L4","isRemote":false,"slug":"public-speaking-from-keyboard-to-keynote","conferenceRef":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","hourRange":"09:00 - 17:00","scheduleKey":"017f2ba82309","topics":[{"_id":"101257","title":"People"},{"title":"Soft Skills","_id":"101260"}],"tags":[],"speakers":[{"_id":"1d7dcbfc-1de6-4228-8bd6-04f4ba1c4267","firstName":"Dylan","lastName":"Beattie","position":"Creator of the Rockstar programming language","twitterUrl":"https://twitter.com/dylanbeattie","twitterName":"@dylanbeattie","description":{"en":[{"_type":"block","style":"normal","_key":"1d7dcbfc-1de6-4228-8bd6-04f4ba1c4267_016a0vl58fq_block","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Dylan Beattie is an independent consultant who has been building data-driven web applications since the 1990s. He’s managed teams, taught workshops, and worked on everything from tiny standalone websites to complex distributed systems. He’s a Microsoft MVP, and he regularly speaks at conferences and user groups all over the world.\r\n\r\nDylan is the creator of the Rockstar programming language, and the founder, vocalist and lead guitarist with The Linebreakers, the world's greatest nerd comedy classic rock disco alt punk covers band.","_key":"1d7dcbfc-1de6-4228-8bd6-04f4ba1c4267_0u43eiapmd7_span"}]}]},"slug":"dylan-beattie","imageThumbnail":"https://cdn.sanity.io/images/fhoo4r9z/production/7ebb99258d83f515c7e78d745f6ae2e3b79ffc46-400x400.jpg?w=60\u0026h=60","imageBase64":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAUABQDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAMEBQcC/8QAJRAAAQQCAQQBBQAAAAAAAAAAAQACAwQFERIGEyFRBzEyQWFx/8QAFQEBAQAAAAAAAAAAAAAAAAAAAwL/xAAeEQACAQUAAwAAAAAAAAAAAAAAAQIDERIhMQRBcf/aAAwDAQACEQMRAD8A99Y1qvT9mVjoHzSTHhFJC3kN+j6XJxNYxWYFm++0yrz1J3Y/wfS1q/WNyQize8mCdsngfcFL8k5uHJYqOOA82yP7nJ2tj9eEdSq8kktDU/Hjg23s0cflMFbgMxvXGBzjoaI8IuaMy19sbGQcO2xvEbCKsr+gcbauTSEtxMg2Tt2tn6quABSb/d+URE+MePV8KFpxbIA06GgiIrjwiXT/2Q==","imageUrl":"https://cdn.sanity.io/images/fhoo4r9z/production/7ebb99258d83f515c7e78d745f6ae2e3b79ffc46-400x400.jpg?w=285\u0026h=285\u0026q=85\u0026auto=format"}],"description":{"en":"An interactive workshop for developers and technology professionals who are interested in public speaking. Learn how to create and deliver great technical talks and presentations.","_type":"localeText"},"article":{"en":[{"style":"normal","_key":"ba88f866565b","markDefs":[],"children":[{"_key":"b1e1ddb8a5eb","_type":"span","marks":[],"text":"Speaking in front of an audience, whether in person or online, can be daunting – but it doesn’t have to be."}],"_type":"block"},{"_key":"f5fd32ea4e29","markDefs":[],"children":[{"text":"Dylan Beattie has delivered keynote presentations at conferences all over the world: NDC, JFokus, BuildStuff, DotNext, YOW!, and many more. In this 2-day workshop, Dylan will teach you everything he knows about how to create and deliver great presentations for technical audiences, whether you’re speaking at industry conferences, doing a talk at your local meetup group, or just sharing ideas with your own team.","_key":"7623769974e20","_type":"span","marks":[]}],"_type":"block","style":"normal"},{"style":"normal","_key":"18d019b548fd","markDefs":[],"children":[{"_type":"span","marks":[],"text":"On day 1, we’ll focus on structure and stagecraft. You’ll learn how to design a talk - yes, great presentation don’t just magically appear out of nowhere. Like any other product, success starts with design. Gather ideas, create a structure, figure out what works. You need to understand your constraints: format, time limits, what kind of audience you’ll be speaking to. You need to understand the tools you can use: language, storytelling, humour, rhetoric. We’ll learn about how to rehearse effectively: how do you actually make sure you’re getting better each time, instead of just repeating the same mistakes over and over? Even seasoned presenters get nervous before a talk - so how do you deal with nerves?","_key":"5ab902491c59"}],"_type":"block"},{"markDefs":[],"children":[{"_key":"44b0e57568820","_type":"span","marks":[],"text":"We’ll look at some examples of great – and not-so-great – presentations, figure out what makes them work, and talk about what we can do to incorporate those ideas and techniques into our own presentations. Then we’ll put what we’ve learned into action: everybody in the group will prepare and present a short talk – just words, no slides – on a topic of their choice."}],"_type":"block","style":"normal","_key":"2c7efa8b0fdc"},{"_key":"5b7ecd5ee1ef","markDefs":[],"children":[{"_type":"span","marks":[],"text":"On day 2, we’ll concentrate on visual material – slides, multimedia, and live demos. We’ll look at techniques you can use to make your presentations clear, accessible and engaging, and how to use images, animation and photography to support and reinforce the points you’re making in your presentation. We’ll look at tips for presenting code, the challenges of doing live demos, and how to use screen recording and video editing to take your live code presentations to the next level.","_key":"e47a4058379b"}],"_type":"block","style":"normal"},{"markDefs":[],"children":[{"text":"Then on the afternoon of day 2, everybody will prepare and deliver another short presentation – this time using slides, multimedia and/or live demos, depending on their choice of topic.","_key":"1d68486851310","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"36d326a5352b"},{"markDefs":[],"children":[{"text":" \nIntro","_key":"11d601b5c79e","_type":"span","marks":["strong"]}],"_type":"block","style":"normal","_key":"3b81511d4e30"},{"children":[{"marks":[],"text":"Introduction: Who is everybody? What are you all hoping to get out of this workshop?","_key":"2861ad7fe38c0","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"7897087015ea","listItem":"bullet","markDefs":[]},{"_key":"bcf7b91252b6","listItem":"bullet","markDefs":[],"children":[{"text":"What makes a great talk?","_key":"11db2107a2600","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal"},{"style":"normal","_key":"3f23a00d9b14","markDefs":[],"children":[{"_type":"span","marks":[],"text":" ","_key":"bb4d66f2d279"}],"_type":"block"},{"style":"normal","_key":"ceb354a3f890","markDefs":[],"children":[{"marks":["strong"],"text":"How to Design a Talk","_key":"ab7d66d2fe49","_type":"span"}],"_type":"block"},{"style":"normal","_key":"e7e4528bb214","listItem":"bullet","markDefs":[],"children":[{"text":"Collecting ideas, brainstorming, structures","_key":"c1a41b2e89870","_type":"span","marks":[]}],"level":1,"_type":"block"},{"level":1,"_type":"block","style":"normal","_key":"0d4503b8783a","listItem":"bullet","markDefs":[],"children":[{"text":"Classic talk structures – the narrative, the ‘top ten’ list, the three-act play","_key":"2903332f79130","_type":"span","marks":[]}]},{"_key":"68307cd8d4a8","listItem":"bullet","markDefs":[],"children":[{"_key":"d32033152f550","_type":"span","marks":[],"text":"Pacing and timing – how do you know how much content to prepare?"}],"level":1,"_type":"block","style":"normal"},{"style":"normal","_key":"91c0c4522c38","markDefs":[],"children":[{"marks":[],"text":" ","_key":"6f25333036b2","_type":"span"}],"_type":"block"},{"markDefs":[],"children":[{"marks":[],"text":"","_key":"3ad35bcf93db","_type":"span"}],"_type":"block","style":"normal","_key":"8ac89f73aa9d"},{"_key":"4314f48891a7","markDefs":[],"children":[{"marks":["strong"],"text":"Secrets of Effective Rehearsal","_key":"a0d220e5bd74","_type":"span"}],"_type":"block","style":"normal"},{"level":1,"_type":"block","style":"normal","_key":"cabfc5da9e0a","listItem":"bullet","markDefs":[],"children":[{"_key":"dd5515ab49d1","_type":"span","marks":[],"text":"Secrets of Effective Rehearsal"}]},{"_type":"block","style":"normal","_key":"775903f1bf3d","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Measuring your own progress","_key":"43e0ecde291f0","_type":"span"}],"level":1},{"children":[{"marks":[],"text":"Identifying areas to improve","_key":"556fcf2f71390","_type":"span"}],"level":1,"_type":"block","style":"normal","_key":"2b3321658f50","listItem":"bullet","markDefs":[]},{"markDefs":[],"children":[{"marks":[],"text":" ","_key":"55c62e979427","_type":"span"}],"_type":"block","style":"normal","_key":"8248be6a9cab"},{"_key":"168d77ba3410","markDefs":[],"children":[{"_type":"span","marks":["strong"],"text":"Understanding your audience","_key":"50fb788b7184"}],"_type":"block","style":"normal"},{"children":[{"_key":"ecf5981300dd0","_type":"span","marks":[],"text":"Submitting to a Call for Papers: (CFP)"}],"level":1,"_type":"block","style":"normal","_key":"5be34ce2c692","listItem":"bullet","markDefs":[]},{"markDefs":[],"children":[{"_key":"49b23e297574","_type":"span","marks":[],"text":"How to pitch a talk"}],"level":1,"_type":"block","style":"normal","_key":"f52e60c15830","listItem":"bullet"},{"_key":"67ba53ea7a1a","listItem":"bullet","markDefs":[],"children":[{"text":"Etiquette and codes of conduct","_key":"02ef1fe7f8fd0","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal"},{"style":"normal","_key":"b6c614f3347a","listItem":"bullet","markDefs":[],"children":[{"_key":"e1c87fa776db0","_type":"span","marks":[],"text":"Using humour"}],"level":1,"_type":"block"},{"_key":"09360e45eadb","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Dealing with feedback","_key":"050046b898330"}],"level":1,"_type":"block","style":"normal"},{"_key":"6f15cdfab467","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"How to do a good Q\u0026A","_key":"0a95b73e31af0"}],"level":1,"_type":"block","style":"normal"},{"_type":"block","style":"normal","_key":"d5cd935100cf","markDefs":[],"children":[{"text":" ","_key":"c51bc38588d4","_type":"span","marks":[]}]},{"style":"normal","_key":"c24bf98bfd09","markDefs":[],"children":[{"marks":["strong"],"text":"Slides and Visuals","_key":"2ea6ce34d02f","_type":"span"}],"_type":"block"},{"style":"normal","_key":"831fc8f73362","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Why use slides, anyway?","_key":"dc6b80b3fd360","_type":"span"}],"level":1,"_type":"block"},{"_key":"6d2dfa0eb472","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Tips and tricks","_key":"94769e1993730"}],"level":1,"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_key":"0f6c16d398530","_type":"span","marks":[],"text":"Working with technical content"}],"level":1,"_type":"block","style":"normal","_key":"358f936ab4d9","listItem":"bullet"},{"_key":"21f0f9ef287a","listItem":"bullet","markDefs":[],"children":[{"text":"Advanced visualisation tips \u0026 tricks","_key":"c5c008f589370","_type":"span","marks":[]}],"level":1,"_type":"block","style":"normal"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":"Copyright and fair use","_key":"edaad85c5d530"}],"level":1,"_type":"block","style":"normal","_key":"bfc39bd27654","listItem":"bullet"},{"markDefs":[],"children":[{"_type":"span","marks":[],"text":" ","_key":"36726b61854e"}],"_type":"block","style":"normal","_key":"c0d359a16851"},{"children":[{"_type":"span","marks":["strong"],"text":"Presenting Technical Content","_key":"10b4dcfacd65"}],"_type":"block","style":"normal","_key":"f1b659da6467","markDefs":[]},{"level":1,"_type":"block","style":"normal","_key":"c175c1edfaa2","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Pros and cons of live coding demos","_key":"44cc2d42af8c0"}]},{"level":1,"_type":"block","style":"normal","_key":"4c075ee11c8e","listItem":"bullet","markDefs":[],"children":[{"_type":"span","marks":[],"text":"How to present diagrams and technical detail","_key":"4b168ea44f370"}]},{"style":"normal","_key":"14ded46bdbd1","listItem":"bullet","markDefs":[],"children":[{"text":"Working with videos and screen recordings","_key":"385fbb23e8820","_type":"span","marks":[]}],"level":1,"_type":"block"},{"style":"normal","_key":"8769c0c328e1","markDefs":[],"children":[{"marks":[],"text":" ","_key":"d5192e1437c9","_type":"span"}],"_type":"block"},{"markDefs":[],"children":[{"text":"Practical Tips and Disaster Recovery","_key":"9f0da928a43d","_type":"span","marks":["strong"]}],"_type":"block","style":"normal","_key":"63290098529b"},{"level":1,"_type":"block","style":"normal","_key":"3561767b9b3f","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"How to prepare for the things you can’t prepare for","_key":"21f8095942ef","_type":"span"}]},{"level":1,"_type":"block","style":"normal","_key":"e2603c01472b","listItem":"bullet","markDefs":[],"children":[{"marks":[],"text":"Preparation timelines and coping mechanisms","_key":"f76cfdbed31f0","_type":"span"}]},{"children":[{"_key":"54604c9f1b570","_type":"span","marks":[],"text":"Speaker horror stories (and why they weren’t that bad after all!)"}],"level":1,"_type":"block","style":"normal","_key":"82e9c08de79c","listItem":"bullet","markDefs":[]},{"_key":"208987420ae1","markDefs":[],"children":[{"marks":[],"text":" ","_key":"677c29b3b768","_type":"span"}],"_type":"block","style":"normal"},{"style":"normal","_key":"c9bde118efd1","markDefs":[],"children":[{"_key":"bb638476f307","_type":"span","marks":["strong"],"text":"Target Audience and Prerequisites"}],"_type":"block"},{"markDefs":[],"children":[{"text":"This workshop is suitable for anybody who is looking to begin public speaking, or to improve their presentation technique.","_key":"70d5a771e8ab","_type":"span","marks":[]}],"_type":"block","style":"normal","_key":"36e5079f2c42"},{"markDefs":[],"children":[{"marks":[],"text":"Around 25% of the workshop is specifically focused on presenting software code and technology; the rest of the workshop is applicable to presentations on any topic and to any kind of audience.","_key":"7ca9b0879eed","_type":"span"}],"_type":"block","style":"normal","_key":"8eb0dc5e0a5d"},{"style":"normal","_key":"52418b66b190","markDefs":[],"children":[{"_type":"span","marks":[],"text":"Attendees will need a laptop and a presentation tool. I recommend Microsoft PowerPoint – most examples are presented in PowerPoint, and the course includes some specific discussion around using PowerPoint for creating animation effects and slide transitions – but for the attendee presentations element of the workshop, Keynote or a web-based solution will work just fine.","_key":"dfd47ab777ae"}],"_type":"block"}],"_type":"defaultBlockSimple"}}],"title":"Workshops","type":"workshops","blocks":[],"websiteType":"default","_sentryTraceData":"091a73957e74419c88de24ad3f88f9b1-aa4f518f29db5408-0","_sentryBaggage":"sentry-environment=production,sentry-release=18291deafe02120083a6aeb26aebf202dcde6319,sentry-public_key=892997d22d9529351284e72027930ec3,sentry-trace_id=091a73957e74419c88de24ad3f88f9b1,sentry-transaction=%2Fworkshops,sentry-sampled=false"},"initialData":{"title":"NDC London","websiteType":"default","featureToggleTickets":true,"meta":{"description":"NDC London 2025 is a 5-day event for Software Developers, 27-31 Jan at the Queen Elizabeth II Centre, Westminster.","title":"NDC London 2025 | Conference for Software Developers","image":"https://cdn.sanity.io/images/fhoo4r9z/production/b61bf6b789c15cc5b7d3e2b12261abdc35d7f41a-2400x1256.jpg"},"conference":{"confFooter":{"company":{"name":"NDC Conferences UK LTD","email":"info@ndcconferences.com","address":"5 St. Johns Lane, Farringdon - ","city":"EC1M 4BH - London - UK","registrationNumber":"397 2824 51 VAT"},"title":"NDC London 2025","date":"27-31 January","venue":"QEII Centre, Westminster","dynamicLinks":[{"link":"/about-ndc","_key":"82cdebc54843","title":"About","_type":"internalLink"},{"title":"Code of Conduct","_type":"internalLink","link":"/code-of-conduct","_key":"a48e3630a094"},{"_key":"d578e4e664f3","title":"FAQ","_type":"internalLink","link":"/faq"},{"_type":"internalLink","link":"/privacy-policy","_key":"779b9527e30f","title":"Privacy Policy"},{"_type":"internalLink","link":"/venue","_key":"6f3fdbac857a","title":"Venue"},{"_type":"internalLink","link":"/tickets","_key":"33a177441307","title":"Tickets"},{"_key":"ab9444def7c5","title":"Hotel Packages","_type":"internalLink","link":"/hotel-packages"},{"_type":"internalLink","link":"/become-a-partner","_key":"2c20a6fee68e","title":"Partnerships"}]},"menu":[{"title":"Tickets","slug":{"current":"tickets","_type":"slug"},"_type":"page","_key":"c18c953609ea","isActive":true},{"type":"Workshops","_type":"menuItem","_key":"593ff952f043"},{"_type":"menuItem","_key":"40ae548ec501","type":"Agenda"},{"_type":"menuItem","_key":"65b1f3bd4ce2","type":"Speakers"}],"conference":{"timezone":"UTC±00","stats":[{"number":100,"_type":"stat","label":"Speakers","_key":"eb4185e26ab0"},{"_key":"4fef733db84f","number":50,"_type":"stat","label":"Technologies"},{"number":12,"_type":"stat","label":"Workshops","_key":"96a6d122f296"},{"_type":"stat","label":"Talks","_key":"a61d3b1f5b85","number":110}],"_id":"d3fa6e47-1acd-4ccd-a34d-b0e8d634b0a4","display":false,"fromDate":"2025-01-27","gradient":["#6900D7","#E22672"],"venue":{"_rev":"yegnIH3NwV3D6qTghLDk2O","_type":"venue","_id":"5d14b2e0-e8e3-4286-8c68-07862b5fa161","title":"Queen Elizabeth II Centre","_updatedAt":"2025-01-20T15:02:51Z","rooms":[{"_type":"room","_key":"bf0cbb74ebb6","_ref":"13991"},{"_ref":"13983","_type":"room","_key":"c08e87a01185"},{"_ref":"13984","_type":"room","_key":"53d73be149e3"},{"_type":"room","_key":"b5d74e66a3dc","_ref":"14395"},{"_ref":"14704","_type":"room","_key":"2c0bf0586904"},{"_type":"room","_key":"6bd4158bef3c","_ref":"14720"},{"_ref":"14729","_type":"room","_key":"98da84c600bc"},{"_key":"5dfb07834281","_ref":"14730","_type":"room"},{"_key":"d6a15d40abd3","_ref":"14772","_type":"room"},{"_type":"room","_key":"b96e6464906e","_ref":"13198"},{"_ref":"2ad4bc3b-91c3-4198-80f3-5e3b7550dc8c","_type":"room","_key":"d286d2996efb"},{"_key":"661a693bbbd5","_ref":"618d89a7-06c2-4b68-9a4f-b98d3aea4dd7","_type":"room"},{"_ref":"5a9788bd-f05c-44bf-8280-8520842035d2","_type":"room","_key":"e318fa10fab2"},{"_key":"d1fdc5ff21b4","_ref":"771ab418-f420-4bfd-94c0-1c020431850f","_type":"room"},{"_type":"room","_key":"ebb3f0811f58","_ref":"95584b2c-128b-4358-b73b-0ddc153dbe64"},{"_ref":"21323","_type":"room","_key":"d13489583110"},{"_key":"22f74969e582","_ref":"804f416b-43c5-4e0e-b943-132c792aaae9","_type":"room"},{"_ref":"c4cfd403-7b80-4ece-b847-e8a781375c47","_type":"room","_key":"08a76619439d"},{"_key":"9c11f41f41e1","_ref":"ee6cc006-f7d8-4f9f-bc19-d5abf85faca1","_type":"room"},{"_ref":"c610155c-4568-46bc-bd76-99ea62c4e975","_type":"room","_key":"108b8a05cf34"},{"_ref":"56a27610-abc8-4f00-b80d-770caf7a7ffa","_type":"room","_key":"f5b2f5b01f89"},{"_ref":"cf78537f-02d9-469f-b057-db2ee79b1a97","_type":"room","_key":"31e590e30447"},{"_key":"521d99d133cb","_ref":"da62ab19-5cfd-4e84-afb6-e5041d62157f","_type":"room"},{"_key":"18128cc19fd8","_ref":"d5062bc1-d78a-451f-80e5-9c4a8b848fc4","_type":"room"},{"_key":"879d5ccd0c74","_ref":"8f5c2f08-ed0c-42db-a4ed-c23b44b753d8","_type":"room"},{"_type":"room","_key":"c42e513d5446","_ref":"20021"},{"_ref":"2bdd812d-52fb-4985-b0d9-16c175c7fa0c","_type":"room","_key":"7a80fa733a17"},{"_ref":"f9469fe6-da23-4e24-ad87-d298b9ef2c5c","_type":"room","_key":"ceabd69a8234"},{"_ref":"790de25a-388b-45c4-8bee-d33913fec64c","_type":"room","_key":"65b9c573b043"},{"_ref":"a058b34e-4862-4cfa-9810-4244093bbce9","_type":"room","_key":"5ab01568b6ef"},{"_ref":"00c3e86a-c3ad-4c5e-a8b7-e583fff8b606","_type":"room","_key":"27c4b629e050"},{"_key":"c244f74e9d87","_ref":"140124f0-b262-4b05-a658-2d127ad6c8df","_type":"room"},{"_key":"34b43b4d73d5","_ref":"b916ffc0-dd87-4037-8d28-ca40e77adc6c","_type":"room"},{"_key":"f989cf81bdde","_ref":"13982","_type":"room"},{"_ref":"13992","_type":"room","_key":"599cd853c8e3"},{"_ref":"13993","_type":"room","_key":"7575e7abc072"},{"_type":"room","_key":"04f8b425bf44","_ref":"14395"},{"_ref":"15048","_type":"room","_key":"dacfeffd1c2c"}],"_createdAt":"2019-08-08T10:55:21Z"},"_createdAt":"2024-04-18T08:34:36Z","confImage":{"_type":"image","asset":{"_ref":"image-678031ca74a7ab1877f370c9e2e2de88f23d9c7d-1000x667-jpg","_type":"reference"}},"slug":{"_type":"slug","current":"ndc-london-2025"},"_updatedAt":"2025-02-03T11:21:58Z","colorPalette":{"colorBgTicket":"#41c1ab","colorBgMenu":"#187f9f"},"mailchimp":{"parameterFID":"00cdc2e1f0","parameterU":"ea3ee69b302ffce33ddee4de9","parameterID":"01611a7926"},"toDate":"2025-01-31","staticDate":"27–31 January 2025","website":"https://ndclondon.com/","_rev":"tmaP3u7B5P5I6d6rMvcO7y","_type":"conference","title":"NDC London 2025","partners":[{"source":{"_ref":"fa64b48f-8b0e-44cd-804f-06a0c4afdaf9","_type":"reference"},"_key":"07295f31b65f","_type":"Partner","partnerType":["Partner"]},{"partnerType":["Partner"],"source":{"_ref":"ff326555-88b1-428f-bdec-10bbf03c0f1b","_type":"reference"},"_key":"85ae2ab21caa","_type":"Partner"},{"partnerType":["Partner"],"source":{"_ref":"c56f96dc-12a2-4156-9f35-b144d1dfc80a","_type":"reference"},"_key":"7259d7d32172","_type":"Partner"},{"source":{"_ref":"43408e55-684c-4313-a005-c08c3ef813fc","_type":"reference"},"_key":"e116048473ab","_type":"Partner","partnerType":["Partner"]},{"_type":"Partner","partnerType":["Partner"],"source":{"_ref":"9bc9f4ac-8a8c-4e39-a379-a731803b2e8b","_type":"reference"},"_key":"bd2457da789c"},{"_key":"532f30465f72","_type":"Partner","partnerType":["Partner"],"source":{"_ref":"a662613a-4124-4e8b-9e3f-be6ba9596968","_type":"reference"}},{"_type":"Partner","partnerType":["Partner"],"source":{"_ref":"eb50d334-2bb2-4082-9472-f36e0fc33a1f","_type":"reference"},"_key":"83b7afc8c7df"},{"source":{"_type":"reference","_ref":"9ed38006-4efd-4f19-af11-fb4895652672"},"_key":"cca03553bd9b","_type":"Partner","partnerType":["Partner"]},{"source":{"_ref":"68a366b1-f320-4e8e-a59b-1f1c285467e7","_type":"reference"},"_key":"ec0c8dfd12fd","_type":"Partner","partnerType":["Partner"]},{"_key":"5d1ddc5063d3","_type":"Partner","partnerType":["Partner"],"source":{"_ref":"e992aedb-33e2-4aa1-84ac-04e20d05bd75","_type":"reference"}},{"_type":"Partner","partnerType":["Partner"],"source":{"_type":"reference","_ref":"de480b2e-b429-479c-ac87-0d0b609a77ac"},"_key":"56108651dfb3"},{"source":{"_ref":"bd73e99f-6d8e-421d-bc9a-ce3a97fc0e12","_type":"reference"},"_key":"f3a2ae429d00","_type":"Partner","partnerType":["Partner"]},{"_key":"3939cfbc4e36","_type":"Partner","partnerType":["Partner"],"source":{"_ref":"a343a67a-0c99-4d49-844c-cedb64f4c3c8","_type":"reference"}},{"partnerType":["Partner"],"source":{"_ref":"9b1ae878-e72c-47db-9b5e-719ba5c7556b","_type":"reference"},"_key":"83eb57a053d6","_type":"Partner"},{"source":{"_type":"reference","_ref":"139f0092-a459-41a2-b27b-f8661e97129b"},"_key":"98659a638d1a","_type":"Partner"},{"source":{"_type":"reference","_ref":"29b1683f-73aa-4262-a2d7-2bbc6715b85e"},"_key":"85443e67765f","_type":"Partner","partnerType":["Partner"]},{"source":{"_ref":"0ae4f172-6eea-4b67-a5f5-32ec6be6f59a","_type":"reference"},"_key":"41c40993a9fc","_type":"Partner","partnerType":["Partner"]},{"_type":"Partner","partnerType":["Partner"],"source":{"_ref":"aaa7be73-6333-4b27-a83f-fd633da0719e","_type":"reference"},"_key":"3aadcf090fa8"},{"partnerType":["Partner"],"source":{"_ref":"fb229ba0-5ec4-4d0a-8b2e-a047325486ae","_type":"reference"},"_key":"81d768195742","_type":"Partner"},{"source":{"_ref":"465cb3e5-f5e5-431e-9d1b-2097e0fcd37a","_type":"reference"},"_key":"2545bfa4b93e","_type":"Partner","partnerType":["Partner"]},{"_type":"Partner","partnerType":["Partner"],"source":{"_ref":"36925f09-c655-4f41-9863-35460e8f4350","_type":"reference"},"_key":"c1727ec2ed21"},{"partnerType":["Partner"],"source":{"_ref":"6d9ca80f-52cc-4599-902e-da0531d88a48","_type":"reference"},"_key":"550b54f035e5","_type":"Partner"},{"source":{"_ref":"14a223fd-5065-4cac-862a-a109f86ad967","_type":"reference"},"_key":"09ffa891fcfd","_type":"Partner","partnerType":["Partner"]},{"_type":"Partner","partnerType":["Partner"],"source":{"_type":"reference","_ref":"4a274889-08b0-49a9-b2bf-18ce0b53d675"},"_key":"cf4e24a4cf24"}]}},"footer":{"partners":[{"source":{"_type":"partner","_id":"fa64b48f-8b0e-44cd-804f-06a0c4afdaf9","_updatedAt":"2023-03-24T12:00:32Z","_createdAt":"2022-11-03T12:17:39Z","partnerLink":"https://abp.io","_rev":"n7n0xC8KhbyPbmtZ22lemA","logoMono":{"_type":"image","asset":{"_type":"reference","_ref":"image-2d7ba361e911c939eb22b6fc24db2046d8b4787a-300x140-png"}},"logoColor":{"_type":"image","asset":{"_type":"reference","_ref":"image-2d7ba361e911c939eb22b6fc24db2046d8b4787a-300x140-png"}},"title":"abp.io"},"_key":"07295f31b65f","_type":"Partner","partnerType":["Partner"]},{"_type":"Partner","partnerType":["Partner"],"source":{"title":"Apryse","logoMono":{"_type":"image","asset":{"_ref":"image-daae3cfb4fc6fc7d662fa70c1a665533cbb115cd-600x280-png","_type":"reference"}},"partnerLink":"https://apryse.com/","_id":"ff326555-88b1-428f-bdec-10bbf03c0f1b","_updatedAt":"2024-12-11T19:56:43Z","_createdAt":"2023-02-21T08:28:10Z","_rev":"wQ4HQbIr6sUJ9JNXAXtinG","_type":"partner","logoColor":{"_type":"image","asset":{"_type":"reference","_ref":"image-daae3cfb4fc6fc7d662fa70c1a665533cbb115cd-600x280-png"}}},"_key":"85ae2ab21caa"},{"_type":"Partner","partnerType":["Partner"],"source":{"_type":"partner","partnerLink":"https://auth0.com/","logoColor":{"_type":"image","asset":{"_ref":"image-80d833bea76408d6099cae0f63dd73b5d54775b8-600x280-png","_type":"reference"}},"_id":"c56f96dc-12a2-4156-9f35-b144d1dfc80a","_updatedAt":"2024-01-18T13:55:58Z","title":"Auth0","_createdAt":"2021-11-08T11:55:06Z","_rev":"rrVGQ2hAZXTfdtNcgKv4gC","logoMono":{"asset":{"_ref":"image-80d833bea76408d6099cae0f63dd73b5d54775b8-600x280-png","_type":"reference"},"_type":"image"}},"_key":"7259d7d32172"},{"source":{"title":"AWS","_id":"43408e55-684c-4313-a005-c08c3ef813fc","_type":"partner","_createdAt":"2020-04-29T11:34:35Z","partnerLink":"https://aws.amazon.com/","_updatedAt":"2020-04-29T12:10:37Z","_rev":"c1XVzFu4GYF5JXrpNuBz0U","logoMono":{"_type":"image","asset":{"_ref":"image-03bafc47e49ff521ee80855f97c8302a71d8b3ea-300x140-png","_type":"reference"}},"description":"For over 12 years, Amazon Web Services has been the world’s most comprehensive and broadly adopted cloud platform. AWS offers over 165 fully featured services for compute, storage, databases, networking, analytics, robotics, machine learning and artificial intelligence (AI), Internet of Things (IoT), mobile, security, hybrid, virtual and augmented reality (VR and AR), media, and application development, deployment, and management from 60 Availability Zones (AZs) within 20 geographic regions, spanning the U.S., Australia, Brazil, Canada, China, France, Germany, India, Ireland, Japan, Korea, Singapore, Sweden, and the UK. AWS services are trusted by millions of active customers around the world—including the fastest-growing startups, largest enterprises, and leading government agencies—to power their infrastructure, make them more agile, and lower costs. To learn more about AWS, visit aws.amazon.com.","logoColor":{"_type":"image","asset":{"_ref":"image-03bafc47e49ff521ee80855f97c8302a71d8b3ea-300x140-png","_type":"reference"}}},"_key":"e116048473ab","_type":"Partner","partnerType":["Partner"]},{"_key":"bd2457da789c","_type":"Partner","partnerType":["Partner"],"source":{"_rev":"eLZC6C7gcUre0zGjrZoQRb","_type":"partner","title":"Circleci","logoColor":{"_type":"image","asset":{"_ref":"image-a1d3038617efe03cc27d0514582c64cdc2cad1bd-600x280-png","_type":"reference"}},"_updatedAt":"2025-01-02T12:19:13Z","_id":"9bc9f4ac-8a8c-4e39-a379-a731803b2e8b","logoMono":{"asset":{"_ref":"image-a1d3038617efe03cc27d0514582c64cdc2cad1bd-600x280-png","_type":"reference"},"_type":"image"},"_createdAt":"2025-01-02T12:19:13Z","partnerLink":"https://circleci.com/"}},{"_key":"532f30465f72","_type":"Partner","partnerType":["Partner"],"source":{"_type":"partner","_id":"a662613a-4124-4e8b-9e3f-be6ba9596968","_createdAt":"2024-12-06T08:58:26Z","partnerLink":"https://devitjobs.uk/","logoColor":{"_type":"image","asset":{"_ref":"image-53b0e2528effa0910687ba511e6f12d49095024b-600x280-png","_type":"reference"}},"_rev":"meVVJ3VGm6OopLJP6YktTU","title":"devitjobs","_updatedAt":"2024-12-06T09:10:31Z","logoMono":{"_type":"image","asset":{"_ref":"image-d2479d795825d6935116280395aac5cff4cd25c7-600x280-png","_type":"reference"}}}},{"source":{"_id":"eb50d334-2bb2-4082-9472-f36e0fc33a1f","_updatedAt":"2024-11-19T08:36:32Z","partnerLink":"https://www.digitalocean.com/","_createdAt":"2024-11-19T08:36:32Z","logoMono":{"_type":"image","asset":{"_type":"reference","_ref":"image-b24b8e0d50eade500567d2d21cae105ce81323de-600x280-png"}},"logoColor":{"_type":"image","asset":{"_ref":"image-b24b8e0d50eade500567d2d21cae105ce81323de-600x280-png","_type":"reference"}},"title":"Digital Ocean","_rev":"4rii1uCSjXv0pRAsuQqr8X","_type":"partner"},"_key":"83b7afc8c7df","_type":"Partner","partnerType":["Partner"]},{"_type":"Partner","partnerType":["Partner"],"source":{"partnerLink":"https://duendesoftware.com/","title":"Duende","_createdAt":"2024-10-28T13:31:28Z","_id":"9ed38006-4efd-4f19-af11-fb4895652672","logoMono":{"_type":"image","asset":{"_ref":"image-03d8ea7d7268e0b22b383509cba1fe4fa73da433-600x280-png","_type":"reference"}},"logoColor":{"_type":"image","asset":{"_ref":"image-03d8ea7d7268e0b22b383509cba1fe4fa73da433-600x280-png","_type":"reference"}},"_rev":"krXXfJdIGzkhUe12uGofIR","_type":"partner","_updatedAt":"2024-10-28T13:31:44Z"},"_key":"cca03553bd9b"},{"partnerType":["Partner"],"source":{"logoMono":{"_type":"image","asset":{"_ref":"image-0120c3d0d73985a598d14212b122acd07a6bea53-300x140-png","_type":"reference"}},"_id":"68a366b1-f320-4e8e-a59b-1f1c285467e7","_createdAt":"2021-11-01T08:26:57Z","logoColor":{"_type":"image","asset":{"_ref":"image-8a99e7ea328f45b7be5b1845b8a2dac5d4877684-300x140-png","_type":"reference"}},"partnerLink":"https://www.elastic.co/","_type":"partner","_updatedAt":"2023-09-04T08:16:54Z","_rev":"t54Vvg3VAPWvMgd1vYTdWZ","title":"Elastic"},"_key":"ec0c8dfd12fd","_type":"Partner"},{"source":{"partnerLink":"https://www.gravitee.io/","_type":"partner","logoMono":{"_type":"image","asset":{"_ref":"image-b3ceebb3df52e91465a1a0873087231e51698cc8-600x280-png","_type":"reference"}},"_id":"e992aedb-33e2-4aa1-84ac-04e20d05bd75","_updatedAt":"2024-12-23T20:50:56Z","logoColor":{"_type":"image","asset":{"_type":"reference","_ref":"image-b3ceebb3df52e91465a1a0873087231e51698cc8-600x280-png"}},"_createdAt":"2024-12-23T20:50:56Z","title":"Gravitee.io","_rev":"OptGicBi3c65TW5tQu5jr0"},"_key":"5d1ddc5063d3","_type":"Partner","partnerType":["Partner"]},{"_key":"56108651dfb3","_type":"Partner","partnerType":["Partner"],"source":{"_updatedAt":"2025-01-13T07:11:19Z","logoMono":{"_type":"image","asset":{"_ref":"image-c543b568e4ec9174d68b91f40bb03017a4f17d02-600x280-png","_type":"reference"}},"_id":"de480b2e-b429-479c-ac87-0d0b609a77ac","logoColor":{"_type":"image","asset":{"_type":"reference","_ref":"image-c543b568e4ec9174d68b91f40bb03017a4f17d02-600x280-png"}},"_createdAt":"2025-01-13T07:11:19Z","_rev":"sBbmt3aa2MSf4wtSrusYxr","partnerLink":"https://www.janestreet.com/","_type":"partner","title":"Jane Street"}},{"source":{"_rev":"ZBCDkI8yK7ATWnq3AfajE5","description":"Since 1975, Microsoft has empowered every person and organisation on the planet to achieve more. Imagination and innovation drives today’s technology. Our software, services, devices, and solutions help users realise their full potential in incredible new ways – from AI to the cloud, we want to help every software developer create fast and create smart. At NDC London 2020, we’ll be helping all software developers and businesses accelerate technical skills through the Microsoft Learn platform, plus Q\u0026As and expert insights from Microsoft’s Most Valuable Professionals.","_createdAt":"2020-04-29T11:58:04Z","logoMono":{"_type":"image","asset":{"_ref":"image-f1fd12e53230ab8417e6a722b2167f2558dace56-300x140-png","_type":"reference"}},"title":"Microsoft","_updatedAt":"2025-03-17T09:56:40Z","_type":"partner","logoColor":{"_type":"image","asset":{"_ref":"image-34eeecbf97ce5c75bea699e17191ef7f2d9aa766-300x140-png","_type":"reference"}},"_id":"bd73e99f-6d8e-421d-bc9a-ce3a97fc0e12","partnerLink":"https://docs.microsoft.com/en-gb/learn/?wt.mc_id=AID2447412_QSG_380120"},"_key":"f3a2ae429d00","_type":"Partner","partnerType":["Partner"]},{"partnerType":["Partner"],"source":{"title":"NetApp","_type":"partner","partnerLink":"https://www.netapp.com/","logoMono":{"_type":"image","asset":{"_ref":"image-6624cd6671b7c05448b6bed0400696012dc6a508-600x280-png","_type":"reference"}},"_updatedAt":"2025-01-02T12:16:15Z","_rev":"OptGicBi3c65TW5tRfhHP0","logoColor":{"asset":{"_ref":"image-6624cd6671b7c05448b6bed0400696012dc6a508-600x280-png","_type":"reference"},"_type":"image"},"_createdAt":"2025-01-02T12:16:15Z","_id":"a343a67a-0c99-4d49-844c-cedb64f4c3c8"},"_key":"3939cfbc4e36","_type":"Partner"},{"_key":"83eb57a053d6","_type":"Partner","partnerType":["Partner"],"source":{"_rev":"6MTNjSA10fN03nTrzj2a6X","logoMono":{"_type":"image","asset":{"_type":"reference","_ref":"image-3ab4af16dde204a9737743a614eac04da01e8661-600x280-png"}},"logoColor":{"_type":"image","asset":{"_ref":"image-3ab4af16dde204a9737743a614eac04da01e8661-600x280-png","_type":"reference"}},"_createdAt":"2025-01-08T12:54:26Z","_type":"partner","title":"owasp","_updatedAt":"2025-01-08T12:54:26Z","partnerLink":"https://owasp.org/","_id":"9b1ae878-e72c-47db-9b5e-719ba5c7556b"}},{"_type":"Partner","source":{"title":"Particular","_updatedAt":"2022-08-17T13:46:29Z","partnerLink":"https://particular.net/","_type":"partner","logoColor":{"_type":"image","asset":{"_type":"reference","_ref":"image-6fb4dbe244ccf715c9ad57c62f222efaca1ad3e5-300x140-png"}},"_createdAt":"2022-08-17T13:46:29Z","_rev":"J29A1t3CrDTc1m32QIwmfS","logoMono":{"asset":{"_ref":"image-6fb4dbe244ccf715c9ad57c62f222efaca1ad3e5-300x140-png","_type":"reference"},"_type":"image"},"_id":"139f0092-a459-41a2-b27b-f8661e97129b"},"_key":"98659a638d1a"},{"_type":"Partner","partnerType":["Partner"],"source":{"_updatedAt":"2025-03-17T09:58:12Z","_rev":"nMVhhzwrI237N2VuAkHAs2","partnerLink":"https://www.progress.com/","_type":"partner","logoColor":{"_type":"image","asset":{"_ref":"image-50306531ae51fa913317e4d7249e8526a9888d73-600x280-png","_type":"reference"}},"logoMono":{"_type":"image","asset":{"_ref":"image-2ef2f106defb6eceebfe724e680cb1350e0908bf-600x280-png","_type":"reference"}},"_id":"29b1683f-73aa-4262-a2d7-2bbc6715b85e","title":"Progress","_createdAt":"2020-12-09T09:53:29Z"},"_key":"85443e67765f"},{"source":{"_id":"0ae4f172-6eea-4b67-a5f5-32ec6be6f59a","_type":"partner","logoMono":{"_type":"image","asset":{"_ref":"image-0d9c24f6b8a06411dc54b7ece10cea9d0ddeff70-300x140-png","_type":"reference"}},"_createdAt":"2022-10-25T12:40:47Z","_updatedAt":"2023-10-03T11:26:17Z","partnerLink":"https://ravendb.net/","_rev":"6uWT4mGt0g6sBk16EyvsCG","logoColor":{"_type":"image","asset":{"_type":"reference","_ref":"image-0d9c24f6b8a06411dc54b7ece10cea9d0ddeff70-300x140-png"}},"title":"ravenDB"},"_key":"41c40993a9fc","_type":"Partner","partnerType":["Partner"]},{"partnerType":["Partner"],"source":{"partnerLink":"https://redis.io/","title":"Redis","_id":"aaa7be73-6333-4b27-a83f-fd633da0719e","_createdAt":"2024-12-12T14:01:13Z","_type":"partner","logoColor":{"_type":"image","asset":{"_type":"reference","_ref":"image-02b09499c9373c63a8b8c9f1bf9473cc1dd5b434-600x280-png"}},"_updatedAt":"2024-12-12T14:07:28Z","logoMono":{"asset":{"_ref":"image-02b09499c9373c63a8b8c9f1bf9473cc1dd5b434-600x280-png","_type":"reference"},"_type":"image"},"_rev":"wX8zREsCPkjFYvJgDNOADl"},"_key":"3aadcf090fa8","_type":"Partner"},{"_type":"Partner","partnerType":["Partner"],"source":{"_rev":"OptGicBi3c65TW5tRyrULw","_id":"fb229ba0-5ec4-4d0a-8b2e-a047325486ae","_updatedAt":"2025-01-06T14:39:34Z","partnerLink":"https://retool.com/","logoColor":{"asset":{"_ref":"image-09c5684ad4c975dfa9b43e44cf676b4820d0fac2-600x280-png","_type":"reference"},"_type":"image"},"title":"retool","logoMono":{"_type":"image","asset":{"_ref":"image-09c5684ad4c975dfa9b43e44cf676b4820d0fac2-600x280-png","_type":"reference"}},"_type":"partner","_createdAt":"2025-01-06T14:39:34Z"},"_key":"81d768195742"},{"_key":"2545bfa4b93e","_type":"Partner","partnerType":["Partner"],"source":{"partnerLink":"https://safestack.io/","title":"SafeStack","logoColor":{"_type":"image","asset":{"_ref":"image-83670b52fed9d56196d9dfbc1fd47b1c8a2baec0-300x140-png","_type":"reference"}},"_updatedAt":"2023-09-05T12:47:32Z","_createdAt":"2023-09-05T12:47:32Z","_rev":"PykQLzfXwgj1I0sVx3vA4B","_id":"465cb3e5-f5e5-431e-9d1b-2097e0fcd37a","_type":"partner","logoMono":{"_type":"image","asset":{"_ref":"image-83670b52fed9d56196d9dfbc1fd47b1c8a2baec0-300x140-png","_type":"reference"}}}},{"_type":"Partner","partnerType":["Partner"],"source":{"partnerLink":"https://www.textcontrol.com/","logoMono":{"_type":"image","asset":{"_type":"reference","_ref":"image-5a492ac78b90c9d505f80b8608f3ff72a6a6d11c-300x140-png"}},"_rev":"wbRB0YY1DZUZMK3XLAiOpX","title":"Text Control","_id":"36925f09-c655-4f41-9863-35460e8f4350","_updatedAt":"2021-05-26T08:36:11Z","_type":"partner","_createdAt":"2021-01-08T10:58:37Z","logoColor":{"_type":"image","asset":{"_ref":"image-5a492ac78b90c9d505f80b8608f3ff72a6a6d11c-300x140-png","_type":"reference"}}},"_key":"c1727ec2ed21"},{"_type":"Partner","partnerType":["Partner"],"source":{"_updatedAt":"2024-05-28T11:10:52Z","_type":"partner","logoColor":{"asset":{"_ref":"image-75b94b90b3da9591f88c2a7235eb3217eec48785-600x280-png","_type":"reference"},"_type":"image"},"partnerLink":"https://tina.io/","logoMono":{"_type":"image","asset":{"_ref":"image-136d3291268bbfd014f1820d7a97b6903ebaef3c-600x280-png","_type":"reference"}},"title":"Tina CMS","_rev":"c5Jg29CtwmnXmDO5WYF1z6","_createdAt":"2024-05-28T11:10:52Z","_id":"6d9ca80f-52cc-4599-902e-da0531d88a48"},"_key":"550b54f035e5"},{"source":{"_id":"14a223fd-5065-4cac-862a-a109f86ad967","logoMono":{"_type":"image","asset":{"_type":"reference","_ref":"image-93d8becf2f7b71745275c9e087a4dbdc806f0169-600x280-png"}},"_updatedAt":"2024-08-05T09:44:33Z","_type":"partner","logoColor":{"asset":{"_ref":"image-93d8becf2f7b71745275c9e087a4dbdc806f0169-600x280-png","_type":"reference"},"_type":"image"},"_rev":"yHoLspzQ0JQW6PP7dHbNl7","partnerLink":"https://valkey.io/","_createdAt":"2024-08-05T09:31:01Z","title":"Valkey"},"_key":"09ffa891fcfd","_type":"Partner","partnerType":["Partner"]},{"_type":"Partner","partnerType":["Partner"],"source":{"_updatedAt":"2022-05-03T13:43:44Z","_id":"4a274889-08b0-49a9-b2bf-18ce0b53d675","_createdAt":"2022-05-03T13:43:44Z","partnerLink":"https://www.zuplo.com/","title":"Zuplo","logoMono":{"_type":"image","asset":{"_type":"reference","_ref":"image-1738d8f73e699d385136f3c9c5ba177f082b1c9a-300x140-png"}},"logoColor":{"_type":"image","asset":{"_ref":"image-1738d8f73e699d385136f3c9c5ba177f082b1c9a-300x140-png","_type":"reference"}},"_rev":"WXwq61Fb2PMnOOpfxWJQ8S","_type":"partner"},"_key":"cf4e24a4cf24"}],"conferences":[{"title":"NDC Melbourne 2025","toDate":"2025-05-01","gradient":["#4C95AB","#7961C6"],"stats":[{"label":"Speakers","_key":"d2042af444ef","number":40,"_type":"stat"},{"label":"Technologies","_key":"bf78b0305e41","number":30,"_type":"stat"},{"_type":"stat","label":"Workshops","_key":"1c379896bae7","number":10},{"number":50,"_type":"stat","label":"Talks","_key":"edef88de3f24"}],"website":"https://ndcmelbourne.com/","_id":"d7831c1a-4c4b-423d-bfdc-6b5bf7e21cf7","staticDate":"29 April - 1 May 2025","fromDate":"2025-04-29","confImage":{"asset":{"_ref":"image-8cc1950e9803b379c8887ea77848dc7dfc3500c0-2000x1300-jpg","_type":"reference"},"_type":"image"}},{"toDate":"2025-05-23","_id":"efb57dc5-6e81-4a2c-91a0-753078a8cbbd","stats":[{"number":150,"_type":"stat","label":"Speakers","_key":"f696e1daae5c"},{"_key":"06c151cb28ec","number":45,"_type":"stat","label":"Technologies"},{"_key":"c3c615b1fa15","number":20,"_type":"stat","label":"Workshops"},{"_type":"stat","label":"Talks","_key":"22ce6375fdcf","number":160}],"staticDate":"19-23 May 2025","fromDate":"2025-05-19","website":"https://ndcoslo.com","gradient":["#1DB87B","#0B3FB8"],"confImage":{"asset":{"_ref":"image-c4a7d0bc33ccd7741663f6461588132a027ea0f8-2400x2239-jpg","_type":"reference"},"_type":"image"},"title":"NDC Oslo 2025"},{"website":"https://ndccopenhagen.com","_id":"9fe985ab-f0d0-4566-9696-096d43670630","staticDate":"8-12 September 2025","confImage":{"_type":"image","asset":{"_type":"reference","_ref":"image-94f596039f5dad137731bfc08eefe71a611915e8-5632x3755-jpg"}},"gradient":["#FB9334","#187F9F"],"toDate":"2025-09-12","fromDate":"2025-09-08","title":"NDC Copenhagen 2025","stats":[{"_type":"stat","label":"Speakers","_key":"0a2a67670e01","number":100},{"label":"Technologies","_key":"2f1ce9ee3c74","number":40,"_type":"stat"},{"label":"Talks","_key":"de32de790bea","number":100,"_type":"stat"},{"number":10,"_type":"stat","label":"Workshops","_key":"cb55f581b550"}]},{"_id":"4ccc1c60-faac-420b-91a8-fe325472fb60","website":"https://ndctechtown.com","confImage":{"asset":{"_ref":"image-710ef8dec6c69db85d59bfd83d3f6d2e5ee005ea-1000x633-jpg","_type":"reference"},"_type":"image"},"fromDate":"2025-09-22","stats":[{"number":50,"_type":"stat","label":"Speakers","_key":"af4e71122354"},{"_type":"stat","label":"Technologies","_key":"4c4265fe33ab","number":15},{"number":10,"_type":"stat","label":"Workshops","_key":"9273a69e644c"},{"number":60,"_type":"stat","label":"Talks","_key":"7cad3769f7b4"}],"title":"NDC TechTown 2025","staticDate":"22-25 September 2025","toDate":"2025-09-25","gradient":["#483B88","#5648A3"]},{"gradient":["#6A6CE6","#844BE2"],"confImage":{"asset":{"_type":"reference","_ref":"image-2034a7bd972d3603d25c8a492b06b1c829d037b3-1162x1237-png"},"_type":"image"},"title":"Azure Dev Summit 2025","website":"https://azuredevsummit.com","_id":"e14f2c1c-1de3-4eb9-a425-d1502dc1ab0a","staticDate":"13-16 October 2025","fromDate":"2025-10-13","toDate":"2025-10-16"},{"gradient":["#008780","#00AAA1"],"_id":"3c9db8dc-8f1a-4468-980b-104e755114a1","fromDate":"2025-10-20","toDate":"2025-10-24","stats":[{"_key":"4a7ae73733f1","number":80,"_type":"stat","label":"Speakers"},{"_key":"b309c507e41f","number":40,"_type":"stat","label":"Technologies"},{"number":8,"_type":"stat","label":"Workshops","_key":"7ae88afac2c0"},{"_key":"0436a761ea89","number":90,"_type":"stat","label":"Talks"}],"staticDate":"20-24 October 2025","confImage":{"asset":{"_type":"reference","_ref":"image-0f7785cf67e46323dd7efc431e3fe3b2daa21139-1000x750-jpg"},"_type":"image"},"title":"NDC Porto 2025","website":"https://ndcporto.com/"}]}},"host":"ndclondon.com","store":{"conference":"6fa09f6c-7799-4d58-8766-0170cd2c59dc","main":{"conferenceId":"6fa09f6c-7799-4d58-8766-0170cd2c59dc","GLOBAL_DATA_QUERY":"\n {\n \"title\": *[_type == \"website\" \u0026\u0026 _id == $conferenceId][0].title,\n \"websiteType\": *[_type == \"website\" \u0026\u0026 _id == $conferenceId][0].websiteType,\n \"featureToggleTickets\": *[_type == \"website\" \u0026\u0026 _id == $conferenceId][0].featureToggleTickets,\n \"meta\": *[_type == \"website\" \u0026\u0026 _id == $conferenceId][0].social {\n description,\n title,\n 'image': image.asset-\u003eurl,\n },\n \"conference\": *[_type == \"website\" \u0026\u0026 _id == $conferenceId][0] {\n \"conference\": conference-\u003e{\n ...,\n venue-\u003e\n },\n confFooter,\n menu\n },\n \"footer\": {\n \"partners\": *[_type == \"conference\" \u0026\u0026 _id == *[_type == \"website\" \u0026\u0026 _id == $conferenceId][0].conference._ref][0].partners {\n ...,\n source-\u003e\n },\n \"conferences\": *[_type == \"conference\" \u0026\u0026 defined(fromDate) \u0026\u0026 defined(toDate) \u0026\u0026 toDate \u003e now()] {\n staticDate,\n fromDate,\n toDate,\n gradient,\n stats,\n confImage,\n title,\n website,\n _id\n } | order(fromDate)\n \n }\n }\n "},"slot":{"conferenceId":"6fa09f6c-7799-4d58-8766-0170cd2c59dc","AGENDAS_QUERY":"\n *[_type == \"website\" \u0026\u0026 _id == $conferenceId] {\n \"conferenceId\": @.conference._ref,\n \"slots\": *[_type == 'slot' \u0026\u0026 references(^.conference._ref)] {\n _id,\ntitle,\nslug,\nspeakers-\u003e,\nslotType,\ndescription,\narticle,\ncustomVideo,\n'speakers': speakers[]-\u003e { ..., 'portrait': portrait {\n ...,\n asset-\u003e {\n ...\n }\n} },\ntopics[]-\u003e { _id, title },\ntags[]-\u003e { _id, title },\n'schedule': schedule[] {\n ...,\n 'location': location {\n ...,\n 'room': room-\u003e { ... },\n 'venue': venue-\u003e { ... }\n }\n}\n },\n 'topics': *[_type == \"topic\"] {\n _id,\n title\n }\n }[0]"},"speaker":{"conferenceId":"6fa09f6c-7799-4d58-8766-0170cd2c59dc"}}},"page":"/workshops","query":{},"buildId":"CDXjbtHyjMVc1jpTa6aY1","isFallback":false,"gip":true,"appGip":true,"scriptLoader":[]}</script></body></html>

Pages: 1 2 3 4 5 6 7 8 9 10