Berlin 2019 24-27 SEPTEMBER
German flag
Konferenztag: 26. September 2019
Zeit Track 1 Track 2 Track 3
09:00
09:10
Willkommen
09:15
10:00
Keynote
Janina Loh
10:05
10:50
HTTP-Clients in PHP - vom fopen-Wrapper zur Symfony-Komponente
Denis Brumann
Statische Code Analyse in PHP
Benjamin Cremer
Case Studies of Legacy CMS to Headless CMS
David Keller & Stiven Llupa
10:50
11:20
Kaffeepause
11:20
12:05
Denormalisiere deine Datenbank - Schema-Design für moderne Datenbanksysteme
Andreas Braun
Dayuse.com - Challenges to Scale an Innovative Worldwide Business
Hugo Hamon
Der Content-Manager mag den Baum
Maximilian Berghoff
12:10
12:55
In fünf Jahren wird es keine Tester mehr geben
Nils Langner
Varnish beyond basic web acceleration
Thijs Feryn
Building an extraordinary online store with Sylius
Magdalena Sadowska
12:55
14:25
Mittagspause
14:25
15:10
How Birdie uses an event-based approach to scale
Samuel Roze
Aggregierte Logging Patterns
Philipp Krenn
Besser schlafen mit Shopware6
Daniel Nögel
15:15
16:00
Meine ehrliche Symfony-Anwendung
Christopher Hertel
Start Smoking, Get Confidence - HTTP Smoke Testing
Petr Heinz
Content Management mit eZ Platform – ein Crashkurs
Thorsten Reiter
16:00
16:30
Kaffeepause
16:30
17:15
User Story Mapping - MVP-Scoping leicht gemacht
Marian Bosse
Everything about DNS you never dared to ask!
Ole Michaelis
Let's distribute: Vom Shopsystem zur verteilten Applikationsinfrastruktur
Leonard Kriese & Bernd Alter
17:20
18:05
Die ultimative API Plattform
Stefan Adolf
Ein Plädoyer für Fokus, Prioritäten und wieso man das Warum wissen sollte!
Stephan Schulze
Sulu 2.0 - bring your own business logic
Thomas Schedler
ab 18:05 Cocktails & Currywurst

Konferenztag: 27. September 2019
Zeit Track 1 Track 2 Track 3
09:00
09:10
Begrüßung & Infos
09:15
10:00
Symfony Update - on the road to v5
Christopher Hertel & Andreas Hucks
Pushing the limits of PHP
Christian Lück
Bolt 4 - A modern CMS for the Future
Bob den Otter
10:05
10:50
Head first into Symfony Cache, Redis, & Redis Cluster
André Rømcke
Einstieg in Ansible ohne die Fettnäpfchen
Lukas Sadzik
Lessons learned at Lilydoo
Jan Gregor Emge-Triebel
10:50
11:20
Kaffeepause
11:20
12:05
Using redis streams to build more resilient services
Thomas Schedler
Automatisierte Review-Umgebungen mit GitLab-CI und Rancher
Daniel Badura
Everyday Tools That Make My Work Easier
David Ostrožík
12:10
12:55
Backwards Incompatible Tales
Marco Pivetta
Softwarequalität === Gesundheit
Roland Golla
Multigrained Microservices - Die Transformationsstrategie eines traditionellen Online-Händlers
Frank Leue
12:55
14:25
Mittagspause
14:25
15:10
Exploring Async PHP
Daniel Leech
Great APIs built with Symfony and Open Source Software
Asmir Mustafic
Sylius and Sulu | Commerce and Content
Sulu
15:15
16:00
Und was kostet das? - Scrum als Dienstleister
Franzi Hackhausen
Ready for Takeoff - Umgang mit latenzbehafteten Internetverbindungen
Thomas Holland
Paketverwaltung im Browser – die Composer-WebGUI für Contao
Andreas Schempp
16:00
16:30
Kaffeepause
16:30
17:15
Wie gut sind meine Tests wirklich?
Stephan Hochdörfer
SOLIDe Symfony Apps bauen
Ole Rößner
Flexibel bleiben mit einem plattformunabhängigen Storefront
Alexander Nickel
17:20
18:05
Keynote: Better Communication to Bridge the Tech/Business Gap
Jeffrey McGuire
ab
18:05
Ankündigungen & Ende
Janina Loh

Keynote

Janina Loh

Track 1 - Deutsch - 26.09.19, 09:15

Keynote

HTTP-Clients in PHP - vom fopen-Wrapper zur Symfony-Komponente

Denis Brumann

Track 1 - Deutsch - 26.09.19, 10:05

