Villa Verde Congress & Spa Hotel, Zawiercie, Poland
About the conference
PHPCon Poland is the oldest and unique conference in Poland, aimed at
PHP developers and enthusiasts. We have been on the Polish market since 2010. During this time,
we have contributed to educating of a new generation of PHP developers!
This is an event where you will make new contacts and exchange experiences and ideas for the
near future. But not only! It's a conference you'll love coming back to, both for the atmosphere
and the new contacts, but also for your own development - as a listener, as a speaker, or maybe
as a recruiter looking for new talent. Who knows?
This year, PHPCon Poland will again take place at the Villa
Verde Hotel in Zawiercie, in the heart of the Jura Uplands. Last season, you liked
the venue. It received many positive feedback and comments, so that we will follow suit.
We hope that we have said goodbye to the Covid pandemic for good, so we are returning to the
international character of our event this year. We are allowing presentations in both Polish and
English again.
Jura is not only the region of Switzerland. We also have Jura in Poland, much
more beautiful and with many limestone rocks and medevial castles! PHPCon Poland
2023 is an excellent opportunity to make the most of the weekend and see how
interesting Polish Jura is and how much it offers, especially in autumn.
We are meeting at the oldest PHP conference in Poland. If you have no
memories of it, it's time to change that!
Accommodation in same venue
You can buy a conference ticket and find a link to book accommodation with
us. Party till dawn? Why not?
Workshops
Practical knowledge awaits you on Thursday. The workshops will last until
the evening, and the lectures will only start on Friday morning.
Full board package
Breakfast is included in the price of accommodation. Lunch and dinner are
included in the entrance fee. For workshop attendees - starting with Thursday lunch, for
others - starting with Friday lunch.
Networking
We bring together people at different stages of their careers - from
budding programmers to long-standing professionals in various positions - all of who PHP
turns on.
Integration
This year, a concert by the band Kołdra, which
surely you will enjoy, as it is, after all, music about ourselves... Plus, as usual, a
bowling alley and a flood of craft beer from the Yan
Brewery.
It's a modern complex that balances the concept of a hotel ideal for business and family
leisure. The perfect location of the facility, in the heart of the Krakow-Czestochowa Upland,
far from the hustle and bustle of large agglomerations, guarantees high comfort of rest and
creates excellent conditions for regaining strength.
The facility has 166 comprehensively equipped rooms, making a total of 450 beds. The whole is
arranged primarily with a view to convenience and functionality.
Hotel Villa Verde is a complex with the largest conference and banquet facilities in Upland.
It features multifunctional rooms with the possibility of dynamic division according to guests'
requirements. A total of 1 200 sqm of conference space with a capacity for 500 participants.
The hotel, one of the few in Poland, can boast its own brewery giving craft beer lovers the
highest level of satisfaction.
Zawiercie is very well connected to the rest of the country thanks to
the Central Railway Main Line (pol.: Centralna Magistrala Kolejowa, in short: CMK), which
starts here and directly connects Katowice and Warsaw. From Katowice, there are an average
of two trains per hour leaving for Zawiercie at the peak of the day (journey time: approx.
45 minutes), and from Warsaw, an average of one (journey time: approx. 2 hours). A detailed
timetable is available at
rozklad.pkp.pl.
The venue can be reached by ZKM Zawiercie
city bus line no. 3 and 9 (stop: Marciszowska), or 12 (stop: Inwestycyjna). You can also
walk to the hotel from the Zawiercie Borowe Pole railway stop (only a few steps).
Self-drive
If you are coming from the north, south, west, or southeast, drive to
Siewierz along national highway no. 91 and then through Poręba to Zawiercie along road no.
78. Take the third exit (left, direction Myszków) at the roundabout near McDonald's
restaurant.
The exception is in the northeastern direction (Kielce, Radom, Lublin, Białystok) because
then you will probably reach Zawiercie from the other side, and you will have to drive
through the town. Then at the roundabout near McDonald's, we take the first exit (right,
direction Myszków).
Continue along Inwestycyjna St. approx 3 km to the next roundabout with
Mrzygłodzka St. The hotel is located at the roundabout on the left-hand side.
Aircraft
In doubt, the closest airport to Zawiercie is Katowice/Pyrzowice (KTW).
However, to go to Zawiercie by public transport, you will probably have to reach the
Katowice city center first (over 30 km - Zawiercie is closer). In such a situation, a taxi
may be a sensible solution - the airport and the hotel are only 28 km apart, resulting in a
transport cost of EUR 25-30.
Schedule
Workshop day
Thursday
November 16, 2023
10:00
Writing your own custom PHPStan rules
Dave Liddament
Writing your own custom PHPStan rules
Dave Liddament
If you're using tools like PHPStan on your projects you'll already be reaping the benefits. However are you using them to their full potential?
Do you have conventions on your project that you have to remember, either when writing or during code review? (E.g. a certain object should only be built by a factory. Or a method should only be used for testing.) Do you wish you could automate the checking of these conventions so they'd never be forgotten? Or do you wish PHP had features that other languages had, e.g. Java's package visibility modifier? The great news is PHPStan allows you to write your own custom rules to enforce all kinds of conventions or new language features. This tutorial will guide you through the basics of writing your own rules for PHPStan. We'll create a couple of simpler rules together and by the end of the session you'll be in a position to start writing your own rules.
NOTE: This tutorial assumes you already use PHPStan on a regular basis.
Ecotone i Message-Driven Architecture
Dariusz Gafka
Ecotone i Message-Driven Architecture
Dariusz Gafka
Gdy chcemy budować systemy, które same potrafią przywracać się do działania, są skalowane i skupiają się przede wszystkim na logice biznesowej, to potrzebujemy architektury, która będzie to wspierać. Na tym warsztacie zobaczymy jak można taką architekturę wprowadzić do systemu przy wykorzystaniu Ecotone Framework. Warsztat będzie podzielone na trzy części i odbędzie się w formie najpierw teoria a następnie praktyka:
Odporny Messaging, czym jest i jak z niego korzystać,
Building Blocki, jak łączyć je z Messagingem,
Testowanie w architekturze opartej o wiadomości.
Wymagania wobec uczestników warsztatu: Własny komputer z dostępem do sieci z zainstalowanym Dockerem i Docker-Compose.
PHP FFI Versus Extension Development: Which Approach is Better? [part 1]
Bohuslav Šimek
PHP FFI Versus Extension Development: Which Approach is Better? [part 1]
Bohuslav Šimek
Since PHP 7.4 there is no need to write a PHP extension if we want to use an existing library. But is it really easier to communicate with external libraries through PHP FFI? Doesn’t it make more sense to prioritize the development of extensions regardless of the need to learn another programming language? In this workshop you will learn how to communicate with external libraries through PHP FFI and how to do exactly the same with PHP extension written in pure C. Together we will overcome common pitfalls and discover when we should write an extension and when FFI. At the end of workshop you will know how to:
Call C code from PHP without the necessity of writing an extension.
Create simple PHP extensions in C.
Distinguish when to use FFI and when to write extensions.
Domain Driven Design w praktyce [cz. 1]
Michał Giergielewicz
Domain Driven Design w praktyce [cz. 1]
Michał Giergielewicz
Projektowanie architektury aplikacji z użyciem DDD jest obecnie bardzo popularne, jednak duża część materiałów online pokazuje "teorie" a nie praktykę. Chciałbym to zmienić :)
Zapraszam na 8h projektowania i programowania podczas których zamodelujemy i napiszemy aplikcję. Na koniec warsztatów każdy z was wyjdzie z działającym softem, który będzie namacalnym i zbudowanym przez was odwzorowaniem wymagań biznesowych.
Zamierzam pokazać wam zarówno część „teoretyczną”, w której zbudujemy wspólnie model naszej aplikacji, ale też przepracujemy sobie to, jak powinno wyglądać kodowanie takiego modelu. Jak tworzyć value objecty i serwisy domenowe, jak wyszukiwać granice kontekstu i zaprojektować agregat.
Trunk Based Development i feature flags w istniejącym projekcie [cz. 1]
Adrian Słowik
Trunk Based Development i feature flags w istniejącym projekcie [cz. 1]
Adrian Słowik
Warsztat, który przeprowadzi Cię przez wszystkie etapy zastosowania Trunk Based Development w istniejącym projekcie. W trakcie spotkania zdobędziesz potrzebną wiedzę, do wdrożenia rozwiązań w swoim projekcie. Od zbudowania podstawowego, prostego pipeline CI/CD, przez techniki tworzenia kodu schowanego za Feature Flagami, po usprawnienie procesu wydawania i kontrolę nad flagami na produkcji. Podczas warsztatu przećwiczysz sytuacje związane z implementacją nowych, refaktoryzacją istniejących oraz usuwaniem feature'ów. Staniesz przed problemem migracji danych oraz doświadczysz sztucznie wywołanych awarii, które obsłużysz z wykorzystaniem Feature Flag. Pomiędzy ćwiczeniami poznasz przykłady zastosowania poszczególnych technik na podstawie wysoko dostępnego i wysoko wydajnego produktu, gdzie każdy błąd oznacza stratę pieniędzy.
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
🍴 lunch for workshop attendees
14:30
15:00
ABC statycznej analizy kodu
Grzegorz Byrka, Paweł Cierzniakowski
ABC statycznej analizy kodu
Grzegorz Byrka, Paweł Cierzniakowski
Zapraszamy na warsztaty, podczas których przedstawimy pigułkę statycznej analizy kodu. W ciągu 4h przejdziemy przez kilka narzędzi, które pomagają w projektach, odciążając programistów od żmudnego ręcznego wypatrywania błędów podczas review i nie tylko.
Zachęcamy, abyście przyszli z własnymi projektami, o ile Wasze NDA na to pozwala. Jeszcze podczas warsztatów będziecie mogli zrobić kilka commitów, żeby w następnym tygodniu narzędzia te mogły zacząć pracować dla Was.
Skupimy się na tym, aby przedstawić metryki, które pozwolą pokazać współpracownikom i "biznesowi", gdzie warto zainwestować czas w refaktoryzację lub dodatkowe testy. Nazwijmy to ogólnie stanem projektu.
Zaczniemy od sprawdzania kodu na podstawie historii repozytorium GIT, a następnie przejdziemy do narzędzi dedykowanych naszemu językowi, takich jak PhpStan, Psalm, Deptrac i innych.
Przed warsztatami dostaniecie listę narzędzi, które należy mieć zainstalowane wraz z instrukcjami, tak, aby nasza praca przebiegła sprawniej.
Introduction to deploying PHP applications on AWS with Terraform
Sean Coneys
Introduction to deploying PHP applications on AWS with Terraform
Sean Coneys
This workshop will provide an introduction to configuring a simple PHP application for deployment on AWS Cloud using Terraform. Attendees will utilize the free tier AWS and GitLab to build reusable modules for CloudFront and S3, create infrastructure for Terraform state management, set up a Terraform deployment pipeline, and implement basic concepts for managing infrastructure environment splitting, along with basic access controls for Terraform and AWS. Throughout the workshop, we will discuss best practices and explore alternative approaches to the concepts being implemented. This will enable developers to gather ideas for implementing similar solutions on their own stack.
PHP FFI Versus Extension Development: Which Approach is Better? [part 2]
Bohuslav Šimek
PHP FFI Versus Extension Development: Which Approach is Better? [part 2]
Bohuslav Šimek
Since PHP 7.4 there is no need to write a PHP extension if we want to use an existing library. But is it really easier to communicate with external libraries through PHP FFI? Doesn’t it make more sense to prioritize the development of extensions regardless of the need to learn another programming language? In this workshop you will learn how to communicate with external libraries through PHP FFI and how to do exactly the same with PHP extension written in pure C. Together we will overcome common pitfalls and discover when we should write an extension and when FFI. At the end of workshop you will know how to:
Call C code from PHP without the necessity of writing an extension.
Create simple PHP extensions in C.
Distinguish when to use FFI and when to write extensions.
Domain Driven Design w praktyce [cz. 2]
Michał Giergielewicz
Domain Driven Design w praktyce [cz. 2]
Michał Giergielewicz
Projektowanie architektury aplikacji z użyciem DDD jest obecnie bardzo popularne, jednak duża część materiałów online pokazuje "teorie" a nie praktykę. Chciałbym to zmienić :)
Zapraszam na 8h projektowania i programowania podczas których zamodelujemy i napiszemy aplikcję. Na koniec warsztatów każdy z was wyjdzie z działającym softem, który będzie namacalnym i zbudowanym przez was odwzorowaniem wymagań biznesowych.
Zamierzam pokazać wam zarówno część „teoretyczną”, w której zbudujemy wspólnie model naszej aplikacji, ale też przepracujemy sobie to, jak powinno wyglądać kodowanie takiego modelu. Jak tworzyć value objecty i serwisy domenowe, jak wyszukiwać granice kontekstu i zaprojektować agregat.
Trunk Based Development i feature flags w istniejącym projekcie [cz. 2]
Adrian Słowik
Trunk Based Development i feature flags w istniejącym projekcie [cz. 2]
Adrian Słowik
Warsztat, który przeprowadzi Cię przez wszystkie etapy zastosowania Trunk Based Development w istniejącym projekcie. W trakcie spotkania zdobędziesz potrzebną wiedzę, do wdrożenia rozwiązań w swoim projekcie. Od zbudowania podstawowego, prostego pipeline CI/CD, przez techniki tworzenia kodu schowanego za Feature Flagami, po usprawnienie procesu wydawania i kontrolę nad flagami na produkcji. Podczas warsztatu przećwiczysz sytuacje związane z implementacją nowych, refaktoryzacją istniejących oraz usuwaniem feature'ów. Staniesz przed problemem migracji danych oraz doświadczysz sztucznie wywołanych awarii, które obsłużysz z wykorzystaniem Feature Flag. Pomiędzy ćwiczeniami poznasz przykłady zastosowania poszczególnych technik na podstawie wysoko dostępnego i wysoko wydajnego produktu, gdzie każdy błąd oznacza stratę pieniędzy.
Generics are a programming language concept. In short, they allow you to write typed code without being specifically linked to a particular type. Many languages already support generics more or less natively: Java, C#, Go, Rust Typescript... PHP doesn't, but thanks to its community and ecosystem, it's still possible to use them. Let's take a look at how and why, using Symfony components as an example.
Mikroserwisy - pułapki i błędy
Mateusz Tymejczyk
Mikroserwisy - pułapki i błędy
Mateusz Tymejczyk
Celem tej prezentacji jest omówienie kluczowych problemów, które można napotkać podczas tworzenia mikroserwisów, a także przedstawienie strategii unikania tych problemów. Problem interfejsów komunikacji między mikroserwisami:
omówienie różnych podejść do komunikacji, takich jak sync http, broker, i rpc,
porównanie zalet i wad każdego z tych rozwiązań,
wybór odpowiedniego mechanizmu komunikacji zależnie od potrzeb aplikacji.
Problem zarządzania danymi:
prezentacja różnych strategii przechowywania i zarządzania danymi w mikroserwisach,
omówienie kopiowania i synchronizacji danych między serwisami,
wskazówki dotyczące wyboru odpowiedniego podejścia do zarządzania danymi.
Problem wielu punktów wejścia:
co to jest API Gateway i jakie są jego korzyści w kontekście mikroserwisów,
omówienie zalet i roli API Gateway w zarządzaniu ruchem i bezpieczeństwem,
przykłady popularnych rozwiązań API Gateway.
Problem współdzielenia kodu między mikroserwisami:
jakie są wyzwania związane z współdzieleniem kodu w architekturze mikroserwisowej,
prezentacja różnych podejść do współdzielenia kodu, w tym współdzielone biblioteki,
jak unikać pułapek związanych z nadmiernym współdzieleniem kodu.
Problem dokumentacji:
jak radzić sobie z wyzwaniem tworzenia i utrzymania dokumentacji w środowisku mikroserwisów,
propozycje rozproszonego podejścia do dokumentowania usług,
narzędzia i praktyki ułatwiające dokumentowanie mikroserwisów.
Problem developer experience:
dlaczego jednolite środowisko devops jest kluczowe dla komfortu programistów,
wskazówki dotyczące zapewnienia spójnej i zautomatyzowanej infrastruktury devops dla wszystkich mikroserwisów,
przykłady narzędzi, które mogą poprawić doświadczenie programistów.
Testy w rozproszonym środowisku:
wyzwania związane z testowaniem mikroserwisów w środowisku rozproszonym,
jak zaplanować i implementować testy, aby skutecznie sprawdzały zachowanie systemu jako całości,
praktyczne wskazówki i narzędzia do testowania mikroserwisów.
Studium przypadku asynchronicznej konsumpcji zdarzeń w domenie finansowej
Zbigniew Malcherczyk
Studium przypadku asynchronicznej konsumpcji zdarzeń w domenie finansowej
Zbigniew Malcherczyk
Kilka serwisów, kilka zespołów, kilka zdarzeń - proces zakładania konta bankowego w domenie finansowej (FinTech). Opowiem jak w pewnej organizacji rozwiązaliśmy problem wielokrotnej implementacji mechanizmu obsługi zdarzeń. Zmniejszając złożoność problemu w organizacji w tym temacie. Odciążając techniczne zespoły biznesowe i wprowadzając standaryzacje w organizacji oraz zwiększając bezpieczeństwo.
10:15
10:30
10:45
☕ coffee break
11:00
11:15
Praktyczne techniki modelowania w oparciu o podejście DDD
Michał Giergielewicz
Praktyczne techniki modelowania w oparciu o podejście DDD
Michał Giergielewicz
Pisanie kodu „zgodnego” z DDD jest (w mojej opinii) sztuką bardzo zaniedbaną od strony szkoleniowej. Dużo łatwiej napotkać materiały o teorii i wzorcach implementacyjnych lub co ostatnio staje się bardziej widoczne o wzorcach strategicznych tłumaczących „po co” robić DDD. To czego brakuje to praktycznego podejścia do tematu: ok, mam ficzer – jak go mam napisać? To wystąpienie ma na celu pokazanie w jaki sposób można praktycznie podejść do implementacji – jak myśleć o kodzie, jakich technik używać aby weryfikować swoje początkowe założenia. Wystąpienie jest praktyczne, będę pokazywał kod w różnych stadniach jego rozwoju i tłumaczył jego ewolucję oraz to, co ta ewolucja za każdym razem przynosiła.
Context Maps - kto? z kim? i dlaczego
Adam Kasperczak
Context Maps - kto? z kim? i dlaczego
Adam Kasperczak
Mapy kontekstów są narzędziem pomagającym uporządkować relację między bounded contextami i (co ważniejsze) zespołami które nad nimi pracują. Jeżeli miałeś kiedyś dosyć “wrzutek” od innych zespołów lub brakowało ci informacji kto i jak korzysta z twojego kodu Wprowadzenie Context Map może ci pomóc. Na prezentacji opowiem czym się poszczególne relacje charakteryzują oraz jak to się udało u nas wraz z wskazówkami jak takie mapy wprowadzić do twojego zespołu.
Extending the PHP Language with PHP
Dave Liddament
Extending the PHP Language with PHP
Dave Liddament
Do you wish that PHP had features that other languages have? Have you got some great ideas about how to extend PHP’s feature set but don’t want to go through the RFC process? Great news. There is another way. It is possible to implement some new language features using static analysis and PHP code. This talk will briefly introduce the PHP Language Extension library; which offers features such as Java’s package level visibility and C++’s friend feature. Then, we’ll take a deep dive into how to create a custom PHPStan rule. By the end of the talk, hopefully you’ll be inspired to create your own enhancements to PHP, or at the very least have a starting point to write your own custom rules.
11:30
11:45
12:00
12:15
Memory leaks and how to find them
Bohuslav Šimek
Memory leaks and how to find them
Bohuslav Šimek
Almost every PHP programmer encounters the following error message: “Fatal error: Allowed memory size of xxx bytes exhausted”. In many cases, this news means a long hunt and frequent use of trial and error. This does not have to be a necessity! Together we will go through the different ways and tools to deal with this situation. After the talk you will never be surprised by this problem in the future!
Chcę wiedzieć co myślisz czyli rzecz o Feedbacku
Karol Kreft
Chcę wiedzieć co myślisz czyli rzecz o Feedbacku
Karol Kreft
Jako prelegent zawsze po wystąpieniu próbuję nawiązać kontakt ze słuchaczami, poznać ich zdanie i znaleźć odpowiedź na pytanie jaką wartość ma to co robię, czy wnosi coś nowego i co powinienem poprawić. Tymczasem standardowy feedback to brak jakiegokolwiek feedbacku. Podobna sytuacja ma często miejsce w naszych zespołach. Pracujemy razem, razem rozwiązujemy problemy ale czy wspólnie wymieniamy się spostrzeżeniami dotyczącymi tego co w naszym podejściu do pracy działa a co kuleje? Czy potrafimy określić mocne i słabe strony współpracowników? I co równie ważne, czy wiemy jak to zakomunikować i jak znieść krytykę? W prezentacji podzielę się swoimi doświadczeniami z obszaru informacji zwrotnej, co powinna zawierać i jak ją przekazywać by osoba, której został udzielony wyniosła z niego jak najwięcej.
Shape Up Your Testing Strategy: Balancing Unit, Integration, and E2E Tests
Antonello D'Ippolito
Shape Up Your Testing Strategy: Balancing Unit, Integration, and E2E Tests
Antonello D'Ippolito
Are you struggling to figure out the right balance of unit tests, integration tests, and e2e tests in your PHP projects? Look no further! This talk aims to make some clarity in the different types of tests and when to use them. We'll explore the importance of unit tests (and what a unit really is), and when to rely on broader integration or e2e tests for testing the behaviour of bigger chunks of your application. We'll also cover the different test shapes, such as the pyramid and trophy, and what kind of development experience they might lead you to.
Attendees will leave with less confusion about the benefits and limitations of each test type and how to use them to effectively improve the quality of their software.
12:30
12:45
13:00
🍴 lunch
Framework agnostic is not a rocket science
Damian Dziaduch
Framework agnostic is not a rocket science
Damian Dziaduch
Would you like to upgrade the framework/database/etc or even change it, but, it seems impossible due to high coupling? Do you and your peers think about rewriting the project from scratch, again?
Grab a drink and participate in my talk where I will show you how to fix that! After this talk, you will know the following:
How to write a project that can survive many years without rewriting it from scratch
How to write framework-agnostic code
How to write easily testable code
What is ports and adapters architecture
MySQL bad queries? Find the all!
Piotr Suszalski
MySQL bad queries? Find the all!
Piotr Suszalski
Baza danych działa wolno? Pewne zapytania powodują problemy z wydajnością? Często okazuje się, że nie łatwo takie zapytania znaleźć. W mojej prezentacji omówią sposoby na debugowanie serwera MySQL w czasie rzeczywistym, a także sposoby na analizę tego co działo się w przeszłości i tego z jakich narzędzi skorzystać aby znaleźć te zapytania.
13:15
13:30
13:45
14:00
Kliencie, czego potrzebujesz? Optymalizacja komunikacji z klientem na przykładzie tworzenia strony
Magdalena Sędkiewicz
Kliencie, czego potrzebujesz? Optymalizacja komunikacji z klientem na przykładzie tworzenia strony
Magdalena Sędkiewicz
Przychodzi klient do developera i mówi: „poproszę stronę / aplikację / chcę, by ktoś wdrożył poprawki. Ma być ładne i ma działać”. A dev wtedy… Robi rozpoznanie bojem: pisze kod i potem wiecznie go poprawia? A może da się inaczej? Po odejściu z projektu wróciłam do przygody z freelancingiem i do tworzenia stron WWW. W tej prezentacji chcę podzielić się zdobytym doświadczeniem z zakresu komunikacji z klientem i opowiedzieć, co należy “wyciągnąć” od klienta na start, aby ułatwić sobie dalszą pracę, nakreślić obszar odpowiedzialności klienta oraz obszar odpowiedzialności deva w pracy nad stroną, a także pokazać konkretne narzędzia pomagające rozwiązać problem klienta tak, aby nie usłyszeć na koniec prac: „Ale to nie jest to, o co mi chodzi”.
🍴 lunch
Advanced usages of PHP typing
Damien Seguy
Advanced usages of PHP typing
Damien Seguy
The PHP type system is modernizing with every version. It is now so advanced that it is used as early as conception time : detect dependencies between classes, reduce complexity levels between methods, identify order of execution. The organisational strength of the type system permeates throughout the source. In fact, type analysis suggest and deny specific refactorisations. This is not determinism : they give a healthy margin of freedom, where the creative work of developers happen. During this session, we’ll review several rules of organisation of PHP code, and how to use them to get a sound understanding of our code bases.
14:15
14:30
14:45
How can I trust my test suite?
Antonello D'Ippolito
How can I trust my test suite?
Antonello D'Ippolito
You recently started working on a new project, or you have been working on it for a while, and it has undergone many changes due to the contributions of multiple developers. This means that you may not be familiar with how the automated tests were written, or how effective they are. So, how can you be confident that you won't break anything when you deploy new features to production, or when you refactor that old piece of software that's holding you back? Do you have enough trust in your test suite to rely on the fact that a green CI build means that everything is okay? There are many tools that provide metrics about your code and tests, such as code coverage and CRAP metrics, but they have their limitations. In this talk, we will explore ways to evaluate the effectiveness of your test suite, how to improve it, and the benefits of having a robust and comprehensive set of automated tests.
Programming language as a product – How should PHP evolve?
Roman Pronskiy
Programming language as a product – How should PHP evolve?
Roman Pronskiy
From this talk, you'll learn how different communities, such as Rust, Go, Kotlin, and others, approach language development. How they decide on new features and how they choose what to deprecate. How they use telemetry and usage data to justify decisions, and other insights. We'll then explore stats on the adoption of new PHP features. Which was the most anticipated and hyped on the RFC stage and which ended up being used the most? Finally, we'll look at how the process can be improved for PHP.
🍴 lunch
15:00
15:15
15:30
Rozszerzalność aplikacji Symfony
Michał Kurzeja
Rozszerzalność aplikacji Symfony
Michał Kurzeja
Symfony posiada wiele świetnych mechanizmów, które pozwalają łatwo je rozszerzyć. Co więcej, znając je, możemy sami zaprojektować nasze aplikacje tak, aby były rozszerzalne w podobny sposób. W trakcie prezentacji przedstawię te moim zdaniem najciekawsze możliwości, a niekoniecznie wszystkim znane.
Code Review w teorii i praktyce
Grzegorz Korba
Code Review w teorii i praktyce
Grzegorz Korba
Czy jest Code Review, a czym nie jest? Jaka jest rola autora Merge Requestu, a jaka jest rola recenzentów? Co zrobić, by review było sprawne i wartościowe? Jak optymalnie wykorzystywać narzędzia do code review, by sobie wzajemnie ułatwiać, a nie utrudniać? Na te i inne pytania odpowiemy sobie podczas prelekcji.
Four usages of PHP static analysis
Damien Seguy
Four usages of PHP static analysis
Damien Seguy
Static analysis is for life, not just for christmas. While finding bugs is before execution a staple, static analysis provide tools to go even further. It scans the code to offer suggestions, training unususpecting developer into using modern PHP code, or simply local patterns. It provides inventories, linking remote parts of the code by their value and process, and bringing more consistency across the whole code base. Finally, it can document the code base, and keep it real-time. The best is that each of those mission has available tools for the job.
15:45
16:00
16:15
16:30
☕ coffee break
16:45
17:00
Software Design with PHP8 - Tips & Tricks
Paul Dragoonis
Software Design with PHP8 - Tips & Tricks
Paul Dragoonis
I've been doing PHP for 21 years now. I also worked as a consultant for ~10 years traveling from company to company, fixing, guiding, and re-architecting platforms during this time.
In this intermediate-level talk, I'll take the time to share with you everything I've learned along the way, from best practices, to clever tools and techniques you may never have heard of, to "what works, and what doesn't", to "making the most of PHP8".
If you're a PHP developer at the start of the mature stage of your career, this talk has great value for you!
Growing the PHP Core – One Test at a Time
Florian Engelhardt
Growing the PHP Core – One Test at a Time
Florian Engelhardt
Ever dreamt of becoming a PHP core contributor but felt overwhelmed by the prospect of creating RFCs, maintaining extensions, or writing C code? Worry no more! In this talk, you'll discover how to make a meaningful impact on the PHP core by writing tests without the need for any C code. Join me for an interactive session where I'll live code a test on stage, demystifying the process and equipping you with essential testing techniques. Develop the confidence to contribute to the PHP core, one test at a time, and become an invaluable member of the PHP community.
Data Warehouse w Google Cloud
Wojciech Sznapka
Data Warehouse w Google Cloud
Wojciech Sznapka
Analityka danych odgrywa kluczową rolę bez względu na wielkość i rodzaj firmy. Bez niej trudno przewidywać przychody i optymalizować koszty, zrozumieć preferencje klientów, dostrzegać okazje biznesowe czy poprawiać wrażenia użytkowników. Data Warehousing to temat rzeka, a zaczyna robić się naprawdę złożony przy dużej skali biznesu, ogromie danych oraz ich różnorodności. W takich przypadkach, hurtownie danych zasilane wsadowo nie sprawdzą się i trzeba zainwestować w stream processing oparty na sprawdzonych rozwiązaniach. W prelekcji przedstawię ekosystem DWH którego z powodzeniem używają setki użytkowników w STS Gaming Group, a który w dużej mierze opiera się o rozwiązania Google Cloud, w szczególności Big Query.
17:15
17:30
17:45
One of Two Hard Things - why naming things is hard?
Piotr Suszalski
One of Two Hard Things - why naming things is hard?
Piotr Suszalski
Jak wiadomo w produkcji oprogramowania są „tylko” dwie trudne rzeczy: inwalidacja cache i nazewnictwo. Czy w czasach zaawansowanych IDE to dalej jest prawdą? Postaram się temu przyjrzeć w mojej prezentacji.Dla wielu z nas pisanie kodu jest czymś co robimy najczęściej. Często nie zastanawiamy się nad pewnymi szczegółami które w tym kodzie się pojawiają, kod wydaje się zrozumiały i prosty (w momencie jego tworzenia). Zapominamy niestety o tym, że kod jest wielokrotnie razy częściej czytany niż pisany, i to głównie przez osoby które tego kody nie tworzyły. Możemy więc zastosować pewne techniki które sprawią, że kod będzie czytelniejszy, prostszy do zrozumienia i łatwiejszy w utrzymaniu. Naming Things Matters!
Change IT – zarządzanie emocjami w procesie zmiany.
Sonia Wysocka
Change IT – zarządzanie emocjami w procesie zmiany.
Sonia Wysocka
Nowe technologie, narzędzia, zmienne wymagania klientów – branża IT to ciągła zmiana. Jak na nią reagujesz? Czy potrafisz nazwać emocje towarzyszące Tobie i Twoim współpracownikom? Na jakie pułapki możesz natrafić próbując uporać się z tym tematem?
Zrozum emocje w procesie zmiany,
Odkryj źródła reakcji emocjonalnych,
Naucz się krok po kroku radzić sobie z emocjami,
Poznaj rolę Lidera w okresie transformacji,
Wykorzystaj zmiany w branży IT jako swoją szansę!
Podczas tego spotkania pomogę Ci zrozumieć tajniki zarządzania emocjami i pokażę, jak przekuć je w swojego sprzymierzeńca.
Team Topologies, a Platform Development w Shoper
Adrian Słowik
Team Topologies, a Platform Development w Shoper
Adrian Słowik
Czy zastanawiałeś się kiedyś ile produktów jest rozwijanych w Twojej firmie? Czy budując aplikację nie masz poczucia, że tak na prawdę pracujesz nad wieloma projektami równolegle? Może czasami jeden zespół jest "klientem" innego? Zobacz jak można wykorzystać Team Topologies by zbudować zespoły, które rozwijają platformy, ktore są fundamentem prac innych zespołów na przykładzie Shoper.
18:00
18:15
18:30
Projektowanie architektury odpornej na błędy w komunikacji asynchronicznej mikroserwisów
Zbigniew Malcherczyk
Projektowanie architektury odpornej na błędy w komunikacji asynchronicznej mikroserwisów
Zbigniew Malcherczyk
W prezentacji przedstawię proces zmiany z architektury "at most once delivery" do "at least once delivery" w kontekście asynchronicznej komunikacji mikroserwisów. Skupimy się na możliwych rozwiązaniach tego problemu oraz zaprezentujemy integrację z frameworkiem Symfony. Omówimy różnicę między obiema architekturami, mechanizmy zapewniające niezawodność transmisji, oraz najlepsze praktyki implementacji w połączeniu z Symfony. Będzie to kompaktowa prezentacja, która dostarczy wartościowych wskazówek dla budowy architektury odpornej na błędy w komunikacji asynchronicznej mikroserwisów.
Budowanie Mostów, czyli wzorzec Bridge w praktyce
Tomasz Sadza
Budowanie Mostów, czyli wzorzec Bridge w praktyce
Tomasz Sadza
Czy kiedykolwiek zastanawiałeś się, jak poprawić efektywność i skalowalność swojego kodu, a także uniknąć pułapek legacy? W mojej prezentacji skoncentrujemy się na zrozumieniu i praktycznym zastosowaniu wzorca Bridge. Ten wzorzec jest jednym z najbardziej efektywnych narzędzi, które mogą pomóc osiągnąć te cele. Wyjaśnię, jak wzorzec Bridge pomaga zaradzić problemowi zbyt skomplikowanej struktury klasy, separując „co” system ma robić od „jak” ma to zrobić, co pozwala na niezależne zmiany obu elementów. Omówię problemy, które Bridge pomógł mi rozwiązać, takie jak izolacja API, unikanie zagnieżdżenia i utrzymanie spójności interfejsów, oraz jak dzięki temu wzorcowi tworzenie modułów kodu stało się łatwiejsze. Na konkretnym przykładzie pokażę, jak Bridge pomógł mi zaradzić problemowi skalowania zależności w projekcie legacy. Po prezentacji, uczestnicy będą w stanie zrozumieć i zastosować wzorzec Bridge w swoich projektach, a także będą wiedzieli, jak wykorzystać go do rozwiązywania konkretnych problemów.
O czym nie powie nam metryka 100% Code Coverage? Testy mutacyjne i Fuzz testing.
Mateusz Wojczal
O czym nie powie nam metryka 100% Code Coverage? Testy mutacyjne i Fuzz testing.
Mateusz Wojczal
Metryka 100% pokrycia kodu (code coverage) stała się często używanym buzzwordem w świecie rozwoju oprogramowania, sugerującym doskonałą jakość testowania. Jednak warto pamiętać, że osiągnięcie pełnego pokrycia kodu nie gwarantuje, że wszystkie możliwe przypadki testowe zostały uwzględnione. Skupienie się wyłącznie na metryce 100% code coverage może prowadzić do nadmiernego skomplikowania testów lub tworzenia testów, które w rzeczywistości nie sprawdzają istotnych aspektów kodu. Ważne jest, aby używać metryki code coverage jako jednego z wielu wskaźników jakości testów, równocześnie skupiając się na znalezieniu i eliminowaniu rzeczywistych słabych punktów w testowaniu i zapewnieniu kompleksowego sprawdzenia logiki i funkcjonalności aplikacji.
Testy mutacyjne to rodzaj testów oprogramowania, które polegają na wprowadzaniu celowo wprowadzanych błędów (tzw. mutacji) do kodu programu w celu oceny jakości testów jednostkowych. W ramach testów mutacyjnych, program jest poddawany serii mutacji, a następnie uruchamiane są testy, aby sprawdzić, czy testy wykryją te zmiany.
Fuzz testing, znane również jako testowanie oparte na przypadkowości, to technika testowania oprogramowania, która polega na wprowadzaniu losowych, zniekształconych lub nieprawidłowych danych wejściowych do programu w celu wykrycia błędów lub luk w zabezpieczeniach. Fuzz testing pozwala na zautomatyzowane generowanie ogromnej liczby testów, co może pomóc w wykryciu trudno dostrzegalnych błędów w oprogramowaniu.
There is a lot of frustration among developers when they need to work with the old code, usually called “legacy”. But there is way more legacy code running than non-legacy out there in the world. Developers like starting from scratch but that is not often the case. If they want to successfully replace legacy with newer code they need to start with appreciation and respect for that legacy code because it somehow runs and there is no guarantee that new code will do a better job.
Qodana - nowe narzędzie do statycznej analizy kodu
Mariusz Kozłowski
Qodana - nowe narzędzie do statycznej analizy kodu
Mariusz Kozłowski
Podczas prezentacji chciałbym przedstawić nowe narzędzie od jetbrains do statycznej analizy kodu - Qodana. Czy opłaca się wprowadzać kolejne narzędzie? Czy warto płacić abonament? Jak w ogóle skonfigurować je w naszym ci/cd? Omówienie na korzystaniu w konkretnym projekcie.
Mastering Application Logging
Florian Engelhardt
Mastering Application Logging
Florian Engelhardt
Have you ever faced the daunting task of investigating a customer complaint or hunting down the cause of a mysterious system glitch? Application logging can be your lifeline in these challenging situations. In this talk, we'll explore the importance of application logging and how it can save you time and effort when troubleshooting. Discover the key principles of effective logging and equip yourself with the knowledge and best practices to tackle any issue with confidence!
10:15
10:30
10:45
☕ coffee break
11:00
11:15
Building Fast APIs and Middlewares: Mezzio + Swoole
Babarinde Odewumi
Building Fast APIs and Middlewares: Mezzio + Swoole
Babarinde Odewumi
We'll be discussing Mezzio: A PSR-15 Middleware framework, allowing you to build elegant middlewares for your applications and also Swoole: a PHP extension that allows you to build high performance applications. We'll also look at how to combine both to get the best of both worlds and highlight how this differs from the traditional Apache/Nginx PHP approaches and pitfalls to be aware of when taking the dive.
Strategic Domain-Driven Design for dummies
Sebastian Malaca
Strategic Domain-Driven Design for dummies
Sebastian Malaca
Ubiquitous Language and Bounded Contexts help us work with complex domains. They provide information we can use to improve the architecture, team structures, and communication with stakeholders and within a team. They increase our understanding of the domain our product supports. They can help decrease the lead time. Yet, the question is, how to use these powerful patterns and not get overwhelmed?
During the presentation, I will show you how to use DDD strategic patterns to make better architectural decisions. You will learn the techniques and heuristics to speed up the discovery process and decrease the risk of mistakes. You will also learn what problems you may face during that journey and way how to overcome them.
Jak zadbać o czystą domenę nie rezygnując z udogodnień frameworka - na przykładzie Symfony
Jakub Ciszak
Jak zadbać o czystą domenę nie rezygnując z udogodnień frameworka - na przykładzie Symfony
Jakub Ciszak
O tym, że nie warto wymyślać koła na nowo wiadomo już od dawna. O tym, że kod domenowy powinien być czysty od zewnętrznych zależności także. Jak pogodzić te dwie sprawy, kiedy framowork kusi łatwością dewelopmentu, a tutoriale do frameworków nie uświadamiają o konsekwencjach stosowania szybkich rozwiązań? W tej prezentacji opowiem o tym jak namówić Symfony do współpracy w tworzeniu ładnego odpowiednio podzielonego kodu. Nie skupiając się na konkretnej architekturze przedstawię narzędzia i propozycje zagospodarowania tego co daje nam framework, jednocześnie utrzymując w czystości kod biznesowy. Przejdziemy między innymi przez Request, Asserty, ORM, votery, eventy… Porozmawiamy także o tym, czy na pewno zawsze trzeba się tak spinać, i kiedy warto sobie odpuścić.
11:30
11:45
12:00
12:15
12:30
12:45
🍴 lunch
PHP Foundation: The past, the present, and the future
Roman Pronskiy
PHP Foundation: The past, the present, and the future
Roman Pronskiy
In 2021, the PHP Foundation was launched by prominent community members and 10 major companies in the PHP ecosystem. In this talk, you will discover the narrative behind the quest for sustainable PHP core development, the challenges confronting PHP and the foundation, and, naturally, the future plans. I am excited to respond to your questions and eagerly anticipate hearing your suggestions. Together, let us shape the future of PHP.
Sprawiedliwe kolejkowanie w systemach multi-tenant
Michał Kurzeja
Sprawiedliwe kolejkowanie w systemach multi-tenant
Michał Kurzeja
Kolejkowanie zadań jest w obecnych czasach standardowym i powszechnie używanym sposobem obsługę cięższych zadań. To z pozoru proste rozwiązanie potrafi się mocno skomplikować, gdy kolejkować musimy zadania w systemach “multi-tenant”. Nie chcemy przecież, aby jeden z naszych klientów miał możliwość “zagłodzenia” innych. Chciałbym podsumować najczęściej stosowane rozwiązania i zaprosić Was do dyskusji – czy da się lepiej rozwiązać ten problem?
13:00
13:15
13:30
🍴 lunch
Jak (nie) osiwieć debugując
Przemysław Pawliczuk
Jak (nie) osiwieć debugując
Przemysław Pawliczuk
`die('dupa');` — kto nigdy tego nie zrobił, niech pierwszy rzuci klawiaturą. Niektórzy nadal to robią (i czasem ma to sens). W prezentacji podzielę się swoimi ponaddziesięcioletnimi doświadczeniami w polowaniu na bugi w mniejszych i tych większych aplikacjach. Jeśli słowa `xdebug`, `siwizna`, `rzucam tę robotę`, `strace`, `APM`, `stacktrace` niewiele Ci mówią, to ta prezentacja jest dla Ciebie. Jeśli mówią, to i tak przyjdź, a postaram się, abyś dowiedział(a) się czegoś nowego.
13:45
Do you really know JWT?
Karim Pinchon
Do you really know JWT?
Karim Pinchon
Over the past few years, many of us have seen or used special tokens: JSON Web Tokens, or JWTs. This token standard is a very practical way of transmitting information reliably. These tokens are often used for authentication with web services, microservices or SSO as part of OpenID Connect. In addition, we see a lot of JWS (signed tokens), but that's not the only implementation out there. In fact, the JWT specification is much broader than you might think. Here's a look at some of the lesser-known aspects of JWT.
14:00
14:15
14:30
Nowości w PHP 8.3
Grzegorz Korba
Nowości w PHP 8.3
Grzegorz Korba
Wielkimi krokami nadchodzi PHP 8.3 i przynosi nam kolejne nowości. Jakiego rodzaju są to zmiany i czy wniosą coś wartościowego do naszej codziennej pracy? Przekonajmy się!
“Kto to pisał?!... a, to ja.”, czyli sposoby żeby znienawidzić siebie z przeszłości
Mateusz Zalewski
“Kto to pisał?!... a, to ja.”, czyli sposoby żeby znienawidzić siebie z przeszłości
Mateusz Zalewski
Czysty kod. Jakościowe oprogramowanie. Dobre praktyki. Święte Graale pracy programisty, o których każdy z nas wie, a mimo to wciąż zachowujemy się tak, jakby ich nie było. Bo przecież ten kod to tylko na chwilę. A tego to w ogóle nie będziemy używać. A tę klasę się zrefaktoruje później. Wszyscy od czasu do czasu zaciągamy dług u samych z siebie z przyszłości - dług, którego potem (nie bez powodu) bardzo nie chcemy spłacać.
Zagłębmy się więc w ten fascynujący świat słabego oprogramowania. Przejdźmy przez las nieużytych wzorców projektowych, przebrnijmy przez bagna zagnieżdżonych pętli. Wejdźmy na kolejny ośmiotysięcznik, a może z jego szczytu uda nam się dojrzeć zatokę pięknego kodu - w której, miejmy nadzieję, tym razem pozostaniemy na dłużej.
Bazując na mojej wieloletniej wiedzy we wdrażaniu dobrych praktyk w dużych projektach wykorzystujących PHP i Symfony, przedstawię szereg zaniedbań programistów, których rezultatem jest kod najgorszej jakości. Wspólnie zastanowimy się, jak tych błędów uniknąć oraz jakie techniki można zastosować, by te już popełnione szybko i skutecznie wyeliminować.
🍴 lunch
14:45
15:00
15:15
15:30
So Long, and Thanks for Nothing! The Demise of Cross-Site Scripting
Christian Wenz
So Long, and Thanks for Nothing! The Demise of Cross-Site Scripting
Christian Wenz
For almost 25 years, almost as long as there is PHP, cross-site scripting (XSS) has been one of the most common risks for web applications. Yet today, there are many ways to protect a web application from attacks, including browser features, HTTP headers, and special APIs. This talk discusses why XSS is dangerous and covers countermeasures including Content Security Policy, Trusted Types API, and protection in SPA frameworks. After this talk, there's (almost) no excuse to get XSS.
ML z PHP - zastąp złożoną logikę biznesową modelami uczenia maszynowego
Michał Żarnecki
ML z PHP - zastąp złożoną logikę biznesową modelami uczenia maszynowego
Michał Żarnecki
Czy kiedykolwiek spotkałeś się z kodem zawierającym tak wiele warunków i ścieżek przetwarzania, że jego utrzymanie i rozszerzanie było niemal niemożliwe? A gdyby tak zastąpić go automatycznie generowanym, samodoskonalącym się algorytmem? W ostatnich latach uczenie maszynowe jako dziedzina sztucznej inteligencji stało się efektywnym narzędziem do tworzenia systemów i aplikacji. Wraz z rozwojem sztucznych sieci neuronowych, programowanie złożonych reguł biznesowych i usług opartych na prognozowaniu oraz klasyfikacji można zastąpić wstępnie wyszkolonymi modelami uczenia maszynowego. W tej prezentacji zobaczysz case study obrazujące potencjał PHP w integracji uczenia maszynowego. Przejdziemy przez proces tworzenia klasyfikatora i umieszczania go w projekcie opartym na PHP.
Jak odpowiednio dobrać drivery technologiczne?.
Mateusz Wojczal
Jak odpowiednio dobrać drivery technologiczne?.
Mateusz Wojczal
Prezentacja dotycząca doboru driverów technologicznych skupia się na kluczowych czynnikach i dobrych praktykach, które pomogą w odpowiednim doborze technologii dla projektu. Rozpoczynamy od zrozumienia kontekstu biznesowego i wymagań projektu, aby lepiej dopasować technologię do celów biznesowych. Następnie omawiamy proces oceny dostępnych technologii, uwzględniając czynniki takie jak wydajność, skalowalność, społeczność i dokumentację. Analiza ryzyka i bezpieczeństwa jest również istotnym elementem, wraz z uwzględnieniem dostępności i umiejętności zespołu. Na zakończenie prezentacji przedstawiamy zestaw dobrych praktyk, takich jak prototypowanie, testowanie proof of concept i analizę przypadków użycia, aby pomóc w skutecznym doborze driverów technologicznych. Całość ma na celu podkreślenie znaczenia odpowiedniego doboru technologii i zachęcenie do stosowania omówionych czynników i praktyk w procesie wyboru technologii.
Summary: The presentation on selecting technological drivers focuses on key factors and best practices to aid in making informed technology choices for a project. It begins by understanding the business context and project requirements to better align technologies with business goals. The evaluation process for available technologies is then discussed, considering factors such as performance, scalability, community support, and documentation. Risk analysis and security considerations are also essential, along with the team's availability and skills. Finally, a set of best practices, including prototyping, proof of concept testing, and analyzing use cases, is presented to assist in effectively selecting technological drivers. The overall aim is to emphasize the importance of proper technology selection and encourage the application of the discussed factors and practices in the technology selection process.
15:45
16:00
16:15
16:30
☕ coffee break
16:45
17:00
OWASP Top Ten for PHP Web Application Security Risks
Christian Wenz
OWASP Top Ten for PHP Web Application Security Risks
Christian Wenz
Summary Since 2003, the Open Web Application Security Project curates a list of the top ten security risks for web applications. In making the list, OWASP combines both a data-driven approach to find out current risks, and a survey among practitioners to identify upcoming threats for web applications. Time to have a look at the latest edition to see what's new, what has changed, and to get an up-to-date refresh on how to create secure web applications. We will also discuss whether the list is still relevant, and what is missing from that list. And unlike the list itself, we will focus on PHP.
Jak zepsuć tranzycję? Pratyczne porady na drodze do katastrofy.
Grzegorz Sztandera
Jak zepsuć tranzycję? Pratyczne porady na drodze do katastrofy.
Grzegorz Sztandera
Tranzycja pomiędzy dwoma firmami to dość newralgiczny punkt w cyklu życia każdego projektu i produktu. Pewne jest, że nie da się go przeprowadzić w 100% perfekcyjnie. Co jednak zrobić, by zagwarantować sobie piękną, wielowątkową i spektakularną katastrofę? Przejście przez proces tranzycji i wskazanie newralgicznych punktów, które mogą zakończyć się poważnym kryzysem biznesowym i technicznym.
Potęga prostego kodu - wartość w niepozornym obiekcie
Mariusz Gil
Potęga prostego kodu - wartość w niepozornym obiekcie
Mariusz Gil
Świat wzorców Domain-Driven Design wielu osobom wydaje się mocno skomplikowany i złożony. Gdy wchodzisz do niego przez kod, skupiasz się implementacji agregatów, a za chwilę okazuje się, że to wcale nie jest najważniejsze. Im więcej się dowiadujesz, tym więcej się rodzi nowych pytań. A co, jeśli powiem Ci, że twój kod może być czytelniejszy, łatwiejszy, bardziej rozwijalny i testowalny w zasadzie już jutro? I że nie musisz przy tym przekonywać uczulonych na niektóre nazwy kolegów i koleżanek z zespołu? Przejdźmy zatem wspólnie kilka ścieżek, dzięki którym w kodzie pojawią się proste, ale bardzo wartościowe obiekty. Na ich ramionach będzie można budować dalej. I nie, Money jest tu przykładem zabronionym :)
17:15
17:30
17:45
18:00
Blaski i cienie BDD
Mateusz Zalewski
Blaski i cienie BDD
Mateusz Zalewski
Behaviour-driven development jest wspaniałe, czyż nie? Poprawia komunikacja w Zespole, sprawia że wymagania biznesowe są zrozumiałe dla wszystkich zaangażowanych w projekt, przyspiesza development w dłuższym okresie… Po prostu nie ma wad! Albo… jednak ma?
Niestety, nie ma idealnych systemów czy idealnych metodologii. Wszystkie mają swoje minusy - kompromisy, na które musimy się zgodzić kiedy implementujemy je w naszych procesach. I nie ma w tym nic złego, dopóki jesteśmy ich świadomi. Pracując przez wiele lat z Syliusem pokochałem BDD, TDD, czy podejście test-driven jako takie, ale zrozumiałem też koszt ich użycia w innych projektach.
W mojej prezentacji, skupię się na plusach i minusach metodologii BDD, z perspektywy członka Core Teamu dużego, open-source’owego projektu. Postaram się również pochylić nad perspektywą przeciętnego użytkownika takiego produktu… która może być jednocześnie podobna jak i zaskakująco odmienna.
Back to the Future
Ivan Herak
Back to the Future
Ivan Herak
We've all faced legacy code and the dread of refactoring it to fit modern ages. In this talk I would like to share some experiences of my own and what I see as a good way of dealing with it. A combination of a soft and technical talk - after all, all of that is needed when dealing with a complicated refactoring, right? We will talk here about:
the present - organizing the team and the process during the refactoring; preparing for the excruciating task at hand;
the past - common situations and code smells that lead to heavy tech debt - and how to avoid it;
the future - refactoring tips and best practices that helps keep the project somewhat reasonably easy to maintain.
Coupling w Laravelu, czyli jak odzyskać zdrowe relacje ze swoim kodem.
Marcin Lenkowski
Coupling w Laravelu, czyli jak odzyskać zdrowe relacje ze swoim kodem.
Marcin Lenkowski
Coupling w Laravelu, czyli jak odzyskać zdrowe relacje ze swoim kodem. Czy zdarzyło Ci się że kod zaczął iść własną, złą drogą? Starasz się, piszesz czysty kod zgodny z SOLIDem, robisz CRki a wszystko to na nic? Ostatecznie i tak, wdrożenie stosunkowo prostej zmiany zajmuje tygodnie, w najbardziej kluczowym dla projektu momencie. W gorszych sytuacjach, może się okazać, że kodu w ogóle nie da się rozwijać, bo jedna z zewnętrznych usług przestała działać.
Pokażę Ci, jak tego uniknąć, na przykładzie projektu w PHP we frameworku Laravel. Dobre zrozumienie couplingu zapewni Ci spokój i sprawi, że inaczej spojrzysz na projektowanie systemów. Odzyskasz dobre relacje z kodem i będziesz wiedział, jak działać, by projekt mógł się rozwijać z sukcesami.
Poruszymy tematy związane z:
Projektowaniem systemu
Dzieleniem kodu na moduły
Wzorcem niebezpośredniości (indirection pattern)
Właściwą pracą z parametrami tworzonych metod
Właściwym wykorzystaniu wzorca repozytorium
Poznamy prawo Demeter, które zabroni nam rozmawiać z nieznajomymi
Poruszymy temat projektowania dla usuwalności
A wszystko to na konkretnych przykładach i kodzie, który odzyska wolność od problematycznej architektury i zewnętrznych usług.
18:15
18:30
18:45
19:00
🍴 dinner & socializing 🍺 🍺 🍺 (barbecue shelter)
19:15
19:30
19:45
20:00
concert of the Kołdra group / bowling (in parallel, to be chosen)
Grzegorz Byrka to programista z 15-sto letnim stażem, od roku pracujący 4 dni w tygodniu. Prywatnie mąż, tata dwójki dzieci i zapalony motocyklista. Do tego częsty prelegent i organizator wrocławskich PHPersów.
Paweł Cierzniakowski jest mężem, ojcem, programistą i nauczycielem. Z PHP związany od ponad 7 lat, z edukacją – od zawsze. W wolnym czasie zajmuje się drobną elektroniką i gotowaniem.
Jakub Ciszak
Burda Media Polska
Jakub Ciszak
Burda Media Polska
Edukacja
Absolwent Wyższej Szkoły Bankowej w Poznaniu, z programowaniem związany od dzieciństwa (zaczynając od Basic'a na CPC 464).
Doświadczenie
Pierwsze komercyjne projekty pojawiły się w 2011. Full-time software developer od 2013. Pracował w zróżnicowanych branżach:
Oświata/Wydawnictwo
Farmaceutyka/Analityka
E-commerce (Magento)
Fintech (Przelewy24)
Aktualnie Senior Software Developer w Burda Media Polska.
Over the course of his career Sean has taken multiple clouds from 0 to 1 with uptime larger than 99% in less than a year. His focus on best practices and fundamentals creates secure, robust, and easy to use infrastructures. Sean is an experienced Dev and MLOps engineer boasting an AI patent and multiple successful projects for clients and partners, including names such as Meta, MIT, and Deutsche Bahn.
Antonello D'Ippolito
Mollie BV
Antonello D'Ippolito
Mollie BV
An Italian (now living in the Netherlands) software engineer, and agile practitioner. Focused on Automated Testing, Test Driven Development and Continuous Delivery, but also in football and cheese. Musician, writing sad songs so he can write happy code.
Paul Dragoonis
Dragoonis Technologies
Paul Dragoonis
Dragoonis Technologies
My name is Paul, and I'm from Glasgow, Scotland. I'm an open-source contributor, public speaker, trainer, and consultant by trade. I'm a member of the CD Foundation, PHP, PHP-FIG, and Jenkins projects/teams. In my career, I've held positions such as Director of Engineering, CTO, Principal Engineer/Architect, and so on. I've spent many years modernizing CI/CD pipelines and embedding continuous delivery processes and solutions into businesses. I enjoy sharing my experience in the space with the wider community by way of private training or conference speaking.
Damian Dziaduch
Printify
Damian Dziaduch
Printify
I started my adventure with PHP in junior high school by playing with phpBB, which was popular at that time. Since 2011 I am programming professionally, all the time in PHP. Currently, working with one of the largest print-on-demand companies, the Latvian Printify.
Florian Engelhardt
Datadog
Florian Engelhardt
Datadog
Proud dad of five kids, husband, Linux and Vim user, PHP, Rust, software architect, technical consultant, geek and I'm getting shit done
Dariusz Gafka
Simply Coded Software
Dariusz Gafka
Simply Coded Software
Software Engineer w Lendable. Entuzjasta Domain Driven Design oraz architektury opartej o wiadomości. Kontrybutor open source oraz twórca Ecotone Framework. W wolnym pisze artykuły oraz hartuje sie metodą Wim Hof'a.
Michał Giergielewicz
Getresponse S.A
Michał Giergielewicz
Getresponse S.A
Programista i architekt oprogramowania, skupiony wokół technologii webowych. Adwokat nowoczesnych architektur, poszukujący prostych rozwiązań. Propagator Event Stormingu, Domain Driven Design i Software Craftsmanship
Mariusz Gil
Source Ministry
Mariusz Gil
Source Ministry
Software architect, trener, konsultant i ex-CTO, związany z branżą IT od ponad 23 lat. Zajmuje się analizą, modelowaniem i implementacją systemów o złożonej logice biznesowej, m.in. z użyciem technik Domain-Driven Design. Prowadzi podcast Better Software Design o architekturze i projektowaniu oprogramowania. Obecnie związany z Bottega IT Minds, gdzie ma okazję pracować z wieloma zespołami developerskimi w Polsce i Europie. Mocno zaangażowany w rozwój oraz praktyczne zastosowania EventStormingu.
Ivan Herak
Netgen
Ivan Herak
Netgen
Senior web developer. Team lead. Tech lead. Often diving deep into legacy areas no one else wants to touch (loves dragons). The annoying one with all the rules. Likes his code same as his cars - 15 years old and barely working.
Adam Kasperczak
Adam Kasperczak
Swoją przygodę z programowaniem zacząłem od skoku na naprawdę głęboką wodę. Pierwsze kroki stawiałem pracując przy frameworku e-commerce Sylius, gdzie jakość kodu i testów zawsze była absolutnym priorytetem. Dziś nadal zajmuje się rozwijaniem projektów e-commerce’owych i nieustannie propaguję to, co w kodzie najlepsze – TDD, BDD, DDD. Prywatnie jestem ogromnym fanem planszówek, dobrego wina i jak na e-commerce’owca przystało – zakupów!
Grzegorz Korba
Codito
Grzegorz Korba
Codito
W branży IT jest samoukiem. Od dziecka krąży wokół technologii, ale dopiero na (nietrafionych) studiach zaczął tworzyć własne strony internetowe. Związany jest głównie z PHP, ale nieobce są mu też inne języki. Z biegiem lat coraz bliższy był mu temat QA, automatyzacji i standaryzacji, dlatego aktywnie udziela się w tematach statycznej analizy, standardów kodowania, testów, Gitlab CI czy środowisk opartych o Dockera. W miarę możliwości kontrybuuje do projektów Open Source. Prywatnie szczęśliwy mąż oraz ojciec trójki dzieci. Gdy ma czas i siłę chętnie uprawia skateboarding, ogląda futbol, gra na konsoli lub czyta (ostatnio głównie komiksy). W przeszłości zajmował się również muzyką, która w pewnym sensie rozpoczęła jego przygodę z programowaniem (stworzył serwis o polskim rapowym podziemiu).
Mariusz Kozłowski
Mariusz Kozłowski
Programista z kilkuletnim doświadczeniem. Aktualnie pracuje dla Aptek Gemini opiekując się projektem wewnętrznym. Fan testów i automatyzacji na CI/CD. Organizator spotkań PHPers w Bydgoszczy. Prywatnie mąż i ojciec dwójki synów którzy urodzili się tego samego dnia. Fan Wiedźmina, ostatnio spędza czas ogrywając najnowszą planszówkę w tym świecie.
Karol Kreft
Volt
Karol Kreft
Volt
Programista o humanistycznych zainteresowaniach, fan NBA, wielbiciel dobrej architektury (nie tylko tej w kodzie) oraz wycieczek po górach. Zawodowo od ponad 10 lat związany z tworzeniem aplikacji w języku PHP. Pracuje w Volt jako Tech Lead gdzie wspiera zespoły programistyczne w dostarczaniu testowalnego, skalowalnego i bezpiecznego kodu zgodnie ze sprawdzonymi praktykami inżynierii oprogramowania.
Michał Kurzeja
Accesto.com
Michał Kurzeja
Accesto.com
Programista z zamiłowania, współzałożyciel i CTO Accesto.com. Gorący orędownik Software Craftsmanship, który stara się zarażać tym podejściem osoby z otoczenia. Uwielbia poznawać nowe technologie i rozwiązania oraz sprawdzać je w praktyce. Nieustannie walczy z kodem słabej jakości.
Marcin Lenkowski
Lenkowski.net
Marcin Lenkowski
Lenkowski.net
Trener programowania, YouTuber i Instagramer. Od ponad 12 lat związany z PHP oraz JavaScript i technologiami takimi jak Laravel, Symfony czy Nest. Aktywny programista, nauczyciel i trener programowania na Lenkowski.net. Wyznający zasadę, że dobre oprogramowanie to podstawa biznesu, a dobry programista to taki, który dobrze rozumie biznes.
Dave Liddament
Lamp Bristol
Dave Liddament
Lamp Bristol
Dave is a director and developer at Lamp Bristol, a software consultancy. He’s been writing software commercially for over 21 years in many languages including C, Python, Java and PHP. Dave is keen to pass on his knowledge. He speaks at conferences and user groups and also is the organiser of PHP-SW. He is also the author of a couple of libraries:
When not busy coding Dave enjoys scuba diving and running.
Ivo Lukač
Netgen
Ivo Lukač
Netgen
Managing partner at Netgen. 20 years of experience in the web industry. Participated in various web projects across the globe as an engineer, architect, project manager, consultant... Organizing Web Summer Camp since 2012.
Sebastian Malaca
UBS
Sebastian Malaca
UBS
Sebastian jest doświadczonym architektem i liderem specjalizującym się w programowaniu i projektowaniu obiektowym oraz technikach i praktykach pozwalających tworzyć kod wysokiej jakości. Głównymi obszarami jego zainteresowań jest praktyczne wykorzystanie refaktoryzacji, testowania oraz technik wytwarzania oprogramowania w pracy z istniejącym kodem zarówno na poziomie pojedynczych klas jak i całych aplikacji. Jest również prelegentem, blogerem oraz trenerem i konsultantem.
Zbigniew Malcherczyk
https://github.com/Ferror
Zbigniew Malcherczyk
https://github.com/Ferror
W każdej organizacji prócz tworzenia serwisów oraz aplikacji w PHP i Symfony zwracałem uwagę na to w jaki sposób uruchamiana jest aplikacja na produkcji. W jaki sposób można aplikację zoptymalizować. W przypadku aplikacji klasy Enterprise nawet mała optymalizacja może przynieść ogromne zyski. Zwłaszcza w dobie wykorzystania chmury, gdzie każda minuta kosztuje. W wolnych chwilach maluje figurki, żegluje, oglądam shoty z Świata Według Kiepskich.
Babarinde Odewumi
Abba and King Systems LLC
Babarinde Odewumi
Abba and King Systems LLC
Developer of PHP for over 14 years, Founder and Senior Software Architect @ Abba and King Systems LLC, based in Nigeria
Przemysław Pawliczuk
h2p.pl
Przemysław Pawliczuk
h2p.pl
Specjalista od żałosnych i niemożliwych problemów. Jego pierwsze słowa to: "Paamayim nekudotayim". Programowania nauczył się podczas rendez vous z Symfony, po 10 latach z PHP. Uzależniony od soku pomarańczowego, na PHPConie, podczas którego rozpoczął swoją przygodę jako prelegent, od lat opiekuje się technikaliami. Po godzinach - mąż, członek Pionier Rzeszów Toastmasters, majsterkowicz, fan akordeonu uwielbiający dobrą muzykę vocal-trance.
Karim Pinchon
Foxintelligence
Karim Pinchon
Foxintelligence
I've been a backend developer for around twelve years, first in Java, then PHP and more recently in Go. I've worked in companies of all sizes: from a 400-person company to a 15-person startup, then scale-ups. Sharing knowledge is fundamental to my approach of my job: I like to take part in all kinds of meetups/conferences. I'm particularly sensitive to the subjects of security, authentication (OAuth2, OpenIdConnect) and electronic signatures (PKI), as I've been working on these for ten years.
Roman Pronskiy
PHP Foundation | JetBrains
Roman Pronskiy
PHP Foundation | JetBrains
Roman spent a decade as a PHP software engineer before joining JetBrains as the Product Marketing Manager for PhpStorm IDE. He authors the “PHP Annotated” newsletter and played a key role in launching The PHP Foundation in 2021, where he now oversees operations.
Tomasz Sadza
Sii
Tomasz Sadza
Sii
Programista, konsultant i trener, zawodowo działający jako Software Engineer i Tech Leader w Sii Polska. Swoją drogę z programowaniem rozpoczął w latach 90-tych tworząc gry na małe Atari. Od ponad 20 lat z zaangażowaniem oddaje się optymalizowaniu i wdrażaniu procesów biznesowych w aplikacjach webowych. Uczestniczył we wszystkich etapach tworzenia i rozwoju oprogramowania, z gaszeniem pożarów na produkcji włącznie. Zwolennik czystego kodu oraz przejrzystej architektury.
Prywatnie jest dumnym konstruktorem LEGO wraz dwójką wspaniałych synów.
Magdalena Sędkiewicz
Magdalena Sędkiewicz
Web Developer, psychologist and BSF therapist, who around two years ago started career in IT. She was also working as a journalist, copywriter and she wrote two books. In her free time she loves to watch F1 races and crochet.
Damien Seguy
Dyflexis
Damien Seguy
Dyflexis
Damien Seguy CTO at Exakat SAS., a company specialized in PHP code quality solutions for the industry. He leads the development of the exakat PHP static analysis engine, that automatically audit code for version compatibility, security and dead code. Since last millenium, Damien has contributed to PHP, as documentation author, elephpant breeder, conference UFO on all continents. He also enjoys machine learning, gremlin, 狮子头 and camembert.
Bohuslav Šimek
PeoplePath
Bohuslav Šimek
PeoplePath
Bohuslav Šimek works as a lead programmer at PeoplePath, 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.
Adrian Słowik
Adrian Słowik
Entuzjasta PHP, wyznawca Event Storming'u i ewangelista stosowania Feature Flag. Programista z 19-letnim dowiadczeniem. Od 15 lat zwizany z bran E-commerce. Wieczorami pochania now wiedz czytajc ksiki lub testujc nowe technologie. Czonek reading club'u powiconego DDD. Nie trzeba go dugo namawia na karaoke, nawet na trzewo. Po latach powtrnie zasili team PHPConu, gdzie odpowiada za rozwj wsppracy ze sponsorami oraz uczestniczy w pracach Komitetu Programowego.
Piotr Suszalski
FreshMail
Piotr Suszalski
FreshMail
Programista, architekt oprogramowania, a aktualnie CTO w jednej z krakowskich firm. Od dawna zajmuje się tematami związanymi z tworzenie i rozwojem oprogramowania. Na codzień odpowiadam za kwestie architektury aplikacji, optymalizacji baz danych oraz kontakt z biznesem w sposób zrozumiały dla obu stron.
Wojciech Sznapka
STS.pl
Wojciech Sznapka
STS.pl
Software geek focused on web technologies with more than 13 years of experience. Always keen on solving complex problems, working with large volumes of data and leading engineering teams. Has a good understanding of sportsbook and igaming, fintech and affiliation systems to name a few.
Works with PHP since version 3, but also happy to code in Python and Angular. Fascinated with all things Big Data.
CTO @ STS.pl
Grzegorz Sztandera
MakoLab
Grzegorz Sztandera
MakoLab
Manager that effectively and efficiently build DevOps & Operations Team that goes beyond the standard DevOps framework and has diverse competencies. Every day going out of the box, extending classic DevOps approach into multidimensional operations that boosts up projects and delivers highest quality. He believes that without a close-knit and cooperative team it is not possible achieve the efficiency and quality that can be reached.
Mateusz Tymejczyk
Shoper
Mateusz Tymejczyk
Shoper
Inżynier oprogramowania z prawie pięcioletnim stażem. Obecnie pełni funkcję Lead Engineera w firmie Shoper. Doświadczenie zdobywał w projektach związanych z billingiem, fintech oraz e-commerce. Szczecinianin, oprócz zadań zawodowych spędza czas grając, oglądając dobre science fiction i inwestując w rozwój swoich umiejętności jako programista.
Christian Wenz
Arrabiata Solutions GmbH
Christian Wenz
Arrabiata Solutions GmbH
Christian Wenz is an author, consultant and trainer focusing on web technologies. He wrote or co-wrote over 100 books, is a fixture at international developer conferences since 2001, and lead author of the Zend PHP certification. His day job at includes migrating old code bases, implementing complex web applications and making software more secure.
Mateusz Wojczal
EscolaSoft
Mateusz Wojczal
EscolaSoft
Full-Stack web deweloper z siedemnastoletnim doświadczeniem. Zaczynał jako programista ActionScript. Zdobył doświadczenie w PHP i JavaScript, budując serwisy oraz aplikacje internetowe. Od 2011 roku prowadzi software house Qunabu Interactive, a obecnie Escolasoft, gdzie pełni rol CTO. Skuteczna komunikacja i dobra współpraca z zespołami o globalnym zasięgu, to jego mocne strony. Mówi o sobie krótko: Fullstack/DevOps developer. Jest ekspertem od JS/TS, React, PWA, PHP i Jamstack.
Sonia Wysocka
Xebia
Sonia Wysocka
Xebia
Psycholog biznesu i zwolenniczka promowania psychologii pozytywnej w organizacji. Związana z IT od blisko 4 lat, dzięki czemu doskonale rozumie technologiczną rzeczywistość. Przekazując wiedzę koncentruje się na obszarze emocji i motywacji, komunikacji oraz zarządzaniu zmianą.
Mateusz Zalewski
Commerce Weavers
Mateusz Zalewski
Commerce Weavers
Programowanie to nie tylko moja praca, ale i sposób na życie. Ewangelista metodologii BDD i entuzjasta testowania. Jestem ciekawy świata i zafascynowany ogólnie pojętą nauką. Od kilku lat jestem członkiem core-teamu Syliusa, prowadzę również szkolenia (o Syliusie, PHP, Symfony, testowaniu…). Prywatnie - od lat członek średniowiecznej grupy rekonstrukcyjnej i nałogowy podróżnik. Uwielbiam odwiedzać nowe miejsca, poznawać nowych ludzi i każdego dnia rozwijać, by stawać się lepszym programistą i lepszym człowiekiem.
Michał Żarnecki
CompanyHouse AG
Michał Żarnecki
CompanyHouse AG
Od ponad 10 lat projektuje aplikacje oparte na chmurze, z naciskiem na projektowanie systemów eksploracji duzych zbiorów danych przy użyciu najnowocześniejszych technologii, takich jak algorytmy uczenia maszynowego, przetwarzanie języka naturalnego i rozwiązania data science. Jako lider techniczny w Companyhouse.de podejmuje decyzje techniczne zwiazane z rozwojem platformy Companyhouse. Ponadto swoją wiedzą i doświadczeniem dzielę się prowadząc zajęcia z uczenia maszynowego i eksploracji danych na Collegium da Vinci w Poznaniu.
Tickets
Blind Bird, Regular and Last Minute tickets (seen below) allow you to
attend the conference talks - on Friday and/or Saturday, respectively. The price of each ticket
includes admission, a starter pack, and a buffet dinner. Friday tickets include a buffet dinner,
while Saturday tickets include access to the after-party with dinner and the concert by the Kołdra music
group. All tickets also entitle you to use the bowling alley, subject to availability (the bowling
alley is exclusively reserved for us on Friday and Saturday evenings). Accommodation, including breakfast, must be booked separately
(see the section below).
If you intend to participate in a workshop on Thursday, you must also book a separate ticket for a chosen
one. Workshop tickets will be available separately in September. We will inform you on social media
and via the newsletter about it.
Shortly after registration, you will automatically receive a proforma/purchase order from Konfeo's
registration system at the e-mail provided during registration. All prices below include Polish VAT of
23%, which is a proper course of conduct. There's no legal possibility of issuing a reverse charge
invoice for conference attendance - VAT must be paid in the country of service provision, in this case.
Please contact us if you require an proforma/p.o. in EUR or any other currency.
The price of accommodation includes breakfast, car park, and WiFi. A water park, two swimming
pools, saunas, a 40-meter slide, water massages, jacuzzi are also included for our guests.
The hotel will hold the sale of the remaining free accommodation if it sells at least 75% of the
accommodation on offer to our participants by 16 October. Of course, accommodation will be
available until the vacancies are sold out, so those wishing to take advantage of on-site
accommodation are strongly encouraged to book in advance.
Hotel Zawiercie**** Business & Leisure is a high-standard corporate and training centre, which
is located in Zawiercie, on the Jurassic Rocks Region (Jura Krakowsko-Częstochowska) near the
international airport Pyrzowice (KTW).
The object is located closer to the town centre than the Villa Verde. The approximate distance
between them is 3 miles.
The number of available places is also limited and decreases with time, so postponing a booking
at the last minute is not a good idea.
Become a sponsor of the PHPCon Poland 2023 conference – it's a unique opportunity to
present your brand to international PHP community and to be well-remembered.
Conferia Events
Dariusz Grzesista
city: Rybnik
zip code: 44-200
address: 50A, Wodzisławska St.
EU VAT ID: PL6422172643
REGON No. (statistical): 273618346
IBAN account (EUR): PL21 1050 1344 1000 0097 8228 0359
BIC/SWIFT: INGBPLPW or INGBPLPWXXX (depending on the code length)
OUR TEAM
Dariusz Grzesista
Conferia
Originator, founder and team leader of the PHPCon Poland Conference. Event manager with 14y 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 Ministry of Finance IT Centre from a years. Proud biological father of some other PHPCon organisers. An unreformable bicycle tramp with a survival verve.
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.
Mateusz Grzesista
Conferia
A graduate of one of the Silesian high schools. A man behind the editing and publishing of videos of presentations. He embraces the technical issues of the lecture hall and video recording on site. After the conference, a man behind the Conferia's Youtube publications.
Tomasz Kunicki
Long-time PHP developer, currently also a Java developer. Multiple participants in PHPCon. Evangelist for quality, architectural themes, and good team practices - at the code and culture level. Loves to help others develop. Privately an affectionate father of 2 daughters, he absorbs audiobooks and creates PoC after night. The member of the Programme Committee, responsible for actively building partnerships.
Adrian Słowik
adrianslowik.pl
PHP enthusiast, a devotee of Event Storming, and an evangelist for using Feature Flags. Programmer with 19 years of experience. He has been associated with the E-commerce industry for 15 years. In the evenings, he absorbs new knowledge by reading books or testing new technologies. Member of a reading club dedicated to DDD. It doesn't take long to persuade him to go karaoke, even when sober. Years later, he rejoined the PHPCon team, responsible for developing cooperation with sponsors and participating in the Programme Committee.
Ania Grzesista
Conferia
Responsible for the conference office and distribution of start-up packages. Collector of elePHPants, a weekend contributor to significant gastro events. Although she doesn't eat much, she loves good cuisine.
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.
Wojciech Sznapka
STS
A PHP professional with a 15-year history. He has been a faithful fan of PHPCon since the first editions, where he currently sits on the Programme Committee. Professionally focused mainly on managing technology teams and Big Data topics. Every free moment combines sports (mainly Squash) and family life.