prelegenci i ich wystąpienia

Witek Adamus
witek-adamus
Tak zwany full-stack developer (swojego czasu frontendo-backendo-teamleadero-analityko-szkoleniowiec), który od pewnego czasu zajmuje się tylko backendem. Pasjonat i ewangelizator programowania funkcyjnego oraz ładnie zaprojektowanego API. Po godzinach fotograf i cyklista. Lubi też szyć misie.
Dlaczego funkcyjność i asynchroniczność w PHP7 przyprawia o ból głowy i czy można temu zaradzić
1 godzina
PHP7 jest już prawdziwie (ale nie czysto) funkcyjnym językiem programowania. Niestety sposób w jaki wprowadzono koncepcję, która przeżywa aktualnie swój renesans jest pod wieloma aspektami ułomna i utrudnia, a wręcz zniechęca do przestawienia się na nowy styl tworzenia aplikacji. Prezentacja ma na celu przybliżenie tego co daje nam czysto funkcyjne podejście do programowania z jednoczesnym uwzględnieniem problemów, które napotka na swojej drodze programista chcący wdrożyć w życie pomysły podpatrzone u programistów pracujących w takich językach jak Haskell, Scala, Clojure czy choćby JavaScript.

Gianluca Arbezzano
GianArb
Inżynier oprogramowania w korporacji finansowo-technicznej CurrencyFair.
Programista PHP zajmujący się różnymi warstwami stosu, w tym automatyzacją, skalowalnością
i HA. Kontrybutor kilku projektów Open Source (przede wszystkim Zend
Framework), członek zespołu deweloperskiego Doctrine ORM. Wierzy w najlepsze praktyki
programowania, wspiera też różne grupy użytkowników.
Jego zainteresowania ciągle ewoluują. W ostatnim roku sporo pracował nad skalowalnością
infreastruktury, osiągając swój cel dzięki AWS, DigitalOcean i OpenStackowi.
Time Series and monitoring, listen your application
1 godzina
Our applications speak, time series are one of their languages, during this talk I share
my experience about InfluxDB and time series to monitor and know the status of our
business logic.
Log file isn't the best way to understand the status of our applications if it is
running and a microservices environment doesn't help this practice because now we have
different little applications that requires different monitoring rules with a different
granularity. Reads logfile is more difficult, time series notifies anomalies during the
application lifecycle.

Olaf Gałązka
olafgalazka
Programista PHP od niemal 10 lat, skupiony głównie na rozwoju backendu aplikacji internetowych. Obecnie pracuje jako inżynier oprogramowania w Schibsted Tech Polska w Gdańsku. Prywanie ojciec dwójki dzieci, uwielbiający piłkę nożną, fotografię i samochody RC.
Time travelling with Event Sourcing
1 godzina
Event Sourcing is the way of modelling applications that has become very popular last
months. But this is not a new model, actually it’s very old. It was used decades ago but
then it was superseded by current state concept and CRUD based applications.
In my speech I am going to present briefly how Event Sourcing works. I will pinpoint its
benefits and limitations. I would also like to show sample implementation of basic event
engine in PHP along with its usage in a very simple application.

Mariusz Gil
mariuszgil
Software architekt, trener, obecnie zaangażowany w rozwój Source Ministry. Z branżą IT związany od ponad 16 lat, w tym czasie pracował m.in. dla Nextclicka, Naszej-Klasy, Gadu-Gadu, Adv.pl, a także jako konsultant w zakresie tematyki skalowalności i wydajności aplikacji internetowych. Interesuje się m.in. projektowaniem i budową oprogramowania na potrzeby web, zarówno od strony architektury aplikacji jak i infrastruktury serwerowej, a także tematyką machine learning i analizowania dużych zbiorów danych. Mariusz należy do komitetów programowych 4Developers oraz PHPCon Poland, współorganizuje spotkania PHPers i stara się aktywnie uczestniczyć w community. Wolny czas poświęca m.in. na organizację poświęconej tematyce Domain Driven Design konferencji DDD Now, rowerom górskim oraz gitarze elektrycznej.
Discovering graph structures
1 godzina
Graf jest strukturą danych bardzo często wykorzystywaną we współczesnej informatyce. Za pomocą wierzchołków, krawędzi oraz ich atrybutów pozwala ona modelować sieci i układy nawet o dużym stopniu złożoności. Istnieje wiele sposobów na implementację grafów i ich wykorzystanie w aplikacjach opartych o PHP, od typowych rozwiązań opartych o bazy SQL, do narzędzi typu Apache Giraph czy Titan. W trakcje tej sesji przybliżymy kilka popularnych metod reprezentacji grafów, jednak w głównej mierze skupimy się na Neo4J, skalowalnej i bardzo popularnej grafowej bazie danych, pozwalającej na efektywne przechowywanie informacji i przetwarzanie zapytań grafowych. Zapoznamy się także z metodami współpracy Neo4J z PHP oraz typowymi problemami, przy których dedykowane rozwiązanie pokazuje mocny "pazur" nad implementacją SQL.
Understand your application with metrics
warsztat w języku polskim
2 godziny
Proces implementacji systemu IT nie kończy się na zatwierdzeniu zmian w repozytorium i wydaniu kodu na serwery produkcyjne. W tym miejscu zaczyna się jego nowy etap, obserwacji zachowania aplikacji w realnym środowisku, zbierania i analizowania wszelkich informacji czy też wreszcie reakcji na wykryte problemy. Od niskopoziomowych danych systemowych o wykorzystaniu CPI czy karty sieciowej, przez informacje o procesach wewnątrz aplikacji po wskaźniki biznesowe PKI, każdy fragment informacji się liczy. Wykorzystując dedykowane silniki dla danych typu time-series każdy zespół w projekcie może otrzymać dashboardy z kluczowymi informacjami, planowanie zasobów staje się łatwiejsze, możliwe jest również wykrywanie różnego rodzaju anomalii w zachowaniu całego systemu. Podczas tej sesji zapoznasz się z kluczowymi konceptami związane z gromadzeniem i przetwarzaniem danych metrycznych, a także z dostępnymi stosami technologicznymi. Nauczysz się także jak identyfikować, tworzyć i używać kluczowych metryk dla twojej aplikacji, by mieć pewność, że zachowuje się on zgodnie z oczekiwaniami.

