Amsterdam 2019 NOV 21-23

Schedule

Nov 21, 2019

  Track Advanced Track Beginner Track PHP Track Unconf
08:00
09:00
Badge pickup and welcome light breakfast ☕🥐
09:00
09:15
🎉 Opening / Welcome session 👋
09:15
09:55
Keynote
Fabien Potencier
10:05
10:45
HTTP/3: It's all about the transport!
Benoit Jacquemont
How to contribute to Symfony and why you should give it a try
Valentin Udaltsov
A view in the PHP Virtual Machine
julien pauli
TBA
10:45
11:15
Break ☕ 🥐
11:15
11:55
How Doctrine caching can skyrocket your application
Jachim Coudenys
Evolving with Symfony in a long-term project
Tobias Schultze
Crazy Fun Experiments with PHP (Not for Production)
Zan Baldwin
TBA
12:00
13:30
Lunch
13:30
15:00
Crawling the Web with the New Symfony Components
Adiel Cristo
Hexagonal Architecture with Symfony
Matthias Noback
Adding Event Sourcing to an existing PHP project (for the right reasons)
Alessandro Lai
TBA
14:20
15:00
HYPErmedia: leveraging HTTP/2 and Symfony for better and faster web APIs
Kévin Dunglas
PHP, Symfony and Security
Diana Ungaro Arnos
What happens when you press enter in the browser?
Tobias Sjösten
15:00
15:30
Break ☕ 🥐
15:30
16:10
TBA HTTP Caching with Symfony 101
Matthias Pigulla
How fitness helps you become a better developer
Magnus Nordlander
TBA
16:20
17:00
Keynote
18:00
21:00
Social event (drinks and snacks)

Nov 22, 2019

  Track Advanced Track Beginner Track PHP Track Unconf
08:00
09:00
Light breakfast ☕🥐
09:00
09:40
Keynote
09:50
10:30
TBA Make the Most out of Twig
Andrii Yatsenko
Mental Health in the Workplace
Stefan Koopmanschap
TBA
10:30
11:00
Break ☕ 🥐
11:00
11:40
TBA Importing bad data: Outputting good data with Symfony
Michelle Sanver
TBA TBA
11:50
12:30
TBA
12:30
14:00
Lunch
14:00
15:30
TBA TBA TBA TBA
14:50
15:30
TBA TBA TBA
15:30
16:00
Break ☕ 🥐
16:00
16:40
Closing Keynote
16:40
17:00
Closing session

Nov 23, 2019

09:30
16:30
Hackday: let's learn and contribute to Symfony (first-time contributors are more than welcome)!

Keynote

Fabien Potencier - English - Keynote - 11/21/19, 09:15

Keynote

HTTP/3: It's all about the transport!

Benoit Jacquemont - English - Track Advanced - 11/21/19, 10:05

The announcement of HTTP/3 at the start of November 2018 may have come as a surprise for a lot of us.

Indeed, compared to the 8 years that separated HTTP/1.1 et HTTP/2, this announcement came only 4 years after the release of HTTP/2.

But the biggest surprise is under the hood, with a replacement of the transport layer.

In this talk, we will explain why this version 3 of the HTTP protocol has been designed, especially around the latency topic.

We will cover as well how technically this version works, and what it will bring to our applications, and what are the challenges that will need to be addressed, in order to fully benefit from this new version of the protocol that runs the Web.

How to contribute to Symfony and why you should give it a try

Valentin Udaltsov - English - Track Beginner - 11/21/19, 10:05

For three years I am an active Symfony contributor. Not only it's a way to thank the project, it's also an immense source of knowledge and communication for me.

I would like to share my experience and to encourage contributing to Symfony.

What we'll discuss:

  • how participation in an open source project makes you a better developer;
  • easy steps to join the Symfony ecosystem;
  • where to get an idea for a pull request;
  • branches and roadmap;
  • coding standards, conventions and backward compatibility;
  • rebase flow;
  • review process.

A view in the PHP Virtual Machine

julien pauli - English - Track PHP - 11/21/19, 10:05

