Berlin 24.-27. September 2019
German flag
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.

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)

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.

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.

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.

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 does not need you, but you need DNS! The Domain Name System (DNS), almost 40 years old, is, still today, one of the pillars of the modern Internet. Almost everything you do from deploying and scaling your app to reading twitter touches it. Yet, it's a black box for many of us. This talk covers the basics from authoritative name servers to resolvers, from ICANN to the IETF we will look at the broader view and zoom into the exciting details. You will also learn how to move your domain between different providers without downtime and how to utilize DNS to scale and distribute your app.

Composer 2

Nils Adermann

Track 1 - Deutsch - 26.09.19, 17:20

Nach 8 Jahren Composer in der PHP Entwicklung macht das Tool dieses Jahr den Sprung auf Version 2. In diesem Vortrag erfahrt ihr was es in Version 2 Neues gibt, wie es dazu gekommen ist, was ihr für eure eigenen Projekte wissen solltet und warum es überhaupt eine Version 2 geben muss.

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.

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.

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.

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.

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.

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.

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.

Mutation Testing

Stephan Hochdörfer

Track 1 - Deutsch - 27.09.19, 16:30

(tba)

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.

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!