HTTP-Requests aus einer PHP-Anwendung zu verschicken, war früher kompliziert. Von aufwendigem Stream-Handling über eine Vielzahl an Bibliotheken hin zu einem gemeinsamen Standard hat sich viel getan. In meinem Talk gebe ich einen kurzen Einblick in die Historie von HTTP-Clients, einen Überblick über den PSR-18 Standard hin zu Symfonys HttpClient-Komponente und welche Vorteile sie bietet.

Statische Code Analyse in PHP

Benjamin Cremer

Track 2 - Deutsch - 26.09.19, 10:05

Das Typensystem sowie die statische Code Analyse können eine große Hilfe sein, wenn es darum geht, Fehler frühzeitig und automatisiert zu finden, ohne dass dafür manuelle Tests geschrieben werden müssen. Ich zeige die Voraussetzungen an deinen Code, um das meiste aus der statischen Code Analyse herauszuholen sowie die Tools, um direkt loszulegen.

Case Studies of Legacy CMS to Headless CMS

David Keller & Stiven Llupa

Track 3 - English - 26.09.19, 10:05

(tba)

Denormalisiere deine Datenbank - Schema-Design für moderne Datenbanksysteme

Andreas Braun

Track 1 - Deutsch - 26.09.19, 11:20

Über viele Jahre haben wir unsere Datenbanken nach den Regeln der Datenbanknormalisierung gebaut. Moderne Datenbanksysteme bieten uns aber viel mehr als skalare Typen und es wird Zeit, dass wir sie nutzen. Ich werde zeigen, wie wir komplexe Datentypen in relationalen Datenbanken nutzen können, um Daten dort zu speichern, wo wir sie brauchen. Gleichzeitig werfen wir einen Blick auf dokumentenbasierte Datenbanken, um zu sehen, welche Möglichkeiten des Schema-Designs wir davon adaptieren können.

Dayuse.com - Challenges to Scale an Innovative Worldwide Business

Hugo Hamon

Track 2 - English - 26.09.19, 11:20

(tba)

Der Content-Manager mag den Baum

Maximilian Berghoff

Track 3 - Deutsch - 26.09.19, 11:20

Baumartige Strukturen treffen wir im Web überall an. Ob die einfache URL einer Webseite, in Navigations-Menüs oder für Foren- und Chat-Verläufe. Auch XML repräsentiert eine Baumstruktur. Doch warum Daten nicht auch in einer solchen Struktur ablegen? In der Java-Welt gibt es mit dem JCR ein Content-Repository mit dem sich Daten in einer baumartigen Struktur ablegen lassen. Das JCR wurde auch nach PHP portiert, unter dem Namen PHPCR. Mit dem eigenen Doctrine (PHPCR-ODM) lässt es sich einfach in Applikationen einbinden. Semi-strukturierter Inhalt, dynamisches Routing oder andere hierarchisch strukturierte Daten lassen sich damit effizient persistieren.

In fünf Jahren wird es keine Tester mehr geben

Nils Langner

Track 1 - Deutsch - 26.09.19, 12:10

Qualität ist wichtig, da sind wir uns alle einig. Aber wie wichtig ist sie? 10 Gründe (technologisch und Mindset), warum es in den nächsten Jahren immer weniger Tester geben wird und warum sich der Stellenwert der Qualität verändert.

Varnish beyond basic web acceleration

Thijs Feryn

Track 2 - English - 26.09.19, 12:10

Varnish is one of the world’s leading caching and web acceleration solutions, improving the performance of almost 5 million websites worldwide and more than 20% of the top 10,000 websites. But Varnish is used for a lot more than just speeding up websites and APIs. Varnish Software’s solution has enabled some of the biggest video streaming platforms in the world to improve their delivery process. In this presentation, Thijs will share some advanced tricks that go beyond basic web acceleration: prefetching, geo blocking, rate limiting, edge content transformation, device detection and the configuration of our massive storage engine. Thijs will also show how these advanced features can be used to speed up the delivery of video streaming content.

Building an extraordinary online store with Sylius

Magdalena Sadowska

Track 3 - English - 26.09.19, 12:10

If you are seeking a solution that will let you build anything you can imagine in the eCommerce field, then Sylius might be exactly what you need. From the Sylius Product Owner point of view, I’m going to explain how does Sylius differ from mainstream eCommerce platforms, show you on examples what you can achieve with it and which of its components you can use in your existing Symfony applications.

How Birdie uses an event-based approach to scale

Samuel Roze

Track 1 - English - 26.09.19, 14:25