This talk is about how PHP works. We'll learn together how PHP compiles, optimizes then execute your scripts, both in Web environment and CLI apps. We'll dive into PHP's source code - written in C - to extract some parts of interest and study them to better understand PHP's behaviors as well as best practices in terms of performances (CPU cycles and memory allocations).

How Doctrine caching can skyrocket your application

Jachim Coudenys - English - Track Advanced - 11/21/19, 11:15

When people talk about Doctrine (or any ORM for that matter), the performance issue always comes up fairly quickly. Besides the fact that Doctrine will help you develop faster, so a little overhead doesn't really matter, there are numerous options to increase the performance of the application.

By understanding how the system works in the first place, a lot of issues can be avoided right away.

When you have done everything to avoid these pitfalls, you can bring in the big guns: caching. Doctrine has different caching mechanism and since Doctrine 2.5 "Second Level Cache" was added to our toolbox. After this talk, you should know what the impact is of every cache and how to use it.

Evolving with Symfony in a long-term project

Tobias Schultze - English - Track Beginner - 11/21/19, 11:15

This case study will explore the API architecture of Switzerland’s biggest retail company that has been in development for 7 years. We will see what has changed over the years, both in terms of coding practices and technologies. Besides Symfony, some of the technologies used are Cloudfoundry, Varnish, RabbitMQ and Elasticsearch. Let us find out which approaches proved to be successful and which didn’t work so well.

Crazy Fun Experiments with PHP (Not for Production)

Zan Baldwin - English - Track PHP - 11/21/19, 11:15

I’ll show you the crazy things you can do in PHP with streams and autoloader overloading to write your own language features. I’ll also show you how you can supercharge your Symfony applications using aspect-orientated programming or encrypt source code on-the-fly using only PHP. As if that wasn’t enough, we’ll go even further and make PHP a polyglot language by importing esoteric language scripts! These aren’t your average hacks and shouldn’t be run in production... but let’s explore these concepts as fun experiments so you’ll never think of PHP as boring again!

Crawling the Web with the New Symfony Components

Adiel Cristo - English - Track Advanced - 11/21/19, 13:30

When developing an application, a common feature we need to implement is gathering data from other sources. These data are available in various forms, usually unstructured, and behind some JS application, making them harder to reach.

To make things worse, as the application evolves, we need to get more data, from even more sources. But don't worry, things can be easier!

In this talk we'll use the Symfony's HttpClient, Messenger and Panther to build a crawler, first as a simple console application, then evolving to a distributed one.

Hexagonal Architecture with Symfony

Matthias Noback - English - Track Beginner - 11/21/19, 13:30

Symfony offers many excellent components for your web and console applications. But of course, you still have to implement your own application logic, create your own domain models, and write your own tests. So Symfony has its place, but it's not going to be everywhere in your application.

In this talk I will explain an architectural style called "Hexagonal Architecture", which will help you structure your applications in such a way that you can focus most of your development effort on the core of your application, designing it in a way that makes its production code sustainable and easy to test.

Adding Event Sourcing to an existing PHP project (for the right reasons)

Alessandro Lai - English - Track PHP - 11/21/19, 13:30

"Event Sourcing", along with "CQRS", have recently become trending terms, and now there is so much theory, blog posts and talks about them.

However, most of these deal with the problem starting from an utopian assumption: having to write a project from scratch, but at the same time with a high domain complexity right from the start, enough to justify the use of a complex technique like event sourcing and CQRS, which carry a fair amount of inherent complexity. But the reality greatly differs: projects are born from small and simple prototypes, and they accumulate complexity only with time, growth and evolution of specifications and features.

This talk is a case history in which I will tell you (with little theory and a lot of practical examples) how we decided to add event sourcing to an already existing project (without eradicating the rest or rewriting it), to solve a specific problem (reporting and its history) for which this methodology proved to be the perfect solution.

HYPErmedia: leveraging HTTP/2 and Symfony for better and faster web APIs

Kévin Dunglas - English - Track Advanced - 11/21/19, 14:20

Over the years, several formats have been created to fix performance bottlenecks of web APIs: the n+1 problem, over fetching, under fetching… The current hipster solution for these problems is GraphQL. It’s a very smart network hack for HTTP/1, but a hack that is not necessary anymore with HTTP/2 and HTTP/3.

