Can you remember PHPCon Poland? This highly integrative conference with a soul that helped build
the Polish PHP community? We want to revive it! We want to recreate what many of you miss and remember
the most! How? Returning to the place where you feel the best, the Orle Gniazdo
Hotel in Szczyrk, giving you the opportunity to book rooms and board together with
your conference ticket. Together we can make this conference a part of Polish developing events
calendar again!
The agenda will include six Friday's workshop paths of various topics and two lecture paths on
Saturday and Sunday.
So… see you soon in Szczyrk!
Why join the PHPCon Poland?
Legendary event
We're meeting at a conference that many of you can't wait to attend. And
in the best hotel we have ever visited!
Accommodation in same venue
You can easy merge the attendance and accommodation, if you wish so.
Could there be anything more comfortable?
Full board package
Every meal in the same place. For workshop
participants - starting with Friday lunch, for others - starting with Saturday lunch.
Workshops
All those interested in getting practical knowledge are welcome to attend
the workshops on Friday. They will last until evening, because the conference starts on
Saturday morning.
Skill sharing
There are no problems that cannot be solved! On PHPCon you will meet many
professionals who like to share their knowledge and help each other. Just come here!
Integration
We have a nice time after hours. Many of you will surely like various
forms of activities offered by sponsors... ;)
Agenda
Workshop Day
Friday
November 15, 2019
10:00
Pisz testy - czyli praktyka tworzenia testów jednostkowych
Adrian Piętka
Pisz testy - czyli praktyka tworzenia testów jednostkowych
Adrian Piętka
SALA E
Podczas warsztatu uczestnicy zapoznają się tematem testów jednostkowych wraz z ich praktycznym zastosowaniem podczas implementacji logiki biznesowej.
Uczestnicy dowiedzą się czym są testy jednostkowe, jak je odróżniać od innych testów, kiedy i dlaczego warto je stosować. Nauczą się także pisać testy jednostkowe w oparciu o PHPUnit oraz zapoznają się z techniką TDD.
Warsztat dedykowany jest dla początkujących osób, nie mających wcześniej styczności z tworzeniem testów jednostkowych.
Wymagania względem uczestnika ograniczają się do:
znajomości podstaw PHP7,
własnego sprzętu z zainstalowanym: PHP, Git, dowolnym IDE (preferowany PHPStorm).
Agenda:
Podstawy - czym są testy jednostkowe, co i kiedy warto testować na poziomie testów jednostkowych (30 min)
Testowanie logiki biznesowej - podstawy tworzenia testów jednostkowych (1h 30min)
Mockowanie zewnętrznych zależności (30 min)
TDD jako sposób na odwrócenie modelowania kodu (1h)
PHPSpec basics
Dariusz Drobisz
PHPSpec basics
Dariusz Drobisz
ROOM D
Do you want to start doing BDD? An organization that you are working for are not ready for that big step? Start with yourself. Spec BDD is the way that you can start on your own and show other teammates profits from that approach. Especially when you can share with them well designed, tested code.
During workshop, you will learn what are the main goals of using Spec BDD, how PHPSpec and Prophecy mocking library work and how to use them to design your code communication. Attendees will try in practice some basic and more complicated examples that will show them how to use PHPSpec in their each day work. Workshop for people who want to start their PHPSpec adventure.
To get most out of the workshop you'll need own laptop with the newest version of PHP 7 and the general knowledge of OOP.
Sylius - rozwiązanie eCommerce na miarę Twoich potrzeb, część I
Łukasz Chruściel
Sylius - rozwiązanie eCommerce na miarę Twoich potrzeb, część I
Łukasz Chruściel
SALA H
W czasie warsztatu rozszerzymy wspólnie podstawową wersję Syliusa o produkty grupowane. Co więcej, pokażemy jak umożliwić dodawanie tych grup od razu do koszyka oraz stworzymy kilka domyślnych grup do bazowej konfiguracji nowego sklepu tak aby praca z nową funkcjonalnością była prostsza, a efekty Twojej pracy - szybciej widoczne. Warsztaty będą głównie nakierowane na pisanie kodu. Po warsztacie powinieneś być zaznajomiony z podstawami Syliusa, jak postawić swój pierwszy sklep na nim oraz jak rozszerzyć niektóre z jego funkcji. Czego się nauczysz:
zapoznasz się z architekturą oraz podziałem na Bundle ekosystemu Syliusa,
stworzysz CRUDowe API w kilka minut,
zapoznasz się z SyliusResourceBundle i stworzysz swojego pierwsze CRUDA,
dowiesz się jak w prosty sposób wygenerować CRUD do Admina z wykorzystaniem SyliusGridBundle,
nauczysz się jak używać komponentu State Machine w Syliusie,
jak usprawnić development projektu z użyciem fixturesów i SyliusFixturesBundle.
działającej wersji Sylius-Standard z użyciem Vagranta/Dockera lub lokalnie,
podstawowej wiedzy z Symfony.
REST easy with API Platform, part I
Antonio Perić-Mažar
REST easy with API Platform, part I
Antonio Perić-Mažar
ROOM F
We'll start by creating a fully-featured API in just a few minutes with API Platform, Symfony and Doctrine. The API will support pagination, data validation, access control, relation embedding, filters, and error handling. It will expose many formats (JSON-LD, Hydra, JSONAPI, HAL, JSON, XML, YAML, and CSV), will be documented with Swagger/OpenAPI and will have a nice UI done in React. Last but not least, the API will respond in a just few milliseconds thanks to its built-in invalidation-based cache mechanism.
Then, we will use the ReactJS tools provided by the API Platform to consume the exposed Hydra documentation. In a few more minutes, we will get a Material Design administration interface (a la Sonata / EasyAdmin - but 100% client-side) built with React. Finally, we'll discover 2 nice code generators to bootstrap a SPA (React, Redux and React Router) and iOS and Android mobile apps (React Native).
The specific Docker environment will be prepared before this workshop. You'll need to download and install it. Bring your laptop, favorite IDE and a basic Symfony knowledge.
Getting the Most Out of PHPStan, part I
Ondřej Mirtes
Getting the Most Out of PHPStan, part I
Ondřej Mirtes
ROOM G
PHP is nothing like compiled languages. If you make a mistake, the program will crash when the line of code with the mistake is executed. When testing a PHP application, whether manually or automatically, developers spend a lot of their time discovering mistakes that wouldn’t even compile in other languages, leaving less time for testing actual business logic.
PHPStan is a popular static analyser focused on finding bugs in your code. By leveraging the strength of PHP type system further enhanced in PHPStan itself, developers can create robust applications and discover bugs early in the development process. The aid the tool provides during refactoring is also indispensable.
In this workshop, the attendees will learn how to install, configure and run PHPStan, and also receive tips how to write code so that PHPStan can be as powerful as possible. They will also be able to write their own PHPStan rules and extensions.
Just bring your laptop with PHP 7.1+ and Composer installed.
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
🍴 Lunch for workshop attendees
14:30
15:00
Twoja droga do CI/CD: ucz się, adaptuj, ulepszaj
Arkadiusz Kondas
Twoja droga do CI/CD: ucz się, adaptuj, ulepszaj
Arkadiusz Kondas
SALA E
Ten warsztat to wprowadzenie do świata ciągłej integracji i ciągłego dostarczania oprogramowania. Zaczniemy od wdrożenia nowoczesnych narzędzi do naszego projektu. Uczestnicy otrzymają prosty legacy projekt z którym będą pracowali przez cały czas trwania warsztatów. W kolejnych krokach zbudujemy pipeline integracyjny i wdrożeniowy z wykorzystaniem serwera Buddy.Works. Uczestnictwo w warsztatach zapewni odpowiednią dawkę wiedzy pozwalającą wdrożyć nowoczesne procesy DevOps w swoich organizacjach.
Czego się nauczysz:
umiejętności pracy zespołowej z rozproszonym repozytorium kodu
integracji narzędzi z środowiska PHP (testy, statyczna analiza itp.) z serwerem CI/CD (Buddy.Works)
jak automatycznie umieszczać kod na produkcji
jak wdrażać procesy Continuous Integration / Continuous Deployment w swoim zespole
poznasz cztery kluczowe metryki które charakteryzują zespoły o wysokiej wydajności
dowiesz się jak zbudować pipeline wdrożeniowy który nie będzie powodował przerw na produkcji
Czego będziesz potrzebować:
zainstalowanego PHP w wersji co najmniej 7.2,
zainstalowanego IDE (polecany PHPStorm),
zainstalowanego composera i gita.
Strangling your legacy code with PHPSpec
Dariusz Drobisz
Strangling your legacy code with PHPSpec
Dariusz Drobisz
ROOM D
Do you like legacy code that you have to work with? He hopes not. He wants you to strangle it. Slowly. The same way as it slows down your work. And PHPspec is ready to help you with that. Removing old, badly designed and untested code is one of the hardest parts of developers work. Especially when you want to repair everything at once.
In this workshop, you will learn how you can change the code with a lot of dependencies and mixed layers piece by piece to tested part of the system that is easy to maintain. Some design patterns usage examples will be also included during this workshop.
To get most out of this workshop you'll need own laptop with the newest version of PHP 7. Also, the knowledge of OOP and the basic knowledge of PHPSpec will work for you.
Sylius - rozwiązanie eCommerce na miarę Twoich potrzeb, część II
Łukasz Chruściel
Sylius - rozwiązanie eCommerce na miarę Twoich potrzeb, część II
Łukasz Chruściel
SALA H
W czasie warsztatu rozszerzymy wspólnie podstawową wersję Syliusa o produkty grupowane. Co więcej, pokażemy jak umożliwić dodawanie tych grup od razu do koszyka oraz stworzymy kilka domyślnych grup do bazowej konfiguracji nowego sklepu tak aby praca z nową funkcjonalnością była prostsza, a efekty Twojej pracy - szybciej widoczne. Warsztaty będą głównie nakierowane na pisanie kodu. Po warsztacie powinieneś być zaznajomiony z podstawami Syliusa, jak postawić swój pierwszy sklep na nim oraz jak rozszerzyć niektóre z jego funkcji. Czego się nauczysz:
zapoznasz się z architekturą oraz podziałem na Bundle ekosystemu Syliusa,
stworzysz CRUDowe API w kilka minut,
zapoznasz się z SyliusResourceBundle i stworzysz swojego pierwsze CRUDA,
dowiesz się jak w prosty sposób wygenerować CRUD do Admina z wykorzystaniem SyliusGridBundle,
nauczysz się jak używać komponentu State Machine w Syliusie,
jak usprawnić development projektu z użyciem fixturesów i SyliusFixturesBundle.
działającej wersji Sylius-Standard z użyciem Vagranta/Dockera lub lokalnie,
podstawowej wiedzy z Symfony.
REST easy with API Platform, part II
Antonio Perić-Mažar
REST easy with API Platform, part II
Antonio Perić-Mažar
ROOM F
We'll start by creating a fully-featured API in just a few minutes with API Platform, Symfony and Doctrine. The API will support pagination, data validation, access control, relation embedding, filters, and error handling. It will expose many formats (JSON-LD, Hydra, JSONAPI, HAL, JSON, XML, YAML, and CSV), will be documented with Swagger/OpenAPI and will have a nice UI done in React. Last but not least, the API will respond in a just few milliseconds thanks to its built-in invalidation-based cache mechanism.
Then, we will use the ReactJS tools provided by the API Platform to consume the exposed Hydra documentation. In a few more minutes, we will get a Material Design administration interface (a la Sonata / EasyAdmin - but 100% client-side) built with React. Finally, we'll discover 2 nice code generators to bootstrap a SPA (React, Redux and React Router) and iOS and Android mobile apps (React Native).
The specific Docker environment will be prepared before this workshop. You'll need to download and install it. Bring your laptop, favorite IDE and a basic Symfony knowledge.
Getting the Most Out of PHPStan, part II
Ondřej Mirtes
Getting the Most Out of PHPStan, part II
Ondřej Mirtes
ROOM G
PHP is nothing like compiled languages. If you make a mistake, the program will crash when the line of code with the mistake is executed. When testing a PHP application, whether manually or automatically, developers spend a lot of their time discovering mistakes that wouldn’t even compile in other languages, leaving less time for testing actual business logic.
PHPStan is a popular static analyser focused on finding bugs in your code. By leveraging the strength of PHP type system further enhanced in PHPStan itself, developers can create robust applications and discover bugs early in the development process. The aid the tool provides during refactoring is also indispensable.
In this workshop, the attendees will learn how to install, configure and run PHPStan, and also receive tips how to write code so that PHPStan can be as powerful as possible. They will also be able to write their own PHPStan rules and extensions.
Just bring your laptop with PHP 7.1+ and Composer installed.
EventStorming Big Picture - Jak tego używać z głową
Paweł Rekowski
EventStorming Big Picture - Jak tego używać z głową
Paweł Rekowski
SALA J
EventStorming staje się coraz popularniejszą metodą planowania prac w IT oraz rozwiązywania problemów. Dlaczego? Bo to działa! W swojej karierze miałem przyjemność moderować już kilkanaście sesji Big Picture - czyli pierwszego etapu EventStormingu, którego uczyłem się od samego mistrza - Alberto Brandoliniego, twórcy tej metody.
W trakcie tego warsztatu, podziele się z Tobą swoim doświadczeniem z wykorzystania ponad 100 metrów papieru i kilku tysięcy kolorowych karteczek. Nauczysz się jak stosując proste techniki, możesz w ciągu jednego dnia sprawić, że wszyscy w Twojej firmie będą rozumieć co tak na prawdę dzieje się w projekcie (co nie jest takie oczywiste :P) Poznasz techniki oraz tricki, których darmo szukać w jeszcze niedokończonej książce "Introducing EventStorming" oraz poczujesz na własnej skórze czym EventStorming jest i dlaczego jest tak bardzo skuteczny!
Na warsztacie nie będzie ci potrzebny laptop ani telefon. Zapraszam serdecznie :)
This talk will address several points in our codes that we can improve it to make it more stringent, avoiding false positives, points that have not been tested and have actually written code that complies with our business rules, avoiding unnecessary bugs. We will work with PHP 7 types, the identical operator, weak comparison functions and counters, and more.
Feature Toggle - Zarządzanie zmianami w Continuous delivery
Karol Kreft
Feature Toggle - Zarządzanie zmianami w Continuous delivery
Karol Kreft
Wdrożenie continuous delivery w zwinnych projektach nasuwa pytanie - czy wraz z szybkim dostarczaniem nowych funkcji systemu mamy możliwość ich prostego wyłaczenia gdyby zaszła taka potrzeba? A może chcemy wdrożyć eksperymentalny Proof of Concept by przekonać się, że będzie miał spodziewaną wartość dla klientów/użytkowników naszej aplikacji/serwisu? Implementacja Feature Toggle pozwala te i inne, również bardziej skomplikowane scenariusze, realizować szybko i możliwie bezboleśnie. Podczas prezentacji przedstawię na czym polega ta technika, zaprezentuje korzyści, które z niej wynikają oraz pokażę szerszy kontekst w którym najczęściej znajduje zastosowanie.
09:30
09:45
10:00
EventStorming jako wstęp do walki z Legacy Codem
Paweł Rekowski
EventStorming jako wstęp do walki z Legacy Codem
Paweł Rekowski
Wyobraź sobie aplikacje mającą kilka milionów linii kodu, rozwijaną przez ostatnie 7 lat gdzie wszystko jest pomieszane, poplątane i nikt tak naprawdę nie wie co się dzieje. Rozwijanie jej graniczy z cudem, a biznes musi coraz dłużej czekać na naprawy bugów i nowe ficzery.
Zanim zaczniesz wielki refactoring najpierw musisz zrozumieć co ten potwór w ogóle robi. Idealnie do tego nadaje się EventStorming - metoda stworzona przez Alberta Brandoliniego, u którego miałem przyjemność uczyć się w ramach EventStorming Master Class w Mediolanie.
Z tej prezentacji dowiesz się:
Jak skutecznie przeprowadzić EventStorming dla projektu Legacy?
Jak sensownie podzielić potwora na konteksty?
Jak podzielić odpowiedzialność między zespołami?
Co jest najważniejsze podczas sesji "Big Picture"?
Czego możesz się nauczyć z warsztatów, które "nie wyszły" i co to tak naprawdę znaczy?
Jakie trudności pojawią się w prowadzeniu warsztatu w środowisku międzynarodowym (Polska vs Rumunia)?
Dowiesz się czego nie znajdziesz w książce Alberto i czego nauczyłem się podczas wizyty w Mediolanie
i wiele więcej.
Wszystko na bazie moich doświadczeń w eMAG, ponad 100 metrów papieru i kilku tysięcy przyklejonych post-itów.
How your PHP application can get hacked, and how to prevent that from happening?
Antti Rössi
How your PHP application can get hacked, and how to prevent that from happening?
Antti Rössi
You’ve probably heard about the likes of XSS, CSRF, SQL Injection, RCE, Man-in-the-middle attack, and LFI. Very few of the developers out there have actually witnessed first-hand what exploiting any of the mentioned vulnerabilities looks like, and therefor don’t necessarily realise what the possible implications of being hacked can be. In this talk we’ll exploit some commonly known vulnerabilities and misconfigurations that can occur to a PHP (Laravel) application running on a Linux-based host. By learning to think like a hacker you’ll be able to develop more secure applications with Laravel, and to keep yourself, your clients, and your users data safe.
10:15
10:30
10:45
11:00
☕ Coffee break
11:15
11:30
Event Sourcing na przykładzie PROOPH
Arkadiusz Prościak
Event Sourcing na przykładzie PROOPH
Arkadiusz Prościak
CQRS i Event Sourcing zdobywają coraz większą rzeszę zwolenników. Podczas prezentacji „pogrzebiemy” ORM-y, po to by zachwalić idee przechowywania danych jako serii zdarzeń a widoków danych jako projekcji. Następnie przyjrzymy się ciemnym stronom tego rozwiązania. To wszystko tylko po to, aby ostatecznie samemu ocenić na przykładach kodu, czy taka architektura i framework pomoże rozwiązać któryś z naszych codziennych problemów.
Reaktywny PHP
Arkadiusz Kondas
Reaktywny PHP
Arkadiusz Kondas
Programowanie sterowane zdarzeniami (event-driven) jest znane i używane w aplikacjach klient/serwer oraz bibliotekach asynchronicznych. ReactPHP (zbliżony do node.js lub Python Twisted), przenosi PHP na nowy poziom prędkości ze wszystkimi niezbędnym do tego funkcjami. Podczas prezentacji wprowadzę pojęcie event loop, non-blocking IO i programowania asynchronicznego w PHP, a także przedstawię sposoby gdzie ta technika może przydać się w twoim stosie technologicznym.
Czego nauczysz się z tej prezentacji:
zrozumiesz różnice pomiędzy blocking a non-blocking IO
poznasz bibliotekę ReactPHP i jej podstawowe komponenty
zobaczysz przykładowe zastosowania asynchronicznego programowania w PHP
poznasz alternatywy dla biblioteki ReactPHP
11:45
12:00
12:15
12:30
What can PHP Foreign Function Interface do for you?
Bohuslav Šimek
What can PHP Foreign Function Interface do for you?
Bohuslav Šimek
Next PHP version (7.4) will bring a lot of new exciting features. One of them is PHP Foreign Function Interface extension built directly into the core. But what problems exactly this extension is trying to solve? Does this mean that we no more need to write PHP extension if we want to use an existing library? In this talk, we will together discover the way how to easily call almost any C library directly from PHP. Why we want to do this. How to overcome common pitfalls and most importantly when to use approach and when not.
What you'll learn from this talk:
how to call C code from PHP without the necessity of writing an extension in any compiled language?
how to quickly prototype simple PHP wrapper around C library?
how to overcome common pitfalls?
when to use this approach and when not?
6 Things I Learned as a Lead Developer
Gabor Nadai
6 Things I Learned as a Lead Developer
Gabor Nadai
Being a Lead Developer is a fun, interesting and responsible adventure. Becoming one is not something that happens from one day to the next. It is something that you grow into by raising your voice, taking action and responsibility. I've learned many things working as a Lead Developer, but I'd like to share 6 things, which were the most important for me.
12:45
13:00
13:15
🍴 Lunch
Your team vs kebab place vs F1 pitstop. Theory of constraints - primary DevOps element - explained!
Konrad Otrębski
Your team vs kebab place vs F1 pitstop. Theory of constraints - primary DevOps element - explained!
Konrad Otrębski
We will have a look at and analyze workflows that are present in classic kebab place and Formula 1 pitstop. We will compare them with development team in a typical software company.
Presentation will explain basic concepts of the Theory of constraints and will show you how you can magnify flow of work at your team to get things done!
13:30
13:45
14:00
🍴 Lunch
14:15
Dwanaście zasad budowania systemów o wysokiej dostępności
Kamil Porembiński
Dwanaście zasad budowania systemów o wysokiej dostępności
Kamil Porembiński
Prezentacja opowiada o 12 kluczowych zasadach budowania systemów oraz aplikacji wysokodostępnych (High availability). W swojej prelekcji poruszę takie tematy jak monitorowanie infrastruktury, skalowanie oraz zasada skalowania (pionowe/poziome), wykorzystanie technologii, backup, restore, testowanie oraz wybór rozwiązań. Poruszone również zostaną tematy związane z redundancją oraz disaster recovery
14:30
14:45
15:00
2nd hardest thing in computer science
Paweł Lewtak
2nd hardest thing in computer science
Paweł Lewtak
Have you heard about the two hardest things in computer science? It's cache invalidation and naming things. I want to focus on the second one.
Let's see common examples of both good and bad naming. What's the common part of each of them? What's makes names good? Can we settle on good enough or should we aim for perfect names? I'll show some of good and bad practices so you'll be able to recognize both of them when you make code review for your peers. Naming is one of the two hardest things in CS, so I don't claim to be right about everything but I'm open to discussion and happy to learn from you as well.
git log: 10 najprzydatniejszych komend by dowiedzieć się wszystkiego o projekcie
Grzegorz Byrka
git log: 10 najprzydatniejszych komend by dowiedzieć się wszystkiego o projekcie
Grzegorz Byrka
Z początku git log (i shortlog) stworzono jako źródło informacji o ostatnich commitach i merge'ach. Ale narzędzia te są znacznie potężniejsze niż tylko to.
Zaczniemy od kilku podstawowych zapytań, pobawimy się ich opcjami by zobaczyć, jak można je wykorzystać w codziennej pracy.
Następnie zaprezentuję kilka bardziej złożonych komend, które uważam za najprzydatniejsze.
15:15
15:30
Why choose legacy?
Paweł Lewtak
Why choose legacy?
Paweł Lewtak
Most people would rather work on a greenfield project than a legacy one. On one hand, you have the freedom to choose a new language/framework/library to use and have fun learning that. On the other hand, there's an existing project, maybe old one, that skipped a few updates of libraries, maybe not using latest features your language of choice gives you.
I'll share my experience and show you why I like working with legacy projects, what's interesting in them for me, how I improve as a developer working with them. Hopefully, that'll allow you to enjoy working with legacy a bit more and hate it a bit less next time.
Jak rozpoznać Reptiliana w biurze - poradnik praktyczny
Tomasz Ferfecki
Jak rozpoznać Reptiliana w biurze - poradnik praktyczny
Tomasz Ferfecki
Czy twoja praca nie przynosi ci satysfakcji? Zaczyna Cię dotykać wszechobecny chaos? Może musiałeś zostać dłużej w biurze, przez co nie masz czasu na skorzystanie z benefitów? A może środowe owoce przyszły w czwartek? Jeżeli na przynajmniej jedno z powyższych pytań odpowiedziałeś twierdząco, to może być znak, że w twoim otoczeniu zalęgli się Reptilianie. Odkryj, w jaki sposób możesz pokrzyżować ich złowieszcze plany zniszczenia twojego projektu.
15:45
16:00
Be nice, help the person who hacks your servers to get your data
Srdjan Vranac
Be nice, help the person who hacks your servers to get your data
Srdjan Vranac
Where are your credentials and secrets stored? In .env files or in environment variables, or even worse in config files? Are your primary AWS keys shared amongst developers? Do you still have SSH keys from former employees on your servers?
If your answer is "Yes" to one or more of these questions you probably haven't heard the term "secrets management".
In this talk we will look into managing secrets in development and operations, and expose the problems related to them. I will give you an overview of the current state of techniques to mitigate these problems and we'll take a brief look at how an open source tool like Hashicorp Vault can provide a solution to managing secrets in the years to come.
Adventures in MySQL - 10 Awesome features you're probably not using
Liam Wiltshire
Adventures in MySQL - 10 Awesome features you're probably not using
Liam Wiltshire
If you've been in development for a while and you're anything like me, you probably still use MySQL in the same way as you did in the 3.x days - let's be honest, when was the last time you cracked open the MySQL documentation?
However, things have moved on, and these days there are some pretty awesome features in MySQL, from document store to spatial support and more, that would make your life easier, and your app faster - things that you could - or even should - be using.
Join Liam and discover what this modern MySQL looks like, and how you might use it to improve your applications.
16:15
16:30
16:45
17:00
☕ Coffee break
17:15
17:30
Zwinnie czysta architektura
Michał Cisz
Zwinnie czysta architektura
Michał Cisz
Słyszałeś o świętym Graalu: o encjach, kontekstach, DDD i czystej architekturze. Widziałeś jak idea SOLID-nego kodu przegrywała w starciu z deadline’ami. Czas to zmienić! Na konkretnym przykładzie biznesowym odnajdziemy zwinności, ukryte w koncepcji czystej architektury. Zobaczysz progresywną ewolucję komponentów aplikacji, które dzięki iteracyjnej pracy z kodem zaadaptujesz do timeboxów używanych w metodykach agile. Przekonaj się sam, że framework, baza danych i siec www to szczegóły, a spryt doprowadzi Cię do pokrycia testami na poziomie 100%.
Everyday tools that make my work easier
David Ostrožlík
Everyday tools that make my work easier
David Ostrožlík
Tools we use daily to ease development of e-commerce framework for building big e-commerce projects.
In Shopsys Framework we have been using PHP and Symfony to build big e-commerce projects for several years. We also use many tools and techniques to ensure a high quality of code and features. We will show you tools that we use to build the application, check coding-standards, test our code, run these checks on our continuous integration server etc., and how we use them in our development process from beginning to end. In the end, you will get new ideas about how to make your work more efficient, easier and fun.
17:45
18:00
18:15
18:30
Serverless PHP
Sebastian Grodzicki
Serverless PHP
Sebastian Grodzicki
#serverless nie był do tej pory gorącym tematem w świecie PHP, ponieważ żaden z dostawców usług chmurowych nie wspiera natywnie PHP w środowisku tego typu. Pod koniec zeszłego roku AWS udostępniło dwie nowe usługi (Lambda Runtime API oraz Lambda Layers), które pozwalają na samodzielne dodanie PHP do środowiska typu #serveless. Podczas prezentacji omówię poszczególne elementy takiej architektury oraz pokażę kod PHP działąjacy na AWS Lambda.
"We need a bigger boat" - Introduction to application scaling
Liam Wiltshire
"We need a bigger boat" - Introduction to application scaling
Liam Wiltshire
At one time or another, every developer comes across the same problem - their application starts getting slower, then starts falling over, then isn't available at all.
Often, this comes down to too many users, too much stored data - in other words a scaling problem.
Looking at a range of options, from horizontal and vertical scaling, to caching, sharding and optimisation, Liam will discuss approaches to scaling that can be used on new applications, and also some that can be retro-fitted to existing applications.
18:45
19:00
19:15
19:30
Dinner & Socializing 🍺 🍺 🍺
(the JeoPHPardy game in parallel)
19:45
20:00
20:15
20:30
20:45
Sunday
November 17, 2019
Green path
Blue path
10:00
Making architecture explicit
Herberto Graça
Making architecture explicit
Herberto Graça
The Big Ball of Mud is the most serious problem I see in the majority of the code bases I look at.
But why do we keep falling into that trap? What are the root problems behind it? How can we avoid, escape, and stay out of it?
In this talk, you will learn about the architecture mental map I use to answer these questions. We will briefly revisit a few established software development and architecture ideas and see how you can put them in your service, exemplifying with some bits of code and tooling, to help keep the mud out of your application.
The main topics of the talk are:
The Big Ball of Mud problem
Overview of DDD, Hexagonal, Onion, Screaming, Clean, CQRS
How to organise the code base to reflect architecture boundaries
How to enforce the architecture boundaries
Antybohaterowie projektów IT
Przemysław Krzywania
Antybohaterowie projektów IT
Przemysław Krzywania
Ludzi z IT przedstawiamy jako bohaterów ratujących świat, ale czy na pewno ma to sens?
10:15
10:30
10:45
11:00
☕ Coffee break
11:15
11:30
Zastosowanie GraphQL w agregacji i dostarczaniu danych w architekturze mikroserwisów.
Ǩonraȡ Ǩarɑuđɑ
Zastosowanie GraphQL w agregacji i dostarczaniu danych w architekturze mikroserwisów.
Ǩonraȡ Ǩarɑuđɑ
Konrad opowie o zastosowaniu technologii GraphQL w oparciu o Node.JS, w celu agregacji, cacheowania, oraz dostarczania danych do frontendu w architekturze mikro serwisów. Zalety, wady, możliwości skalowania, oraz poprawa bezpieczeństwa architektury dzięki zamaskowaniu mikroserwisów odpowiedzialnych za poszczególne działania.
Package Everything
Bruno Ramalho
Package Everything
Bruno Ramalho
Building PHP packages and best practices. Focus on the basic concept of composer and related best practices by using a real example of a big project without composer that was refactored to be modular. How to take advantage of open source packages.
11:45
12:00
12:15
Becoming a tech lead - Lesson learned
Jayesh Kawli
Becoming a tech lead - Lesson learned
Jayesh Kawli
It's always more challenging to work as a leader compared to working as an individual contributor. Through this talk, I am going to share my experiences going through this transition which will be useful for other people moving along the same path.
I will share some facts about shifting mindsets, working towards making team better and increasing efficiency. As a leader, one also has to become a mentor to coach their junior team members while balancing pace and the learning opportunity.
We will also touch upon topics such as learning from mistakes, using past sprints as a guideline and using custom-made benchmarks to gauge the effectiveness of overall work. This will also help to understand how to deal with project blockers, maintaining effective communication and better tickets estimates.
Attendees of this session will take away the following:
shifting the mindset as one goes from being an individual contributor to become a tech lead,
balancing productivity and pace with equal opportunity for learning,
how to act as a mentor to make the team better,
learning from past sprints to make effective future sprints,
handling communication, being proactive and avoiding blockers.
12:30
12:45
13:00
DDD, CQRS, ES, Hexagonal... i Symfony
Tomasz Kowalczyk
DDD, CQRS, ES, Hexagonal... i Symfony
Tomasz Kowalczyk
Dość często rozmawiamy na temat architektury naszych projektów i tego, w jaki sposób dostarczyć z ich pomocą jak najlepiej działające rozwiązanie z najwyższą jakością techniczną. Niestety nie rozmawiamy aż tak często na temat środowiska, w którym to robimy - frameworka - który dość często determinuje ilość pracy wymaganej do wdrożenia. W tej prelekcji zaprezentuję w jaki sposób Symfony może zostać wykorzystany w kontekście dowolnego rozwiązania archtekturalnego - m.in. DDD, CQRS, Event Sourcing, Hexagon - i jak dobrze pasuje on w każdym z tych przypadków. Oczywiście rozwiązanie idealne nie istnieje, jednak niektóre narzędzia są zaprojektowane tak, by pozwolić nam przejąć wystarczającą kontrolę nad projektem, a Symfony jest zdecydowanie jednym z takich narzędzi.
Distributed Domain Destruction - Adventures in building distributed systems
Srdjan Vranac
Distributed Domain Destruction - Adventures in building distributed systems
Srdjan Vranac
The project has grown enough that it requires refactoring, and extracting pieces of it to be distributed to different machines and places. Of course it should work like a well oiled mechanism, but it may not... at first.
For the last three years I have been building, maintaining and fighting a few projects that make use of distributed computing, parallel processing, message brokers, queues and workers. This is one of those "from the trenches" talks, where I will regale you with tales about the series of unfortunate events that may happen as your application grows in complexity. Tales like disk space fluctuations, importance of logging, NoSql problems, restructuring your order of execution in code for performance gains, short sighted albeit logical architectural decisions that will cost you in the long run.
Come hear about the agony you will experience when it starts falling apart, and the thrill you will feel when everything is running juuust right.
In the past 3 years, I've been working with PHP, professionally only in the past 1 and a half. Since I discovery Open Source, my life has been all about contributing to it to make better and better each day, improving my career and my person.
My goal is to prove that anyone can code, and everyone should code.
Łukasz Chruściel
Sylius
Łukasz Chruściel
Sylius
Łukasz jest zaangażowany w rozwój Syliusa od czterech lat, obecnie jest członkiem Core Team’u. W roli trenera, występował na licznych konferencjach i prowadził warsztaty tak w Polsce jak i za granicą. Lubi pracować z systemami komunikującymi się przez API. Pragmatyczny programista, uwielbiający czysty, jakościowy kod i testy automatyczne. Prywatnie podróżnik, fan gier planszowych i gracz lacrosse’a.
Michał Cisz
Michał Cisz
Jestem wyznawcą minimalizmu i maniakiem wszelkich idei, które mogą usprawnić komunikację i wymianę wiedzy w zespole. Zawodowo od 15 lat wystukuję kod PHP, dbając o przestrzeganie zasad SOLID i organizując komponenty zgodnie z zasadami czystej do bólu architektury.
Co-organiser of PHPers meetups. In private husband and big rally fan!
Tomasz Ferfecki
Unity Group
Tomasz Ferfecki
Unity Group
Programista z zawodu i powołania (Ach… Jednorożec) posiadający 6-letnie doświadczenie w branży. Przez ostatnie 3 lata zajmował się rozwojem rozwiązań e-commerce. W swojej pracy ceni automatyzację monotonnych i powtarzających się procesów. Swoją pasję do automatyzacji przenosi na mini projekty bo na duże jeszcze nikt mu nie pozwolił, ale nie martwcie się… Rewolucja się szykuje. W godzinach po godzinach, ale w pracy, cotygodniowo zbiera ludzi wokół firmowego ogniska, moszczą się wygodnie i wspólnie dzielą się swoją wiedzą.
Herberto Graça
Werkspot
Herberto Graça
Werkspot
Herberto Graça is a senior software developer at Werkspot, in Amsterdam.
The first time he coded was in the late 1980s, on his cousin's ZX Spectrum computer.
He graduated from University with a Bachelor in IT, plus a Specialisation in Teaching and a Masters in School Leadership and Management.
He had a half year experience as a JAVA developer, and worked as an IT teacher for eight years, while he also did some occasional freelance work before he decided to become a full-time software developer.
When he is not coding for work or in a pet project, he spends his time reading a book, riding his motorbike or writing about software development and software architecture on his blog.
With over 15 years of experience in information technology, Sebastian Grodzicki leads the Logs & Infrastructure UI team at Elastic. He spent three years as CTO at SHOWROOM ("Europe's leading destination to discover the new generation of fashion designers") and a complete career path at GoldenLine (Poland's biggest business and employment-oriented social network service).
Ǩonraȡ Ǩarɑuđɑ
Jayesh Kawli
Wayfair
Jayesh Kawli
Wayfair
Senior iOS developer currently working at Wayfair in Boston, Massachusetts. He has been writing iOS applications for more than 5 years and currently works as a tech lead for the checkout team on Wayfair iOS application.
As a senior developer, he likes to share his knowledge and experience with other people. He has presented variety of topics at his company's internal Lunch and learn meetings, local meetups as well as several other international platforms. He also writes a blog which touches active topics in iOS development along with occasional off-topics such as food, travel, and web development.
Arkadiusz Kondas
Buddy
Arkadiusz Kondas
Buddy
Zawodowy programista. Entuzjasta uczenia maszynowego. Wierzy w ideę Software Craftsmanship. Miłośnik open source. Zawodowo zajmuje się programowaniem od 2008 roku. Pracę rozpoczął od roli Full Stack Developera. W międzyczasie pracował w różnych technologiach, między innymi: PHP, Ruby, Python, Java, C#, DevOps, Machine Learning. Prowadził i tworzył zespoły rozwijające zaawansowane systemy informacyjne. Tworzył, planował i rozwijał wysoko i nisko poziomową architekturę. Zmieniał i rozwijał przedsiębiorstwa za pomocą Event Stormingu. Obecnie pracuje dla Buddy, tworząc najlepsze narzędzia wspomagające codzienną pracę deweloperów (serwer CI/CD). W wolnych chwilach rozwija swoje projekty na githubie, bloguje i biega ultramaratony.
Tomasz Kowalczyk
Gentleman
Karol Kreft
intive
Karol Kreft
intive
Programista o humanistycznych zainteresowaniach, fan NBA, wielbiciel dobrej architektury (nie tylko tej w kodzie) oraz wycieczek po górach. Od 2010 zawodowo związany z tworzeniem aplikacji webowych w języku PHP. Pracuje we wrocławskim oddziale Intive.
Przemysław Krzywania
EBKF
Przemysław Krzywania
EBKF
W branży IT od 2008 roku. Zaczynał od programowania w C++ urządzeń mobilnych z Windows CE, następnie Adobe Flex i C#. Ostatecznie pracuje nad Full-Stack, wykorzystując głównie PHP. Od roku 2015 prowadzi w EBKF projekty związane z IIOT, Przemysłem 4.0 i Fintech. Jest fanem zwinnego podejścia do wytwarzania oprogramowania.
Paweł Lewtak
Paweł Lewtak
Programista z 10-letnim doświadczeniem. Pracował nad projektami od zera, począwszy od analizy i specyfikację aż po wdrożenia i dalszy rozwój. Wielki fan idei continuous learning, organizator warsztatów coding dojo. W wolnej chwili pochłania książki nie tylko branżowe, ale również gra w planszówki i gry video.
Ondřej Mirtes
PHPStan
Ondřej Mirtes
PHPStan
Ondřej works as a developer and mentor at Slevomat.cz (largest Czech Groupon-like e-commerce site offering deals to >300k daily visitors), moving between product and software development. He enjoys the quality assurance and frequent deployment of innovations for the end-users. He shares his experience at conferences across the world, offers his expertise as a consultant, and organizes training. He also likes pointing out mistakes in other people's code so much that he created PHPStan, a popular static analyzer that focuses on finding bugs in code without running it.
Gabor Nadai
ingatlan.com
Gabor Nadai
ingatlan.com
Gábor Nádai, but you can call him Mefi. Engineering Manager, currently working with a talented group of engineers and managers as Head of Engineering at ingatlan.com, Hungary's market leading real estate listing portal. His mission is building awesome community and teams to create great software which truly helps people.
David Ostrožlík
Shopsys
David Ostrožlík
Shopsys
David started working in IT when he was 16 years old and since then he went through tester and coder positions to programming. He has been programming in PHP for the last three years and after joining Shopsys two years ago, his passion has extended to Symfony, JavaScript, and ElasticSearch as well. With the knowledge of these technologies, he helped to build several e-commerce solutions and a year ago he started to develop Shopsys Framework. When he doesn't program, he likes to read, go on trips, play computer games and take care of his mustache.
Konrad Otrębski
Tagvenue Poland
Konrad Otrębski
Tagvenue Poland
Developer, architect, staying tuned with the industry. TDD, DDD practitioner and advocate. Pushing to master every day.
Antonio Perić-Mažar
Locastic
Antonio Perić-Mažar
Locastic
Antonio Perić-Mažar is CEO at Locastic digital agency, based in beautiful Croatian city called Split. Their main focus is to build complex mobile and web platforms for different clients that range from startups to enterprise companies from all over the globe.
He is a proud backend developer that moved into a managerial role after founding Locastic in 2011, since, in a very short period of time the team has grown and they became very popular in the development world.
He is quite a proactive guy - as he is one of the founders of the largest regional Blockchain Conference, he is hosting a free monthly Meetup event in Split, also recently he fell in love with Esports as he owns the best Croatian Counter-Strike team.
During the last few years Antonio also focused on sharing his business and development knowledge with Startups and other Entrepreneurs and he spoke on many conferences.
Adrian Piętka
Emphie Solutions
Adrian Piętka
Emphie Solutions
Fascynat programowania, architektury, chmury, metodyk zwinnych i dobrych praktyk w szerokim ujęciu. Polyglot Programmer kochający poznawać nowe języki i jednocześnie wykorzystywać ich najlepsze strony.
Założyciel DevEnv i współautor podcastu Dev:Cast.
Po godzinach, czyli kiedy nie pracuje ani nie robi czegoś dla DevEnv, podróżuje w miejsca zapomniane i pasjonuje się lokalną historią. Jest jednym z opiekunów schronu bojowego WAWOK w Rybniku.
Kamil Porembiński
thecamels.org
Kamil Porembiński
thecamels.org
Architekt systemowy, administrator Linux, a czasem Windows. Lubi tematykę security. Obecnie właściciel firmy thecamels.org, zajmującej się projektowaniem systemów o wysokiej dostępności. Zajmuje się skalowaniem dużych aplikacji internetowych, wspieraniem startupów w kwestiach serwerowych. Po godzinach zajmuje się żeglowaniem po morzach, lataniem, fotografią i podróżami.
Arkadiusz Prościak
coffeedesk.pl
Arkadiusz Prościak
coffeedesk.pl
Development Lead w Coffeedesk. Programuje komercyjnie od ponad 10 lat. Fan dobrych praktyk, testów automatycznych i Symfony. Skoncentrowany na celu, stara się zawsze znaleźć kompromis pomiędzy nowymi technologiami a dostarczaniem wartości biznesowej. Prywatnie triathlonista – w drodze do ironman-a.
Bruno Ramalho
Divante
Bruno Ramalho
Divante
Senior software engineer and lead developer with expertise in PHP, open source lover and DDD advocate. I’ve been involved building enterprise application for big ecommerce marketplaces.
Paweł Rekowski
eMAG
Paweł Rekowski
eMAG
Człowiek wielu pasji i zawodów - Przedsiębiorca, Programista, Lider, Mówca, Trener, Podcaster, a dodatkowo Tata dwóch rozrabiaków poszukujący skutecznych sposobów jak Czuć się, Wygąldać i Żyć #Lepiej. Od ponad 12 lat w branży IT - od początku związany z PHP. Pracował dla takich marek jak Oferia, Allegro czy BlaBlaCar. Obecnie Team Leader w eMAG.pl, gdzie wdraża Test Driven Development w biurach w Polsce i w Rumunii. Miłośnik ostrych brzmień, skutecznej komunikacji oraz uświadamiania programistów ile kosztuje ich praca.
Antti Rössi
Jobilla
Antti Rössi
Jobilla
Antti Rössi is the CTO at Jobila and white hat hacker who loves sharing his expertise on how our PHP applications can be hacked and what to do to prevent that.
He's been a professional web developer and an IT business owner for over 6-years currently.
Bohuslav Šimek
IntraWorlds s.r.o.
Bohuslav Šimek
IntraWorlds s.r.o.
Bohuslav Šimek work as a lead programmer in IntraWorlds, where he is primarily responsible for the underlying architecture. In his free time, he is trying to apply Atwood's Law to PHP. This fruitless effort can be summarized with the following words: "Any application that can be written in PHP, will eventually be written in PHP."
Srdjan Vranac
Code4Hire Kft.
Srdjan Vranac
Code4Hire Kft.
Vranac has been in this industry for a long time. He had good fortune to work with a lot of talented people, and had a chance to see some brilliant code, and some of the worst ever written.
He gets paid for writing code that performs exceptionally. He runs Code4Hire, a small outfit dedicated to solving tough problems.
Liam Wiltshire
Tebex Ltd
Liam Wiltshire
Tebex Ltd
Liam is a UK based developer and the CTO at [Tebex](https://www.tebex.io), a gCommerce company and game server monetization platform. From humble beginnings breaking things in Perl, Liam has tackled projects large and small, from brochure sites in WordPress to eCommerce sites in Magento and SaaS products in Laravel. Outside of CTO-ing, Liam is a father, musician, and is trying to learn the secret to actually having some spare time.
This is the hotel that hosted us in the years 2013-2014. Remember that? With a beautiful view on
the Skrzyczne mountain, pleasant conference rooms and friendly staff.
Orle Gniazdo is the highest located (660 m asl) and the largest multifunctional facility in
Szczyrk. It has 6 floors and is over 270 metres long. It has a total of 270 rooms with a view of
Skrzyczne and the Żylica Valley, with bathrooms and TV. It can accommodate up to 550 people at
the same time.
Orle Gniazdo is a huge and yet affordable hotel, famous for organizing large, regular events. It
is here that the Polish Chess Championship is held, private concerts are played and
international conferences and rallies are organized. The finish line of the third stage of the
Tour de Pologne cycling race is also located here.
Get to Katowice in any way you want and change to the Koleje Śląskie
train to Bielsko-Biała (timetable ➡ here).Then take the
footbridge to the bus station and take the bus to the Szczyrk Centrum bus stop (timetable ➡ here). You can get
here with any bus going to Szczyrk. Cross the main road to Słoneczna Street, then right into
Klimczoka/Wczasowa Drive which rises sharply uphill in switchbacks. The Orle Gniazdo Hotel
is located at the end of this road, 2 km away from the bus stop.
Self-drive
Get to Bielsko-Biała, then take the express road S-1 in the
direction of Żywiec, Zwardoń and Žilina (SK). Leave the express road at Wilkowice junction
(exit marked: Wilkowice - Bystra - Szczyrk). At the first roundabout, take the first exit
(to the right, Bystra - Szczyrk), then take the second exit (straight ahead) until the first
crossing with traffic lights in Bystra. There turn left and follow the main road to the
roundabout in Buczkowice, where you should take the first exit (to the right, DW-942,
Szczyrk). When you get to Szczyrk, look for the Orle Gniazdo hotel advertisements - they
will be on both sides of the road. Turn into Wczasowa Drive (to the right - beware, it is
easy to miss it!) about 1900 m from the "Szczyrk" sign. Then turn right again and go about 2
km up a steep hill in switchbacks again.
Aircraft
Choose Katowice-Pyrzowice (KTW) or alternatively Kraków-Balice (KRK) as
your destination airport. From both locations there are buses to Katowice, however, from
Pyrzowice these connections are direct and more frequent. Choose the means of transport that
will get you to the main train station in this city. Continue as described in "Public
Transport".
Tickets
Sales has ended on Tuesday night.
See you in the hotel!
Sponsors
Become a Sponsor
Become a sponsor of the PHPCon Poland 2019 conference – it's a unique opportunity to
present your brand to the Polish PHP community and to be well-remembered.
Originator, founder and team leader of the PHPCon Poland Conference. Event manager with ten-year experience, involved in the PHPCon Poland, php Central Europe conference, Linux Autumn, PyCon PL and dBConf. Former president of the Polish Linux Users Group. Devops in Polish customs administration from a dozen years. Happy husband and father of other PHPCon organisers. An unreformable bicycle tramp with a survival verve.
Joanna Grzesista
Conferia
PHPCon's CFO, office manager and sponsor relation. Responsible for on-site organiser's reception and starter-pack distribution. Wife and mother of other PHPCon organisers ;)
Mariusz Kuta
webMASTAH.pl
Frontend ninja, database lover, php hooligan. PHPCon website designer. Lecture hall technician and multimedia recorder. Addicted to electronic music, crime books and sunflower seeds.
Piotr Krzysztofik
piotrex41.pl
PHP programmer, webmaster, webdesigner and webdeveloper. At PHPCon acts as lecture hall technician responsible for multimedia recording and maintenance.
Przemysław Pawliczuk
przemyslaw.pawliczuk.pl
Specialist for pathetic and impossible issues. His first words were "Paamayim nekudotayim". Learnt programming upon rendez vous with Symfony, after 10 years with PHP. An orange juice addict, pays attention to technical issues on PHPConPL just after started his journey as a speaker. After hours - husband, President of Pionier Rzeszów Toastmasters, DIY-maker, fan of accordion loving good vocal-trance music.
Tomasz Kowalczyk
GOG
Software architect with over 10 years of experience in writing web applications. Functional Programming enthusiast pursuing the ultimate goal of software quality and maintainability. An author of several open source libraries. Provides well-designed and open solutions to technical problems.
Sebastian Molenda
Currency One
Rehab PHP developer currently working on Node.JS and experimenting with FP. Privately, DIY enthusiast and a fan of heavier playing. After many years as an attendee, it's time to repay the community somehow.
Mateusz Grzesista
Conferia
Student in one of Silesian high schools. Junior org-team member at PHPCon helping with a lecture hall technical issues and multimedia recording / maintenance.
Newsletter
Stay tuned! Subscribe our newsletter to be up-to-date with all important news about the PHPCon Poland.
We use cookies to save your user preferences.AgreePrivacy