Grzegorz Godlewski
GGodlewski
Programista pasjonat, certyfikowany Scrum Master, Software Craftsman. Brał
aktywny udział w różnorodnych projektach dla klientów z wielu krajów, sektorów
oraz używających rozmaitych technologii. W karierze zawodowej bywał testerem, programistą,
scrum masterem, właścicielem produktu, analitykiem i architektem, zdobywając mnóstwo
doświadczenia na polu zarówno projektowym, produktowym, jak i programistycznym.
Wciąż poszukuje optymalnych rozwiązań problemów, z perspektywy zarówno programisty, jak
osoby z zewnątrz.
PHP development for large agile projects
1 godzina
Professional PHP web application development faces a multitude of challenges today, especially in case of large and complex applications developed using agile methodologies. Plenty of factors influence the product, its architecture and the developers working on it. During this talk we're going to explore those factors and attempt to build a set of guidelines that will benefit the developers, code, product and business at the same time.

Tomasz Gramza
tomaszgramza
Lider techniczny, aktywny programista, z wykształcenia Technolog Wytwarzania
Oprogramowania. Dorastał razem z rozwojem technologii internetowych i trendów w
programowaniu - doświadczenie z PHP zbiera już przez ponad połowę swojego życia. Od 3 lat
pracuje nad rozwojem platformy wykorzystywanej w 40 krajach przez prawie 300 mln aktywnych
użytkowników miesięcznie (4% populacji świata).
Z sukcesem podejmuje wyzwania poprawy wydajności i jakości rozwiązań. Nie straszna mu praca
z dziedzictwem kodu zostawionym przez innych programistów. Wielki zwolennik automatyzacji.
Pasjonat uczenia maszynowego w rozwiązaniach biznesowych i entuzjasta wykorzystywania
grafiki trójwymiarowej na stronach internetowych.
7 złotych zasad programisty rzemieślnika w epoce Agile i PHP7
30 minut
Manifest Agile kładzie nacisk na działające oprogramowanie, szybkość zmiany i współpracę
ludzi ponad strategie, procesy i narzędzia, a PHP w swojej naturze oferuje
nieograniczoną wolność w szybkim osiągnięciu swoich celów. W takim podejściu nasze
projekty już po kilku iteracjach mają tyle długu technologicznego, że satysfakcję
rozwoju tego oprogramowania odbiera nam koszmar jego utrzymania.
Omówimy 7 zasad, które w epoce projektów Agile każdy programista pretendujący do bycia
rzemieślnikiem powinien znać i bezsprzecznie się trzymać.

Sebastian Grodzicki
sebgrodzicki
Od ponad 12 lat związany z technologiami internetowymi. Absolwent Polsko-Japońskiej Wyższej Szkoły Technik Komputerowych (PJWSTK) w Warszawie na specjalizacji programowania aplikacji biznesowych. Certyfikowany inżynier Zend PHP 5/5.3 (ZCE), Zend Framework (ZFCE) oraz Symfony (SensioLabs Certified Symfony Developer). W latach 2010-2016 zaangażowany w rozwój GoldenLine. Obecnie CTO w SHOWROOM.
Profilowanie aplikacji PHP
1 godzina
Nie możesz poprawić tego, czego nie możesz zmierzyć. Dlatego profilowania aplikacji powinno być zawsze pierwszym krokiem przed próbą poprawy jej wydajności. Dowiedz się jak zidentyfikować wąskie gardło swojej aplikacji oraz jak zaadaptować profilowanie jako stały element jej rozwoju.

Patrik Karisch
PatrikKarisch
Deweloper PHP z czternastoletnim stażem, specjalizujący się w Symfony. Oprócz tego jest DevOpem u swojego obecnego pracodawcy, pixelart. Patrik to entuzjasta open source oraz adwokat współczesnych pryncypiów i standardów deweloperskich. W wolnym czasie bawi się elektroniką i mikrokontrolerami w C, czasami w Assemblerze. Jeśli akurat nie koduje, przygotowuje smakowite jedzenie, wypieka mufinki albo gra na perkusji.
The everyday basics of Caching and Performance
1 godzina
We are creating awesome web apps every day, using great libraries and so forth. But do we
take care of the challenges of caching and performance? Do you know what is happening
inside your application? Do you know what proxies are doing to your page on the way to
the client? Is the browser cache a miracle or a spartan? I'll guide you through all the
different types of caches, what to do on the application, how to handle proxies, taming
the browser side and on. What you can cache, how it impacts performance, what is useful,
when not to cache and much more.
Whether you are new to the topic or you only want a refresh. After the talk you know all
the possibilities of caching and how it will improve the performance of your
application.
"Caching is a forgotten topic but really important to take care of."
Boost up your code with Specifications
warsztat w języku angielskim
4 godziny
Big repositories, complex query builders, tight coupling to your ORM. Adding new
behaviors or new find*() methods can be a mess. Everyone knows this trouble.
Don't struggle anymore! This workshop shows you how to decouple you from the ORM and
writing general search behaviors for all your entities and data sources with the
specification pattern. Your new specifications are not tied to any specific ORM. With
the awesome RulerZ library they can be applied to any data source you can imagine - your
repositories, ElasticSearch or Solr, arrays, API collections or even unicorns.
This workshop will learn you:
- The mess of your ORM repositories
- Introduction to the RulerZ library (and optionally Symfony bundle)
- Refactoring your repositories into specifications
- Usage of the specifications on the data-source and instance level (repository vs. object arrays)
- Adding another data source (e.g. ElasticSearch) with reusing the already created specifications
- Creating a new RulerZ visitor to filter a new data source which is not supported by the lib

Martin de Keijzer
martindekeijzer
Deweloper zatrudniony w dużej holenderskiej firmie fonograficznej, Spinnin' Records. W
przeszłości pracował również dla kilku lokalnych dobrze znanych firm
projektowo-programistycznych Ibuildings i E-Sites, w których skupiał się na technologiach
webowych oraz PHP – jako tej najczęściej wykorzystywanej.
Obok kariery zawodowej, Martin
jest również członkiem zarządu grupy PHPBenelux.
High quality live broadcasting with PHP
1 godzina
One of the latest trends on our beloved internet is broadcasting live video. The charm of
being there and being part of a group viewers via a chat is something which appeals to
many users. It could be a product presentation, screencast with live Q&A, a weekly
planned show or live DJ set. There are many opportunities to go live on networks like
Facebook, Youtube or Twitch.
But there's also a dark side with things like bandwidth limits, technical knowledge and
many other small annoyances which can go wrong.
In this presentation we'll look at these issues, how we as PHP developers at Spinnin'
Records overcame these problems now and new plans for the near future.
Best of all; this is being developed as an open source package, so you can already start
planning your live screencasts, product presentations or weekly shows today!

