[
  {
    "start": 0.001,
    "end": 1.16,
    "text": "Ich habe eine Änderung."
  },
  {
    "start": 1.52,
    "end": 2.14,
    "text": "Ich pushe sie,"
  },
  {
    "start": 2.42,
    "end": 3.54,
    "text": "ich warte auf die Pipeline,"
  },
  {
    "start": 4.4,
    "end": 8.32,
    "text": "ich gehe mir einen Kaffee holen, ich komme zurück, ich warte wieder immer noch auf die Pipeline."
  },
  {
    "start": 9.22,
    "end": 11.74,
    "text": "Ich schreibe irgendwo in meinen Team-Chat,"
  },
  {
    "start": 12.12,
    "end": 16.76,
    "text": "dass ich jetzt die Maschine dreimal für irgendwas reserviere und bitte niemand darauf deployen soll."
  },
  {
    "start": 18.46,
    "end": 23.86,
    "text": "Ich kann mir als Entwickler jetzt eine Hardware reservieren und sie benutzen, als würde sie neben meinem Tisch stehen."
  },
  {
    "start": 25.08,
    "end": 27.66,
    "text": "eigentlich alle unsere gesamte Infrastruktur, das ganze Leben,"
  },
  {
    "start": 27.82,
    "end": 30.06,
    "text": "baut auf Open Source Software auf."
  },
  {
    "start": 30.6,
    "end": 35.14,
    "text": "Hallo und herzlich willkommen zu einer neuen Folge von Podcast Software Testing."
  },
  {
    "start": 35.56,
    "end": 41.08,
    "text": "Ich bin Richie und habe wieder eine Folge von der TACON 2026 aus Leipzig mitgebracht."
  },
  {
    "start": 41.23,
    "end": 47.18,
    "text": "Bei mir zu Gast war Markus Napierkowski und mit ihm habe ich über Hardware in the Loop Testing gesprochen,"
  },
  {
    "start": 47.68,
    "end": 49.82,
    "text": "basierend auf einem Open Source Framework."
  },
  {
    "start": 50.08,
    "end": 50.58,
    "text": "erfährst,"
  },
  {
    "start": 50.74,
    "end": 54.82,
    "text": "warum du einen Kernel nun mal auf echter Hardware testen musst, wie du dir eine"
  },
  {
    "start": 54.94,
    "end": 59.46,
    "text": "Testmaschine reservierst, als stünde sie neben deinem Schreibtisch und was ein Raspberry"
  },
  {
    "start": 59.57,
    "end": 60.66,
    "text": "Pi damit zu tun hat."
  },
  {
    "start": 60.9,
    "end": 63.08,
    "text": "Aber hört selber rein. Viel Spaß bei der Folge."
  },
  {
    "start": 73.98,
    "end": 75.54,
    "text": "Hallo Markus, schön, dass du da bist."
  },
  {
    "start": 75.96,
    "end": 76.38,
    "text": "Hi Richie!"
  },
  {
    "start": 77.74,
    "end": 78.06,
    "text": "TACON,"
  },
  {
    "start": 78.42,
    "end": 81.14,
    "text": "jetzt ist gerade der letzte Slot, glaube ich, hier in Leipzig."
  },
  {
    "start": 81.26,
    "end": 82.74,
    "text": "Die Konferenz ist fast zu Ende."
  },
  {
    "start": 83.42,
    "end": 84.16,
    "text": "Wie hat es dir gefallen?"
  },
  {
    "start": 85.12,
    "end": 85.92,
    "text": "Ich fand es super."
  },
  {
    "start": 86.2,
    "end": 88.58,
    "text": "Ich habe nicht ganz so viel von den Vorträgen mitgekriegt."
  },
  {
    "start": 90.2,
    "end": 92.14,
    "text": "Für die Firma hier, aber passiert."
  },
  {
    "start": 92.48,
    "end": 92.64,
    "text": "Ja,"
  },
  {
    "start": 93.0,
    "end": 93.88,
    "text": "gut, aber das ist sehr schön."
  },
  {
    "start": 93.94,
    "end": 95.9,
    "text": "Aber du hattest ja auch einen Vortrag, der kam ja auch gut an,"
  },
  {
    "start": 96.3,
    "end": 97.32,
    "text": "was ich so vernommen habe."
  },
  {
    "start": 97.68,
    "end": 99.16,
    "text": "Also ist es ja auch fein."
  },
  {
    "start": 99.3,
    "end": 101.56,
    "text": "Und wir quatschen jetzt auch noch mal über dein Thema."
  },
  {
    "start": 103.1,
    "end": 105.94,
    "text": "Ich habe diesen Abstracts, ich lese mir die ja vorher mal durch und schaue dann, welches"
  },
  {
    "start": 105.94,
    "end": 132.78,
    "text": "Ich habe auch eine"
  },
  {
    "start": 137.959,
    "end": 140.6,
    "text": "Was war denn das Problem, was ihr lösen wolltet?"
  },
  {
    "start": 140.72,
    "end": 143.2,
    "text": "Vielleicht um da mal gleich so den Finger in die Wunde zu legen."
  },
  {
    "start": 144.07,
    "end": 145.34,
    "text": "Also die Problematik ist,"
  },
  {
    "start": 146.02,
    "end": 150.22,
    "text": "wir arbeiten relativ viel an Systemsoftware,"
  },
  {
    "start": 150.3,
    "end": 151.76,
    "text": "also auf Linux-Kernel-Ebene."
  },
  {
    "start": 151.83,
    "end": 154.34,
    "text": "Wir haben in der Vergangenheit auch Mikrokerne gebaut,"
  },
  {
    "start": 157.14,
    "end": 160.58,
    "text": "sind dort relativ tief drin und haben von Anfang an aber gemerkt,"
  },
  {
    "start": 161.02,
    "end": 162.48,
    "text": "eigentlich wollen wir das nicht manuell testen,"
  },
  {
    "start": 162.48,
    "end": 172.08,
    "text": "sondern in irgendeiner Art ähnlich schnelle Feedback-Zyklen haben wie bei Unit-Tests oder bei einfach nur virtualisierten Tests."
  },
  {
    "start": 174.26,
    "end": 181.02,
    "text": "Aber mit dieser Systemsoftware, die musst du irgendwie auf der Hardware testen, also wenn du ein Kernel baust und irgendwie sicherstellen möchtest,"
  },
  {
    "start": 181.02,
    "end": 183.04,
    "text": "dass auf allen CPU-Generationen alles läuft,"
  },
  {
    "start": 183.3,
    "end": 184.42,
    "text": "das muss auf jeder Hardware laufen."
  },
  {
    "start": 184.68,
    "end": 193.44,
    "text": "So hat es eigentlich angefangen, dass wir gesagt haben, okay, wir interessieren uns dafür und wir investieren aktiv rein in diese Hardware-in-the-Loop-Testing-Geschichte."
  },
  {
    "start": 194.819,
    "end": 206.26,
    "text": "Und die Use Cases haben sich über die Jahre weiterentwickelt. Also es hat vor über zehn Jahren angefangen, dass die Kollegen so ein eigenes Hardware-in-the-Loop-Testing-Lab aufgebaut haben."
  },
  {
    "start": 206.68,
    "end": 209.34,
    "text": "Dann haben sich die Use Cases und auch die Lösungen dafür immer weiterentwickelt."
  },
  {
    "start": 210.2,
    "end": 212.86,
    "text": "Und jetzt die aktuelle,"
  },
  {
    "start": 213.04,
    "end": 214.82,
    "text": "die Open Source Lösung, die wir da jetzt haben,"
  },
  {
    "start": 215.22,
    "end": 216.64,
    "text": "die ist über die"
  },
  {
    "start": 216.84,
    "end": 217.74,
    "text": "letzten Jahre entstanden,"
  },
  {
    "start": 218.22,
    "end": 220.8,
    "text": "noch mehr noch mit einem Fokus, das nochmal eine Ebene höher"
  },
  {
    "start": 220.9,
    "end": 225.6,
    "text": "zu ziehen, wo man unter anderem auch über Embedded PCs redet, wo du auch wieder sehr"
  },
  {
    "start": 225.74,
    "end": 227.14,
    "text": "viel virtualisiert testen kannst,"
  },
  {
    "start": 227.4,
    "end": 229.4,
    "text": "aber den finalen Abnahmetest,"
  },
  {
    "start": 229.58,
    "end": 230.66,
    "text": "den kriegst du auch wieder"
  },
  {
    "start": 230.84,
    "end": 235.22,
    "text": "nur hin, wenn du sagst, dieses Image ist zugeschnitten auf eine bestimmte Plattform."
  },
  {
    "start": 235.44,
    "end": 238.38,
    "text": "Das kriegst du auch wieder nur hin, wenn du es wirklich auf der Hardware testest."
  },
  {
    "start": 238.87,
    "end": 243.84,
    "text": "Und das ist so die Grundidee gewesen. Das ist der Grund auch für die Investition gewesen."
  },
  {
    "start": 243.98,
    "end": 247.98,
    "text": "Also über Jahre so ein Framework zu bauen, das kostet ja auch Geld und Zeit."
  },
  {
    "start": 249.04,
    "end": 250.76,
    "text": "Und das war dann der Grund, dort rein zu investieren."
  },
  {
    "start": 251.83,
    "end": 253.24,
    "text": "Es war lange closed source."
  },
  {
    "start": 254.07,
    "end": 257.799,
    "text": "Wir haben das zusammen mit einer Partnerorganisation gebaut."
  },
  {
    "start": 258.359,
    "end": 259.959,
    "text": "Von beiden Seiten Know-how reingeflossen."
  },
  {
    "start": 260.12,
    "end": 266.26,
    "text": "Und haben es dann jetzt vor zwei Monaten tatsächlich endlich geschafft, dass es auch Open Source auf GitHub ist."
  },
  {
    "start": 267.6,
    "end": 268.58,
    "text": "Das hat uns sehr gefreut,"
  },
  {
    "start": 268.96,
    "end": 272.42,
    "text": "auch weil wir dann jetzt so frei darüber reden können, dass es das gibt und wie es funktioniert."
  },
  {
    "start": 273.06,
    "end": 273.9,
    "text": "Das ging vorher gar nicht."
  },
  {
    "start": 274.7,
    "end": 278.74,
    "text": "Ja super, das werden wir natürlich auch unten verlinken für alle, die sich dann für das Projekt interessieren."
  },
  {
    "start": 280.4,
    "end": 281.72,
    "text": "Wobei unterstützt mich das denn?"
  },
  {
    "start": 282.08,
    "end": 284.28,
    "text": "Weil ich meine, wir können ja irgendwie testen."
  },
  {
    "start": 284.55,
    "end": 287.06,
    "text": "Also wo hilft mir das Framework jetzt wirklich,"
  },
  {
    "start": 287.72,
    "end": 289.46,
    "text": "das besser zu machen, schneller oder was auch immer?"
  },
  {
    "start": 289.68,
    "end": 289.98,
    "text": "Genau."
  },
  {
    "start": 291.65,
    "end": 293.94,
    "text": "Also es hilft einem vor allem daran,"
  },
  {
    "start": 294.51,
    "end": 296.54,
    "text": "die Testumgebung sauber hinzubekommen,"
  },
  {
    "start": 296.88,
    "end": 299.32,
    "text": "wenn ich mit Hardware umgehen muss."
  },
  {
    "start": 299.82,
    "end": 313.26,
    "text": "Was ich häufiger gesehen habe bei Kunden oder auch bei diversen Use Cases, ist, dass der Standardweg auf Hardware-Tests zu automatisieren,"
  },
  {
    "start": 313.34,
    "end": 314.92,
    "text": "der häufig erstmal gegangen wird,"
  },
  {
    "start": 315.1,
    "end": 315.2,
    "text": "ist,"
  },
  {
    "start": 315.39,
    "end": 318.08,
    "text": "ich kriege natürlich eine Automatisierung auf der Software-Ebene hin."
  },
  {
    "start": 318.12,
    "end": 321.38,
    "text": "Ich kann da ein Skript hinladen, ich kann meinen Payload hinladen, ich kann das ausführen."
  },
  {
    "start": 321.82,
    "end": 322.68,
    "text": "Aber das Ganze,"
  },
  {
    "start": 322.86,
    "end": 325.22,
    "text": "wie stelle ich da wirklich einen sauberen Zustand wieder her,"
  },
  {
    "start": 325.6,
    "end": 327.04,
    "text": "das ist häufig der Knackpunkt,"
  },
  {
    "start": 327.56,
    "end": 332.58,
    "text": "wo du kein gutes Teardown und Setup von der Hardware selber hast."
  },
  {
    "start": 333.18,
    "end": 334.6,
    "text": "Und was das Framework tut, ist,"
  },
  {
    "start": 335.3,
    "end": 337.84,
    "text": "es erlaubt eben, sich Hardware zu reservieren."
  },
  {
    "start": 337.84,
    "end": 339.1,
    "text": "Die ist dann in einem sauberen,"
  },
  {
    "start": 339.34,
    "end": 340.04,
    "text": "initialen Zustand."
  },
  {
    "start": 341.3,
    "end": 342.26,
    "text": "Und dann kann ich sagen,"
  },
  {
    "start": 342.46,
    "end": 344.4,
    "text": "das hier ist genau das Boot-Image für die Hardware."
  },
  {
    "start": 344.46,
    "end": 348.1,
    "text": "Das hier sind vielleicht noch andere Devices,"
  },
  {
    "start": 348.28,
    "end": 351.28,
    "text": "die rundherum existieren und irgendwie initialisiert werden müssen."
  },
  {
    "start": 352.26,
    "end": 353.46,
    "text": "Das erlaubt einem dieses Framework."
  },
  {
    "start": 353.52,
    "end": 354.88,
    "text": "Und dann kann ich die Hardware anschalten,"
  },
  {
    "start": 355.12,
    "end": 358.6,
    "text": "kann auch mehrere verschiedene Geräte miteinander vernetzen."
  },
  {
    "start": 359.44,
    "end": 362.68,
    "text": "Und dann kann ich einen relativ komplexen Test einfach laufen lassen."
  },
  {
    "start": 363.39,
    "end": 367.12,
    "text": "Am Ende mache ich nicht viel mehr, als würde ich mich manuell auf der Hardware einloggen."
  },
  {
    "start": 367.24,
    "end": 368.86,
    "text": "Die läuft irgendwo, ich mache SSH,"
  },
  {
    "start": 369.02,
    "end": 371.3,
    "text": "ich komme rein, ich führe meinen Test aus."
  },
  {
    "start": 371.46,
    "end": 376.84,
    "text": "Nur, dass ich eben jetzt ein bisschen mehr Garantie habe, dass meine Kollegen nicht dazwischen funken."
  },
  {
    "start": 377.32,
    "end": 379.68,
    "text": "Ich habe auch die Möglichkeit,"
  },
  {
    "start": 380.78,
    "end": 384.1,
    "text": "Sachen, die in der CI laufen, die auch auf irgendeiner Maschine laufen,"
  },
  {
    "start": 384.74,
    "end": 388.4,
    "text": "da kann ich jetzt auch einfach ohne die CI manuell unterbrechen zu müssen, kann ich sagen,"
  },
  {
    "start": 388.56,
    "end": 388.62,
    "text": "okay,"
  },
  {
    "start": 388.86,
    "end": 390.52,
    "text": "jetzt nehme ich mir einfach mal die gleiche Maschine"
  },
  {
    "start": 391.22,
    "end": 395.24,
    "text": "für den gleichen Test noch mal aus, kann irgendwelche Fehlverhalten inspizieren,"
  },
  {
    "start": 395.62,
    "end": 398.0,
    "text": "um einiges angenehmer als wenn man,"
  },
  {
    "start": 398.22,
    "end": 401.06,
    "text": "ich weiß nicht so, die typische Variante, ich schreibe"
  },
  {
    "start": 401.22,
    "end": 402.96,
    "text": "irgendwo in meinen Teamchat,"
  },
  {
    "start": 403.36,
    "end": 406.34,
    "text": "dass ich jetzt die Maschine dreimal für irgendwas reserviere"
  },
  {
    "start": 406.38,
    "end": 408.0,
    "text": "und bitte niemand darauf deployen soll."
  },
  {
    "start": 408.9,
    "end": 409.64,
    "text": "Was dann doch passiert."
  },
  {
    "start": 409.84,
    "end": 411.26,
    "text": "Was dann doch irgendwann passiert."
  },
  {
    "start": 412.04,
    "end": 412.88,
    "text": "Ja, okay,"
  },
  {
    "start": 413.1,
    "end": 413.32,
    "text": "verstehe."
  },
  {
    "start": 414.0,
    "end": 414.26,
    "text": "Das heißt,"
  },
  {
    "start": 414.68,
    "end": 417.64,
    "text": "kann ich mir das auch vorstellen für die Orchestrierung, wenn ich jetzt,"
  },
  {
    "start": 417.88,
    "end": 418.22,
    "text": "man"
  },
  {
    "start": 418.32,
    "end": 421.6,
    "text": "hat ja wahrscheinlich nicht nur immer eine Hardware da stehen, sondern einfach auch mehrere"
  },
  {
    "start": 422.06,
    "end": 424.36,
    "text": "Umgebungen oder mehrere Kombinationen oder verschiedene."
  },
  {
    "start": 424.54,
    "end": 428.14,
    "text": "Du hast vorher bei den Kernels verschiedene Prozessorentypen,"
  },
  {
    "start": 428.46,
    "end": 429.66,
    "text": "dass ich die dann auch"
  },
  {
    "start": 429.8,
    "end": 434.96,
    "text": "unterschiedlich ansteuern kann, was ich brauche, wie eine Bibliothek an Hardware."
  },
  {
    "start": 435.32,
    "end": 435.56,
    "text": "Genau."
  },
  {
    "start": 436.78,
    "end": 441.32,
    "text": "Und die stellt sicher, dass das sauber initialisiert wird, so wie es der Testfall auch vorgibt?"
  },
  {
    "start": 441.84,
    "end": 442.14,
    "text": "Genau."
  },
  {
    "start": 442.49,
    "end": 447.0,
    "text": "Also die saubere Initialisierung, da machen wir es uns ein bisschen einfach zugegeben."
  },
  {
    "start": 447.0,
    "end": 451.1,
    "text": "Wir sind auf so einer relativ schmalen Ebene."
  },
  {
    "start": 453.78,
    "end": 459.5,
    "text": "Wir optimieren gerade auf den Fall, wo von USB-Stick-Booten in Ordnung ist und"
  },
  {
    "start": 459.96,
    "end": 463.08,
    "text": "damit kriegen wir relativ viel von unseren Use Cases abgedeckt, auch von"
  },
  {
    "start": 463.12,
    "end": 465.82,
    "text": "einigen Use Cases, die wir bei Kunden sehen,"
  },
  {
    "start": 467.2,
    "end": 470.34,
    "text": "aber man lässt so ein bisschen so"
  },
  {
    "start": 470.4,
    "end": 473.16,
    "text": "Firmware-Flashen haben wir jetzt gerade noch keine Funktionalität für, das"
  },
  {
    "start": 473.26,
    "end": 475.84,
    "text": "müsste man sich selber bauen. Kann man integrieren irgendwie, müsste man sich"
  },
  {
    "start": 475.86,
    "end": 476.74,
    "text": "aber selber bauen. Das heißt,"
  },
  {
    "start": 476.98,
    "end": 478.68,
    "text": "da sind wir noch dabei rauszufinden,"
  },
  {
    "start": 479.2,
    "end": 479.779,
    "text": "welche weiteren"
  },
  {
    "start": 479.78,
    "end": 481.74,
    "text": "Use Cases sind wirklich relevant?"
  },
  {
    "start": 481.98,
    "end": 483.8,
    "text": "Bis wohin müsste man die Infrastruktur noch"
  },
  {
    "start": 483.98,
    "end": 485.3,
    "text": "erweitern, damit das wirklich funktioniert?"
  },
  {
    "start": 486.8,
    "end": 490.26,
    "text": "Du hast jetzt auch Pipelines angesprochen, das heißt ich habe damit ja auch die"
  },
  {
    "start": 490.4,
    "end": 490.64,
    "text": "Möglichkeit,"
  },
  {
    "start": 490.92,
    "end": 493.54,
    "text": "das in meine Pipeline zu integrieren und einfach automatisch"
  },
  {
    "start": 493.66,
    "end": 494.96,
    "text": "mitzulaufen oder wie kann ich mir das vorstellen?"
  },
  {
    "start": 495.4,
    "end": 495.62,
    "text": "Genau,"
  },
  {
    "start": 496.02,
    "end": 500.82,
    "text": "also wir haben die Möglichkeit einfach einen Test laufen zu lassen, der"
  },
  {
    "start": 500.88,
    "end": 503.32,
    "text": "läuft in der Pipeline vor jedem Pull Request,"
  },
  {
    "start": 503.94,
    "end": 504.96,
    "text": "nach jedem Pull Request,"
  },
  {
    "start": 505.2,
    "end": 505.48,
    "text": "wann auch"
  },
  {
    "start": 505.58,
    "end": 508.04,
    "text": "immer, was auch immer gerade zu der Strategie passt,"
  },
  {
    "start": 508.2,
    "end": 509.099,
    "text": "die man für seine"
  },
  {
    "start": 509.1,
    "end": 510.28,
    "text": "für sein Projekt braucht."
  },
  {
    "start": 511.96,
    "end": 516.38,
    "text": "Und da laufen die Tests auf der Hardware einfach mit in der Pipeline."
  },
  {
    "start": 517.52,
    "end": 520.82,
    "text": "Aber es gibt eben auch die Möglichkeit für den Entwickler selber auf die gleiche Infrastruktur"
  },
  {
    "start": 520.919,
    "end": 521.46,
    "text": "zuzugreifen,"
  },
  {
    "start": 522.02,
    "end": 522.4,
    "text": "weil,"
  },
  {
    "start": 524.36,
    "end": 525.76,
    "text": "also wir haben festgestellt,"
  },
  {
    "start": 526.06,
    "end": 528.78,
    "text": "es ist unglaublich ineffizient, wenn man jedes Mal,"
  },
  {
    "start": 529.64,
    "end": 530.78,
    "text": "ich habe eine Änderung,"
  },
  {
    "start": 531.16,
    "end": 533.14,
    "text": "ich pushe sie, ich warte auf die Pipeline,"
  },
  {
    "start": 533.9,
    "end": 535.1,
    "text": "ich gehe mir einen Kaffee holen,"
  },
  {
    "start": 535.1,
    "end": 535.8,
    "text": "ich komme zurück,"
  },
  {
    "start": 535.98,
    "end": 537.9,
    "text": "ich warte wieder immer noch auf die Pipelines."
  },
  {
    "start": 538.88,
    "end": 541.24,
    "text": "Das ist einfach so ein Zyklus, den wir irgendwie umgehen wollten."
  },
  {
    "start": 541.32,
    "end": 542.1,
    "text": "Und dafür haben wir dann,"
  },
  {
    "start": 542.98,
    "end": 544.44,
    "text": "dafür lohnt sich das dann, dass man sagen kann,"
  },
  {
    "start": 544.46,
    "end": 547.82,
    "text": "ich kann mir als Entwickler jetzt eine Hardware reservieren"
  },
  {
    "start": 547.82,
    "end": 549.94,
    "text": "und sie benutzen, als würde sie neben meinem Tisch stehen."
  },
  {
    "start": 550.48,
    "end": 552.62,
    "text": "Und dann kann ich sie wieder zurückgeben, wenn ich sie nicht mehr brauche."
  },
  {
    "start": 552.96,
    "end": 554.26,
    "text": "Und dann kann die CI sie wieder nehmen."
  },
  {
    "start": 555.66,
    "end": 558.7,
    "text": "Gerade wenn man mehrere Ausführungen derselben Hardware hat,"
  },
  {
    "start": 558.78,
    "end": 560.84,
    "text": "ist das so ein komplett dynamisches System,"
  },
  {
    "start": 561.42,
    "end": 565.1,
    "text": "was einem sehr, sehr angenehme Software Engineering erlaubt."
  },
  {
    "start": 566.12,
    "end": 568.38,
    "text": "Und dieses Framework stellt dann auch sicher, dass in der Zeit"
  },
  {
    "start": 568.44,
    "end": 570.84,
    "text": "dann auch kein anderer dann da in die Quere kommt."
  },
  {
    "start": 570.84,
    "end": 571.88,
    "text": "Das ist das auch Teil davon."
  },
  {
    "start": 572.24,
    "end": 572.4,
    "text": "Genau,"
  },
  {
    "start": 572.72,
    "end": 572.9,
    "text": "genau."
  },
  {
    "start": 573.08,
    "end": 574.66,
    "text": "Ich kann das für mich reservieren."
  },
  {
    "start": 574.72,
    "end": 576.7,
    "text": "Es ist nur für mich da."
  },
  {
    "start": 578.48,
    "end": 581.44,
    "text": "Und ich meine, ich könnte natürlich anderen Leuten sozusagen"
  },
  {
    "start": 581.58,
    "end": 583.72,
    "text": "das Secret geben, mit dem ich darauf zugreifen kann."
  },
  {
    "start": 583.88,
    "end": 585.48,
    "text": "Aber das ergibt keinen,"
  },
  {
    "start": 585.74,
    "end": 586.96,
    "text": "es macht keinen großartigen Sinn."
  },
  {
    "start": 587.48,
    "end": 587.66,
    "text": "Außer,"
  },
  {
    "start": 587.9,
    "end": 588.66,
    "text": "und das gilt es dann,"
  },
  {
    "start": 588.92,
    "end": 590.12,
    "text": "wenn ich sage, ich habe hier irgendwas,"
  },
  {
    "start": 590.22,
    "end": 590.96,
    "text": "das schlägt fehl."
  },
  {
    "start": 591.44,
    "end": 594.8,
    "text": "Und jetzt schaut man sich das vielleicht noch mal in der Web-UI oder so an."
  },
  {
    "start": 594.92,
    "end": 596.22,
    "text": "So wie ist denn gerade der Zustand?"
  },
  {
    "start": 596.46,
    "end": 599.08,
    "text": "Was ist denn gerade der Bildschirm-Output von einzelnen"
  },
  {
    "start": 599.28,
    "end": 599.54,
    "text": "Maschinen?"
  },
  {
    "start": 600.19,
    "end": 603.64,
    "text": "In den Situationen kann es sich dann lohnen, dass man tatsächlich mal so gemeinsam"
  },
  {
    "start": 603.78,
    "end": 605.72,
    "text": "drauf schaut und schaut, okay, was ist denn gerade der Zustand?"
  },
  {
    "start": 606.2,
    "end": 607.18,
    "text": "Warum schlägt hier irgendwas fehl?"
  },
  {
    "start": 608.38,
    "end": 609.5,
    "text": "Ich stelle mir jetzt vor, dass so eine,"
  },
  {
    "start": 609.94,
    "end": 611.9,
    "text": "also wenn ich jetzt so Hardware-Komponenten habe,"
  },
  {
    "start": 612.06,
    "end": 615.02,
    "text": "irgendwelche Systeme, die dann da einzubinden,"
  },
  {
    "start": 615.4,
    "end": 616.54,
    "text": "ist ein Aufwand,"
  },
  {
    "start": 617.02,
    "end": 618.459,
    "text": "weil das in meiner Welt auch"
  },
  {
    "start": 618.46,
    "end": 619.94,
    "text": "immer wieder immer ein bisschen anders ist."
  },
  {
    "start": 621.54,
    "end": 623.18,
    "text": "Wie geht ihr denn damit um, diese"
  },
  {
    "start": 623.28,
    "end": 627.2,
    "text": "Konfiguration zu schaffen, diese Testumgebung? Sind das plaintext-Files,"
  },
  {
    "start": 627.21,
    "end": 630.4,
    "text": "wo ich mir da irgendwas zusammenklöpple oder wie ist das aufgebaut?"
  },
  {
    "start": 631.96,
    "end": 639.8,
    "text": "Wir sind relativ große Verfechter von Nix und NixOS und da haben wir ein"
  },
  {
    "start": 639.86,
    "end": 644.72,
    "text": "sehr sehr großes Infrastructure-as-Code-Repository und jetzt eine neue"
  },
  {
    "start": 644.7,
    "end": 649.7,
    "text": "Hardware dort rein zu hängen. Auf der Softwareseite ist effektiv so fünf Zeilen Code duplizieren,"
  },
  {
    "start": 650.42,
    "end": 651.56,
    "text": "einmal neu deployen."
  },
  {
    "start": 653.1,
    "end": 657.08,
    "text": "Auf der Hardwareseite sieht es so aus, dass so jede Testmaschine ist mit einem"
  },
  {
    "start": 657.26,
    "end": 658.28,
    "text": "Raspberry Pi verbunden."
  },
  {
    "start": 658.72,
    "end": 662.16,
    "text": "Der Raspberry Pi hat eine USB-Verbindung,"
  },
  {
    "start": 662.42,
    "end": 664.06,
    "text": "um USB-Geräte zu simulieren."
  },
  {
    "start": 664.28,
    "end": 666.4,
    "text": "Der hat eine HDMI-Verbindung,"
  },
  {
    "start": 666.6,
    "end": 671.66,
    "text": "um HDMI-Output rauszulesen und der kann auch über die serielle"
  },
  {
    "start": 671.66,
    "end": 676.46,
    "text": "Konsole verbunden werden und den muss ich sicherlich irgendwie vorbereiten,"
  },
  {
    "start": 677.18,
    "end": 677.28,
    "text": "aber"
  },
  {
    "start": 677.4,
    "end": 680.62,
    "text": "sobald das in der Infrastruktur ist, dann so die Infrastructure-as-Code-Teil, der"
  },
  {
    "start": 680.78,
    "end": 681.76,
    "text": "läuft ziemlich einfach dann,"
  },
  {
    "start": 683.14,
    "end": 685.18,
    "text": "wenn man einmal das Gesamtsystem verstanden hat,"
  },
  {
    "start": 685.6,
    "end": 687.48,
    "text": "kapselt das sehr viel auch von der Komplexität weg."
  },
  {
    "start": 687.76,
    "end": 690.16,
    "text": "Das klingt ja schon mal entspannt,"
  },
  {
    "start": 690.34,
    "end": 693.12,
    "text": "also muss man nicht so herumfummeln da drin."
  },
  {
    "start": 693.78,
    "end": 695.8,
    "text": "Und auf der anderen Seite, wenn du jetzt sagst,"
  },
  {
    "start": 696.14,
    "end": 697.62,
    "text": "ich reserviere mir eine Umgebung"
  },
  {
    "start": 697.62,
    "end": 702.54,
    "text": "oder ich möchte die dann für einen Test ansprechen. Wie ist das? Läuft das über"
  },
  {
    "start": 702.78,
    "end": 707.06,
    "text": "Schnittstellen oder habt ihr da eine Oberfläche, wo ich mir dann mit dem Outlook Ressourcen"
  },
  {
    "start": 707.62,
    "end": 707.96,
    "text": "zuweisen kann?"
  },
  {
    "start": 708.38,
    "end": 709.68,
    "text": "Wie funktioniert das?"
  },
  {
    "start": 709.9,
    "end": 710.62,
    "text": "Ja, gute Frage."
  },
  {
    "start": 711.34,
    "end": 712.74,
    "text": "Es gibt eine REST API."
  },
  {
    "start": 713.22,
    "end": 713.38,
    "text": "Über"
  },
  {
    "start": 713.38,
    "end": 715.16,
    "text": "die REST API läuft eigentlich alles."
  },
  {
    "start": 716.06,
    "end": 720.72,
    "text": "Und dann haben wir da ein WebUI, das benutzt dieselbe"
  },
  {
    "start": 720.78,
    "end": 721.5,
    "text": "REST API,"
  },
  {
    "start": 721.74,
    "end": 724.02,
    "text": "um Maschinen zu reservieren,"
  },
  {
    "start": 724.38,
    "end": 725.44,
    "text": "bekommt ein Secret zurück."
  },
  {
    "start": 725.64,
    "end": 726.74,
    "text": "Das ist jetzt ein Kontext"
  },
  {
    "start": 726.74,
    "end": 729.4,
    "text": "für alle Maschinen, die da drin sind."
  },
  {
    "start": 729.68,
    "end": 732.24,
    "text": "Und da kann ich darin eben die einzelnen Maschinen"
  },
  {
    "start": 732.84,
    "end": 736.66,
    "text": "übers Netzwerk konfigurieren, über einen VLAN-Switch, der mit existiert."
  },
  {
    "start": 737.38,
    "end": 741.6,
    "text": "Und das funktioniert alles über die API,"
  },
  {
    "start": 741.7,
    "end": 742.84,
    "text": "das ist alles über eine API,"
  },
  {
    "start": 743.8,
    "end": 745.72,
    "text": "die dir da die Funktionen anbietet."
  },
  {
    "start": 748.0,
    "end": 751.64,
    "text": "Und gleichzeitig habe ich aber eben auch so ein Command-Line-Tooling,"
  },
  {
    "start": 751.84,
    "end": 752.6,
    "text": "einfach so eine Möglichkeit,"
  },
  {
    "start": 753.62,
    "end": 755.62,
    "text": "direkt mit der API von der Command-Line zu reden"
  },
  {
    "start": 755.62,
    "end": 757.86,
    "text": "und auch mir Tests zu schreiben,"
  },
  {
    "start": 758.04,
    "end": 761.34,
    "text": "die relativ gut abbilden."
  },
  {
    "start": 761.34,
    "end": 765.7,
    "text": "Ich möchte jetzt effektiv im JSON, ich möchte diese Maschinen haben,"
  },
  {
    "start": 765.7,
    "end": 769.26,
    "text": "die sollen in diesem Netzwerk verbunden sein, die brauchen dieses Bootmedium."
  },
  {
    "start": 770.3,
    "end": 774.08,
    "text": "Und dann habe ich ein Test Script, das fängt effektiv direkt da an,"
  },
  {
    "start": 774.08,
    "end": 775.44,
    "text": "wo ich mit den Maschinen reden kann."
  },
  {
    "start": 775.52,
    "end": 777.76,
    "text": "Und um den Rest kümmert sich dann das Tooling darum."
  },
  {
    "start": 778.2,
    "end": 781.92,
    "text": "Das heißt, der einzelne Testschreiber muss auch wieder nicht genau wissen,"
  },
  {
    "start": 781.94,
    "end": 783.7,
    "text": "im besten Fall, wie rede ich mit der API,"
  },
  {
    "start": 783.9,
    "end": 787.74,
    "text": "sondern ich lande direkt in einem Kontext, wo die Maschinen, die ich brauche,"
  },
  {
    "start": 788.06,
    "end": 789.26,
    "text": "über SSH verfügbar sind."
  },
  {
    "start": 789.28,
    "end": 789.7,
    "text": "Das heißt,"
  },
  {
    "start": 790.92,
    "end": 793.52,
    "text": "wenn ich Testfälle schreibe, dann gehe ich davon aus, meine Umgebung ist da,"
  },
  {
    "start": 793.9,
    "end": 797.92,
    "text": "den Rest macht dann quasi das Framework und ich lasse es mit meinen Tools, welche ich auch immer nutze,"
  },
  {
    "start": 798.08,
    "end": 800.38,
    "text": "dann schreibe ich da meine Tests und lasse sie dann durchführen."
  },
  {
    "start": 800.56,
    "end": 800.62,
    "text": "Ja,"
  },
  {
    "start": 800.96,
    "end": 801.06,
    "text": "genau."
  },
  {
    "start": 801.5,
    "end": 804.02,
    "text": "Und gehe am Schluss dann wahrscheinlich wieder und sage, ich bin jetzt fertig oder so."
  },
  {
    "start": 804.04,
    "end": 804.88,
    "text": "Genau, ich bin jetzt fertig."
  },
  {
    "start": 806.3,
    "end": 808.5,
    "text": "Oder auch, was wir dann auch eingebaut haben,"
  },
  {
    "start": 809.12,
    "end": 812.18,
    "text": "ein großer Use Case war die GitLab CI"
  },
  {
    "start": 812.18,
    "end": 816.04,
    "text": "Und da gibt es das JUnit XML Format,"
  },
  {
    "start": 816.36,
    "end": 820.26,
    "text": "was dir erlaubt, so strukturierten Testoutput auch in der UI anzuzeigen."
  },
  {
    "start": 820.58,
    "end": 825.32,
    "text": "Und da haben wir eben ein bisschen Arbeit reingesteckt, dass so die einzelnen Testcases, die man in einem Durchlauf hat,"
  },
  {
    "start": 825.38,
    "end": 827.26,
    "text": "dass die auch als Artefakt rausfallen."
  },
  {
    "start": 828.18,
    "end": 834.08,
    "text": "Und ähnlich dann auch für Performance Benchmarking ist das On-Hardware-Testing auch relevant,"
  },
  {
    "start": 834.34,
    "end": 839.96,
    "text": "weil wenn ich Pech habe, kriege ich keine Stabilität hin, wenn ich irgendwas virtualisiere."
  },
  {
    "start": 840.02,
    "end": 845.62,
    "text": "und dann muss ich irgendwie auf die Hardware gehen oder vielleicht ist es auch ein tatsächliches"
  },
  {
    "start": 846.12,
    "end": 847.88,
    "text": "Requirement vom Produkt, dass ich sage, dass,"
  },
  {
    "start": 848.48,
    "end": 852.1,
    "text": "weiß ich nicht, dein Router, der darf jetzt"
  },
  {
    "start": 852.16,
    "end": 856.5,
    "text": "maximal zehn Sekunden dauern, bis er hochgefahren ist und dann möchtest du dafür eigentlich in"
  },
  {
    "start": 856.6,
    "end": 861.94,
    "text": "deinem Engineering irgendwie Daten haben, die das tatsächlich belegen und auch das sind dann"
  },
  {
    "start": 861.98,
    "end": 866.18,
    "text": "Sachen, die man aufnehmen kann und dann entsprechend in irgendeine Infrastruktur weiterleiten kann,"
  },
  {
    "start": 866.18,
    "end": 867.86,
    "text": "wo die Daten gesammelt und aufbereitet werden."
  },
  {
    "start": 868.02,
    "end": 868.14,
    "text": "Ja,"
  },
  {
    "start": 868.32,
    "end": 868.4,
    "text": "ja."
  },
  {
    "start": 869.36,
    "end": 870.2,
    "text": "Ich habe jetzt verstanden,"
  },
  {
    "start": 870.2,
    "end": 872.18,
    "text": "ihr entwickelt ja schon lange an diesem Konzept,"
  },
  {
    "start": 872.34,
    "end": 877.16,
    "text": "jetzt ist es seit zwei Monaten auch als Open Source verfügbar."
  },
  {
    "start": 878.98,
    "end": 881.44,
    "text": "Merkt ihr schon, dass da Zugriffe passieren,"
  },
  {
    "start": 881.56,
    "end": 883.48,
    "text": "dass das Leute beginnen, bei sich einzusetzen?"
  },
  {
    "start": 884.6,
    "end": 886.3,
    "text": "Oder ist das jetzt eher der Aufruf dazu?"
  },
  {
    "start": 887.52,
    "end": 887.96,
    "text": "Gerne."
  },
  {
    "start": 890.58,
    "end": 893.32,
    "text": "Tatsächlich ist es gerade noch eher so ein internes Tool."
  },
  {
    "start": 893.32,
    "end": 897.18,
    "text": "Und wir nutzen eben gerade die Möglichkeit,"
  },
  {
    "start": 897.38,
    "end": 898.42,
    "text": "darüber zu reden, um zu schauen,"
  },
  {
    "start": 899.72,
    "end": 902.84,
    "text": "ist das was, was gerade nur unseren Anwendungsfall abdeckt?"
  },
  {
    "start": 902.84,
    "end": 908.92,
    "text": "Oder gibt es da ähnliche Anwendungsfälle da draußen, wo man mit wenigen Kniffen dafür sorgen kann, dass das für mehr als nur uns nützlich ist?"
  },
  {
    "start": 909.06,
    "end": 912.42,
    "text": "Wir glauben, dass es nützlich ist, sonst würden wir da nicht so viel Zeit rein investieren."
  },
  {
    "start": 915.319,
    "end": 918.38,
    "text": "Aber wir haben jetzt noch keinen Beweis dafür,"
  },
  {
    "start": 918.54,
    "end": 920.84,
    "text": "dass es auch für sehr viele andere Cases relevant ist."
  },
  {
    "start": 920.84,
    "end": 921.76,
    "text": "Wir haben ein paar Anzeichen,"
  },
  {
    "start": 922.14,
    "end": 922.78,
    "text": "wir haben ein paar Leute,"
  },
  {
    "start": 922.94,
    "end": 925.28,
    "text": "mit denen wir uns schon unterhalten haben,"
  },
  {
    "start": 925.42,
    "end": 928.88,
    "text": "aber es gibt noch kein direktes Investment sozusagen,"
  },
  {
    "start": 929.16,
    "end": 931.06,
    "text": "da wirklich weiterzumachen."
  },
  {
    "start": 931.16,
    "end": 935.74,
    "text": "Wir haben intern bei uns Use Cases und bei dem Partner, mit dem wir zusammenentwickelt haben,"
  },
  {
    "start": 935.76,
    "end": 937.08,
    "text": "da gibt es konkrete Use Cases."
  },
  {
    "start": 937.48,
    "end": 938.98,
    "text": "Darüber hinaus sind wir, wie gesagt, noch am Schauen."
  },
  {
    "start": 939.1,
    "end": 939.22,
    "text": "Ja,"
  },
  {
    "start": 939.4,
    "end": 939.78,
    "text": "okay."
  },
  {
    "start": 940.16,
    "end": 943.94,
    "text": "Das heißt, wenn jemand hier zuhört und denkt sich, was wollte ich immer schon mal haben,"
  },
  {
    "start": 944.3,
    "end": 946.08,
    "text": "dann weiß man jetzt mal, wo man mit einsteigen kann."
  },
  {
    "start": 946.48,
    "end": 953.56,
    "text": "Habt ihr denn für euch auch intern oder quasi in eurer Überlegung auch eine gewisse Roadmap oder eine Idee von Sachen,"
  },
  {
    "start": 953.7,
    "end": 955.56,
    "text": "die ihr seht, das muss jetzt noch unbedingt mit rein?"
  },
  {
    "start": 957.22,
    "end": 960.28,
    "text": "Für unsere internen Use Cases sind wir relativ weit tatsächlich."
  },
  {
    "start": 960.88,
    "end": 963.62,
    "text": "Wir nutzen jetzt auch gerade zum Beispiel die TACON,"
  },
  {
    "start": 964.08,
    "end": 965.76,
    "text": "um uns mit Leuten zu unterhalten und zu verstehen,"
  },
  {
    "start": 965.81,
    "end": 965.92,
    "text": "okay,"
  },
  {
    "start": 966.16,
    "end": 969.76,
    "text": "was fehlt denn, damit es auch für andere Use Cases interessant ist."
  },
  {
    "start": 970.46,
    "end": 972.02,
    "text": "Wir haben jetzt keine konkrete Roadmap,"
  },
  {
    "start": 972.62,
    "end": 974.18,
    "text": "jenseits von noch so ein bisschen Aufräumen,"
  },
  {
    "start": 974.18,
    "end": 975.68,
    "text": "nachdem man es open source gemacht hat."
  },
  {
    "start": 977.64,
    "end": 979.54,
    "text": "Aber was uns hier zum Beispiel aufgefallen ist,"
  },
  {
    "start": 979.6,
    "end": 985.54,
    "text": "der Fall, wo man tatsächlich ein Interface hat, um Firmware auf Geräte zu bekommen und"
  },
  {
    "start": 985.62,
    "end": 987.76,
    "text": "nicht nur von einem USB-Stick zu booten."
  },
  {
    "start": 988.04,
    "end": 989.64,
    "text": "Das könnte ein Fall sein, der interessant ist."
  },
  {
    "start": 989.64,
    "end": 990.64,
    "text": "Das müssen wir da nochmal schauen."
  },
  {
    "start": 991.2,
    "end": 993.7,
    "text": "Aber wir haben jetzt gerade keine konkrete Development"
  },
  {
    "start": 993.92,
    "end": 994.2,
    "text": "Roadmap."
  },
  {
    "start": 994.48,
    "end": 997.72,
    "text": "Es ist jetzt nicht so, dass die Infrastruktur fertig ist, aber für die Use Cases,"
  },
  {
    "start": 997.72,
    "end": 998.6,
    "text": "die wir gerade sehen,"
  },
  {
    "start": 998.92,
    "end": 999.74,
    "text": "ist es erstmal gut genug."
  },
  {
    "start": 1000.02,
    "end": 1000.12,
    "text": "Ja,"
  },
  {
    "start": 1000.9,
    "end": 1002.98,
    "text": "heutzutage braucht man eh nur MCP und ein"
  },
  {
    "start": 1002.82,
    "end": 1003.4,
    "text": "paar Skills."
  },
  {
    "start": 1003.95,
    "end": 1005.56,
    "text": "So, dann läuft das. Das kann man noch dazu machen."
  },
  {
    "start": 1005.8,
    "end": 1005.94,
    "text": "Nee,"
  },
  {
    "start": 1006.1,
    "end": 1006.2,
    "text": "Scherz."
  },
  {
    "start": 1007.5,
    "end": 1009.8,
    "text": "Aber das ist natürlich auch"
  },
  {
    "start": 1009.8,
    "end": 1014.42,
    "text": "da seid ihr jetzt auch aufs Feedback der Community auch angewiesen zu schauen, was braucht es da."
  },
  {
    "start": 1014.62,
    "end": 1015.82,
    "text": "Ja, sehr schön."
  },
  {
    "start": 1016.38,
    "end": 1016.7,
    "text": "Ja,"
  },
  {
    "start": 1016.94,
    "end": 1018.28,
    "text": "finde ich total spannend."
  },
  {
    "start": 1018.55,
    "end": 1020.34,
    "text": "Ich finde ja total wichtig auch so Open Source"
  },
  {
    "start": 1020.56,
    "end": 1025.6,
    "text": "Projekte, weil Open Source ist ja auch ein bisschen so der Backbone für unsere ganze IT-Infrastruktur,"
  },
  {
    "start": 1025.819,
    "end": 1031.36,
    "text": "für viele Betriebssysteme, Software generell als Basis und gerade auch stark unter Druck,"
  },
  {
    "start": 1031.36,
    "end": 1037.22,
    "text": "was natürlich die ganzen KI Themen angeht, die dann ständig Pull-Requests schießen oder irgendwelche"
  },
  {
    "start": 1038.399,
    "end": 1040.459,
    "text": "vermeintlichen Vulnerabilities daraus gibt."
  },
  {
    "start": 1040.78,
    "end": 1044.0,
    "text": "Also das ist natürlich schon schön, wenn man auch so ein Projekt"
  },
  {
    "start": 1044.079,
    "end": 1046.459,
    "text": "dann trotzdem macht, weil gerade ist ja auch in der,"
  },
  {
    "start": 1047.0,
    "end": 1048.98,
    "text": "also nimmt man ja auch von einigen Open-Source-Projekten"
  },
  {
    "start": 1049.06,
    "end": 1052.46,
    "text": "wahr, die sagen, nein, wir nicht mehr, wir gehen wieder den Schritt zurück zu Closed-Source."
  },
  {
    "start": 1052.96,
    "end": 1053.82,
    "text": "Also da finde ich auch gut,"
  },
  {
    "start": 1054.1,
    "end": 1055.0,
    "text": "den anderen Schritt zu gehen."
  },
  {
    "start": 1055.16,
    "end": 1056.48,
    "text": "Das war uns auch sehr wichtig."
  },
  {
    "start": 1059.62,
    "end": 1063.3,
    "text": "Die Infrastruktur hat sicherlich den internen Wert, wenn sie intern bleibt,"
  },
  {
    "start": 1063.54,
    "end": 1065.22,
    "text": "aber es ist schon wichtig zu sagen,"
  },
  {
    "start": 1065.62,
    "end": 1068.12,
    "text": "wenn es da keinen kommerziellen Wert dahinter gibt,"
  },
  {
    "start": 1068.18,
    "end": 1071.14,
    "text": "das jetzt als closed source, als proprietäre Lösung zu behalten,"
  },
  {
    "start": 1071.46,
    "end": 1072.84,
    "text": "dann war uns schon wichtig, dass wir sagen, okay,"
  },
  {
    "start": 1073.1,
    "end": 1074.58,
    "text": "es wird jetzt auch geopensourced,"
  },
  {
    "start": 1075.52,
    "end": 1077.18,
    "text": "dieses auch an die Community zurückgeben,"
  },
  {
    "start": 1077.56,
    "end": 1081.0,
    "text": "selbst wenn es jetzt vielleicht auch ein Tool ist, was sich vielleicht rausstellt,"
  },
  {
    "start": 1081.06,
    "end": 1084.5,
    "text": "dass es doch zu viele Änderungen braucht, als dass es für mehr nur uns nützlich ist,"
  },
  {
    "start": 1084.68,
    "end": 1087.02,
    "text": "Aber zumindest den Versuch zu starten, das ist uns auch sehr wichtig."
  },
  {
    "start": 1087.88,
    "end": 1093.14,
    "text": "Wie du meinst, unsere gesamte Infrastruktur, das ganze Leben baut auf Open Source Software auf."
  },
  {
    "start": 1093.23,
    "end": 1093.32,
    "text": "Genau,"
  },
  {
    "start": 1093.56,
    "end": 1094.54,
    "text": "das erkennt man manchmal."
  },
  {
    "start": 1094.82,
    "end": 1096.44,
    "text": "Das sieht man gar nicht so häufig."
  },
  {
    "start": 1097.66,
    "end": 1100.24,
    "text": "Da ist es auch so ein Ehrgefühl, zu sagen, okay,"
  },
  {
    "start": 1100.42,
    "end": 1104.74,
    "text": "jetzt hat man hier was Tolles gebaut, das gibt man jetzt auch wieder nach draußen."
  },
  {
    "start": 1105.08,
    "end": 1105.18,
    "text": "Ja,"
  },
  {
    "start": 1105.55,
    "end": 1105.64,
    "text": "genau."
  },
  {
    "start": 1106.28,
    "end": 1110.86,
    "text": "Ja, super. Also hier nochmal der Aufruf, wenn irgendjemand denkt, das wäre super für unsere Umgebung,"
  },
  {
    "start": 1110.86,
    "end": 1114.36,
    "text": "in einem Embedded Umfeld oder mit verschiedenen Konfigurationen"
  },
  {
    "start": 1114.4,
    "end": 1116.98,
    "text": "hier von Hardware zu arbeiten."
  },
  {
    "start": 1117.68,
    "end": 1120.84,
    "text": "Das würde passen. Dann auf jeden Fall mal mit Markus Kontakt aufnehmen, würde ich sagen."
  },
  {
    "start": 1122.04,
    "end": 1122.4,
    "text": "Super."
  },
  {
    "start": 1122.86,
    "end": 1123.14,
    "text": "Markus,"
  },
  {
    "start": 1123.3,
    "end": 1126.16,
    "text": "vielen lieben Dank, dass du hier warst, dass du das mal vorgestellt hast."
  },
  {
    "start": 1126.28,
    "end": 1128.1,
    "text": "Ich finde das einen total wertvollen Beitrag"
  },
  {
    "start": 1128.4,
    "end": 1131.94,
    "text": "und hoffe, dass ihr da jetzt auch ein bisschen Zuspruch bekommt,"
  },
  {
    "start": 1132.54,
    "end": 1134.7,
    "text": "Unterstützung bekommt, Feedback bekommt vor allem auch."
  },
  {
    "start": 1135.08,
    "end": 1137.1,
    "text": "Feedback ist das Frühstück der Champions und dann"
  },
  {
    "start": 1137.06,
    "end": 1140.74,
    "text": "mal schauen, was dann daraus wird und vielleicht sehen wir nächstes Jahr einen anderen Vortrag"
  },
  {
    "start": 1140.82,
    "end": 1142.56,
    "text": "schon dazu oder eine andere Podcast-Folge,"
  },
  {
    "start": 1142.95,
    "end": 1145.1,
    "text": "wo das schon gewachsen ist und was Neues passiert."
  },
  {
    "start": 1145.87,
    "end": 1149.02,
    "text": "Ich danke dir, dass du da warst und ich wünsche dir noch einen schönen Resttag auf der Konferenz."
  },
  {
    "start": 1149.5,
    "end": 1149.9,
    "text": "Danke schön."
  },
  {
    "start": 1149.9,
    "end": 1151.78,
    "text": "[Musik]"
  }
]