[
  {
    "date": "2023-09-28T00:00:00",
    "isDefault": false,
    "rooms": [
      {
        "id": 33551,
        "name": "Humboldtsaal (1.OG)",
        "sessions": [
          {
            "id": "e1e1674f-aa1c-47ec-8ccb-8d61f609d9e2",
            "title": "Einlass",
            "description": null,
            "startsAt": "2023-09-28T08:00:00",
            "endsAt": "2023-09-28T09:00:00",
            "isServiceSession": true,
            "isPlenumSession": true,
            "speakers": [],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": null,
            "isInformed": false,
            "isConfirmed": false
          },
          {
            "id": "480250",
            "title": "Architektur: Den menschlichen Faktor verbessern!",
            "description": "Gute Software-Architektur strukturiert komplexe Software-Systeme so übersichtlich, dass Menschen sie verstehen und weiterentwickeln können. Also geht es bei der Software-Architektur um den Faktor Mensch. Deswegen kann sich Architektur aber nicht auf Maßnahmen für die Strukturierung der Software begrenzen, sondern muss sich auch mit den Menschen beschäftigen. In diesem Vortrag geht es um einige konkrete Ansätze und Erfahrungen, die Entwicklung durch Maßnahmen in Bezug auf den Faktor Mensch zu verbessern.",
            "startsAt": "2023-09-28T09:00:00",
            "endsAt": "2023-09-28T10:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "4750ed21-fcda-4dc5-9fe5-1a6fca25cd8c",
                "name": "Eberhard Wolff"
              }
            ],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "473856",
            "title": "Architekturexplizite Java-Applikationen mit jMolecules",
            "description": "Java-Applikationen basieren gewöhnlicherweise auf einem Framework oder einer Entwicklungsplattform. Einige davon erlauben es,  architektonische Konzepte auszudrücken. Diese jedoch direkt in Code abzubilden, bleibt meist eine Herausforderung, ebenso wie die Trennung von fachlichem Code und Applikationsframework.\r\n\r\njMolecules ist eine Framework-unabhängige Bibliothek die es erlaubt, verbreitete, architektonische Konzepte direkt in Code darzustellen, zu überprüfen, ob Regeln bezüglich der Implementierung dieser eingehalten werden und die nötige technische Integration, sowie entsprechende Dokumentation abzuleiten.\r\n\r\nDer Vortrag gibt einen Überblick über den grundsätzlichen Ansatz und zeigt, wie Entwickler:innen die bereitgestellten Abstraktionen nutzen können. Darüber hinaus wird konkrete Integration mit Spring, Jackson und JPA sowie die Generierung von Dokumentation am praktischen Beispiel gezeigt.",
            "startsAt": "2023-09-28T10:20:00",
            "endsAt": "2023-09-28T11:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "6c4698c8-1a2f-436b-a5f4-3770e0bd3e20",
                "name": "Oliver Drotbohm"
              }
            ],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "472594",
            "title": "Misserfolge und Lehren bei der Anwendung von DDD: Beispiele aus der realen Welt",
            "description": "Domain-Driven Design ist kein Patentrezept und löst kein Problem auf magische Weise. Die Herausforderungen und die Komplexität, die wir mit DDD zu bewältigen versuchen, sind schwierig und es gibt keinen einfachen Lösungsansatz. Nichtsdestotrotz gibt es eine wachsende Popularität und Wertschätzung für das Thema auf dem Markt, was zu überhöhten Erwartungen und schließlich zu Enttäuschungen führen kann.\r\n\r\nDer Referent dieses Vortrags arbeitet seit 17 Jahren mit Domain-Driven Design an vielen Softwaresystemen und dieser Vortrag handelt von meinen Erfahrungen mit dem Scheitern. Glauben Sie mir: Ich bin oft gescheitert, aber es gibt immer eine Gelegenheit etwas daraus zu lernen. Der Vortrag zielt darauf ab, Ihnen die Möglichkeit zu geben, aus den Fehlern von mir als Berater und den Teams/Organisationen, mit denen ich gearbeitet habe, zu lernen.\r\n\r\nDer Vortrag behandelt Themen wie:\r\n- Domain-Driven Design im Wasserfall\r\n- Ignoranz für Code (aka nur Fokus auf strategisches Design)\r\n- Übermäßiger Gebrauch von Mustern um ihrer selbst willen\r\n- Kulturelle Implikationen\r\n- Cargo-Kult\r\n- Developer Experience\r\n- Eingeschränkte Verfügbarkeit von Fachexperten\r\n- Umgang mit etablierten Modellierungstechniken/Methoden\r\n- Unkenntnis über die Definitionen/Bedeutung von Heuristiken und Mustern\r\n\r\nDieser Vortrag zielt darauf ab, Ihnen eine Sensibilität für potentielle Gefahren zu vermitteln, wenn Sie versuchen, DDD für Ihr Team und Ihre Organisation einzuführen und wird nur reale Situationen beschreiben, die tatsächlich passiert sind. Jeder beschriebene Misserfolg wird mit einer Erkenntnis darüber einhergehen, wie man es besser machen kann.\r\n\r\nEs handelt sich um einen interaktiven Vortrag, bei dem Ihnen, dem Publikum, Fragen und Umfragen (über ein Online-Tool) gestellt werden. Sie werden sich beteiligen können.",
            "startsAt": "2023-09-28T11:40:00",
            "endsAt": "2023-09-28T12:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "c41a4363-aedb-42e0-8495-86be6c23107d",
                "name": "Michael Plöd"
              }
            ],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "394b91c5-1fb7-44e0-9cd3-c2fe74088918",
            "title": "Mittag",
            "description": null,
            "startsAt": "2023-09-28T12:40:00",
            "endsAt": "2023-09-28T13:40:00",
            "isServiceSession": true,
            "isPlenumSession": true,
            "speakers": [],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": null,
            "isInformed": false,
            "isConfirmed": false
          },
          {
            "id": "476867",
            "title": "Looming Changes in Java Concurrency",
            "description": "Project Loom, expected to be delivered in final form in Java 21, brings \"virtual\" threads to the Java platform. After an introduction to the concepts of virtual threads, structured concurrency, and extent locals, the talk focuses on the implications for programmers. Why should you care about Loom if you will never run a million concurrent tasks? How do you choose between virtual and platform threads? When blocking is cheap, is there still a benefit to reactive programming? Which parts of \"Concurrency in Practice\" are now outdated, and what is still relevant? What concurrent synchronization mechanisms and design patterns should you favor?  How do you debug and profile virtual threads? What pitfalls do you need to recognize when transforming your current code to take advantage of virtual threads? How do you structure new code? This pragmatic presentation provides a perspective beyond the \"what\" of Project Loom and into the \"why\" and \"how\". ",
            "startsAt": "2023-09-28T13:40:00",
            "endsAt": "2023-09-28T14:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "bbb8702d-0637-4c8e-ae97-45bde0d6b3a8",
                "name": "Cay Horstmann"
              }
            ],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "489430",
            "title": "Wie, schon wieder ein LTS Release? Was erwartet dich mit JDK 21",
            "description": "Das letzte JDK mit long-term Support, 17, steht uns seit September 2021 zur Verfügung und doch steht im September 2023 mit JDK 21 das Nächste in den Startlöchern.\r\nAber das sind doch nur zwei Jahre, sollte nicht alle drei Jahre ein LTS Release erscheinen? Doch, das war der Plan, aber Oracle hat sich 2021 entschieden den Zeitraum zu verkürzen und die anderen Hersteller sind nachgezogen. Zeit also, dass wir uns damit beschäftigen, was sich seit JDK 17 geändert hat.\r\nDieser Vortrag zeigt dir alle, relevanten, Änderungen, die dich mit JDK 21 in deinem Alltag erwarten. Neben ein paar Folien werden wir uns dabei die größte Zeit in der IDE aufhalten, um diese Änderungen am praktischen Beispiel zu sehen.",
            "startsAt": "2023-09-28T15:00:00",
            "endsAt": "2023-09-28T16:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "bcb3221c-6a1c-46b0-a56c-25608382fc0d",
                "name": "Michael Vitz"
              }
            ],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "492392",
            "title": "Software-Archäologie - Was wir von der Mondlandefähre lernen können!",
            "description": "Die Mondlandung ist gut 50 Jahre her und die Menschheit plant erneut große Raumfahrtprogramme. Bei der ersten Mondlandung hat die IT eine wesentliche Rolle gespielt und es wurden wichtige Fundamente des Software Engineering geschaffen. Der Begriff selbst wurde von Margaret Hamilton während der Entwicklung des Apollo Guidance Computer (AGC), des Steuermoduls der Mondlandefähre, geprägt.\r\n \r\nIch möchte etwas Software-Archäologie betreiben und mit einem Rückblick auf die bahnbrechenden Erfindungen des AGC einen Kontrastpunkt zum Technologie-Hype setzen. Für eines der ersten eingebetteten Systeme wurden Prioritätsscheduling, Multitasking und ein Echtzeitbetriebssystem entwickelt. Eine der ersten virtuellen Maschinen stellte mathematische Funktionen bereit und abstrahierte von der Hardware. Ein wesentlicher Erfolgsfaktor war die Robustheit der Software, die sich durch eine gute Fehlerbehandlung auszeichnete und vor Bedienungsfehlern abgesichert wurde, nachdem Hamiltons Tochter beim Herumspielen mit dem AGC einen Absturz verursacht hatte. Diese Eigenschaft kam Minuten vor der Landung zum Tragen und bewahrte die Mission vor dem Abbruch. Werfen wir einen Blick zurück in die Zukunft!",
            "startsAt": "2023-09-28T16:20:00",
            "endsAt": "2023-09-28T17:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "873413f6-5964-4a6a-a07d-9095dc4600e2",
                "name": "Tobias Voß"
              }
            ],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "437c6612-ebc5-4abe-8814-ca71bc6be74d",
            "title": "Panel und Verlosung",
            "description": null,
            "startsAt": "2023-09-28T17:35:00",
            "endsAt": "2023-09-28T18:35:00",
            "isServiceSession": true,
            "isPlenumSession": true,
            "speakers": [],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": null,
            "isInformed": false,
            "isConfirmed": false
          }
        ],
        "hasOnlyPlenumSessions": false
      },
      {
        "id": 33552,
        "name": "Kleistsaal (1.OG)",
        "sessions": [
          {
            "id": "548211",
            "title": "Fullstack React-Anwendungen am Beispiel Next.js",
            "description": "Das React Team empfiehlt seit einigen Monaten offiziell den Einsatz eines Fullstack-Frameworks wie Next.js, Remix oder Gatsby für die Entwicklung von React-Anwendungen, so dass einige schon von einer \"Neuausrichtung\" von React (weg von der klassischen Single-Page-Anwendung) sprechen.\r\n\r\nIn diesem Vortrag möchte ich Euch die Gründe dafür erklären und anhand einer kleinen Beispiel-Anwendung Schritt-für-Schritt zeigen, was es für Code, Architektur und Deployment bedeutet, \"Fullstack\"-Anwendungen mit React und exemplarisch Next.js zu bauen.\r\n\r\nFür den Vortrag sind React-Kenntnisse hilfreich, die Ideen und Konzepte, die wir besprechen, versteht ihr aber auch, wenn ihr z.B. Angular oder Vue verwendet.",
            "startsAt": "2023-09-28T09:00:00",
            "endsAt": "2023-09-28T10:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "b90317c9-5fd7-4f10-b20a-30e216b29fd1",
                "name": "Nils Hartmann"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "493276",
            "title": "Reactive Programming - Königs- oder Irrweg?",
            "description": "Anwendungen sind nicht unbegrenzt multitasking-fähig. Anfragen zu blockieren, bis das Ergebnis feststeht, bedeutet viele Treads. Viele Threads verbrauchen viele Ressourcen. Der vermeintliche Ausweg und derzeitiges Silver-Bullet: Reactive Programming. Damit sparen wir Threads bis zum Ultimo, schreiben dafür Programmcode, den wir teilweise selbst nach 2 Wochen nicht mehr verstehen, und handeln uns andere Schwierigkeiten - pardon: Anforderungen ein, die wir vorher gar nicht hatten. Wir betrachten in diesem Talk aktuelle Lösungen reaktiver Programmierung bspw. in Quarkus und Helidon, bewerten Programmcode sowie Laufzeitvorteile und vergleichen das Ganze mit Lösungen auf Basis virtueller Threads (Project Loom) mit gradlinigem Programmcode.",
            "startsAt": "2023-09-28T10:20:00",
            "endsAt": "2023-09-28T11:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "c7b1cea4-bdc5-4b07-a2af-38ad8b3dc463",
                "name": "Dirk Weil"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "476118",
            "title": "So viel Architekturarbeit wie nötig",
            "description": "Die von uns gebauten Anwendungen werden immer anspruchsvoller. Der Einsatz von modernen Architekturstilen und Arbeitsweisen (DevOps) kann helfen, aber wird auch zum Teil des Problems. Gerade deshalb braucht es eine stabile und verlässliche Softwarearchitekturbasis. Denn die Architektur sollte der Fels in der Brandung des wogenden Projektgeschehens sein. In diesem Vortrag diskutieren wir, wie ihr zielgerichtet vorgehen, ohne Overengineering sowie bei bestmöglicher Risikoabschätzung Entscheidungen treffen und so eure Software möglichst flexibel entwickeln sowie für alle Stakeholder transparent festhalten könnt. Explizite Softwarearchitekturarbeit ist essenziell, muss aber nicht schwer sein.",
            "startsAt": "2023-09-28T11:40:00",
            "endsAt": "2023-09-28T12:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "2fa7d3c1-e216-4dc8-b05c-f94fe34390e7",
                "name": "Falk Sippach"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "491138",
            "title": "My Home is my Office – Schöne neue Welt?",
            "description": "Drei Jahre nach dem Ausbruch der Pandemie haben wir viel Erfahrung mit dem Thema HomeOffice gesammelt. Langsam kehrt überall wieder Normalität ein, doch am Arbeitsplatz bleibt die Frage, wie es auf Dauer weitergehen soll. Wollen wir zurück ins Büro oder lieber im Homeoffice bleiben? \r\n\r\nMich hat interessiert, welche Faktoren in unsere individuelle Vorliebe für ein Arbeitsplatzmodell hineinspielen. Ich wollte wissen, ob die Persönlichkeit eines Menschen ausschlaggebend ist oder ob vielleicht die Position innerhalb des Teams einen Einfluss darauf hat. Dafür habe ich Personen befragt und Studien zu diesem Thema recherchiert. Die Ergebnisse stelle ich euch ebenso vor wie meine ganz persönliche Geschichte. Dabei werfen wir auch einen Blick auf ein bestehendes hybrides Modell, das zum Ziel hat, allen Bedürfnissen gerecht zu werden. \r\n\r\nDieser Talk gibt euch Fakten, Ideen und mögliche Antworten mit auf die Frage(n): Wer will wann wie und warum wo arbeiten und vor allem: Wie bringen wir alle unter einen Hut?\r\n",
            "startsAt": "2023-09-28T13:40:00",
            "endsAt": "2023-09-28T14:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "895ba3c2-7560-48b6-be79-60f025465e7a",
                "name": "Katrin Rabow"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "472588",
            "title": "Module richtig schneiden mithilfe von Domain-Driven Design",
            "description": "Bounded Contexts gehören zum strategischen Domain-Driven Design und sind derzeit in aller Munde. Viele Teams versprechen sich durch die Modularisierung mit Bounded Contexts einen guten fachlichen Schnitt für ihre Software. Es stellt sich jedoch häufig die Frage, wie wir denn überhaupt zu einem guten Bounded-Context-Schnitt kommen.\r\n\r\nGenau um diese Frage dreht sich der Vortrag. Ich werde zeigen, wie man mithilfe kollaborativer Modellierungsmethoden (z.B. Event Storming) eine Abgrenzung seiner Problemdomäne erreichen kann und wie man von dort unter Berücksichtigung verschiedener Perspektiven (Regeln, Sprache, Schnittstellen, etc.) zu einem ausgewogenen Bounded-Context-Schnitt kommt.",
            "startsAt": "2023-09-28T15:00:00",
            "endsAt": "2023-09-28T16:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "c41a4363-aedb-42e0-8495-86be6c23107d",
                "name": "Michael Plöd"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "473859",
            "title": "Spring Modulith – Spring für architekturinteressierte Entwickler:innen",
            "description": "Die Architektur und das Design einer Applikation beeinflussen ihre Wartbarkeit, Testbarkeit und Qualität im Allgemeinen. Spring war schon immer ein vielseitiges Werkzeug, das Architekt:innen dabei unterstützt, Muster zu implementieren, mithilfe derer technische Bausteine der Applikation mit Domänenkonzepten und -grenzen verknüpft werden können. Es erlaubt Entwickler:innen Anwendungen zu schreiben, die ihre architektonischen Ideen deutlich reflektieren und so ultimativ änder- und damit wartbarere Anwendungen zu schreiben. Schlüsselaspekte dahin gehend sind Codeorganisation, das Spring-Bean-Arrangement und die Nutzung von Domänen-Events, um fachlich individuelle Teile der Applikation voneinander zu entkoppeln.\r\n\r\nDer Vortrag diskutiert diese Muster und Ansätze und stellt Spring Moduliths vor, um zu zeigen, wie Entwickler:innen in die Lage versetzt werden, besonders gut strukturierte und wartbare Anwendungen zu schreiben.",
            "startsAt": "2023-09-28T16:20:00",
            "endsAt": "2023-09-28T17:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "6c4698c8-1a2f-436b-a5f4-3770e0bd3e20",
                "name": "Oliver Drotbohm"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          }
        ],
        "hasOnlyPlenumSessions": false
      },
      {
        "id": 33553,
        "name": "Edison (2.OG)",
        "sessions": [
          {
            "id": "483571",
            "title": "Wieso ist meine Anwendung eigentlich so langsam?",
            "description": "Wer kennt nicht die Situation, dass sich eine Java-Anwendung Performance-technisch nicht ganz so gut verhält, wie man sich das eigentlich wünscht.\r\n\r\nWaren früher zur Analyse solcher Probleme kommerzielle Tools erforderlich, steht inzwischen mit dem async-profiler ein mächtiges Open-Source-Werkzeug zur Verfügung, um Performance-Problemen in Java-Anwendungen auf den Grund gehen zu können.\r\n\r\nDieser Vortrag zeigt anhand eines Beispiels, wie diese Performanceanalyse mit dem async-profiler in der Praxis funktioniert. Dabei beleuchtet er die häufigsten Einsatzgebiete: Das Profiling von CPU, Locks und Memory.\r\n\r\nZu gu­ter Letzt stellen wir eine Möglichkeit vor, mittels Pyroscope ein kontinuierliches Profiling im Betrieb durchzuführen, um im Störungsfall beispielsweise auf historische Daten zurückgreifen zu können.",
            "startsAt": "2023-09-28T09:00:00",
            "endsAt": "2023-09-28T10:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "6df29349-aab1-4ee5-b09e-ac6072297237",
                "name": "Thilo-Alexander Ginkel"
              },
              {
                "id": "3d39a381-e831-4be3-bb7d-07ddb819f8c7",
                "name": "Stefan Reuter"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "472095",
            "title": "Practical introduction to OpenTelemetry tracing",
            "description": "Tracking a request’s flow across different components in distributed systems is essential. With the rise of microservices, their importance has risen to critical levels. Some proprietary tools for tracking have been used already: Jaeger and Zipkin naturally come to mind.\r\n\r\nObservability is built on three pillars: logging, metrics, and tracing. OpenTelemetry is a joint effort to bring an open standard to them. Jaeger and Zipkin joined the effort so that they are now OpenTelemetry compatible.\r\n\r\nIn this talk, I’ll describe the above in more detail and showcase a (simple) use case to demo how you could benefit from OpenTelemetry in your distributed architecture.",
            "startsAt": "2023-09-28T10:20:00",
            "endsAt": "2023-09-28T11:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "9c904945-768e-4597-b942-6be90cf4d731",
                "name": "Nicolas Fränkel"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "455894",
            "title": "Decoupling FE and BE Teams with a UI Schema",
            "description": "Large to mid-sized, cross-functional development teams are seen as the norm in today's development departments. In practice, however, team sizes tend to get smaller over time as applications go into operation and maintenance mode. Sometimes, dedicated front-end (FE) and back-end (BE) teams remain, with fewer people available than during inital development phases. This talks describes an approach that was born out of constraints like these. \r\n\r\nA declarative UI schema can serve as a contract between FE and BE teams. A schema interpreter in an FE implementation and a schema specification defined by the BE can shield FEs from a larger number of smaller, day-to-day changes in data representations.\r\n\r\nThis approach constitutes a compromise that can reduce time-to-market for many smaller features. It allows some of the expressive power desirable in modern single-page front-ends, and separating concerns to reduce the coupling between teams and their respective release strategies.",
            "startsAt": "2023-09-28T11:40:00",
            "endsAt": "2023-09-28T12:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "9ebb731a-6465-40e9-bca6-bb0742e22b83",
                "name": "Gerald Brose"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "471157",
            "title": "Power Structures. The Fair Advantage",
            "description": "Have you ever been in the following situation? You know for certain that you are technically right. Your project has to be done for the benefit of the company. But you cannot convince your boss for whatever reason. You are stuck. - This might be the glorious moment of informal structures and networking. You will need to know whom else to talk to. Whom you can trust and who has the power to convince your boss? The best answer will rarely be found in formal organisational structure.\r\n\r\nAs developers, we often think in models and charts. We are used to formalize worded requests into code and structures to solve problems. And we are good at it. But what you cannot fully put into models are humans and human behavior. This is also true for the human interactions inside companies and networks. Organigrams never tell the truth about an organisation. Power and influence is more complex than formal structures can describe.\r\n\r\nIn this talk, I wanna dive into how human interactions inside companies are at the same time complex, powerful and worth exploring.\r\n\r\nDisclaimer: This is no talk about unfair techniques. I will not provide you dark magic. My goal is to provide you the knowledge how to fairly play in a complex world.",
            "startsAt": "2023-09-28T12:00:00",
            "endsAt": "2023-09-28T12:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "7e83763c-f32c-41e3-bffd-d47cb834c457",
                "name": "Anja Kunkel"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "494785",
            "title": "Single Responsibility Principle - unterschätzt und missverstanden",
            "description": "\"Singe Responsibility Principle - a class should have only one reason to change\". Diese Definition wurde durch Robert C. Martin aka Uncle Bob schon in zwei Versionen formuliert. Bei Reviews und Coaching von Teams habe ich beobachtet, dass dieses Architektur-Prinzip seit 2003 soviel unterschätzt wird wie missverstanden. \r\n\r\nDas Ergebnis sind solche Klassen wie \"UserService\" mit 5kLOC Code.\r\nDieser Talk erklärt ein UseCase und danach die Anwendung / Refactoring mit dem Single Responsibility Principle. Des Weiteren wird der neue Begriff \"Single Ownership Principle\" eingeführt.",
            "startsAt": "2023-09-28T12:20:00",
            "endsAt": "2023-09-28T12:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "aaa140bf-0f68-49b3-8e9c-9c5d71c39739",
                "name": "Nodirbek Usmanov"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "468791",
            "title": "FIDO Passkeys - in Zukunft ohne Passwort",
            "description": "Passwörter sind mühsam und unsicher. Menschen können sie sich merken und schreiben sie auf Post-Its und in Anwendungen werden sie unverschlüsselt oder schlecht geschützt gespeichert. Ein Selbstbedienungsladen für alle Hacker. \r\n\r\nErsetzt werden sollen sie deshalb durch Fido Passkeys. Fido steht für „Fast Identity Online“ und ist eine Allianz aus Tech-Konzernen, allen voran Microsoft, Google und Apple. Der Begriff in Anlehnung an das Passwort, steht als Beschreibung für „Multi-Device Fido Credentials“, bei der eine sichere Authentifizierung mittels kryptografischer Schlüssel erfolgt. Klingt sperrig und kompliziert, soll im Alltag aber deutlich einfacher und sicherer sein als das Passwort.\r\n\r\nIch erkläre in meinem Vortrag, wie Passkeys funktionieren und weshalb ein Passwort-Manager vielleicht doch noch nicht ausgedient hat.",
            "startsAt": "2023-09-28T13:40:00",
            "endsAt": "2023-09-28T14:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "ef54265f-c9ff-45d2-a495-20baff896eff",
                "name": "Niko Köbler"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "466778",
            "title": "TypeScript: Typsicherheit bis in den letzten Winkel",
            "description": "Immer mehr Bibliotheken bieten ex­zel­lenten TypeScript-Support mit vollständig typsicheren APIs an, bei denen die Verwender selbst gar keine Typangaben oder Typdefinitionen schreiben zu müssen! \r\nDazu bietet TypeScript eine Art eigene Meta-Programmiersprache an, mit der Typen dynamisch \"programmiert\" werden können. \r\n\r\nIn diesem Vortrag zeige ich, wie Du diese Meta-Programmiersprache selbst für deinen eigenen Code nutzten kannst, so dass auch dessen Verwender von hoher Typsicherheit profitieren können, ohne dass diese selbst Typ-Angaben machen müssen. Dazu werden wir uns unter anderem mit Mapped Types, Utility Types und Conditional Types beschäftigen und sehen, für welche Anwendungsfälle sie jeweils geeignet sind.\r\n\r\nNach diesem Vortrag hast Du einen Einblick in das mächtige, aber auch komplexe Typsystem von TypeScript und hast potentielle Lösungen für eine Reihe typischer und weniger typischer Herausforderungen. Und auch wenn Du nicht alle gelernten Features jeden Tag bei deiner Arbeit einsetzt, hast Du ein gutes Verständnis, wie TypeScript \"tickt\", so dass Du das Verhalten von TypeScript auch bei Problemen in bestehendem Code gut nachvollziehen kannst.",
            "startsAt": "2023-09-28T15:00:00",
            "endsAt": "2023-09-28T16:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "b90317c9-5fd7-4f10-b20a-30e216b29fd1",
                "name": "Nils Hartmann"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "471626",
            "title": "Real-life IoT – wie User Experience robust genug für den Shopfloor wird",
            "description": "Mit wenigen Features lässt sich eine Anwendung einfach und selbsterklärend gestalten. Aber ist das wirklich immer so? Bei Industrie-4.0-Anwendungen haben wir gelernt, dass es nicht nur wenige Features sein müssen, sondern die richtigen.\r\n\r\nGanz nach dem Motto „Eine Oberfläche ist wie ein Witz: Wenn man ihn erklären muss, ist er nicht witzig“. Anhand einer IoT-Anwendung zur Zählung von Massenteilen möchte ich aufzeigen, wie kleine Anpassungen der UX zu einem besseren Verständnis und somit zur Akzeptanz der Anwendung geführt haben. Von der Low-Code-Anwendung zur Eigenentwicklung: Das Reporting von Massenteilen ist nicht mehr einen weiten und teilweise risikoreichen Weg zur Waage entfernt, sondern nur noch wenige Klicks.",
            "startsAt": "2023-09-28T16:20:00",
            "endsAt": "2023-09-28T17:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "832a65d0-1405-4776-b6ba-841ec6e1675f",
                "name": "Jennifer Müller"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          }
        ],
        "hasOnlyPlenumSessions": false
      },
      {
        "id": 37970,
        "name": "Voltaire (3.OG)",
        "sessions": [
          {
            "id": "479622",
            "title": "Cypress überall - Ein einziges Automatisierungswerkzeug für alle Teststufen?!",
            "description": "Cypress ist ursprünglich als Alternative zu Selenium gestartet. Inzwischen füllt es mit Component Testing auch die Lücke zwischen Unit- und End-2-End-Tests in der Webentwicklung, die bisher nur ungenügend besetzt war.\r\nLässt man Cypress Component Tests in sein Projekt, dann automatisieren sie schnell nicht nur Komponententests, sondern bieten sich auch als Ersatz für typische Unit-Test-Werkzeuge wie Jest an.\r\nKann Cypress wie ein Schweizer Taschenmesser wirklich den kleinen Zoo der bisher verwendeten Werkzeuge ablösen? Wir haben es ausprobiert und berichten über Erfahrungen positiver Art, aber auch über die Grenzen, an die wir gestoßen sind.",
            "startsAt": "2023-09-28T10:20:00",
            "endsAt": "2023-09-28T11:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "7eed7f95-231f-464d-b5f3-2e732b59689c",
                "name": "Dehla Sokenou"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "488171",
            "title": "Mixed Reality APPs with Code Only",
            "description": "Using the open-source library StereoKit it is easy and fast to create applications for PC-VR Headsets or Standalone OpenXR devices like Meta Quest or HoloLens 2.\r\nIn this session, I'll show how little code is needed to get started building for Mixed Reality. During the half-hour talk, we create the project, add some content, deploy it to HoloLens 2 and show the result. In addition, I'll bring a little more advanced application built with the same libraries and though show some more advanced features. A brief introduction to Mixed Reality, in general, will be included in the beginning.",
            "startsAt": "2023-09-28T11:40:00",
            "endsAt": "2023-09-28T12:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "370d5d74-1bcd-4dc3-835a-067ff218bc10",
                "name": "Chris Papenfuß"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "494740",
            "title": "How to Tech-Stack: Technologieauswahl für wartbare Projekte",
            "description": "Geht es dir vielleicht auch manchmal so: Du sitzt vor einem weißen Blatt Papier und weißt nicht, was du schreiben sollst? Oder du möchtest den Text überarbeiten, und bist dir unsicher, ob du es verschlimmerst?\r\n\r\nOft geht es Entwicklern und Architekten in Projekten genauso. Soll Jakarta, Spring, Micronaut oder Quarkus genutzt werden?! Soll ich die Datenbank mit JOOQ, Hibernate, Spring Data oder … ansprechen? Diese Themen der Technologieauswahl ist oft ein Streitpunkt. Bei den Argumenten zu diesem Techstack, werden oft unbewiesene Theorien aufgestellt, was nun am besten sei.\r\n\r\nEin Thema, welches wir aus langlebigen Projekten kennen ist, dass der Techstack für eine lange Wartbarkeit eine entscheidende Rolle spielt. Hier spielen u.a. Update-Herausforderungen eine Rolle, da sich Probleme mit transitiv genutzten Abhängigkeiten ergeben.\r\nEin weiteres Thema, welches häufig bei der Auswahl der Technologien vernachlässigt wird, ist der Zusammenhang zwischen Technologien und deren Nutzung im Programm. So erlauben es nicht alle Lizenzen, eine Bibliothek in eine geshadete Fat-Jar zu stellen.\r\n\r\nIn dem Vortrag werden einige Beispiele betrachtet, die die Herausforderungen aufzeigen und anschließend Heuristiken gegeben, die bei der Bewertung von Frameworks, Bibliotheken und Tools helfen. ",
            "startsAt": "2023-09-28T13:40:00",
            "endsAt": "2023-09-28T14:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "2d4eeede-8921-4650-9596-1697e20c1305",
                "name": "Thomas Ruhroth"
              },
              {
                "id": "8091b1dd-3716-480c-964d-51daaf6efa12",
                "name": "Kai Schmidt"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "475823",
            "title": "Quick-Response Kubernetes Dev-Workflow",
            "description": "We'd like to share our experiences of developing (JVM based) applications that are run in Kubernetes even on the local dev machines courtesy of minikube.\r\n\r\nWe will report on\r\n- why it is good to use Kubernetes as early as possible\r\n- how to achieve quick development cycles with Maven and Gradle\r\n- powerful system tests with quick feedback\r\n- a better understanding of the production environment\r\n- as well as all the other challenges and gains we experienced.",
            "startsAt": "2023-09-28T15:00:00",
            "endsAt": "2023-09-28T16:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "b277cde8-bd18-467e-9ccf-1f11d744bd51",
                "name": "Immanuel Sims"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "491891",
            "title": "Evaluating the Environmental Footprint of X-Road",
            "description": "X-Road® is open-source software and ecosystem solution that provides unified and secure data exchange between organisations. The basic idea of X-Road is that members of an ecosystem exchange data through access points (Security Servers) that implement the same technical specifications.\r\n\r\nX-Road is a digital public good verified by the Digital Public Goods Alliance, and it’s released under the MIT open source license and is available free of charge. X-Road is used as a national data exchange solution in Estonia, Finland, Iceland and many other countries around the world.\r\n\r\nTo better understand the direct and tangible environmental impacts of the use of X-Road, the current emissions profile across X-Road’s operations and services was assessed by a research project. As a result, an emissions calculator to assess X-Road's environmental footprint was built. The calculator gives a clear picture of the total carbon footprint of X-Road, as well as its individual components.\r\n\r\nThe calculations used in the process were derived from peer-reviewed literature and tailored to X-Road use cases in Estonia and Finland. However, the emissions calculator is comprehensive enough to perform calculations for any X-Road instance residing in any region.\r\n\r\nIn my talk, I'm going to give an overview of X-Road first. Then, I'm going to discuss the research project, its different phases and deliverables. The main scope of the presentation is to discuss how to evaluate environmental footprint of an open-source software and what are the key elements that affect the result.",
            "startsAt": "2023-09-28T16:20:00",
            "endsAt": "2023-09-28T17:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "e9673db8-cff7-4cf7-847a-3d7ed5b63605",
                "name": "Petteri Kivimäki"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          }
        ],
        "hasOnlyPlenumSessions": false
      }
    ],
    "timeSlots": [
      {
        "slotStart": "08:00:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "e1e1674f-aa1c-47ec-8ccb-8d61f609d9e2",
              "title": "Einlass",
              "description": null,
              "startsAt": "2023-09-28T08:00:00",
              "endsAt": "2023-09-28T09:00:00",
              "isServiceSession": true,
              "isPlenumSession": true,
              "speakers": [],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": null,
              "isInformed": false,
              "isConfirmed": false
            },
            "index": 0
          }
        ]
      },
      {
        "slotStart": "09:00:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "480250",
              "title": "Architektur: Den menschlichen Faktor verbessern!",
              "description": "Gute Software-Architektur strukturiert komplexe Software-Systeme so übersichtlich, dass Menschen sie verstehen und weiterentwickeln können. Also geht es bei der Software-Architektur um den Faktor Mensch. Deswegen kann sich Architektur aber nicht auf Maßnahmen für die Strukturierung der Software begrenzen, sondern muss sich auch mit den Menschen beschäftigen. In diesem Vortrag geht es um einige konkrete Ansätze und Erfahrungen, die Entwicklung durch Maßnahmen in Bezug auf den Faktor Mensch zu verbessern.",
              "startsAt": "2023-09-28T09:00:00",
              "endsAt": "2023-09-28T10:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "4750ed21-fcda-4dc5-9fe5-1a6fca25cd8c",
                  "name": "Eberhard Wolff"
                }
              ],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 0
          },
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "548211",
              "title": "Fullstack React-Anwendungen am Beispiel Next.js",
              "description": "Das React Team empfiehlt seit einigen Monaten offiziell den Einsatz eines Fullstack-Frameworks wie Next.js, Remix oder Gatsby für die Entwicklung von React-Anwendungen, so dass einige schon von einer \"Neuausrichtung\" von React (weg von der klassischen Single-Page-Anwendung) sprechen.\r\n\r\nIn diesem Vortrag möchte ich Euch die Gründe dafür erklären und anhand einer kleinen Beispiel-Anwendung Schritt-für-Schritt zeigen, was es für Code, Architektur und Deployment bedeutet, \"Fullstack\"-Anwendungen mit React und exemplarisch Next.js zu bauen.\r\n\r\nFür den Vortrag sind React-Kenntnisse hilfreich, die Ideen und Konzepte, die wir besprechen, versteht ihr aber auch, wenn ihr z.B. Angular oder Vue verwendet.",
              "startsAt": "2023-09-28T09:00:00",
              "endsAt": "2023-09-28T10:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "b90317c9-5fd7-4f10-b20a-30e216b29fd1",
                  "name": "Nils Hartmann"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "483571",
              "title": "Wieso ist meine Anwendung eigentlich so langsam?",
              "description": "Wer kennt nicht die Situation, dass sich eine Java-Anwendung Performance-technisch nicht ganz so gut verhält, wie man sich das eigentlich wünscht.\r\n\r\nWaren früher zur Analyse solcher Probleme kommerzielle Tools erforderlich, steht inzwischen mit dem async-profiler ein mächtiges Open-Source-Werkzeug zur Verfügung, um Performance-Problemen in Java-Anwendungen auf den Grund gehen zu können.\r\n\r\nDieser Vortrag zeigt anhand eines Beispiels, wie diese Performanceanalyse mit dem async-profiler in der Praxis funktioniert. Dabei beleuchtet er die häufigsten Einsatzgebiete: Das Profiling von CPU, Locks und Memory.\r\n\r\nZu gu­ter Letzt stellen wir eine Möglichkeit vor, mittels Pyroscope ein kontinuierliches Profiling im Betrieb durchzuführen, um im Störungsfall beispielsweise auf historische Daten zurückgreifen zu können.",
              "startsAt": "2023-09-28T09:00:00",
              "endsAt": "2023-09-28T10:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "6df29349-aab1-4ee5-b09e-ac6072297237",
                  "name": "Thilo-Alexander Ginkel"
                },
                {
                  "id": "3d39a381-e831-4be3-bb7d-07ddb819f8c7",
                  "name": "Stefan Reuter"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          }
        ]
      },
      {
        "slotStart": "10:20:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "473856",
              "title": "Architekturexplizite Java-Applikationen mit jMolecules",
              "description": "Java-Applikationen basieren gewöhnlicherweise auf einem Framework oder einer Entwicklungsplattform. Einige davon erlauben es,  architektonische Konzepte auszudrücken. Diese jedoch direkt in Code abzubilden, bleibt meist eine Herausforderung, ebenso wie die Trennung von fachlichem Code und Applikationsframework.\r\n\r\njMolecules ist eine Framework-unabhängige Bibliothek die es erlaubt, verbreitete, architektonische Konzepte direkt in Code darzustellen, zu überprüfen, ob Regeln bezüglich der Implementierung dieser eingehalten werden und die nötige technische Integration, sowie entsprechende Dokumentation abzuleiten.\r\n\r\nDer Vortrag gibt einen Überblick über den grundsätzlichen Ansatz und zeigt, wie Entwickler:innen die bereitgestellten Abstraktionen nutzen können. Darüber hinaus wird konkrete Integration mit Spring, Jackson und JPA sowie die Generierung von Dokumentation am praktischen Beispiel gezeigt.",
              "startsAt": "2023-09-28T10:20:00",
              "endsAt": "2023-09-28T11:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "6c4698c8-1a2f-436b-a5f4-3770e0bd3e20",
                  "name": "Oliver Drotbohm"
                }
              ],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 0
          },
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "493276",
              "title": "Reactive Programming - Königs- oder Irrweg?",
              "description": "Anwendungen sind nicht unbegrenzt multitasking-fähig. Anfragen zu blockieren, bis das Ergebnis feststeht, bedeutet viele Treads. Viele Threads verbrauchen viele Ressourcen. Der vermeintliche Ausweg und derzeitiges Silver-Bullet: Reactive Programming. Damit sparen wir Threads bis zum Ultimo, schreiben dafür Programmcode, den wir teilweise selbst nach 2 Wochen nicht mehr verstehen, und handeln uns andere Schwierigkeiten - pardon: Anforderungen ein, die wir vorher gar nicht hatten. Wir betrachten in diesem Talk aktuelle Lösungen reaktiver Programmierung bspw. in Quarkus und Helidon, bewerten Programmcode sowie Laufzeitvorteile und vergleichen das Ganze mit Lösungen auf Basis virtueller Threads (Project Loom) mit gradlinigem Programmcode.",
              "startsAt": "2023-09-28T10:20:00",
              "endsAt": "2023-09-28T11:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "c7b1cea4-bdc5-4b07-a2af-38ad8b3dc463",
                  "name": "Dirk Weil"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "472095",
              "title": "Practical introduction to OpenTelemetry tracing",
              "description": "Tracking a request’s flow across different components in distributed systems is essential. With the rise of microservices, their importance has risen to critical levels. Some proprietary tools for tracking have been used already: Jaeger and Zipkin naturally come to mind.\r\n\r\nObservability is built on three pillars: logging, metrics, and tracing. OpenTelemetry is a joint effort to bring an open standard to them. Jaeger and Zipkin joined the effort so that they are now OpenTelemetry compatible.\r\n\r\nIn this talk, I’ll describe the above in more detail and showcase a (simple) use case to demo how you could benefit from OpenTelemetry in your distributed architecture.",
              "startsAt": "2023-09-28T10:20:00",
              "endsAt": "2023-09-28T11:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "9c904945-768e-4597-b942-6be90cf4d731",
                  "name": "Nicolas Fränkel"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "479622",
              "title": "Cypress überall - Ein einziges Automatisierungswerkzeug für alle Teststufen?!",
              "description": "Cypress ist ursprünglich als Alternative zu Selenium gestartet. Inzwischen füllt es mit Component Testing auch die Lücke zwischen Unit- und End-2-End-Tests in der Webentwicklung, die bisher nur ungenügend besetzt war.\r\nLässt man Cypress Component Tests in sein Projekt, dann automatisieren sie schnell nicht nur Komponententests, sondern bieten sich auch als Ersatz für typische Unit-Test-Werkzeuge wie Jest an.\r\nKann Cypress wie ein Schweizer Taschenmesser wirklich den kleinen Zoo der bisher verwendeten Werkzeuge ablösen? Wir haben es ausprobiert und berichten über Erfahrungen positiver Art, aber auch über die Grenzen, an die wir gestoßen sind.",
              "startsAt": "2023-09-28T10:20:00",
              "endsAt": "2023-09-28T11:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "7eed7f95-231f-464d-b5f3-2e732b59689c",
                  "name": "Dehla Sokenou"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "11:40:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "472594",
              "title": "Misserfolge und Lehren bei der Anwendung von DDD: Beispiele aus der realen Welt",
              "description": "Domain-Driven Design ist kein Patentrezept und löst kein Problem auf magische Weise. Die Herausforderungen und die Komplexität, die wir mit DDD zu bewältigen versuchen, sind schwierig und es gibt keinen einfachen Lösungsansatz. Nichtsdestotrotz gibt es eine wachsende Popularität und Wertschätzung für das Thema auf dem Markt, was zu überhöhten Erwartungen und schließlich zu Enttäuschungen führen kann.\r\n\r\nDer Referent dieses Vortrags arbeitet seit 17 Jahren mit Domain-Driven Design an vielen Softwaresystemen und dieser Vortrag handelt von meinen Erfahrungen mit dem Scheitern. Glauben Sie mir: Ich bin oft gescheitert, aber es gibt immer eine Gelegenheit etwas daraus zu lernen. Der Vortrag zielt darauf ab, Ihnen die Möglichkeit zu geben, aus den Fehlern von mir als Berater und den Teams/Organisationen, mit denen ich gearbeitet habe, zu lernen.\r\n\r\nDer Vortrag behandelt Themen wie:\r\n- Domain-Driven Design im Wasserfall\r\n- Ignoranz für Code (aka nur Fokus auf strategisches Design)\r\n- Übermäßiger Gebrauch von Mustern um ihrer selbst willen\r\n- Kulturelle Implikationen\r\n- Cargo-Kult\r\n- Developer Experience\r\n- Eingeschränkte Verfügbarkeit von Fachexperten\r\n- Umgang mit etablierten Modellierungstechniken/Methoden\r\n- Unkenntnis über die Definitionen/Bedeutung von Heuristiken und Mustern\r\n\r\nDieser Vortrag zielt darauf ab, Ihnen eine Sensibilität für potentielle Gefahren zu vermitteln, wenn Sie versuchen, DDD für Ihr Team und Ihre Organisation einzuführen und wird nur reale Situationen beschreiben, die tatsächlich passiert sind. Jeder beschriebene Misserfolg wird mit einer Erkenntnis darüber einhergehen, wie man es besser machen kann.\r\n\r\nEs handelt sich um einen interaktiven Vortrag, bei dem Ihnen, dem Publikum, Fragen und Umfragen (über ein Online-Tool) gestellt werden. Sie werden sich beteiligen können.",
              "startsAt": "2023-09-28T11:40:00",
              "endsAt": "2023-09-28T12:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "c41a4363-aedb-42e0-8495-86be6c23107d",
                  "name": "Michael Plöd"
                }
              ],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 0
          },
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "476118",
              "title": "So viel Architekturarbeit wie nötig",
              "description": "Die von uns gebauten Anwendungen werden immer anspruchsvoller. Der Einsatz von modernen Architekturstilen und Arbeitsweisen (DevOps) kann helfen, aber wird auch zum Teil des Problems. Gerade deshalb braucht es eine stabile und verlässliche Softwarearchitekturbasis. Denn die Architektur sollte der Fels in der Brandung des wogenden Projektgeschehens sein. In diesem Vortrag diskutieren wir, wie ihr zielgerichtet vorgehen, ohne Overengineering sowie bei bestmöglicher Risikoabschätzung Entscheidungen treffen und so eure Software möglichst flexibel entwickeln sowie für alle Stakeholder transparent festhalten könnt. Explizite Softwarearchitekturarbeit ist essenziell, muss aber nicht schwer sein.",
              "startsAt": "2023-09-28T11:40:00",
              "endsAt": "2023-09-28T12:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "2fa7d3c1-e216-4dc8-b05c-f94fe34390e7",
                  "name": "Falk Sippach"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "455894",
              "title": "Decoupling FE and BE Teams with a UI Schema",
              "description": "Large to mid-sized, cross-functional development teams are seen as the norm in today's development departments. In practice, however, team sizes tend to get smaller over time as applications go into operation and maintenance mode. Sometimes, dedicated front-end (FE) and back-end (BE) teams remain, with fewer people available than during inital development phases. This talks describes an approach that was born out of constraints like these. \r\n\r\nA declarative UI schema can serve as a contract between FE and BE teams. A schema interpreter in an FE implementation and a schema specification defined by the BE can shield FEs from a larger number of smaller, day-to-day changes in data representations.\r\n\r\nThis approach constitutes a compromise that can reduce time-to-market for many smaller features. It allows some of the expressive power desirable in modern single-page front-ends, and separating concerns to reduce the coupling between teams and their respective release strategies.",
              "startsAt": "2023-09-28T11:40:00",
              "endsAt": "2023-09-28T12:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "9ebb731a-6465-40e9-bca6-bb0742e22b83",
                  "name": "Gerald Brose"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "488171",
              "title": "Mixed Reality APPs with Code Only",
              "description": "Using the open-source library StereoKit it is easy and fast to create applications for PC-VR Headsets or Standalone OpenXR devices like Meta Quest or HoloLens 2.\r\nIn this session, I'll show how little code is needed to get started building for Mixed Reality. During the half-hour talk, we create the project, add some content, deploy it to HoloLens 2 and show the result. In addition, I'll bring a little more advanced application built with the same libraries and though show some more advanced features. A brief introduction to Mixed Reality, in general, will be included in the beginning.",
              "startsAt": "2023-09-28T11:40:00",
              "endsAt": "2023-09-28T12:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "370d5d74-1bcd-4dc3-835a-067ff218bc10",
                  "name": "Chris Papenfuß"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "12:00:00",
        "rooms": [
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "471157",
              "title": "Power Structures. The Fair Advantage",
              "description": "Have you ever been in the following situation? You know for certain that you are technically right. Your project has to be done for the benefit of the company. But you cannot convince your boss for whatever reason. You are stuck. - This might be the glorious moment of informal structures and networking. You will need to know whom else to talk to. Whom you can trust and who has the power to convince your boss? The best answer will rarely be found in formal organisational structure.\r\n\r\nAs developers, we often think in models and charts. We are used to formalize worded requests into code and structures to solve problems. And we are good at it. But what you cannot fully put into models are humans and human behavior. This is also true for the human interactions inside companies and networks. Organigrams never tell the truth about an organisation. Power and influence is more complex than formal structures can describe.\r\n\r\nIn this talk, I wanna dive into how human interactions inside companies are at the same time complex, powerful and worth exploring.\r\n\r\nDisclaimer: This is no talk about unfair techniques. I will not provide you dark magic. My goal is to provide you the knowledge how to fairly play in a complex world.",
              "startsAt": "2023-09-28T12:00:00",
              "endsAt": "2023-09-28T12:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "7e83763c-f32c-41e3-bffd-d47cb834c457",
                  "name": "Anja Kunkel"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          }
        ]
      },
      {
        "slotStart": "12:20:00",
        "rooms": [
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "494785",
              "title": "Single Responsibility Principle - unterschätzt und missverstanden",
              "description": "\"Singe Responsibility Principle - a class should have only one reason to change\". Diese Definition wurde durch Robert C. Martin aka Uncle Bob schon in zwei Versionen formuliert. Bei Reviews und Coaching von Teams habe ich beobachtet, dass dieses Architektur-Prinzip seit 2003 soviel unterschätzt wird wie missverstanden. \r\n\r\nDas Ergebnis sind solche Klassen wie \"UserService\" mit 5kLOC Code.\r\nDieser Talk erklärt ein UseCase und danach die Anwendung / Refactoring mit dem Single Responsibility Principle. Des Weiteren wird der neue Begriff \"Single Ownership Principle\" eingeführt.",
              "startsAt": "2023-09-28T12:20:00",
              "endsAt": "2023-09-28T12:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "aaa140bf-0f68-49b3-8e9c-9c5d71c39739",
                  "name": "Nodirbek Usmanov"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          }
        ]
      },
      {
        "slotStart": "12:40:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "394b91c5-1fb7-44e0-9cd3-c2fe74088918",
              "title": "Mittag",
              "description": null,
              "startsAt": "2023-09-28T12:40:00",
              "endsAt": "2023-09-28T13:40:00",
              "isServiceSession": true,
              "isPlenumSession": true,
              "speakers": [],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": null,
              "isInformed": false,
              "isConfirmed": false
            },
            "index": 0
          }
        ]
      },
      {
        "slotStart": "13:40:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "476867",
              "title": "Looming Changes in Java Concurrency",
              "description": "Project Loom, expected to be delivered in final form in Java 21, brings \"virtual\" threads to the Java platform. After an introduction to the concepts of virtual threads, structured concurrency, and extent locals, the talk focuses on the implications for programmers. Why should you care about Loom if you will never run a million concurrent tasks? How do you choose between virtual and platform threads? When blocking is cheap, is there still a benefit to reactive programming? Which parts of \"Concurrency in Practice\" are now outdated, and what is still relevant? What concurrent synchronization mechanisms and design patterns should you favor?  How do you debug and profile virtual threads? What pitfalls do you need to recognize when transforming your current code to take advantage of virtual threads? How do you structure new code? This pragmatic presentation provides a perspective beyond the \"what\" of Project Loom and into the \"why\" and \"how\". ",
              "startsAt": "2023-09-28T13:40:00",
              "endsAt": "2023-09-28T14:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "bbb8702d-0637-4c8e-ae97-45bde0d6b3a8",
                  "name": "Cay Horstmann"
                }
              ],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 0
          },
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "491138",
              "title": "My Home is my Office – Schöne neue Welt?",
              "description": "Drei Jahre nach dem Ausbruch der Pandemie haben wir viel Erfahrung mit dem Thema HomeOffice gesammelt. Langsam kehrt überall wieder Normalität ein, doch am Arbeitsplatz bleibt die Frage, wie es auf Dauer weitergehen soll. Wollen wir zurück ins Büro oder lieber im Homeoffice bleiben? \r\n\r\nMich hat interessiert, welche Faktoren in unsere individuelle Vorliebe für ein Arbeitsplatzmodell hineinspielen. Ich wollte wissen, ob die Persönlichkeit eines Menschen ausschlaggebend ist oder ob vielleicht die Position innerhalb des Teams einen Einfluss darauf hat. Dafür habe ich Personen befragt und Studien zu diesem Thema recherchiert. Die Ergebnisse stelle ich euch ebenso vor wie meine ganz persönliche Geschichte. Dabei werfen wir auch einen Blick auf ein bestehendes hybrides Modell, das zum Ziel hat, allen Bedürfnissen gerecht zu werden. \r\n\r\nDieser Talk gibt euch Fakten, Ideen und mögliche Antworten mit auf die Frage(n): Wer will wann wie und warum wo arbeiten und vor allem: Wie bringen wir alle unter einen Hut?\r\n",
              "startsAt": "2023-09-28T13:40:00",
              "endsAt": "2023-09-28T14:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "895ba3c2-7560-48b6-be79-60f025465e7a",
                  "name": "Katrin Rabow"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "468791",
              "title": "FIDO Passkeys - in Zukunft ohne Passwort",
              "description": "Passwörter sind mühsam und unsicher. Menschen können sie sich merken und schreiben sie auf Post-Its und in Anwendungen werden sie unverschlüsselt oder schlecht geschützt gespeichert. Ein Selbstbedienungsladen für alle Hacker. \r\n\r\nErsetzt werden sollen sie deshalb durch Fido Passkeys. Fido steht für „Fast Identity Online“ und ist eine Allianz aus Tech-Konzernen, allen voran Microsoft, Google und Apple. Der Begriff in Anlehnung an das Passwort, steht als Beschreibung für „Multi-Device Fido Credentials“, bei der eine sichere Authentifizierung mittels kryptografischer Schlüssel erfolgt. Klingt sperrig und kompliziert, soll im Alltag aber deutlich einfacher und sicherer sein als das Passwort.\r\n\r\nIch erkläre in meinem Vortrag, wie Passkeys funktionieren und weshalb ein Passwort-Manager vielleicht doch noch nicht ausgedient hat.",
              "startsAt": "2023-09-28T13:40:00",
              "endsAt": "2023-09-28T14:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "ef54265f-c9ff-45d2-a495-20baff896eff",
                  "name": "Niko Köbler"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "494740",
              "title": "How to Tech-Stack: Technologieauswahl für wartbare Projekte",
              "description": "Geht es dir vielleicht auch manchmal so: Du sitzt vor einem weißen Blatt Papier und weißt nicht, was du schreiben sollst? Oder du möchtest den Text überarbeiten, und bist dir unsicher, ob du es verschlimmerst?\r\n\r\nOft geht es Entwicklern und Architekten in Projekten genauso. Soll Jakarta, Spring, Micronaut oder Quarkus genutzt werden?! Soll ich die Datenbank mit JOOQ, Hibernate, Spring Data oder … ansprechen? Diese Themen der Technologieauswahl ist oft ein Streitpunkt. Bei den Argumenten zu diesem Techstack, werden oft unbewiesene Theorien aufgestellt, was nun am besten sei.\r\n\r\nEin Thema, welches wir aus langlebigen Projekten kennen ist, dass der Techstack für eine lange Wartbarkeit eine entscheidende Rolle spielt. Hier spielen u.a. Update-Herausforderungen eine Rolle, da sich Probleme mit transitiv genutzten Abhängigkeiten ergeben.\r\nEin weiteres Thema, welches häufig bei der Auswahl der Technologien vernachlässigt wird, ist der Zusammenhang zwischen Technologien und deren Nutzung im Programm. So erlauben es nicht alle Lizenzen, eine Bibliothek in eine geshadete Fat-Jar zu stellen.\r\n\r\nIn dem Vortrag werden einige Beispiele betrachtet, die die Herausforderungen aufzeigen und anschließend Heuristiken gegeben, die bei der Bewertung von Frameworks, Bibliotheken und Tools helfen. ",
              "startsAt": "2023-09-28T13:40:00",
              "endsAt": "2023-09-28T14:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "2d4eeede-8921-4650-9596-1697e20c1305",
                  "name": "Thomas Ruhroth"
                },
                {
                  "id": "8091b1dd-3716-480c-964d-51daaf6efa12",
                  "name": "Kai Schmidt"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "15:00:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "489430",
              "title": "Wie, schon wieder ein LTS Release? Was erwartet dich mit JDK 21",
              "description": "Das letzte JDK mit long-term Support, 17, steht uns seit September 2021 zur Verfügung und doch steht im September 2023 mit JDK 21 das Nächste in den Startlöchern.\r\nAber das sind doch nur zwei Jahre, sollte nicht alle drei Jahre ein LTS Release erscheinen? Doch, das war der Plan, aber Oracle hat sich 2021 entschieden den Zeitraum zu verkürzen und die anderen Hersteller sind nachgezogen. Zeit also, dass wir uns damit beschäftigen, was sich seit JDK 17 geändert hat.\r\nDieser Vortrag zeigt dir alle, relevanten, Änderungen, die dich mit JDK 21 in deinem Alltag erwarten. Neben ein paar Folien werden wir uns dabei die größte Zeit in der IDE aufhalten, um diese Änderungen am praktischen Beispiel zu sehen.",
              "startsAt": "2023-09-28T15:00:00",
              "endsAt": "2023-09-28T16:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "bcb3221c-6a1c-46b0-a56c-25608382fc0d",
                  "name": "Michael Vitz"
                }
              ],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 0
          },
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "472588",
              "title": "Module richtig schneiden mithilfe von Domain-Driven Design",
              "description": "Bounded Contexts gehören zum strategischen Domain-Driven Design und sind derzeit in aller Munde. Viele Teams versprechen sich durch die Modularisierung mit Bounded Contexts einen guten fachlichen Schnitt für ihre Software. Es stellt sich jedoch häufig die Frage, wie wir denn überhaupt zu einem guten Bounded-Context-Schnitt kommen.\r\n\r\nGenau um diese Frage dreht sich der Vortrag. Ich werde zeigen, wie man mithilfe kollaborativer Modellierungsmethoden (z.B. Event Storming) eine Abgrenzung seiner Problemdomäne erreichen kann und wie man von dort unter Berücksichtigung verschiedener Perspektiven (Regeln, Sprache, Schnittstellen, etc.) zu einem ausgewogenen Bounded-Context-Schnitt kommt.",
              "startsAt": "2023-09-28T15:00:00",
              "endsAt": "2023-09-28T16:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "c41a4363-aedb-42e0-8495-86be6c23107d",
                  "name": "Michael Plöd"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "466778",
              "title": "TypeScript: Typsicherheit bis in den letzten Winkel",
              "description": "Immer mehr Bibliotheken bieten ex­zel­lenten TypeScript-Support mit vollständig typsicheren APIs an, bei denen die Verwender selbst gar keine Typangaben oder Typdefinitionen schreiben zu müssen! \r\nDazu bietet TypeScript eine Art eigene Meta-Programmiersprache an, mit der Typen dynamisch \"programmiert\" werden können. \r\n\r\nIn diesem Vortrag zeige ich, wie Du diese Meta-Programmiersprache selbst für deinen eigenen Code nutzten kannst, so dass auch dessen Verwender von hoher Typsicherheit profitieren können, ohne dass diese selbst Typ-Angaben machen müssen. Dazu werden wir uns unter anderem mit Mapped Types, Utility Types und Conditional Types beschäftigen und sehen, für welche Anwendungsfälle sie jeweils geeignet sind.\r\n\r\nNach diesem Vortrag hast Du einen Einblick in das mächtige, aber auch komplexe Typsystem von TypeScript und hast potentielle Lösungen für eine Reihe typischer und weniger typischer Herausforderungen. Und auch wenn Du nicht alle gelernten Features jeden Tag bei deiner Arbeit einsetzt, hast Du ein gutes Verständnis, wie TypeScript \"tickt\", so dass Du das Verhalten von TypeScript auch bei Problemen in bestehendem Code gut nachvollziehen kannst.",
              "startsAt": "2023-09-28T15:00:00",
              "endsAt": "2023-09-28T16:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "b90317c9-5fd7-4f10-b20a-30e216b29fd1",
                  "name": "Nils Hartmann"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "475823",
              "title": "Quick-Response Kubernetes Dev-Workflow",
              "description": "We'd like to share our experiences of developing (JVM based) applications that are run in Kubernetes even on the local dev machines courtesy of minikube.\r\n\r\nWe will report on\r\n- why it is good to use Kubernetes as early as possible\r\n- how to achieve quick development cycles with Maven and Gradle\r\n- powerful system tests with quick feedback\r\n- a better understanding of the production environment\r\n- as well as all the other challenges and gains we experienced.",
              "startsAt": "2023-09-28T15:00:00",
              "endsAt": "2023-09-28T16:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "b277cde8-bd18-467e-9ccf-1f11d744bd51",
                  "name": "Immanuel Sims"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "16:20:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "492392",
              "title": "Software-Archäologie - Was wir von der Mondlandefähre lernen können!",
              "description": "Die Mondlandung ist gut 50 Jahre her und die Menschheit plant erneut große Raumfahrtprogramme. Bei der ersten Mondlandung hat die IT eine wesentliche Rolle gespielt und es wurden wichtige Fundamente des Software Engineering geschaffen. Der Begriff selbst wurde von Margaret Hamilton während der Entwicklung des Apollo Guidance Computer (AGC), des Steuermoduls der Mondlandefähre, geprägt.\r\n \r\nIch möchte etwas Software-Archäologie betreiben und mit einem Rückblick auf die bahnbrechenden Erfindungen des AGC einen Kontrastpunkt zum Technologie-Hype setzen. Für eines der ersten eingebetteten Systeme wurden Prioritätsscheduling, Multitasking und ein Echtzeitbetriebssystem entwickelt. Eine der ersten virtuellen Maschinen stellte mathematische Funktionen bereit und abstrahierte von der Hardware. Ein wesentlicher Erfolgsfaktor war die Robustheit der Software, die sich durch eine gute Fehlerbehandlung auszeichnete und vor Bedienungsfehlern abgesichert wurde, nachdem Hamiltons Tochter beim Herumspielen mit dem AGC einen Absturz verursacht hatte. Diese Eigenschaft kam Minuten vor der Landung zum Tragen und bewahrte die Mission vor dem Abbruch. Werfen wir einen Blick zurück in die Zukunft!",
              "startsAt": "2023-09-28T16:20:00",
              "endsAt": "2023-09-28T17:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "873413f6-5964-4a6a-a07d-9095dc4600e2",
                  "name": "Tobias Voß"
                }
              ],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 0
          },
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "473859",
              "title": "Spring Modulith – Spring für architekturinteressierte Entwickler:innen",
              "description": "Die Architektur und das Design einer Applikation beeinflussen ihre Wartbarkeit, Testbarkeit und Qualität im Allgemeinen. Spring war schon immer ein vielseitiges Werkzeug, das Architekt:innen dabei unterstützt, Muster zu implementieren, mithilfe derer technische Bausteine der Applikation mit Domänenkonzepten und -grenzen verknüpft werden können. Es erlaubt Entwickler:innen Anwendungen zu schreiben, die ihre architektonischen Ideen deutlich reflektieren und so ultimativ änder- und damit wartbarere Anwendungen zu schreiben. Schlüsselaspekte dahin gehend sind Codeorganisation, das Spring-Bean-Arrangement und die Nutzung von Domänen-Events, um fachlich individuelle Teile der Applikation voneinander zu entkoppeln.\r\n\r\nDer Vortrag diskutiert diese Muster und Ansätze und stellt Spring Moduliths vor, um zu zeigen, wie Entwickler:innen in die Lage versetzt werden, besonders gut strukturierte und wartbare Anwendungen zu schreiben.",
              "startsAt": "2023-09-28T16:20:00",
              "endsAt": "2023-09-28T17:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "6c4698c8-1a2f-436b-a5f4-3770e0bd3e20",
                  "name": "Oliver Drotbohm"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "471626",
              "title": "Real-life IoT – wie User Experience robust genug für den Shopfloor wird",
              "description": "Mit wenigen Features lässt sich eine Anwendung einfach und selbsterklärend gestalten. Aber ist das wirklich immer so? Bei Industrie-4.0-Anwendungen haben wir gelernt, dass es nicht nur wenige Features sein müssen, sondern die richtigen.\r\n\r\nGanz nach dem Motto „Eine Oberfläche ist wie ein Witz: Wenn man ihn erklären muss, ist er nicht witzig“. Anhand einer IoT-Anwendung zur Zählung von Massenteilen möchte ich aufzeigen, wie kleine Anpassungen der UX zu einem besseren Verständnis und somit zur Akzeptanz der Anwendung geführt haben. Von der Low-Code-Anwendung zur Eigenentwicklung: Das Reporting von Massenteilen ist nicht mehr einen weiten und teilweise risikoreichen Weg zur Waage entfernt, sondern nur noch wenige Klicks.",
              "startsAt": "2023-09-28T16:20:00",
              "endsAt": "2023-09-28T17:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "832a65d0-1405-4776-b6ba-841ec6e1675f",
                  "name": "Jennifer Müller"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "491891",
              "title": "Evaluating the Environmental Footprint of X-Road",
              "description": "X-Road® is open-source software and ecosystem solution that provides unified and secure data exchange between organisations. The basic idea of X-Road is that members of an ecosystem exchange data through access points (Security Servers) that implement the same technical specifications.\r\n\r\nX-Road is a digital public good verified by the Digital Public Goods Alliance, and it’s released under the MIT open source license and is available free of charge. X-Road is used as a national data exchange solution in Estonia, Finland, Iceland and many other countries around the world.\r\n\r\nTo better understand the direct and tangible environmental impacts of the use of X-Road, the current emissions profile across X-Road’s operations and services was assessed by a research project. As a result, an emissions calculator to assess X-Road's environmental footprint was built. The calculator gives a clear picture of the total carbon footprint of X-Road, as well as its individual components.\r\n\r\nThe calculations used in the process were derived from peer-reviewed literature and tailored to X-Road use cases in Estonia and Finland. However, the emissions calculator is comprehensive enough to perform calculations for any X-Road instance residing in any region.\r\n\r\nIn my talk, I'm going to give an overview of X-Road first. Then, I'm going to discuss the research project, its different phases and deliverables. The main scope of the presentation is to discuss how to evaluate environmental footprint of an open-source software and what are the key elements that affect the result.",
              "startsAt": "2023-09-28T16:20:00",
              "endsAt": "2023-09-28T17:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "e9673db8-cff7-4cf7-847a-3d7ed5b63605",
                  "name": "Petteri Kivimäki"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "17:35:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "437c6612-ebc5-4abe-8814-ca71bc6be74d",
              "title": "Panel und Verlosung",
              "description": null,
              "startsAt": "2023-09-28T17:35:00",
              "endsAt": "2023-09-28T18:35:00",
              "isServiceSession": true,
              "isPlenumSession": true,
              "speakers": [],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": null,
              "isInformed": false,
              "isConfirmed": false
            },
            "index": 0
          }
        ]
      }
    ]
  },
  {
    "date": "2023-09-29T00:00:00",
    "isDefault": false,
    "rooms": [
      {
        "id": 33551,
        "name": "Humboldtsaal (1.OG)",
        "sessions": [
          {
            "id": "961253a8-3615-45c7-b4e3-1506561daaaf",
            "title": "Einlass",
            "description": null,
            "startsAt": "2023-09-29T08:00:00",
            "endsAt": "2023-09-29T09:00:00",
            "isServiceSession": true,
            "isPlenumSession": true,
            "speakers": [],
            "categories": [],
            "roomId": 33551,
            "room": "Humboldtsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": null,
            "isInformed": false,
            "isConfirmed": false
          }
        ],
        "hasOnlyPlenumSessions": true
      },
      {
        "id": 33552,
        "name": "Kleistsaal (1.OG)",
        "sessions": [
          {
            "id": "487235",
            "title": "Supply Chain Security vom Commit zum Deployment",
            "description": "Supply Chain Security hat durch diverse hochkarätige Hacks deutlich an Aufmerksamkeit gewonnen.\r\nPlötzlich ist es wichtig zu wissen woher die Artefakte kommen, wer sie erzeugt hat und ob man dem eigenen Build noch trauen kann.\r\nIn diesem Talk werde ich verschiedenen Bedrohungsszenarien und mögliche Abehrmechanismen aufzeigen. Besonderen Wert lege ich darauf zu zeigen wie wenig Arbeit man hat wenn man hier mit etwas Planung rangeht.\r\nAm Ende darf Security nicht zum Hinderniss werden sollte sich möglichst unauffällig in die tägliche Arbeit integrieren.\r\nThemen wie die Verifizierung von Java-Dependencies oder wie man mit eigenen Artefakten umngeht sind da nur der Anfang. Weiter geht es mit der Integration von Sigstore zum Signieren eigener Container und Strategien zur Container-Absicherung.\r\nUnd am Ende zeige ich euch wie das Ganze dann über die Open Source OCI-Registry Harbo bis nach Kubernetes kommt.\r\nDer gesammte vorgestellte Stack beruht auf Open-Source-Technologien und wird von uns produktiv zum Schutz unserer SaaS-Supply-Chain eingesetzt.\r\n\r\nWie immer gibt es viele Geschichten aus unserem Alltag :)",
            "startsAt": "2023-09-29T09:00:00",
            "endsAt": "2023-09-29T10:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "be3147d6-8f3d-4528-885d-4814898fe230",
                "name": "Jochen Mader"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "494823",
            "title": "Domain-Driven Transformation—How to Bring (Back) Sustainable Architecture to Legacy and Monoliths",
            "description": "Today we know very well how to start a new project on a greenfield and how to build a good architecture. But most of us work in projects that have been around for a long time and whose architecture (to put it mildly) is not quite so beautiful. “Monolith” and “Big Ball of Mud” are the unflattering labels put on such systems.\r\n\r\nThis talk will show how we can introduce (or bring back) structure. Every system is different here, so it’s important to first understand where you are. Then the right steps have to be taken. I present a catalog of refactorings to choose from and heuristics which are the right choices.\r\n\r\nThe catalog contains refactorings that help to cure: BBOM architecture, anemic domain models, and badly organized teams.",
            "startsAt": "2023-09-29T10:20:00",
            "endsAt": "2023-09-29T11:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "de44a1c1-8728-4063-b3d0-c0b3e7e87c4f",
                "name": "Henning Schwentner"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "494383",
            "title": "Kotlin & Functional Programming: pick the best, skip the rest",
            "description": "Applying Functional Programming practices in your code can quickly lead to heated debates: Hard-core FP advocates strive for the hegemony of 'functions everywhere,' whereas more conservative developers want to stay far away from the abstractions and complexity they add. The question is, who is right?\r\n\r\nDrawing on my rich experience with FP, I will share my learnings with numerous teams I have led and coached over the years with the quest to unleash the potential FP offers while avoiding the pitfall of blindly proclaiming functions as the silver bullet to everything. \r\n\r\nUsing many coded examples, we will explore the benefits of various functional concepts, ranging from basic higher-order functions, function composition, and Monads rigidly focusing on practical problems they solve rather than getting lost in academic considerations. Along the way, you will get a line-up of all the functional features Kotlin offers, and the goodies functional libraries such as Arrow have in store.\r\n\r\nUltimately, we want to create code that our colleagues love to maintain and extend, for which FP should be a friend rather than a burden. At the end of this talk, you will have the recipe for accomplishing this quest.\r\n",
            "startsAt": "2023-09-29T11:40:00",
            "endsAt": "2023-09-29T12:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "7df2c791-134f-4279-bb68-23f8899bb1ac",
                "name": "Urs Peter"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "65cde0b0-c0c2-4931-803d-4891bae85914",
            "title": "Mittag",
            "description": null,
            "startsAt": "2023-09-29T12:40:00",
            "endsAt": "2023-09-29T13:40:00",
            "isServiceSession": true,
            "isPlenumSession": true,
            "speakers": [],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": null,
            "isInformed": false,
            "isConfirmed": false
          },
          {
            "id": "480248",
            "title": "Legacy Software: Nur scheinbar ein Problem!",
            "description": "Legacy Software - dabei erschaudern auch erfahrene Techniker:innen. Aber Legacy heißt eigentlich so viel wie \"Erbe\" und ist nur in der IT rein negativ besetzt. Und Legacy Software löst praktisch immer ein Business-Problem erfolgreich, während eine Neuentwicklung ihre Nische erst finden muss. Der Vortrag zeigt, wie man diese und andere Erkenntnisse nutzen kann, um Strategien zu entwickeln, mit denen man produktiver und erfolgreicher mit Legacy-Software umgehen kann. Und so wird aus dem Problem \"Legacy\" eine Chance.",
            "startsAt": "2023-09-29T13:40:00",
            "endsAt": "2023-09-29T14:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "4750ed21-fcda-4dc5-9fe5-1a6fca25cd8c",
                "name": "Eberhard Wolff"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "486417",
            "title": "Online-Dokumentation die hilft: Strukturen und Prozesse",
            "description": "Mal eben etwas in der Online-Dokumentation für Nutzer ergänzen und schon ist es live? Und das so geschrieben und strukturiert, dass Nutzer wirklich davon profitieren?\r\nDer Vortrag zeigt, mit welchen Strukturen und Vorlagen Änderungen an Dokumentation vereinfacht und automatisiert geprüft werden können. \r\nAls Werkzeuge kommen AsciiDoc, Antora und weitere Werkzeuge aus diesem Ökosystem zum Einsatz. Als Beispiel dienen verschiedene Open-Source-Projekte, und es werden öffentlich verfügbare Online-Ressourcen zum Thema vorgestellt.",
            "startsAt": "2023-09-29T15:00:00",
            "endsAt": "2023-09-29T16:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "68ac17bc-add8-49d2-9604-7150a99b52b4",
                "name": "Alexander Schwartz"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "488936",
            "title": "Data Lakehouse und Open Table Format: eine neue Architektur für Big Data",
            "description": "Unsere Gegenwart ist geprägt von Big Data und den Möglichkeiten, die deren Analyse bietet. Von der Medizin bis zur Landwirtschaft gibt es keinen Bereich, der nicht davon betroffen ist. Ihre Nutzung und Verwaltung stellen jedoch eine Herausforderung dar. In den letzten Jahren haben sich Data Lakes als ideale Lösung für die Analyse von Big Data erwiesen. In einem Data Lake werden Daten aus verschiedenen Quellen und in unterschiedlichen Formaten in ihrem Rohzustand gespeichert. Dies bietet große Vorteile, unter anderem die Skalierbarkeit des Systems, Compute on Demand zur Kostenoptimierung und die Möglichkeit, die Analyseprozesse iterativ anzupassen, um aus bereits vorhandenen Daten neue, bisher verborgene Informationen zu extrahieren. Data Lakes führen jedoch wiederum zu Problemen bei der Daten-Governance, die unter anderem auf die unzureichende Unterstützung von ACID-Transaktionen und Versionierungsmechanismen zurückzuführen sind. Experten schlagen daher eine neue Lösung vor: das Data Lakehouse, eine Mischung aus Data Lake und Data Warehouse, die die von Data Warehouses garantierte Compliance mit der Flexibilität von Data Lakes verbindet. Ermöglicht wird dies durch eine neu aufkommende Technologie: das Open Table Format. In diesem Vortrag wird die Architektur des Data Lakehouse vorgestellt und die Technologie des Open Table Formats, mit besonderem Bezug auf Apache Iceberg.",
            "startsAt": "2023-09-29T16:20:00",
            "endsAt": "2023-09-29T17:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "bc54b7c3-27eb-4f66-94ab-d7edcb2525e8",
                "name": "Christian Del Monte"
              }
            ],
            "categories": [],
            "roomId": 33552,
            "room": "Kleistsaal (1.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          }
        ],
        "hasOnlyPlenumSessions": false
      },
      {
        "id": 33553,
        "name": "Edison (2.OG)",
        "sessions": [
          {
            "id": "486084",
            "title": "How I Made Creative Tech Tools my Favorite Tutors and Cheerleaders!!",
            "description": "Are you tired of traditional programming tutorials? Do you want to explore new technologies in a fun and creative way? Join this talk and discover how to use creative tools like Processing.js, Sketchful.js, and TouchDesigner to learn new technologies. You'll learn how to break free from traditional programming patterns and unleash your creativity with code. In this talk, you'll explore three techniques for creating stunning visualizations, interactive installations, and immersive experiences.",
            "startsAt": "2023-09-29T09:00:00",
            "endsAt": "2023-09-29T10:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "be3accd4-b678-46b2-8221-afc962f86004",
                "name": "Ritvi Mishra"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "470220",
            "title": "Seamless Accessibility: Integrating UX, SEO, and Conversion for Growth",
            "description": "This talk will educate attendees on the best accessibility practices linked to Search Engine Optimization (SEO); we will address how to create experiences able to further the reach of web visits, the click-through rate, and the optimization of them based on the page experience. User experience strategies will be developed, both in terms of the interface and in the technical aspect of their implementation. This talk is intended both for designers and product, marketing, and advertising strategists.\r\n\r\n",
            "startsAt": "2023-09-29T10:20:00",
            "endsAt": "2023-09-29T11:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "affcbbce-6067-4b86-8fbc-81e4d5228d52",
                "name": "Layshi Curbelo"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "513010",
            "title": "The Tech Stack Canvas",
            "description": "Have you ever wished to give a new developer, HR or your management a quick overview of your tech stack? Was the only thing you found a long document or a dead wiki page that nobody wanted to read?\r\nThis short talk introduces the Tech Stack Canvas, a tool for creating, documenting, and communicating a product's tech stack. We'll explore its key elements and the process of creating a new canvas. The goal is to empower tech teams to make informed technology decisions and effectively communicate their tech stack to stakeholders. For a quick overview visit https://techstackcanvas.io ",
            "startsAt": "2023-09-29T11:40:00",
            "endsAt": "2023-09-29T12:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "8a5604fb-136d-4eb2-9327-7b29a29daade",
                "name": "Joerg Mueller"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "489121",
            "title": "How to Succeed in Technical Interviews",
            "description": "Lessons I have learnt in the past from the game on both side: being an interviewer and being an interviewee, is that interviewing is a hard work, and I would like to share my experiences of successes and failures, starting from writing up your resume, giving an analysis of criteria that companies are looking for, in various technical background: junior, senior and lead engineers. \r\n\r\nFurthermore, this talk continues to discuss ways to improve your portfolio and one key thing to remember that your career is both inside and outside your day to day job. \r\n",
            "startsAt": "2023-09-29T12:00:00",
            "endsAt": "2023-09-29T12:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "1460b4e7-57a8-401e-b936-4e391a33810d",
                "name": "Teresa wu"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "468789",
            "title": "Auth{N,Z}: OAuth2, OpenID Connect und JWT einfach erklärt",
            "description": "Bei den Themen Authentifizierung (AuthN) und Autorisierung (AuthZ) geht heute kein Weg mehr an OAuth2, OpenID Connect (OIDC) und JWT (JSON-Web-Token) vorbei. Viele verschiedene \"Flows\", \"Grants\" und weitere neue Wörter inklusive. Doch wie funktioniert das eigentlich, was bedeutet das alles und wie kann ich das in meine Architektur integrieren? Viele Entwickler:innen und Architekt:innen haben hier immer noch Fragen.\r\n\r\nIch möchte in meiner Session mehr Licht ins Dunkel der Begriffe und Arbeitsweisen bringen und erkläre anhand eines einfachen Beispiels, wie das alles zusammenhängt und funktioniert.",
            "startsAt": "2023-09-29T13:40:00",
            "endsAt": "2023-09-29T14:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "ef54265f-c9ff-45d2-a495-20baff896eff",
                "name": "Niko Köbler"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "471154",
            "title": "How to Ignore Bugs (Safely)",
            "description": "The best software is in the middle ground between business needs, customer needs and technical excellence. The best technical solution is not always desirable. Neither is the most robust. Bugs are not always a problem to solve. A Zero Bug policy might actually lead you in the wrong direction.\r\n\r\nIn business, risk is often calculated as likelyhood x severity. What does this mean for software bugs and incidents? In this talk, will adapt the business risk thinking to bug handling in software engineering teams.",
            "startsAt": "2023-09-29T15:00:00",
            "endsAt": "2023-09-29T16:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "7e83763c-f32c-41e3-bffd-d47cb834c457",
                "name": "Anja Kunkel"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "549051",
            "title": "GitOps im Cockpit. Crossplane als Co-Pilot",
            "description": "GitOps hat sich als belastbare Methode in der Softwarebereitstellung etabliert, indem es Git als zentrale Wahrheitsquelle nutzt. In diesem Vortrag werden die Kernprinzipien von GitOps vorgestellt und die Möglichkeit für autonome Entwicklungsteams hervorgehoben.\r\n\r\nMit Crossplane, einem innovativen Werkzeug für die Cloud-Infrastruktur in Kubernetes, wird der GitOps-Ansatz um eine neue Dimension erweitert.\r\n\r\nEs wird die Synergie zwischen GitOps und Crossplane beleuchtet als mögliche Alternative zu anderen IaC Ansätzen.",
            "startsAt": "2023-09-29T16:20:00",
            "endsAt": "2023-09-29T17:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "2f5982a1-7fa2-4b52-b496-bc7c861efeee",
                "name": "André von Deetzen"
              }
            ],
            "categories": [],
            "roomId": 33553,
            "room": "Edison (2.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          }
        ],
        "hasOnlyPlenumSessions": false
      },
      {
        "id": 37970,
        "name": "Voltaire (3.OG)",
        "sessions": [
          {
            "id": "483537",
            "title": "Teste deine Architektur!",
            "description": "Wir alle kennen das: am Anfang eines Softwareentwicklungsprojektes macht man sich Gedanken über Architektur, Bausteine, Abhängigkeiten und solche Dinge. Dann läuft man los und implementiert. Anfangs ist die Produktivität hoch. Doch der Code wird immer mehr und die Anforderungen werden komplexer. Es schleichen sich ungewollte Abhängigkeiten ein. Eine Referenz ist nun mal in modernen Entwicklungsumgebungen schnell hinzugefügt. Im Laufe der Zeit weicht man ohne es zu merken immer weiter von der ursprünglich entworfenen Architektur ab. Architekturdiagramme und Code passen nicht mehr zusammen. Das lässt sich auch mit Clean Code, Test-driven Development und regelmäßigen Architekturreviews nicht immer verhindern.\r\n\r\nEine Möglichkeit, dem entgegenzuwirken, sind Architekturtests. Die funktionieren wie Unit Tests, testen aber keine funktionalen Anforderungen, sondern nichtfunktionale bzw. Qualitätsanforderungen. Tools sind als Open Source für Java und .NET verfügbar. Der Einstieg ist leicht. Architekturtests können automatisiert im Continuous Build laufen und verhindern dadurch, dass sich Verstöße gegen die anfangs aufgestellten Architekturregeln einschleichen.\r\n\r\nDieser Vortrag gibt einen Überblick darüber, was mit Architekturtests alles möglich ist. Anhand einer Beispielarchitektur, die an das taktische Design aus dem Domain-Driven Design angelehnt ist, wird demonstiert, wie sich verschiedene Aspekte der Architektur testen lassen.",
            "startsAt": "2023-09-29T09:00:00",
            "endsAt": "2023-09-29T10:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "eb7e3859-f72c-4c10-9d00-1cb30101388f",
                "name": "Andreas Lausen"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "490983",
            "title": "Erfahrungsbericht: Continuous Deployment im dm Shop",
            "description": "In diesem Erfahrungsbericht zeigen wir, wie es uns im dm Online Shop trotz eines großen Teams gelungen ist, Continuous Deployment umzusetzen. Der Shop wird in einer skalierten Umgebung mit über 10 Teams entwickelt, die an verschiedenen fachlichen Domänen arbeiten. Wir geben einen Überblick der Architektur des dm Shops und teilen unsere Erfahrungen bei der Umstellung von einem Deployment alle zwei Wochen auf 10 Deployments pro Tag. Im Fokus stehen dabei konkrete technische Entscheidungen sowie die Rolle der Unternehmenskultur bei der Ermöglichung dieser Transformation. Dieser Vortrag bietet Einblicke in die Herausforderungen und Chancen, die mit der Umsetzung von Continuous Deployment in einer groß angelegten, teambasierten Entwicklungsumgebung verbunden sind.",
            "startsAt": "2023-09-29T10:20:00",
            "endsAt": "2023-09-29T11:20:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "783c1b60-01dd-4a68-9276-a7813d04995d",
                "name": "Jakob Fels"
              },
              {
                "id": "d98d534b-d01e-4cdf-8544-f6f2b6be785b",
                "name": "Marc Kannegießer"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "484681",
            "title": "Mit Domain Storytelling ein klassisches Lastenheft leichtgewichtig enträtseln",
            "description": "Für ein Festpreisprojekt im Drohnenkontext wurde vom Auftraggeber ein klassisches Lastenheft mit viel Prosatext, aber wenig Diagrammen und Bildern erstellt. Gleichzeitig war eine große Offenheit vorhanden, die Implementierung mit agilen Ansätzen durchzuführen und das bisher unbekannte Domain Storytelling einzulassen. Durch das Ableiten von SOLL Szenarios aus der fachlichen Domäne des Lastenhefts wurde per End-To-End Szenario die Basis für ein gemeinsames Verständnis geschaffen. Mit diesem Szenario als Ausgangspunkt für Diskussionen wurden potenzielle Subdomänen DDD schrittweise aufgeschlüsselt, dann User Stories identifiziert und durch Extrahieren von Anforderungen aus dem Lastenheft konkretisiert. Dieses Vorgehen half alle Anforderungen zu strukturieren und die Ausbaustufen festzulegen.",
            "startsAt": "2023-09-29T11:40:00",
            "endsAt": "2023-09-29T12:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "d576d2a1-adcb-4c73-b86d-9c21a8c8b04f",
                "name": "Carsten Lill"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "489116",
            "title": "DevOps for Frontend",
            "description": "DevOps is always known and common for the backend, but it is for both Frontend and Backend development, as it is a collection of sets of tools to accelerate our daily tasks and transfer everything from manual to automation. \r\n\r\nHowever, DevOps for frontend projects is slightly different from Backend, and here in this talk, I will talk you through details of what it means for FE developers, and how to create a pipeline that contributes to improving productively and releasing cycle, including:\r\n\r\n- Project design and modularisation\r\n- Tool configuration \r\n- Types of pipeline for integration, release, and deployment \r\n- Application versioning and infrastructure management ",
            "startsAt": "2023-09-29T13:40:00",
            "endsAt": "2023-09-29T14:40:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "1460b4e7-57a8-401e-b936-4e391a33810d",
                "name": "Teresa wu"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          },
          {
            "id": "547958",
            "title": "Was hat der Produktlebenszyklus mit Software-Architektur zu tun?",
            "description": "Microservices oder Monolith? Cloud oder Bare Metal? Viel Dokumentation oder eher wenig? - Fragen, wie diese werden gerne sehr hitzig diskutiert. Am Ende lautet die Antwort oft: 'Das kommt darauf an!' - Aber worauf?\r\nEine Antwort liefert ein altes Modell aus der Betriebswirtschaftslehre: der Produktlebenszyklus. Wenn man betrachtet, in welcher Phase sich ein Produkt gerade befindet, ergeben sich oft Anforderungen, die es viel leichter machen, grundlegende Architekturentscheidungen zu treffen.\r\nDieser Vortrag stellt das Modell vor und zeigt typische Auswirkungen auf die Architektur. Mit dem Wissen, worauf es ankommt, wird die Wahl der passenden Architektur beim nächsten Mal vielleicht deutlich einfacher.",
            "startsAt": "2023-09-29T15:00:00",
            "endsAt": "2023-09-29T16:00:00",
            "isServiceSession": false,
            "isPlenumSession": false,
            "speakers": [
              {
                "id": "8a5604fb-136d-4eb2-9327-7b29a29daade",
                "name": "Joerg Mueller"
              }
            ],
            "categories": [],
            "roomId": 37970,
            "room": "Voltaire (3.OG)",
            "liveUrl": null,
            "recordingUrl": null,
            "status": "Accepted",
            "isInformed": true,
            "isConfirmed": true
          }
        ],
        "hasOnlyPlenumSessions": false
      }
    ],
    "timeSlots": [
      {
        "slotStart": "08:00:00",
        "rooms": [
          {
            "id": 33551,
            "name": "Humboldtsaal (1.OG)",
            "session": {
              "id": "961253a8-3615-45c7-b4e3-1506561daaaf",
              "title": "Einlass",
              "description": null,
              "startsAt": "2023-09-29T08:00:00",
              "endsAt": "2023-09-29T09:00:00",
              "isServiceSession": true,
              "isPlenumSession": true,
              "speakers": [],
              "categories": [],
              "roomId": 33551,
              "room": "Humboldtsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": null,
              "isInformed": false,
              "isConfirmed": false
            },
            "index": 0
          }
        ]
      },
      {
        "slotStart": "09:00:00",
        "rooms": [
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "487235",
              "title": "Supply Chain Security vom Commit zum Deployment",
              "description": "Supply Chain Security hat durch diverse hochkarätige Hacks deutlich an Aufmerksamkeit gewonnen.\r\nPlötzlich ist es wichtig zu wissen woher die Artefakte kommen, wer sie erzeugt hat und ob man dem eigenen Build noch trauen kann.\r\nIn diesem Talk werde ich verschiedenen Bedrohungsszenarien und mögliche Abehrmechanismen aufzeigen. Besonderen Wert lege ich darauf zu zeigen wie wenig Arbeit man hat wenn man hier mit etwas Planung rangeht.\r\nAm Ende darf Security nicht zum Hinderniss werden sollte sich möglichst unauffällig in die tägliche Arbeit integrieren.\r\nThemen wie die Verifizierung von Java-Dependencies oder wie man mit eigenen Artefakten umngeht sind da nur der Anfang. Weiter geht es mit der Integration von Sigstore zum Signieren eigener Container und Strategien zur Container-Absicherung.\r\nUnd am Ende zeige ich euch wie das Ganze dann über die Open Source OCI-Registry Harbo bis nach Kubernetes kommt.\r\nDer gesammte vorgestellte Stack beruht auf Open-Source-Technologien und wird von uns produktiv zum Schutz unserer SaaS-Supply-Chain eingesetzt.\r\n\r\nWie immer gibt es viele Geschichten aus unserem Alltag :)",
              "startsAt": "2023-09-29T09:00:00",
              "endsAt": "2023-09-29T10:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "be3147d6-8f3d-4528-885d-4814898fe230",
                  "name": "Jochen Mader"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "486084",
              "title": "How I Made Creative Tech Tools my Favorite Tutors and Cheerleaders!!",
              "description": "Are you tired of traditional programming tutorials? Do you want to explore new technologies in a fun and creative way? Join this talk and discover how to use creative tools like Processing.js, Sketchful.js, and TouchDesigner to learn new technologies. You'll learn how to break free from traditional programming patterns and unleash your creativity with code. In this talk, you'll explore three techniques for creating stunning visualizations, interactive installations, and immersive experiences.",
              "startsAt": "2023-09-29T09:00:00",
              "endsAt": "2023-09-29T10:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "be3accd4-b678-46b2-8221-afc962f86004",
                  "name": "Ritvi Mishra"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "483537",
              "title": "Teste deine Architektur!",
              "description": "Wir alle kennen das: am Anfang eines Softwareentwicklungsprojektes macht man sich Gedanken über Architektur, Bausteine, Abhängigkeiten und solche Dinge. Dann läuft man los und implementiert. Anfangs ist die Produktivität hoch. Doch der Code wird immer mehr und die Anforderungen werden komplexer. Es schleichen sich ungewollte Abhängigkeiten ein. Eine Referenz ist nun mal in modernen Entwicklungsumgebungen schnell hinzugefügt. Im Laufe der Zeit weicht man ohne es zu merken immer weiter von der ursprünglich entworfenen Architektur ab. Architekturdiagramme und Code passen nicht mehr zusammen. Das lässt sich auch mit Clean Code, Test-driven Development und regelmäßigen Architekturreviews nicht immer verhindern.\r\n\r\nEine Möglichkeit, dem entgegenzuwirken, sind Architekturtests. Die funktionieren wie Unit Tests, testen aber keine funktionalen Anforderungen, sondern nichtfunktionale bzw. Qualitätsanforderungen. Tools sind als Open Source für Java und .NET verfügbar. Der Einstieg ist leicht. Architekturtests können automatisiert im Continuous Build laufen und verhindern dadurch, dass sich Verstöße gegen die anfangs aufgestellten Architekturregeln einschleichen.\r\n\r\nDieser Vortrag gibt einen Überblick darüber, was mit Architekturtests alles möglich ist. Anhand einer Beispielarchitektur, die an das taktische Design aus dem Domain-Driven Design angelehnt ist, wird demonstiert, wie sich verschiedene Aspekte der Architektur testen lassen.",
              "startsAt": "2023-09-29T09:00:00",
              "endsAt": "2023-09-29T10:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "eb7e3859-f72c-4c10-9d00-1cb30101388f",
                  "name": "Andreas Lausen"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "10:20:00",
        "rooms": [
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "494823",
              "title": "Domain-Driven Transformation—How to Bring (Back) Sustainable Architecture to Legacy and Monoliths",
              "description": "Today we know very well how to start a new project on a greenfield and how to build a good architecture. But most of us work in projects that have been around for a long time and whose architecture (to put it mildly) is not quite so beautiful. “Monolith” and “Big Ball of Mud” are the unflattering labels put on such systems.\r\n\r\nThis talk will show how we can introduce (or bring back) structure. Every system is different here, so it’s important to first understand where you are. Then the right steps have to be taken. I present a catalog of refactorings to choose from and heuristics which are the right choices.\r\n\r\nThe catalog contains refactorings that help to cure: BBOM architecture, anemic domain models, and badly organized teams.",
              "startsAt": "2023-09-29T10:20:00",
              "endsAt": "2023-09-29T11:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "de44a1c1-8728-4063-b3d0-c0b3e7e87c4f",
                  "name": "Henning Schwentner"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "470220",
              "title": "Seamless Accessibility: Integrating UX, SEO, and Conversion for Growth",
              "description": "This talk will educate attendees on the best accessibility practices linked to Search Engine Optimization (SEO); we will address how to create experiences able to further the reach of web visits, the click-through rate, and the optimization of them based on the page experience. User experience strategies will be developed, both in terms of the interface and in the technical aspect of their implementation. This talk is intended both for designers and product, marketing, and advertising strategists.\r\n\r\n",
              "startsAt": "2023-09-29T10:20:00",
              "endsAt": "2023-09-29T11:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "affcbbce-6067-4b86-8fbc-81e4d5228d52",
                  "name": "Layshi Curbelo"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "490983",
              "title": "Erfahrungsbericht: Continuous Deployment im dm Shop",
              "description": "In diesem Erfahrungsbericht zeigen wir, wie es uns im dm Online Shop trotz eines großen Teams gelungen ist, Continuous Deployment umzusetzen. Der Shop wird in einer skalierten Umgebung mit über 10 Teams entwickelt, die an verschiedenen fachlichen Domänen arbeiten. Wir geben einen Überblick der Architektur des dm Shops und teilen unsere Erfahrungen bei der Umstellung von einem Deployment alle zwei Wochen auf 10 Deployments pro Tag. Im Fokus stehen dabei konkrete technische Entscheidungen sowie die Rolle der Unternehmenskultur bei der Ermöglichung dieser Transformation. Dieser Vortrag bietet Einblicke in die Herausforderungen und Chancen, die mit der Umsetzung von Continuous Deployment in einer groß angelegten, teambasierten Entwicklungsumgebung verbunden sind.",
              "startsAt": "2023-09-29T10:20:00",
              "endsAt": "2023-09-29T11:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "783c1b60-01dd-4a68-9276-a7813d04995d",
                  "name": "Jakob Fels"
                },
                {
                  "id": "d98d534b-d01e-4cdf-8544-f6f2b6be785b",
                  "name": "Marc Kannegießer"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "11:40:00",
        "rooms": [
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "494383",
              "title": "Kotlin & Functional Programming: pick the best, skip the rest",
              "description": "Applying Functional Programming practices in your code can quickly lead to heated debates: Hard-core FP advocates strive for the hegemony of 'functions everywhere,' whereas more conservative developers want to stay far away from the abstractions and complexity they add. The question is, who is right?\r\n\r\nDrawing on my rich experience with FP, I will share my learnings with numerous teams I have led and coached over the years with the quest to unleash the potential FP offers while avoiding the pitfall of blindly proclaiming functions as the silver bullet to everything. \r\n\r\nUsing many coded examples, we will explore the benefits of various functional concepts, ranging from basic higher-order functions, function composition, and Monads rigidly focusing on practical problems they solve rather than getting lost in academic considerations. Along the way, you will get a line-up of all the functional features Kotlin offers, and the goodies functional libraries such as Arrow have in store.\r\n\r\nUltimately, we want to create code that our colleagues love to maintain and extend, for which FP should be a friend rather than a burden. At the end of this talk, you will have the recipe for accomplishing this quest.\r\n",
              "startsAt": "2023-09-29T11:40:00",
              "endsAt": "2023-09-29T12:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "7df2c791-134f-4279-bb68-23f8899bb1ac",
                  "name": "Urs Peter"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "513010",
              "title": "The Tech Stack Canvas",
              "description": "Have you ever wished to give a new developer, HR or your management a quick overview of your tech stack? Was the only thing you found a long document or a dead wiki page that nobody wanted to read?\r\nThis short talk introduces the Tech Stack Canvas, a tool for creating, documenting, and communicating a product's tech stack. We'll explore its key elements and the process of creating a new canvas. The goal is to empower tech teams to make informed technology decisions and effectively communicate their tech stack to stakeholders. For a quick overview visit https://techstackcanvas.io ",
              "startsAt": "2023-09-29T11:40:00",
              "endsAt": "2023-09-29T12:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "8a5604fb-136d-4eb2-9327-7b29a29daade",
                  "name": "Joerg Mueller"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "484681",
              "title": "Mit Domain Storytelling ein klassisches Lastenheft leichtgewichtig enträtseln",
              "description": "Für ein Festpreisprojekt im Drohnenkontext wurde vom Auftraggeber ein klassisches Lastenheft mit viel Prosatext, aber wenig Diagrammen und Bildern erstellt. Gleichzeitig war eine große Offenheit vorhanden, die Implementierung mit agilen Ansätzen durchzuführen und das bisher unbekannte Domain Storytelling einzulassen. Durch das Ableiten von SOLL Szenarios aus der fachlichen Domäne des Lastenhefts wurde per End-To-End Szenario die Basis für ein gemeinsames Verständnis geschaffen. Mit diesem Szenario als Ausgangspunkt für Diskussionen wurden potenzielle Subdomänen DDD schrittweise aufgeschlüsselt, dann User Stories identifiziert und durch Extrahieren von Anforderungen aus dem Lastenheft konkretisiert. Dieses Vorgehen half alle Anforderungen zu strukturieren und die Ausbaustufen festzulegen.",
              "startsAt": "2023-09-29T11:40:00",
              "endsAt": "2023-09-29T12:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "d576d2a1-adcb-4c73-b86d-9c21a8c8b04f",
                  "name": "Carsten Lill"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "12:00:00",
        "rooms": [
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "489121",
              "title": "How to Succeed in Technical Interviews",
              "description": "Lessons I have learnt in the past from the game on both side: being an interviewer and being an interviewee, is that interviewing is a hard work, and I would like to share my experiences of successes and failures, starting from writing up your resume, giving an analysis of criteria that companies are looking for, in various technical background: junior, senior and lead engineers. \r\n\r\nFurthermore, this talk continues to discuss ways to improve your portfolio and one key thing to remember that your career is both inside and outside your day to day job. \r\n",
              "startsAt": "2023-09-29T12:00:00",
              "endsAt": "2023-09-29T12:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "1460b4e7-57a8-401e-b936-4e391a33810d",
                  "name": "Teresa wu"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          }
        ]
      },
      {
        "slotStart": "12:40:00",
        "rooms": [
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "65cde0b0-c0c2-4931-803d-4891bae85914",
              "title": "Mittag",
              "description": null,
              "startsAt": "2023-09-29T12:40:00",
              "endsAt": "2023-09-29T13:40:00",
              "isServiceSession": true,
              "isPlenumSession": true,
              "speakers": [],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": null,
              "isInformed": false,
              "isConfirmed": false
            },
            "index": 1
          }
        ]
      },
      {
        "slotStart": "13:40:00",
        "rooms": [
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "480248",
              "title": "Legacy Software: Nur scheinbar ein Problem!",
              "description": "Legacy Software - dabei erschaudern auch erfahrene Techniker:innen. Aber Legacy heißt eigentlich so viel wie \"Erbe\" und ist nur in der IT rein negativ besetzt. Und Legacy Software löst praktisch immer ein Business-Problem erfolgreich, während eine Neuentwicklung ihre Nische erst finden muss. Der Vortrag zeigt, wie man diese und andere Erkenntnisse nutzen kann, um Strategien zu entwickeln, mit denen man produktiver und erfolgreicher mit Legacy-Software umgehen kann. Und so wird aus dem Problem \"Legacy\" eine Chance.",
              "startsAt": "2023-09-29T13:40:00",
              "endsAt": "2023-09-29T14:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "4750ed21-fcda-4dc5-9fe5-1a6fca25cd8c",
                  "name": "Eberhard Wolff"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "468789",
              "title": "Auth{N,Z}: OAuth2, OpenID Connect und JWT einfach erklärt",
              "description": "Bei den Themen Authentifizierung (AuthN) und Autorisierung (AuthZ) geht heute kein Weg mehr an OAuth2, OpenID Connect (OIDC) und JWT (JSON-Web-Token) vorbei. Viele verschiedene \"Flows\", \"Grants\" und weitere neue Wörter inklusive. Doch wie funktioniert das eigentlich, was bedeutet das alles und wie kann ich das in meine Architektur integrieren? Viele Entwickler:innen und Architekt:innen haben hier immer noch Fragen.\r\n\r\nIch möchte in meiner Session mehr Licht ins Dunkel der Begriffe und Arbeitsweisen bringen und erkläre anhand eines einfachen Beispiels, wie das alles zusammenhängt und funktioniert.",
              "startsAt": "2023-09-29T13:40:00",
              "endsAt": "2023-09-29T14:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "ef54265f-c9ff-45d2-a495-20baff896eff",
                  "name": "Niko Köbler"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "489116",
              "title": "DevOps for Frontend",
              "description": "DevOps is always known and common for the backend, but it is for both Frontend and Backend development, as it is a collection of sets of tools to accelerate our daily tasks and transfer everything from manual to automation. \r\n\r\nHowever, DevOps for frontend projects is slightly different from Backend, and here in this talk, I will talk you through details of what it means for FE developers, and how to create a pipeline that contributes to improving productively and releasing cycle, including:\r\n\r\n- Project design and modularisation\r\n- Tool configuration \r\n- Types of pipeline for integration, release, and deployment \r\n- Application versioning and infrastructure management ",
              "startsAt": "2023-09-29T13:40:00",
              "endsAt": "2023-09-29T14:40:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "1460b4e7-57a8-401e-b936-4e391a33810d",
                  "name": "Teresa wu"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "15:00:00",
        "rooms": [
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "486417",
              "title": "Online-Dokumentation die hilft: Strukturen und Prozesse",
              "description": "Mal eben etwas in der Online-Dokumentation für Nutzer ergänzen und schon ist es live? Und das so geschrieben und strukturiert, dass Nutzer wirklich davon profitieren?\r\nDer Vortrag zeigt, mit welchen Strukturen und Vorlagen Änderungen an Dokumentation vereinfacht und automatisiert geprüft werden können. \r\nAls Werkzeuge kommen AsciiDoc, Antora und weitere Werkzeuge aus diesem Ökosystem zum Einsatz. Als Beispiel dienen verschiedene Open-Source-Projekte, und es werden öffentlich verfügbare Online-Ressourcen zum Thema vorgestellt.",
              "startsAt": "2023-09-29T15:00:00",
              "endsAt": "2023-09-29T16:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "68ac17bc-add8-49d2-9604-7150a99b52b4",
                  "name": "Alexander Schwartz"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "471154",
              "title": "How to Ignore Bugs (Safely)",
              "description": "The best software is in the middle ground between business needs, customer needs and technical excellence. The best technical solution is not always desirable. Neither is the most robust. Bugs are not always a problem to solve. A Zero Bug policy might actually lead you in the wrong direction.\r\n\r\nIn business, risk is often calculated as likelyhood x severity. What does this mean for software bugs and incidents? In this talk, will adapt the business risk thinking to bug handling in software engineering teams.",
              "startsAt": "2023-09-29T15:00:00",
              "endsAt": "2023-09-29T16:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "7e83763c-f32c-41e3-bffd-d47cb834c457",
                  "name": "Anja Kunkel"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          },
          {
            "id": 37970,
            "name": "Voltaire (3.OG)",
            "session": {
              "id": "547958",
              "title": "Was hat der Produktlebenszyklus mit Software-Architektur zu tun?",
              "description": "Microservices oder Monolith? Cloud oder Bare Metal? Viel Dokumentation oder eher wenig? - Fragen, wie diese werden gerne sehr hitzig diskutiert. Am Ende lautet die Antwort oft: 'Das kommt darauf an!' - Aber worauf?\r\nEine Antwort liefert ein altes Modell aus der Betriebswirtschaftslehre: der Produktlebenszyklus. Wenn man betrachtet, in welcher Phase sich ein Produkt gerade befindet, ergeben sich oft Anforderungen, die es viel leichter machen, grundlegende Architekturentscheidungen zu treffen.\r\nDieser Vortrag stellt das Modell vor und zeigt typische Auswirkungen auf die Architektur. Mit dem Wissen, worauf es ankommt, wird die Wahl der passenden Architektur beim nächsten Mal vielleicht deutlich einfacher.",
              "startsAt": "2023-09-29T15:00:00",
              "endsAt": "2023-09-29T16:00:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "8a5604fb-136d-4eb2-9327-7b29a29daade",
                  "name": "Joerg Mueller"
                }
              ],
              "categories": [],
              "roomId": 37970,
              "room": "Voltaire (3.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 3
          }
        ]
      },
      {
        "slotStart": "16:20:00",
        "rooms": [
          {
            "id": 33552,
            "name": "Kleistsaal (1.OG)",
            "session": {
              "id": "488936",
              "title": "Data Lakehouse und Open Table Format: eine neue Architektur für Big Data",
              "description": "Unsere Gegenwart ist geprägt von Big Data und den Möglichkeiten, die deren Analyse bietet. Von der Medizin bis zur Landwirtschaft gibt es keinen Bereich, der nicht davon betroffen ist. Ihre Nutzung und Verwaltung stellen jedoch eine Herausforderung dar. In den letzten Jahren haben sich Data Lakes als ideale Lösung für die Analyse von Big Data erwiesen. In einem Data Lake werden Daten aus verschiedenen Quellen und in unterschiedlichen Formaten in ihrem Rohzustand gespeichert. Dies bietet große Vorteile, unter anderem die Skalierbarkeit des Systems, Compute on Demand zur Kostenoptimierung und die Möglichkeit, die Analyseprozesse iterativ anzupassen, um aus bereits vorhandenen Daten neue, bisher verborgene Informationen zu extrahieren. Data Lakes führen jedoch wiederum zu Problemen bei der Daten-Governance, die unter anderem auf die unzureichende Unterstützung von ACID-Transaktionen und Versionierungsmechanismen zurückzuführen sind. Experten schlagen daher eine neue Lösung vor: das Data Lakehouse, eine Mischung aus Data Lake und Data Warehouse, die die von Data Warehouses garantierte Compliance mit der Flexibilität von Data Lakes verbindet. Ermöglicht wird dies durch eine neu aufkommende Technologie: das Open Table Format. In diesem Vortrag wird die Architektur des Data Lakehouse vorgestellt und die Technologie des Open Table Formats, mit besonderem Bezug auf Apache Iceberg.",
              "startsAt": "2023-09-29T16:20:00",
              "endsAt": "2023-09-29T17:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "bc54b7c3-27eb-4f66-94ab-d7edcb2525e8",
                  "name": "Christian Del Monte"
                }
              ],
              "categories": [],
              "roomId": 33552,
              "room": "Kleistsaal (1.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 1
          },
          {
            "id": 33553,
            "name": "Edison (2.OG)",
            "session": {
              "id": "549051",
              "title": "GitOps im Cockpit. Crossplane als Co-Pilot",
              "description": "GitOps hat sich als belastbare Methode in der Softwarebereitstellung etabliert, indem es Git als zentrale Wahrheitsquelle nutzt. In diesem Vortrag werden die Kernprinzipien von GitOps vorgestellt und die Möglichkeit für autonome Entwicklungsteams hervorgehoben.\r\n\r\nMit Crossplane, einem innovativen Werkzeug für die Cloud-Infrastruktur in Kubernetes, wird der GitOps-Ansatz um eine neue Dimension erweitert.\r\n\r\nEs wird die Synergie zwischen GitOps und Crossplane beleuchtet als mögliche Alternative zu anderen IaC Ansätzen.",
              "startsAt": "2023-09-29T16:20:00",
              "endsAt": "2023-09-29T17:20:00",
              "isServiceSession": false,
              "isPlenumSession": false,
              "speakers": [
                {
                  "id": "2f5982a1-7fa2-4b52-b496-bc7c861efeee",
                  "name": "André von Deetzen"
                }
              ],
              "categories": [],
              "roomId": 33553,
              "room": "Edison (2.OG)",
              "liveUrl": null,
              "recordingUrl": null,
              "status": "Accepted",
              "isInformed": true,
              "isConfirmed": true
            },
            "index": 2
          }
        ]
      }
    ]
  }
]