Arkadiusz Kondas
ArkadiuszKondas
Entuzjasta programowania. Z zawodu web developer. Pragmatyk. Od jakiegoś czasu również przedsiębiorca. Racjonalista. W wolnych chwilach biega i bloguje. Miłośnik gier i grywalizacji.
Machine Learning – jak zacząć uczyć maszynę w PHP
1 godzina
Głównym celem Machine Learningu jest tworzenie inteligentnych systemów, które za pomocą danych wejściowych mogą doskonalić się i zdobywać nową wiedzę. W praktyce przekłada się to na wykorzystaniu jednego z setek różnych dostępnych algorytmów. Na podstawie biblioteki PHP-ML chcę przedstawić różne klasy problemów i sposobów ich wykorzystania. Przedstawię również technikę budowania całego pipeline'u, za pomocą którego przejdziemy przez wszystkie etapy ML: przetwarzania danych (preprocessing), wyboru algorytmu oraz oceny jego skuteczności.
Zmutowane PHP – testowanie mutacyjne dla początkujących
prelekcja w języku polskim
1 godzina
Testowanie mutacyjne to technika pozwalając na pomiar jakości testów. Polega ona na celowym wprowadzaniu małych zmian (mutacji) w kodzie, a następnie sprawdzeniu czy przynajmniej jeden test nie przechodzi. Podczas prezentacji przedstawię koncepcję testów mutacyjnych wraz z praktycznym wdrożeniem na podstawie biblioteki padraic/humbug. Pokaże jak interpretować wyniku testów oraz jak samemu napuścić mutantów na swój kod.

Jarosław Kostrz
jkostrz
Software Engineer, obecnie jako Team Lead zespołu deweloperskiego produktu Brand Fibres w VML Poland. Entuzjasta programowania równoległego i rozproszonego. Lubi rozmawiać o idei Software Craftsmanship.
Zookeeper w akcji - czyli jak rozwiązywać problemy programowania równoległego w PHP
30 minut
Aplikacje webowe stają się co raz bardziej zaawansowane, serwery mają co raz więcej wątków, warto ze sobą to pogodzić i wykorzystać możliwości. Ta prezentacja wprowadza w temat programowania równoległego w środowisku PHP. Przybliża temat wyścigu i innych niebezpieczeństw, które czekają na programistę oraz podaje implementację algorytmu blokowania dostępu do sekcji krytycznej.

Tomasz Kowalczyk
tmmx
Inżynier oprogramowania z prawie 10-letnim doświadczeniem w branży aplikacji internetowych. Entuzjasta programowania funkcyjnego, autor kilku bibliotek open source.
Podejście funkcyjne w projektowaniu oprogramowania
1 godzina
Programowanie funkcyjne to paradygmat znany od dziesiątek lat, który za sprawą renesansu języków takich jak Haskell znowu staje się popularny. Zapytasz – do czego może mi się to przydać w PHP? Otóż programowanie funkcyjne to także sposób myślenia, który pozwoli Ci na zupełnie inne spojrzenie na kod, który piszesz na codzień. Dzięki kilku technikom i niewielkiej zmianie podejścia Twój kod stanie się czystszy i bardziej przejrzysty, a Ty będziesz w stanie projektować duże rozwiązania komponując je z małych i dobrze przetestowanych fragmentów.

Błażej Kraszewski
błażej-kraszewski
Programista aplikacji webowych budowanych głównie w oparciu o PHP choć doświadczenia z takimi językami jak Java czy ColdFusion nie są mu obce. Skupiony na rozwiązaniach backendowych ze szczególną dbałością o optymalizację, wydajność i skalowalność wytwarzanych rozwiązań. Poprzednio zaangażowany w rozwój systemu rekomendacji treści Nextclick, dziś rozwiązuje backendowe zagadnienia w BlaBlaCar. Prywatnie pasjonat muzyki, również od strony aktywnej, a także motoryzacji, w szczególności rajdów samochodowych.
Starość nie radość, o dorastaniu danych w BlaBlaCar słów kilka
1 godzina
W BlaBlaCar, produkcyjne klastry bazodanowe przechowują setki milionów rekordów za pomocą różnych baz danych, takich jak MariaDB, Redis czy Cassandra. Wraz z biegiem czasu, a także przyrostem ilości danych, pojawiła się potrzeba archiwizacji nieużywanych produkcyjnie danych do klastrów archiwalnych. Na prezentacji przedstawimy autorski, niezależny od technologii bazodanowej, pipeline do migracji danych oraz jego wykorzystanie na przykładzie danych związanych z przejazdami naszych użytkowników.

Marcin Kujawski
marcin-kujawski
Programista PHP z 6 letnim doświadczeniem w rozwijaniu aplikacji webowych. W firmie Vercom S.A. od początku związany z projektami EmailLabs oraz SMSLabs. Miłośnik programowania, elektroniki oraz motoryzacji. Od niecałego miesiąca szczęśliwy mąż ( ͡º ͜ʖ͡º).
Wykorzystanie komunikacji e-mail i sms w praktyce. Jak oprogramować skuteczną komunikację z Twojej aplikacji?
1 godzina
Prezentacja polega na przedstawieniu technologii RESTful API oraz Event
API (Webhooks). Celem jest połączenie kanałów komunikacji masowej (e-mail & SMS) oraz
zaprezentowanie działania wymienionych narzędzi w praktyce. Na potrzeby prezentacji
zorganizowany zostanie konkurs interaktywny, po którym omówimy kod oraz schematy
działania.
Organizujemy konkurs gdzie:
- chętni wysyłają darmowy SMS-a ze swoim imieniem na numer telefonu,
- Dostają zwrotną prośbę o podanie adresu e-mail,
- Pobierany jest e-mail oraz wysyłana wiadomość z pytaniem konkursowym,
- Webhooksem odbieramy clicka,
- Wybieramy zwycięzcę,
- Pokazujemy kod aplikacji i omawiamy co i jak (wykorzystanie kanałów e-mail, sms, webhooks).