The new versions of the protocol of the web now has native capabilities allowing to create fast and idiomatic web APIs: multiplexing, server push, headers deduplication, compression, persistent connections (Mercure)… Leveraging HTTP/2 and HTTP/3 unveil the true powers of the web (hypermedia architecture) with no compromises with performance.

During this presentation, we’ll learn how to design our APIs to be able to maximise the benefits provided by HTTP/2. Better, Symfony already contain all the tools you need to create (WebLink, API Platform) and consume (HttpClient) such APIs. We will discover these gems together.

HATEOAS is the new hype!

PHP, Symfony and Security

Diana Ungaro Arnos - English - Track Beginner - 11/21/19, 14:20

Have you ever tried talking to someone about using PHP in secure applications? It's nothing new that we deal with prejudice against PHP every day and the situation is even worse when we talk about security. The latest versions of PHP provide security tools and modern cryptography and Symfony itself make its efforts to deliver robust security features that are simple to implement. We'll learn about the latest language and framework initiatives in this regard and check out short and quick tips for boosting you application's security.

What happens when you press enter in the browser?

Tobias Sjösten - English - Track PHP - 11/21/19, 14:20

As a technical interviewer, one of the questions I like to ask the most is "what happens when I write www.example.com in the browser and then press enter?". The answer reveals a lot about the interviewee's understanding of a vast number of technologies that fringes web development.

In this talk, I will go through exactly what happens, down to excruciating detail, so that you will be better prepared for your future job interview.

HTTP Caching with Symfony 101

Matthias Pigulla - English - Track Beginner - 11/21/19, 15:30

HTTP caching is a powerful technique to improve response times for site visitors, make more efficient use of bandwidth and reduce server load. We will have a look at the basic concepts, the different caching strategies and HTTP headers used to implement them. I will then show you a few ways how to implement HTTP level caching in your Symfony application, how to leverage the HTTP Cache included in the framework and resolve the mystery around ESI.

My hope is that when you return to work on monday, you will bring some new tools to your project that you can start using right away.

How fitness helps you become a better developer

Magnus Nordlander - English - Track PHP - 11/21/19, 15:30

We often think of technical skills as the way to level up as developers, but we're not (yet) brains-in-a-vat. Our body and physical health are crucial to be able to work well as developers.

In this talk I speak both about the science behind fitness and nutrition, and my personal journey of losing over 70 kgs, starting to go to the gym, how it affected me as a developer, as well as the shocking secret behind what happened to the Sound of Symfony podcast.

Make the Most out of Twig

Andrii Yatsenko - English - Track Beginner - 11/22/19, 09:50

Twig is the most powerful templating engine in the PHP world that enables us to create highly complex projects with hundreds of multi-level extended templates, thousands of blocks, functions, filters, tests, and macros. It also offers a sandbox, a unique but not a widely used feature that creating secure user-editable templates. In addition, there are a number of handy built-in and external debugging tools available in the Twig ecosystem to simplify the day-to-day work process for a Twig designer.

In this presentation, I will talk about how extensively we use Twig in a complex open-source e-commerce project.

Mental Health in the Workplace

Stefan Koopmanschap - English - Track PHP - 11/22/19, 09:50

Mental health is an important part of life, yet mental illness is big. Perhaps bigger than you might think when looking around you. In this talk, you'll be introduced to some basics on mental health and mental illness, and given some tips and handholds on how to handle mental illness on the work floor.

Importing bad data: Outputting good data with Symfony

Michelle Sanver - English - Track Beginner - 11/22/19, 11:00

The role of our API in Switzerland is to consume a lot of data that was not meant for a digital age, and to transform it into beautiful output, for one of the biggest retailer API’s in Switzerland.

This is a journey of consuming a lot of data and API’s from different sources and in different formats. Some of them made us laugh, some of us got migraines.

We built a smooth architecture to consume and output data. I am proud of our architecture that we seamlessly upgraded to keep latest versions, now Symfony 4 along the way. I want to share how we managed to keep this API up to date for over 5 years, and our architecture that we use to make it happen.