In this talk, you will learn how birdie (https://birdie.care) uses an event-based approach as the core of its architecture. I will go through the reasoning of why it went to the path of using events instead of "updatable entities" for the core of our business logic, how we built it and how it evolved after more than a year in production and millions of events.

Aggregierte Logging Patterns

Philipp Krenn

Track 2 - Deutsch - 26.09.19, 14:25

In verteilten Applikationen besteht immer der Bedarf Logs zu zentralisieren - sobald man mehr als ein paar Server oder Container hat, reichen SSH und cat, tail oder less nicht mehr aus. Das übliche Problem ist aber, wie man möglichst effizient zu einer zentralisierten oder aggregierten Log-Lösung kommt. Dieser Vortrag stellt mehrere Ansätze und Patterns mit ihren Vor- und Nachteilen vor, sodass die Zuhörer den auswählen können, der am besten zu ihrer Organisation passt: parsen, senden, strukturieren, containerisieren, orchestrieren. Jedes Muster hat sein eigenes Demo mit dem Open Source Elastic Stack (früher ELK Stack), sodass die Zuhörer die unterschiedlichen Ansätze in ihrer Umgebung einfach ausprobieren können. Wobei die Muster generell bei jedem zentralisierten Logging-System anwendbar sind.

Besser schlafen mit Shopware6

Daniel Nögel

Track 3 - Deutsch - 26.09.19, 14:25

Der E-Commerce ist vordergründig sehr einfach ist ("Sachen im Internet verkaufen"). Wer aber schonmal einen Kunden in einem E-Commerce Projekt begleitet hat, weiß: Schaut man sich einzelne Funktionen näher an, zeigt sich ein wahres Fraktal an weiteren Funktionen, Anforderungen, Details, Spezialfälle. Aber selbst sehr spezifische Anforderungen erscheinen dir plötzlich elementar, wenn du beim Kunden erstmal in der Lagerhalle gestanden oder dem Einkäufer über die Schulter geschaut hast. Für Shopware6 haben wir viele Anforderungen identifiziert, die in Projekten Aufwände und bei Entwicklern schlaflose Nächte verursachen. In diesem Talk möchte ich euch vorstellen, mit welchen neuen Ansätzen wir euch das Entwickler-Leben einfacher machen wollen.

Meine ehrliche Symfony-Anwendung

Christopher Hertel

Track 1 - Deutsch - 26.09.19, 15:15

Du hast die letzten Jahre bei verschiedenen Talks viel über Architektur, Testing, Komponenten und Pattern gehört. Natürlich hast du auch viel über Symfony gelernt und die Buzzwords sind in Schwärmen an dir vorbei in ferne Länder gezogen. Aber was bleibt übrig, wenn man wieder im Büro ohne Hypes und gestylte Slides eine Symfony-Anwendung hochziehen muss? Über die letzten Jahre habe ich viele Projekte und Teams kennengelernt und unterschiedlichste Ansätze, Probleme und Lösungen gesehen. In diesem Talk will ich euch meinen Weg Symfony-Anwendungen zu bauen zeigen. Es wird leider nicht so shiny und fancy, sondern realistisch und pragmatisch. Nehmt die Sonnenbrille ab und holt den Notizblock raus.

Start Smoking, Get Confidence - HTTP Smoke Testing

Petr Heinz

Track 2 - English - 26.09.19, 15:15

Introduction to HTTP Smoke Testing of web applications with demonstration of a solution for Symfony.

Content Management mit eZ Platform – ein Crashkurs

Thorsten Reiter

Track 3 - Deutsch - 26.09.19, 15:15

eZ Systems war im Jahr 2012 einer der ersten CMS Anbieter, die das Symfony Framework voll ausschöpfte. Dieser Talk bietet eine schnelle Einführung in die Arbeit mit eZ Platform.

Marian Bosse

User Story Mapping - MVP-Scoping leicht gemacht

Marian Bosse

Track 1 - Deutsch - 26.09.19, 16:30

Wie finden wir die richtigen, sprich die wirklich wichtigen Anforderungen für unser Vorhaben und wie behalten wir auch bei komplexen Softwareprojekten den Überblick, ohne die Details aus dem Auge zu verlieren? Wie stellen wir dann auch noch sicher, dass alle das gleiche Bild vor Augen haben, wenn wir über das große Ganze oder das einzelne Feature sprechen? Eine sinnvolle Antwort darauf kann der Einsatz von User Stories und User Story Maps sein. User Stories haben sich im agilen Umfeld als die Methode zur Formulierung von Anforderungen durchgesetzt, da sie das Verständnis und den kommunikativen Austausch fördern. User Story Mapping ist eine Technik, mit der sich User Stories visuell in Zusammenhang bringen lassen. Story Maps helfen dabei, komplexe Vorhaben in kleinere “Häppchen” zu zerlegen, um dem Kern des Vorhabens auf die Spur zu kommen - damit eignen sich Story Maps hervorragend, um auf der Suche nach dem Minimal-Viable-Product (MVP) gemeinsam ein Vorhaben zu gestalten und sicherzustellen, dass wir wirklich die richtigen Dinge tun.

Everything about DNS you never dared to ask!

Ole Michaelis

Track 2 - Deutsch - 26.09.19, 16:30

DNS braucht dich nicht, aber du brauchst DNS! Das Domain Name System (DNS), fast 40 Jahre alt, ist, noch heute, eines der Grundpfeiler des modernen Internets. So ziemlich alles was du macht, vom Deployment über das 1-click skalieren deiner App bis hin zu Twitter nutzt DNS. Trotzdem ist es für die meisten von uns eine Black Box oder Schwarz Magie. In diesem Talk behandeln wir alles von der ICANN bis zum IETF, verschaffen wir uns einen groben Überblick und zoomen dann hinein bis zu den Details. Außerdem verrate ich den 'geheimen' Trick, wie ihr ohne Down Time eine Domain zu einem anderen Provider wechselt.

Let's distribute: Vom Shopsystem zur verteilten Applikationsinfrastruktur

Leonard Kriese & Bernd Alter

Track 3 - Deutsch - 26.09.19, 16:30

Commerce-Frameworks gibt es nicht zu wenige, doch alle scheitern früher oder später an der Integration von komfortablen CMS-Funktionen - und umgekehrt. Wie müsste ein System mit komplexer Shop- und CMS-Funktionalität aussehen, ohne dabei erneut in eine monolithische Architektur zurückzufallen? Dieser Talk zeigt einen kompromisslosen “headless”-Ansatz, der aus drei Symfony-Applikationen besteht: eZ Platform, Sylius und eine Symfony-App mit Vue.js als Frontend. Bernd und Leo demonstrieren, wie sie Sylius’ Checkout-Komponente über eine Swagger-API exponieren und Inhalte von eZ Platform via GraphQL für das Frontend zugänglich machen. Sie zeigen, wie - mittels Symfony Messenger Component und Message Queues - Daten über Systemgrenzen hinweg synchronisiert und neue Microservices - zum Beispiel ein ERP-Datenimport - integriert werden können. Um die Stabilität des Deployments abzusichern, kommen via Gitlab CI automatisierte Behat-Akzeptanztests zum Einsatz.

Die ultimative API Plattform

Stefan Adolf

Track 1 - Deutsch - 26.09.19, 17:20

Unzählige Tools in allen Sprachen unterstützen einen dabei, solide APIs zu bauen, aber die Symfony-basierte api-platform sticht hervor: mit ihr erstellt man OpenAPI-kompatible REST-Schnittstellen nur mit Hilfe von einfachen Code-Annotationen. Stefan präsentiert zunächst die Basisinstallation des Frameworks und stellt seine wichtigsten Features vor, um dann tiefer in produktive Details einzusteigen. Darunter, wie man Client-Code und SPA-Frontends automatisch generiert, datenbankbasierte Akzeptanztests in Behat und Mink schreibt, sich per JWT authentifiziert, Custom Endpoints erstellt und von Doctrine ORM unabhängige Datenquellen nutzt. Schließlich demonstriert er, wie sich die produktive Vue.js-SPA seines Projekts via Apollo-Client mit automatisch generierten GraphQL-Endpunkten verbindet, ohne einen einzigen Resolver schreiben zu müssen und wie das brandneue Mercure-Protokoll dafür sorgt, dass das Frontend automatisch mitbekommt, wenn sich Daten auf dem Server ändern.

Ein Plädoyer für Fokus, Prioritäten und wieso man das Warum wissen sollte!

Stephan Schulze

Track 2 - Deutsch - 26.09.19, 17:20

IT ist überall! Und jeder von uns, ob Engineer, QA, PO/PM, Ops, SRE, ... gestaltet und betreibt diese Welt! Falls Du Dir Fragen stellst wie: Warte! Warum mache ich das gleich? Ist das wirklich das, woran wir am dringendsten arbeiten sollten? Wie hilft das ,was ich tue, meiner Firma bei der Erreichung ihrer Ziele? Ach und übrigens: Was sind eigentlich die Ziele meiner Firma (und wie viele gibt es)? Dann soll Dich dieser Talk dazu ermutigen: Fokus, eine klare Priorisierung und das “Warum” einzufordern und Veränderung zu bewirken! Und er zeigt auf, warum Management nur eine Seite des Problems ist.

Sulu 2.0 - bring your own business logic

Thomas Schedler

Track 3 - Deutsch - 26.09.19, 17:20

In den meisten Content Management Systemen ist es sehr umständlich, eigene Business-Logik mit Content aus dem Redaktionssystem zu einer maßgeschneiderten Lösung zu kombinieren. Genau an diesem Punkt setzt die Symfony basierte Content Management Plattform Sulu an. Mit der Version 2.0 ist das Ganze noch einfacher geworden.

Symfony Update - on the road to v5

Christopher Hertel & Andreas Hucks

Track 1 - Deutsch - 27.09.19, 09:15

Das letzte Jahr hat viele neue und aufregende Änderungen für Symfony und die Community gebracht. Ob es nun neue Komponenten wie der Mime, HttpClient oder Mailer sind, neue API-, Testing- oder HTTP-Tools, das Bug-Bounty-Programm der EU oder die Diversity-Initiative - es hat sich viel getan. Wir wollen die Zeit kurz vor dem nächsten Major-Release nutzen, um auf all das zurückzuschauen und einen Blick auf die nächste Zeit zu werfen.

Pushing the limits of PHP

Christian Lück

Track 2 - Deutsch - 27.09.19, 09:15

It's 2019 and times have changed – yet PHP is still most often associated with your average product catalog or blogging platform. In this talk you will learn that PHP's huge ecosystem has way more to offer and PHP is not inferior at all to its evil cousin Node.js.

Bolt 4 - A modern CMS for the Future

Bob den Otter

Track 3 - English - 27.09.19, 09:15

Bolt is a CMS that strives to make managing your content as pleasant and straightforward as possible. Bolt aims to do this for editors, implementors and developers alike. The upcoming version 4 is built on Symfony 4, API platform and Doctrine, so it will have modern features to build both decoupled and “traditional” sites. In this talk, Bob will focus mostly on the developers who need a better solution to deliver a CMS to their clients. After a brief introduction on the history of Bolt (mainly the move from Silex to Symfony 4), Bob will show you how to get up and running with Bolt, and showcase some of the features to help you efficiently build websites and how to configure, extend and adapt the system using the Symfony skills you already have.

Head first into Symfony Cache, Redis, & Redis Cluster

André Rømcke

Track 1 - English - 27.09.19, 10:05

Symfony Cache has been around for a few releases. But what is happening behind the scenes? Talk focuses on how is it working, down to detail level on Redis for things like datatypes, Redis Cluster sharding logic, how it differs from Memcached and more.

Einstieg in Ansible ohne die Fettnäpfchen

Lukas Sadzik

Track 2 - Deutsch - 27.09.19, 10:05

Jede Lernkurve ist steil! Dieser Talk versucht, sie für Ansible ein wenig abzuflachen. Wir fangen ganz am Anfang an und klären zuerst einmal: was ist Ansible überhaupt (und was ist es nicht)? Und dann geht's auch schon los. Stück für Stück tasten wir uns an die Konzepte von Ansible heran: was sie bedeuten, wie wir sie verwenden können und auch wie wir sie (nicht) verwenden sollten. Es geht vor allem um ein Verständnis dafür, wie Ansible funktioniert - weniger darum, was es alles kann. Dazu kommen ein paar Best Practices und Dinge, die man im Umgang mit Ansible vermeiden sollte. Ein Einsteigertalk, jedoch nicht nur für Einsteiger.

Lessons learned at Lilydoo

Jan Gregor Emge-Triebel

Track 3 - Deutsch - 27.09.19, 10:05

In dieser Session wollen wir uns einmal genauer anschauen, wie Symfony in einem hypergrowth Start-Up wie Lillydoo eingesetzt wird. Insbesondere soll es darum gehen, welche Bundles, Komponenten, Patterns und Best Practices sich im e-commerce Alltag bewährt haben und - mindestens genauso wichtig - welche nicht. Außerdem schauen wir uns noch die Toolchain an, die wir bei Lillydoo zur Qualitätssicherung einsetzen. Darüber hinaus gibt es einen Einblick wie Lillydoo jenseits von Symfony und PHP skaliert - maßgeblich auf der Prozessseite.

Using redis streams to build more resilient services

Thomas Schedler

Track 1 - Deutsch - 27.09.19, 11:20

Redis, das Schweizer Taschenmesser unter den Datenbanken, hat in der Version 5.0 einen neuen Datentyp dazu bekommen, der es wert ist, etwas genauer unter die Lupe genommen zu werden. Konkret geht es um Redis Streams und darum wie sie uns helfen, fehlertolerante und skalierbare Services zu bauen.

Automatisierte Review-Umgebungen mit GitLab-CI und Rancher

Daniel Badura

Track 2 - Deutsch - 27.09.19, 11:20

In den meisten Software Projekten werden bereits Continuous Integration (CI) Systeme verwendet, um die Code Qualität zu sichern. Dafür werden Tests und statische Codeanalyse Tools automatisiert bei jedem Commit ausgeführt. So kann sichergestellt werden, dass ein Pull Request nur gemerged wird, wenn die Pipeline “grün” ist und somit alle für das Projekt definierten Qualitätsanforderungen erfüllt sind. Oftmals ist dieser Ansatz aber nicht ausreichend, da der Kunde oder die QA die neue Features einzeln in einer abgeschlossenen Umgebung testen und abnehmen möchten. In diesem Vortrag geht es darum, wie wir mit der GitLab-CI automatisiert Review-Umgebungen für jeden Branch hochfahren. Daraus resultiert, dass ein Entwickler keine manuellen Review-Umgebungen mehr bereitstellen muss. Wir verwenden dazu die Tools Docker, Rancher und Traefik, um diese Instanzen zu verwalten. Zuerst werden wir es anhand eines Minimal-Beispiels praktisch nachvollziehen. Daraufhin werden wir eine Symfony App als Beispielprojekt nehmen, um einen komplexeren Workflow abzubilden. Weiterhin werde ich unsere Erfahrungen einbringen, die wir mit unseren Kunden und Product Ownern gemacht haben, seitdem wir dieses Verfahren bei uns eingeführt haben. Zudem gehe ich noch auf ein paar technische Fallstricke ein, auf die wir gestoßen sind.

Everyday Tools That Make My Work Easier

David Ostrožík

Track 3 - English - 27.09.19, 11:20

Tools we use daily to ease development of e-commerce framework for building big e-commerce projects.

Backwards Incompatible Tales

Marco Pivetta

Track 1 - Deutsch - 27.09.19, 12:10

A long time ago, in a land far away, lived a software wizard that was capable of grand magic. They built gardens, libraries, temples, castles. They created life where there wasn’t, and cleared the path where it was unsafe. And then they disappeared, and even though they left behind books and notes, none of their apprentices were able to learn the craft. Since then, nobody was able to use any of the tools of the great mage, and the creations kept working for only a few years, when finally even the last stone that was placed crumbled into sand. Sounds familiar? Software often feels the same: we’re all magicians that force a piece of sand into semi-rational thought, but what will happen when everyone moves on, and nothing works as expected anymore? This talk explores the problems that arise from breaking compatibility with existing tools, how to prevent those breakages from happening, and what to look for as a software maintainer. While I cannot guarantee that you will build indestructible magical fortresses with my tips, I can at least help you make sure that your work will live on with other people picking it up, and hopefully appreciating the stability that you worked towards.

Softwarequalität === Gesundheit

Roland Golla

Track 2 - Deutsch - 27.09.19, 12:10

Automatisierte Tests sind wichtig für die Gesundheit, die Teams, Employer Branding, die Mitarbeiter und einfach alle. Natürlich auch die Kunden. Gesundheit ist wichtig und nervliche Ausfälle dauern sehr lange und heilen eventuell gar nicht. Programmierer sind sich dessen nicht bewusst, dass Kopfschmerzen und andere Warnzeichen komplette Leben zerstören können.

Multigrained Microservices - Die Transformationsstrategie eines traditionellen Online-Händlers

Frank Leue

Track 3 - Deutsch - 27.09.19, 12:10

Alle reden über Microservices, doch welche Unternehmen sind heutzutage wirklich in der Lage, die notwendigen Ressourcen für diesen Architekturstil zu erschließen? Kleine und mittlere Unternehmen mit nahezu standardisierten Systemen verfügen kaum über die Möglichkeiten oder Attraktivität, den Kampf um Talente für sich zu entscheiden. Dieser Vortrag beschreibt, wie ein Unternehmen trotz beschränkter Ressourcen technologisch auf dem neusten Stand agieren und sich dabei auf sein Kerngeschäft konzentrieren kann. Am Beispiel des Umbaus eines eigenentwickelten OnPremise Shop-Systems zeigt Frank Leue, CTO des traditionellen Handelsunternehmens 'Lobenbergs Gute Weine', welche Vorteile ein Cloud Native Ansatz bieten kann, welche strategische Rolle Symfony dabei spielt und welche Herausforderung es dabei in Technik und Team zu lösen gibt.

Exploring Async PHP

Daniel Leech

Track 1 - English - 27.09.19, 14:25

As PHP programmers we are used to waiting for network I/O, in general we may not even consider any other option. But why wait? Why not jump on board the Async bullet-train and experience life in the fast lane and give Go and NodeJS a run for the money. This talk will aim to make the audience aware of the benefits, opportunities, and pitfalls of asynchronous programming in PHP, and guide them through the native functionality, frameworks and PHP extensions though which it can be facilitated.

Great APIs built with Symfony and Open Source Software

Asmir Mustafic

Track 2 - English - 27.09.19, 14:25

Nowadays offering a REST API has become a must for most of the businesses. Offering a good documentation, validating properly the requests, having descriptive error messages, supporting multiple versions, retrieving data, persisting data, handling rate limitations and many other things can be not an easy task. This talk is a walk-through on how to build a rich, RESTful (Level 3 including HATEOAS) API for web applications using Symfony-related components and bundles. The result will be a standard, documented, validated and easy to maintain API, that users will enjoy and developers love to build.

Sylius and Sulu | Commerce and Content

Sulu

Track 3 - Deutsch - 27.09.19, 14:25

Kundenspezifische eCommerce-Prozesse und eine anspruchsvolle Content-Architektur zusammen zu bringen ist eine große Herausforderung. Oft muss ein Basissystem erweitert oder kombiniert werden. Letzteren Weg haben wir gewählt und sozusagen das eCommerce Framework Sylius mit der Content Management Platform Sulu verheiratet. Ein Erfahrungsbericht.

Franzi Hackhausen

Und was kostet das? - Scrum als Dienstleister

Franzi Hackhausen

Track 1 - Deutsch - 27.09.19, 15:15

"Hallo, ich würde gern eine Hochzeitstorte bestellen - aber bitte vegan!" "Gerne! Für solche Torten benötigen wir für gewöhnlich 8-12h. Vegan haben wir noch nie gemacht – wir versuchen gern, sie in ähnlicher Zeit herzustellen." "Öh... und was bedeutet das nun konkret?" Ähnlich perplex dürften sich manche Kunden fühlen, deren Dienstleiter agil arbeitet. Für Dienstleister wie uns wirft Scrum ganz spezielle Fragen auf: Wann sollten wir Rücksprache mit dem Kunden bei Umsetzungsfragen halten? Wann bei Kostenfragen? Wie reagieren wir, wenn Kunden jeden Sprint die Fastlane vollpumpen? Welche Aufgaben darf unser (Proxy-)PO übernehmen? Kann man es es überhaupt schaffen, Kunden an schwammige Preisschilder zu gewöhnen? In unserem Vortrag erfahrt ihr, wie wir mit solchen Fragen umgegangen sind, welche Fehler wir gemacht haben, was wir gelernt haben, und welche Lösungen wir weiterhin suchen.

Thomas Holland

Ready for Takeoff - Umgang mit latenzbehafteten Internetverbindungen

Thomas Holland

Track 2 - Deutsch - 27.09.19, 15:15

Wie verliert man Internetnutzer an die Konkurrenz? Die beste Option ist es sicherlich, wenn der eigene Service im Schneckentempo lädt! Die unzähligen Artikel, Tutorials und Best Practices zur Ladezeitoptimierung von Webseiten gibt es nicht ohne Grund: Lädt eine Webseite schnell, steigert dies die Conversion Rate. In diesem Talk gehen wir allerdings über das übliche Performance ABC hinaus und befassen uns mit einer besonderen Herausforderung: Wie kann die Ladezeit einer Webseite unter extrem schlechten Netzwerkbedingungen optimiert werden? Aus erster Hand teilen wir unsere Erkenntnisse, wie wir für Internetnutzer in Flugzeugen mit einer latenzbehafteten Satelliten-Internetverbindung die Ladezeit optimiert haben. Basierend auf unserer Erfahrung diskutieren wir, wie Maßnahmen wie Resource Prefetching, Resource Inlining, Code Splitting und eine optimierte Build Pipeline dabei geholfen haben, die absolute und wahrgenommene Ladezeit um eine Größenordnung zu verbessern. Darüber hinaus zeigen wir, wie wir unseren Kunden überzeugen konnten Performance Optimierungen über neuen Features zu priorisieren.

Paketverwaltung im Browser – die Composer-WebGUI für Contao

Andreas Schempp

Track 3 - Deutsch - 27.09.19, 15:15

Contao Open Source CMS ist seit über 10 Jahren auf dem Markt und gehört zu den Top5 CMS im DACH-Raum. Mit Contao 4 und Symfony wurde Composer zum integralen Bestandteil der Applikation. Contao stand vor der Herausforderung, die bisher vorhandenen Update- und Erweiterungsfunktionen weiterhin im Browser anzubieten. Unsere Lösung dafür heisst «Contao Manager» – eine WebGUI, welche auf jedem Webserver Composer-Pakete installieren und die Applikation verwalten kann. In meinem Vortrag gebe ich einen Einblick wie Contao und der Contao Manager funktionieren, wie wir mit Hilfe der Composer Resolver Cloud die speicherintensiven Aufgaben auslagern – und wie ihr diesen Dienst für eure Anwendung nutzen könnt.

Wie gut sind meine Tests wirklich?

Stephan Hochdörfer

Track 1 - Deutsch - 27.09.19, 16:30

Wie lässt sich die Qualität von Unit-Tests beurteilen? Eine hohe Testabdeckung ist kein Garant dafür, dass unsere Tests auch wirklich gut sind. Brauchen wir also Tests für unsere Tests? In gewisser Weise ja. In dieser Session werde ich aufzeigen, wie sich durch den Einsatz von mutationsbasiertem Testing die Qualität der eigenen Tests verbessern lässt und dank verschiedener Metriken die Test-Qualität "sichtbar" machen lässt.

SOLIDe Symfony Apps bauen

Ole Rößner

Track 2 - Deutsch - 27.09.19, 16:30

Symfony eignet sich super, um schnell Ergebnisse zu erzielen. Bei komplexeren Anwendungen fällt es manchen Teams oft schwer Anwendungen gut zu gliedern und wart- und erweiterbar zu halten. Fette Controller, Gott-Klassen und Spaghetti-Code sind die Folge, dabei bietet Symfony durch Einhaltung von Clean-Code und SOLID Prinzipien so viele Möglichkeiten auch große, komplexe, monolithische Projekte klar zu strukturieren, sauber in Verantwortlichkeiten zu trennen und auf lange Zeit hin pfleg- und erweiterbar zu halten. Ich möchte in diesem Talk, anhand eines Refactoring Beispiels zeigen, welche Möglichkeiten Symfony 4 hier bietet.

Flexibel bleiben mit einem plattformunabhängigen Storefront

Alexander Nickel

Track 3 - Deutsch - 27.09.19, 16:30

Seit letztem Jahr sind PWAs definitiv in aller Munde. Firmen wie z.B. Twitter haben es geschafft, nur durch die Nutzung einer PWA, ihr User Engagement um mehr als 65% zu erhöhen. Der Vorzug von altbewährten aber teils auch veralteten E-Commerce Systemen und Schnittstellen, sorgt dafür, dass der E-Commerce neue Technologien langsamer adaptiert als Firmen, deren einziges Produkt eine Webapplikation an sich ist. Doch auch E-Commerce muss sich weiterentwickeln. User gewöhnen sich heute schneller an neue Technologien und deren Vorteile als jemals zuvor. Sind erstmal Technologien wie z.B. der Offline-Support etabliert, wird ein Shop ohne diese Funktion von den Usern als deutlich weniger wertig wahrgenommen. Es gibt mittlerweile einige PWA Storefront Lösungen auf dem Markt, welche sich deutlich in Umfang und Möglichkeiten unterscheiden, bei denen wir von Flagbit allerdings immer noch entscheidende Eigenschaften vermissen. Dazu gehören Projekte, die auch innerhalb großer Entwicklerteams skalierbar sind, ein professionelles E-Commerce Tracking, um die Performance unseres Storefronts messen zu können, sowie die Möglichkeit, dass Kunden Teile ihrer E-Commerce Lösung austauschen können, ohne das komplette Frontend neu schreiben zu müssen. In meinem Vortrag zeige ich wie wir bei Flagbit ein Storefront auf Basis von Angular entwickelt haben, warum die Wahl auf Angular gefallen ist und wie es damit möglich ist einzelne Teile mit wenig Aufwand auszutauschen.

Keynote: Better Communication to Bridge the Tech/Business Gap

Jeffrey McGuire

Track 1 - Deutsch - 27.09.19, 17:20

The “Tech/Business Gap” is what we call the misunderstandings, for example, between the people building a technical product and the people who need to sell it. These often result in teams or individuals pulling in different directions within a company—even when everyone believes they’re working towards a common goal. Among various factors that cause this “gap,” it often boils down to communication challenges. Even though we’re talking about internal problems, one path to success is building consensus via an external communications strategy. In this presentation, I’ll talk about solving this problem by building a common vision and a plan for communicating it to the world. As a bonus, if successful, the resulting communication strategy will also help sell your products and services!