Michał Kurzeja
michalKurzeja
CTO & Co-Founder w Accesto.com. Programista z zawodu i zamiłowania. Uwielbia odkrywać nowe możliwości i może godzinami dyskutować o architekturze. Piwowar domowy i fan dobrego piwa, współorganizator Wrocław Symfony Group. Od niedawna Certified Symfony 3 Developer.
Docker – od wspólnego środowiska deweloperskiego do skalowalnej aplikacji w chmurze
warsztat w języku polskim
3 godziny
Masz dosyć sytuacji „dziwne u mnie działa” i debugowania problemów wynikających z różnic
w środowiskach, lub też po prostu nie chcesz tracić czasu na skonfigurowanie każdego
kolejnego projektu? Być może masz dość walki z zależnościami w kolejnym projekcie?
W ramach warsztatu wykorzystamy Dockera aby zautomatyzować wiele procesów zachodzących w
projektach i zespołach. Skonfigurujemy wspólne środowisko dla wszystkich członków
zespołu, serwera CI, stagingu i produkcji uruchomionej w chmurze. Pokażę jak
zaoszczędzić czas nie tylko własny, ale całego zespołu z którym pracujesz oraz jak w
prosty sposób możesz przygotować swoją aplikację tak, aby była skalowalna.

Yann Larrivée
ylarrivee
Szef FooLab Inc. Pomaga swoim klientom osiągać globalne cele, oferując
doradztwo i szkolenia techniczne.
Główny organizator Confoo – kanadyjskiej konferencji dla deweloperów webowych. Prezes grupy
użytkowników PHP w stanie Quebec. Celem jego działań jest podnoszenie jakości
oprogramowania, promowanie najlepszych praktyk programistycznych oraz zachęcanie lokalnych
deweloperów do działań społecznościowych.
10 warning signs in IT projects
30 minut
It is know that in the IT industry project have a high percentage of failure. But what if
we could see the warning signs before it is too late?
In this presentation, Yann Larrivée will explain through story telling the 10 warning
signs you should look for throughout the implementation of your project in order to
prevent many sleepless nights and project failure. For each warning signs one or more
solutions will be given.

Paweł Lewtak
plewtak
Developer PHP z wieloletnim doświadczeniem, po godzinach pisze w Pythonie. Fan idei Coding Dojo, Continuous Learning i Continuous Improvement.
Object Calisthenics – 9 kroków do lepszego kodu
1 godzina
Prezentacja jest o tym jak przy zastosowaniu kilku zasad pisać krótszy, bardziej czytelny i dużo prostszy w testowaniu kod. Pokażę czym jest Object Calisthenics, jak może pomóc w programowaniu na co dzień i czemu to bardziej wskazówki niż sztywne reguły.
Coding Dojo – praktyka czyni mistrza
warsztat w języku polskim
3 godziny
Coding Dojo to warsztaty, podczas których będziemy ćwiczyć Pair Programming oraz Test Driven Development. W ramach 2-3 osobowych zespołów będziemy musieli w ciągu 3 godzin zaimplementować dane zadanie z uwzględnieniem testów jednostkowych. Krótka prezentacja na początku wyjaśni wszystkie zasady, a w trakcie warsztatów można liczyć na pomoc w razie problemów.

Michał Łukaszewski
m_lukaszewski
Web-developer z kilkunastoletnim doswiadczeniem. Aktywny mentor i prezenter. Wyznawca czystego i SOLIDnego kodu. Aktualnie buduje lepszą przyszłosć na pokładzie Intela.
Action Domain Response czyli nowoczesny MVC dla aplikacji webowych
30 minut
Celem prezentacji jest przedstawienie koncepcji Action-Domain-Response. Jest to
architektura flow request-response, zorientowana na aplikacje www (w przeciwieństwie do
MVC).
W trakcie prezentacji omówimy główne założenia, przedstawię przykładowe implementacje i
spróbujemy znaleźć odpowiedź na pytanie czy czy to tylko modny termin czy dobra droga
dla naszych następnych aplikacji.

Sebastian Malaca
SebastianMalaca
Sebastian jest doświadczonym progamistą specjalizującym się w programowaniu i projektowaniu
obiektowym oraz technikach i praktykach pozwalających tworzyć kod wysokiej jakości.
Interesuje się testowaniem, programowaniem obiektowym, inżynierią oprogramowania oraz
zwinnym podejściem do wytwarzania oprogramowania.
Ponadto jest prelegentem (JDD, GeeCon, NDC), bloggerem oraz jednym z autorów na blogach
dotyczących programowania (DZone, JavaCodeGeeks).
Refactoring hacked
prelekcja w języku polskim
1 godzina
So you heard The Boy Scout Rule. And you already know how important it is to refactor
your code on a daily basis. You left your camp yard always cleaner than it was. However,
sometimes you feel that you could do even more. Of course you can, but you have to
remember about the effort that has to be put into this activity. Effort that can be
counted in time and money.
What if I tell you there’s a way to decrease amount of an effort? There are ways that
can help you to refactor faster. To spot places worth to refactoring even without the
deep understanding of the code’s intention?
During the presentation I will show you some tips that may make your life easier and
make refactoring simpler. I will tell you how to spot problems and how to improve your
code as fast as possible.

Dawid Mazurek
dawid-mazurek
Programista, pasjonat IT, astronomii i dobrych książek. Fan wyzwań, poszukający nowej wiedzy. Przygodę z programowaniem rozpoczął kilkanaście lat temu. Pracował w kilku firmach działających w obszarach marketingu internetowego oraz płatności elektronicznych. Aktualnie pracuje w OLX jako php developer w zespole odpowiedzialnym za rozwój płatnych funkcjonalności.
Clean architecture w OLX
prelekcja w języku polskim
1 godzina
Budowanie funkcjonalności dla biznesu rozproszonego po wielu rynkach, kilkunastu produktach, działających na różnych platformach, gdzie w każdym obowiązują odmienne reguły biznesowe, może być kłopotliwe. W naszym wypadku pomogło stosowanie wzorców projektowych, pełna izolacja warstw aplikacji oraz zastosowanie architektury ports and adapters. Podczas prezentacji pokażę w jaki sposób system został zaplanowany, jakie podjęliśmy decyzje projektowe oraz jakie przyniosły one korzyści i konsekwencje. Zaprezentuję również wykorzystane wzorce oraz całość oprę o przykłady produkcyjnego kodu.

Ondřej Mirtes
OndrejMirtes
Deweloper wiodący w firmie Slevomat, największym czeskim serwisie grouponowym, realizującym ponad 200 tys. transakcji dziennie. Interesuje się przede wszystkim programowaniem aplikacji webowych poza tradycyjnym stosem LAMP, używając przy tym takich technologii, jak RabbitMQ, Elasticsearch, Redis, Supervisor, React.PHP i WebSockets. Ceni continuous integration, unit testing, versioning oraz code reviews. W celu poszerzania horyzontów, rozwija także natywne aplikacje dla iOS.
Keep your users up-to-date in real-time with WebSockets!
1 godzina
Live document collaboration, playing cooperative and competitive games, updating sports
scores, booking seats. Stateless and belated nature of HTTP requests is not a perfect
match for these and other similar use cases.
WebSockets offer immediate delivery of messages in two-way communication between the
client and the server. Instead of periodic polling for new messages, they are pushed to
the receiver over TCP/IP connection.
Implementing WebSockets is not limited to technologies like node.js but has also been
possible in PHP for quite some time with impressive results. In this talk, I will
introduce this technology and tell the audience how to successfully adopt it in their
PHP applications while avoiding problems and pitfalls.
Asynchronous processing with RabbitMQ
1 godzina
Developers of modern web applications strive for fast response times and efficiency. One
of the ways to achieve them is to postpone performing costly and potentially failing
operations like sending an e-mail after the HTTP request is complete and the user has
seen that his intended action has been successful. This is called asynchronous task
processing.
In the past it was usually achieved with periodically executed scripts by Cron. This
solution requires inserting data about tasks into a persistent storage like a relational
database and lock the data to prevent duplicate execution. Tasks are not performed
instantly but within the next run of a script. It's also not easy to scale task
processing to multiple executors at the same time. This approach became popular because
of limited capabilities of shared webhosts. But in the last years it has been more and
more difficult to make excuses for preferring Cron over alternative approaches thanks to
decreasing prices of VPSes.
Message queues do not share the problems of Cron-executed scripts - they offer instant
task processing and easy scalability. But at the same time this concept can be more
difficult to grasp and creates new troubles in different areas - mainly deployment and
integration into existing codebases.
In this talk, I will dive into specifics, advantages and disadvantages of developing a
web application with the help of RabbitMQ or a similar technology, and share everything
we had to do to be able to produce and consume hundreds of thousands messages a day
within a large legacy PHP codebase of an application that serves >200k daily visitors.

Michał Paluchowski
mpaluchowski
Principal Developer w StepStone, zarabia na popychaniu technologii i ludzi poza granice ich aktualnych możliwości. Zaprojektował przeprowadzkę firmy z monolitu do pełnej architektury serwisowej. Teraz prowadzi dużą operację prania mózgu developerów w kierunku pisania czystego, dobrze przetestowanego kodu.
Dockerized Developer Toolbox
30 minut
Sandbox setup in 5 minutes or less. Composer, PHPUnit, phpmd and others – all in place, ready to roll. Upgrading takes even less time. Five versions of PHP simultaneously on one machine? Not a problem. And you know production is configured all the same, so no more “works on my machine”. See how beautifully Docker containers can streamline development on your machine. Not just deployment on the servers.

Michał Pipa
michalpipa
Programista, szkoleniowiec i konsultant. Zajmuje się projektami PHP oraz Symfony. Jeden z organizatorów spotkań PHPers.
Symfony
warsztat w języku polskim
4 godziny
Warsztaty przeznaczone dla osób, które chcą się nauczyć wykorzystywać Symfony do budowy aplikacji webowych. Będziemy tworzyć prostą aplikację na przykładzie której omówimy podstawowe komponenty Symfony (kontrolery, widoki, warstwę modelu, routing, itp.). Zapoznamy się również z dobrymi praktykami tworzenia takich aplikacji.

Alexandru Pitis
AlexF0rtune
Backend engineer obecnie związany z firmą BlaBlaCar, w branży działający od kilku lat, szczególnie upodobał sobie tematy związane z projektowaniem serwisów za pomocą Domain Driven Design. Fanatyk czystego kodu i pragmatycznego podejścia - wierzy w to, że każda linia kodu napisana w konkretny sposób przynosi konkretne konsekwencje, których programista powinien być świadomy. Poza działalnością zawodową zajmuje się reverse engineeringiem malware, a także szukaniem błędów bezpieczeństwa w aplikacjach open-source / bug-bounty.
Starość nie radość, o dorastaniu danych w BlaBlaCar słów kilka
1 godzina
W BlaBlaCar, produkcyjne klastry bazodanowe przechowują setki milionów rekordów za pomocą różnych baz danych, takich jak MariaDB, Redis czy Cassandra. Wraz z biegiem czasu, a także przyrostem ilości danych, pojawiła się potrzeba archiwizacji nieużywanych produkcyjnie danych do klastrów archiwalnych. Na prezentacji przedstawimy autorski, niezależny od technologii bazodanowej, pipeline do migracji danych oraz jego wykorzystanie na przykładzie danych związanych z przejazdami naszych użytkowników.

Leszek Prabucki
l3l0
Programista PHP z ponad siedmioletnim stażem pracy w branży. Ekspert w Symfony oraz pasjonat tematów związanych z szeroko pojętą jakością oprogramowania. Posiada doświadczenie w pracy z metodykami zwinnymi. Gracz zespołowy. By dostarczyć jak najlepsze oprogramowanie skupia się na poznaniu mechanizmów biznesowych klienta, używając do tego technik BDD. Posiada certyfikaty ZCE z PHP5 oraz certyfikat z Symfony.
Efekt motyla – czyli jak można pracować z systemami legacy w PHPie
1 godzina
Jako programiści jesteśmy bardzo dobrzy w wprowadzaniu dużej entropii (chaosu) w tworzonych przez nas aplikacjach. Często dochodzimy do tzw. „efektu motyla”, gdzie wprowadzenie zmiany w jednym miejscu systemu powoduje katastrofalne skutki w innym miejscu. W mojej prezentacji na podstawie przykładów z projektów legacy, nad którymi miałem „przyjemność” pracować, chciałbym podzielić się kilkoma technikami, które pomagają zapanować nad chaosem i docelowo pozwalają zmniejszyć entropię w naszym kodzie. Powiemy sobie między innymi o rzeczach takich jak ACL (Anti-Corruption Layer) o tym jak anemia może nam się odbić czkawką, oraz o tym, że zasad oraz wzorców między innymi DRY (don't repeat yourself) trzeba używać z głową.

Michiel Rook
michieltcs
Michiel Rook jest specjalistą PHP/Java/Scala z Holandii i posiadaczem stopnia Master in Computer Science. Uwielbia prowadzić treningi na temat ulepszania oprogramowania. W PHP pracuje od ponad dziesięciu lat i jest jedną z osób odpowiedzialnych za narzędzie Phing. To rezerwista armii holenderskiej, lubiący muzykę, samochody, sport i dobre kino.
The road to continuous deployment: a case study
1 godzina
It's a situation many of us are familiar with: a large legacy application, limited or no
tests, slow & manual release process, low velocity, no confidence.... Oh, and management
wants new features, fast.
But how to proceed? Using examples and lessons learned from a real-world case, I'll show
you how to strangle the legacy application with a modern service architecture and build
a continuous deployment pipeline to deliver value from the first sprint. On the way, we
take a look at testing strategies and various (possibly controversial!) tips and best
practices.

Damien Seguy
faguo
Dyrektor techniczny w Exakat Ltd., firmie specjalizującej się w tworzeniu oprogramowania wysokiej jakości w PHP dla przemysłu. Przewodzi projektowi silnika analiz statystycznych dla Exacat, który wykonuje automatyczny code review pod kątem kompatybilności wersji, bezpieczeństwa oraz czystości kodu. Od ponad 17 lat Damien kontrybuuje PHP jako autor dokumentacji, hodowca słoni i conference UFO na wszystkich kontynentach. Interesują go także gremliny, 狮子头 i camembert.
Machine learning for PHP
1 godzina
Machine learning is teaching the computer how to learn by itself. It is far easier to be done, especially when you have small data set and a good level of expertise in your field. Classifying objects, predicting who will buy, spotting comments in code is achieved with grassy algorithms like neural networks, genetic algorithms or ant herding. PHP is in good position to make use of such teachings, and take advantages of related technologies like fann. By the end of the session, you'll know where you want to try it.
Preparing your code for PHP 7
warsztat w języku angielskim
3 godziny
Migration is one of the most scary migration: it requires sharp tools to find incompatibilities in the code, and even more know-how to adapt it to the future environnement. During this workshop, we'll work on your code, systematically targeting incompatibilities and scouting for opportunities to use the new features. Along the way, we'll get right of dead code, slow routines and instable functions. After querying the code, we'll discuss the various solutions and learn even more about using PHP for the best.

Michael Simonson
_mikeSimonson
Mike jest entuzjastycznym i rozmownym nałogowcem wiedzowym o otwartym umyśle.
To założyciel grupy użytkowników PHP w Brukseli, maintainer paczki doctrine/migrations i
kontrybutor wielu innych projektów open source.
Do zobaczenia na socjalach!
Avoiding migration migraine with Doctrine migration
1 godzina
More and more systems are being rewritten to cope with demand and modern development
techniques.
Migrating historical data from a legacy application to the shiny new one can represent a
big issue. But that part is often underestimated and everyone has tripped over it at
least once.
We will explore the problems that you may encounter using Doctrine migration, and
solutions to save the day.

Tomasz Skręt
tomaszskret
Senior Software Developer w firmie G2A. Zwolennik automatyzacji – od developmentu po środowiska produkcyjne. Lubi poznawać nowe technologie i metodologie związane z programowaniem aplikacji w PHP. Wyznawca Linuksa. Chętnie dzieli się swoją wiedzą i doświadczeniem.

Krzysztof Skaradziński
krzysztof-skaradzinski
Krzysztof Skaradziński od 10 lat związany z programowaniem. Obecnie programista w firmie GoldenLine sp. z o.o. odpowiedzialny za rozwój kluczowych funkcjonalności serwisu. W swojej pracy duży nacisk kładzie na optymalizowanie, profilowanie kodu i baz danych. Miłośnik testów i Symfony.
The power of logs with Monolog
1 godzina
Każda aplikacja pod warstwą UX przeprowadza niezliczone operacje, aby zrealizować powierzone jej zadanie. Rozsądne logowanie tych operacji, a także błędów, czy innych informacji jest inwestycją na przyszłość, która może się zwrócić w przypadku wystąpienia jakiejś awarii lub zgłoszenia błędu. Podczas prelekcji opowiem o Monologu - niedocenianej bibliotece, która świetnie nadaje się do tego celu, jak wykorzystać jednolity format logowania do łatwego ich przeszukiwania. Pokażę również jak wykorzystujemy ją podczas pracy nad jednym z największych serwisów rekrutacyjnych w Polsce.
Bądź sprytny, bądź szybki :P, czyli warsztaty o optymalizacji i profilowaniu
warsztat w języku polskim
3 godziny
Który to już raz zastanawiasz się dlaczego produkcja muli, albo czy mogłaby być jeszcze
szybsza? Do odpowiedzi na to pytanie mogą przybliżyć uczestników proponowane przez nas
warsztaty.
Pokażemy siłę Web Profilera Symfony oraz narzędzia Blackfire. Uczestnikom zostanie
powierzona aplikacja zawierająca błędy optymalizacyjne. Z pomocą prowadzących staną oni
przed wyzwaniem znalezienia ich i poprawienia wykorzystując przedstawione
narzędzia.
Profilowanie kodu i optymalizacja aplikacji to jedne z ważniejszych zagadnień
programistycznych nie daj się zostawić z tyłu :)

Krzysztof Sobczak
KrzysiekSobczak
Krzysztof Sobczak, Web Developer, GOG.com. Web Developer z 8 letnim doświadczeniem. Zwolennik startup’owego podejścia w rozwoju aplikacji. Skoncentrowany na skalowalności i wydajności. Obecnie zaangażowany w rozwój dedykowanych usług webowych dla GWINT w GOG.com, platformy dystrybucji gier cyfrowych.
GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej w grze online
1 godzina
GWINT jako gra online nastawiona na obsługę milionów graczy wymaga wyjątkowo skalowalnej
architektury. Opowiemy między innymi o tym:
– jak API zbudowane na Symfony w modelu mikro serwisów wykorzystuje asynchroniczną
komunikację pomiędzy usługami i klientem (system notyfikacji),
– jak optymalizujemy procesowanie zdarzeń wymagających współpracy kilku usług (kolejki
zadań), jak monitorujemy i testujemy integrację poszczególnych webservice’ów. Przewiną
się także technologie takie jak: PHP7, HHVM, RabbitMq, Redis, Go i inne.

Marek Sokół
marek-sokół
Prawie 10 lat doświadczenia zawodowego jako programista, głównie w web aplikacjach. Doświadczenie w różnych dziedzinach: backend development w PHP i NodeJS, frontend development, zarządzanie i optymalizacja baz danych (głównie PostgreSQL - architektura, pl/pgSQL, optymalizacha, unit testy), administracja serwerami. Aktualnie na stanowisku Architekta IT w firmie G2A.COM gdzie jest odpowiedzialny za globalną architekturę tworzonych aplikacji.
Enterprise Integration Patterns
30 minut
Prezentacja na temat wzorców projektowych używanych do integracji aplikacji webowych –
podczas prezentacji przedstawię sposoby komunikacji i wymiany danych pomiędzy
mikroserwisami.
Prezentacja bazuje na technologiach webowych, takich jak PHP, NodeJS, Nginx, Kong,
RabbitMQ i przykładach na podstawie doświadczenia zdobytego podczas budyw aplikacji w
G2A.COM

Maciej Szkamruk
ex3v
Programista PHP w grupie DocPlanner, do której należy ZnanyLekarz.pl – dostępny w 26 krajach serwis, który pomógł umówić już ponad milion wizyt lekarskich on-line. Maciej na co dzień zajmuje się rozwijaniem wersji mobilnych serwisów grupy.
Nasza droga do Single Sign On (SSO) w serwisie ZnanyLekarz.pl
1 godzina
Single Sign On – w skrócie SSO – to twór, o którym mogłeś nie słyszeć, a z którego korzystasz na co dzień. Podczas naszej prelekcji opowiemy o tym, jak działa i w jaki sposób zrealizować mechanizm jednoczesnego logowania się do wielu aplikacji, na przykładzie serwisu ZnanyLekarz.pl. Przedstawimy także naszą drogę do tego rozwiązania – powody, dla których warto rozważyć wdrożenie SSO w rozbudowanych aplikacjach, oraz problemy, jakie przy tym napotkaliśmy.

Wojciech Sznapka
sznapka
Pasjonat programowania, skupiony na technologiach internetowych z ponad 10 latami
doświadczenia w wytwarzaniu oprogramowania. Zawsze chętny do rozwiazaywania złożonych
problemów, pracy z dużymi zbiorami danych oraz prowadzenia zespołów inżynierskich. Posiada
obszerną wiedzę na temat płatności internetowych, web trackingu oraz systemów
affiliacyjnych.
Pracuje głównie z PHP, Pythonem, AngularJS, narzędziami Big DAta oraz innymi nowoczesnymi
technologiami. Ostatnio szczególnie zainteresowany Hadoopem oraz Apache Spark.
Autor bloga technicznego blog.sznapka.pl oraz prelegent na wielu konferencjach.
Big Data in the trenches
30 minut
Every minute the Internet produces a crazy amount of data. No matter if you work on
social network, Internet of Things application, e-commerce site or online casino -
you'll always end up with various sources and formats of data. Having data alone won't
give you any advantage. Knowing what to do with it, will.
The situation when data is structured (even in a well known JSON format), either SQL or
NoSQL is a dream for everyone who takes care of data. But often times you'll end up with
very dynamic content, not very well structured or containing hard to parse items. You
still need to live with this and act quickly in order to find the insight that is vital
for your operations.
This presentation's purpose is not to praise Big Data or to promote its advantages and
amazing business opportunities. We'll get our hands dirty touching upon entire path,
from producing and capturing the data, to it's intermediate aggregation, through
real-time data storages, stream processing to end up with distributed file system and
batch processing over millions of records.
To support this with facts, we will talk about real life examples using PHP as
front-facing layer, NoSQL databases, messaging queues and powerful map-reduce tools. You
will hear many times about Couchbase, MongoDB, RabbitMQ, Kafka and Apache Spark, to name
just a few. We'll also prove that SQL is not dead, and that it is entering into whole
new era!

Miro Svrtan
msvrtan
Weteran programowania w PHP z siedemnastoletnim stażem. Na początku członek jednoosobowego
zespołu, poprzez programowanie zespołowe i rolę analityka technicznego stał się na powrót
starszym programistą.
Skupiał się początkowo na wymaganiach technicznych projektów, a później na tym, jak
aplikacje
powinny się zachowywać i wyglądać, przez co miał okazję zbudować, a następnie utrzymywać i
rozwijać wiele projektów PHP o wielkiej skali.
Założył ZgPHP, grupę użytkowników PHP działającą w Zagrzebiu a także WebCamp, konferencję
dla webdeweloperów w Zagrzebiu, organizowaną wspólnymi siłami wielu grup społecznościowych.
Jenkins vs Circle vs Travis
1 godzina
Interested in implementing Continuous Integration/Deployments? This talk will cover 3 popular solutions: Jenkins, CircleCI & TravisCI. Lot of developers and teams are interested in doing testing, but don’t know how and some of the most often seen excuses are:
- We don’t have time for it
- Who is going to write those tests?
- Who is going to maintain those tests?
- Who is going to run all of those tests after each change?
This talk will cover #4 and introduce you to world of continuous integration and how this
tools can help you build better software faster. Yes, faster and better. While there are
other options too, this talk will cover: Jenkins, CircleCI and Travis CI, 3 very popular
solutions. Main point of the talk will be what they can do, how they do it and what are
the main or subtle differences between them.
Must run everything from inside company or don't wanna hassle with your own CI server?
Want to test on multiple PHP/Ruby/Python/{PUT-YOUR-OWN-CUP-OF-TEA} versions? Running
open source code or proprietary one (or both in many cases)? Using GitHub, Bitbucket,
GitLab or your own git server: which ones can I use?
There are subtle and not so subtle differences between them, come and learn more about
them so you can bring an informed decision to your team.
Hands on PHPSpec
warsztat w języku angielskim
2 godziny
PHPSpec and BDD are cool buzzwords this days in PHP community and I would like to invite
you to show you how to build better code with it.
I will be live coding few examples to introduce you to PHPSpec features, show you some
caveats and by working in small teams build a feature together.
So what is PHPSpec? It's a great tool to model (specify) and build your code that has a
side effect: you get some tests out of it. It's not a drop in replacement for unit
testing (or testing in general) but can help you out build great products in short
amount of time.

Łukasz Szymański
szymanskilukasz
To m.in. na jego barkach spoczywa sprawne funkcjonowanie OLX’a – globalnego serwisu, który
obecny jest w 40 krajach, co niejednokrotnie stanowiło sprawdzian jego umiejętności. Bez
problemów potrafił odnaleźć się w obcym kodzie, przyczynić się do jego rozwoju, a – co
więcej –
wdrożyć wlasne rozwiązania, które powielane były na wielu innych platformach.
Jest nie tylko doświadczonym programistą, ale także liderem, który musi sprostać wyzwaniom
jakie stawia przed nim zarządzanie ludzmi z zespołu monetyzacji, odpowiedzialnego
za skuteczną implementację wszelkich nowych funkcjonalności związanych z płatnościami.
Wie, że w branży, w której pracuje, co chwile pojawiają się aktualizacje i nowe rozwiązania,
Nie boi się ich testować i wykorzystywać w swojej codziennej pracy.
Cechuje go perfekcjonizm, który przejawia się przede wszystkim wysoką jakością kodu – wie,
że tworzy go dla użytkowników i ma spełnić swój cel, jakim jest jego sprawne funkcjonowanie,
dlatego też nie boi się skomplikowanych ale skutecznych rozwiązań.
Aktywnie bierze udział w licznych konferencjach i wykładach, gdzie chętnie dzieli się swoimi
umiejętnościami i doświadczeniem.
CQRS i Event Sourcing w OLX
1 godzina
Dwa wzorce, o których często mówi się w świecie PHP, przez co stają się one coraz bardziej popularne. Niestety dotychczasowe prezentacje, które powstały na ten temat, pokazują tylko zalety tych rozwiązań, a przytaczane przykłady niewiele mają wspólnego z rzeczywistością. Jak wszystkie inne wzorce, także te mają swoje wady, które mogą okazać się niezwykle istotne z punktu widzenia wykorzystywania tych rozwiązań w przyszłości. W tej prezentacji w oparciu o kod produkcyjny pokażę, jak za pomocą tych wzorców udało nam się stworzyć narzędzie, które odgrywa jedną z kluczowych ról w obsłudze płatności w OLX i jak poradziliśmy sobie z wyzwaniami, które przed nami stawiały.
Text Retrieval – jak działają wyszukiwarki tekstowe
prelekcja w języku polskim
1 godzina
W swojej codzienniej pracy wykorzystujemy platformy wyszukiwania takie jak Solr lub
Elasticsearch. Oba te rozwiązania opierają się na silniku Apache Lucene, który
implementuje rozwiązania z dziedziny wyszukiwania tekstowego.
Poznacie zasady I techniki dzięki którym narzędzia te skutecznie spełniają swoje
zadania. Przedstawię także teorię i wyzwania jakie stawia przed nami wyszukiwanie
tekstowe, oraz wiedzę niezbędną do zbudowania własnej wyszukiwarki.

Hannes Van De Vreken
hannesvdvreken
Inżynier oprogramowania w madewithlove, użytkownik i kontrybutor open source, blogger, organizator spotkań w Belgii. Także maratończyk.
PSR-7 HTTP messages in the wild
1 godzina
PSR-7 describes common interfaces for representing HTTP messages. HTTP messages are the
foundation of web development. Web browsers and HTTP clients such as cURL create HTTP
request messages that are sent to a web server, which provides an HTTP response message.
Server-side code receives an HTTP request message, and returns an HTTP response message.
This talk will explain the interfaces defined by PSR-7, how they define the future of
interoperability between frameworks and tools. After that there will be a showcase of
several implementations and tools such as zend's diactoros package, Guzzle v6, php-http,
RelayPHP and other packages that show the real power of shared interfaces for HTTP
objects. A clear path to how we can start using these typed objects in our applications
today will be shown.

Rouven Weßling
RouvenWessling
Deweloper, pasjonat testów automatycznych i kontroli wersji. Odpowiada za PHP SDK i integracje z frameworkami w produkcie opartym na API. Nauczył się polegać na testach automatycznych, lubi PHP tak statyczne i „strict”, jak to tylko możliwe. Kiedy nie programuje, najczęściej spotkacie go wcinającego ciacha albo biegającego ulicami Berlina (by mógł zjeść jeszcze więcej ciastek).
Static Analysis of PHP Code – How the Heck did I write so many Bugs?
1 godzina
Static analysis is the analysis of software without running it. Compared to unit tests, this requires no investment in writing test cases for all parts of the code and can reach code that’s hard or even impossible to test. Most PHP developers know and use basic static analysis tools like phpcs, phpmd or phploc as part of their testing strategy and since the release of PHP 7, new tools emerge that go beyond simple checks to find hidden bugs. We’ll cover some of the available tools and compare what strategies they employ to find bugs. In the end, we will take a look beyond PHP and see what might be coming to the ecosystem in the future.

Tomasz Wójcik
prgTW
Programista PHP w grupie DocPlanner, do której należy ZnanyLekarz.pl – dostępny w 26 krajach serwis, który pomógł umówić już ponad milion wizyt lekarskich on-line. Tomasz na co dzień zajmuje się rozwijaniem autorskiego systemu CRM i architekturą serwisu.
Nasza droga do Single Sign On (SSO) w serwisie ZnanyLekarz.pl
1 godzina
Single Sign On – w skrócie SSO – to twór, o którym mogłeś nie słyszeć, a z którego korzystasz na co dzień. Podczas naszej prelekcji opowiemy o tym, jak działa i w jaki sposób zrealizować mechanizm jednoczesnego logowania się do wielu aplikacji, na przykładzie serwisu ZnanyLekarz.pl. Przedstawimy także naszą drogę do tego rozwiązania – powody, dla których warto rozważyć wdrożenie SSO w rozbudowanych aplikacjach, oraz problemy, jakie przy tym napotkaliśmy.