2016.09.30-10.02

speakers with their talks/workshops


portret

Witek Adamus

witek-adamus

So-called full-stack developer (once upon a time held a front-back-teamlead-analytic-lecturer position) who takes care of backend development at the moment. Enthusiast and evangelist of pure functional programming and well-designed API. Photography is his alternative way of living. After hours rides a bike and sews teddy bears.

Dlaczego funkcyjność i asynchroniczność w PHP7 przyprawia o ból głowy i czy można temu zaradzić

prelekcja w języku polskim

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.

portret

Gianluca Arbezzano

Software Engineer at CurrencyFair a tech financial company. I am a PHP developer but I work on different stack layers, automation, scalability and HA. Open Source contributor for several projects, above all Zend Framework, and member of Doctrine ORM developers team. Strong believer in best developing practices and supporter of different User Groups.
My fields of interest are various and constantly in evolution: in the last year, I worked a lot on scalable infrastructures, reaching the goal of building some of them on top of AWS, DigitalOcean and OpenStack.

Time Series and monitoring, listen your application

talk in English

1 hour

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.

portret

Olaf Gałązka

PHP programmer for almost 10 years, focused on backend development mainly. Currently working as a software engineer at Schibsted Tech Polska in Gdańsk. Privately, father of two children, loves football, photography and RC cars.

Time travelling with Event Sourcing

talk in English

1 hour

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.

portret

Mariusz Gil

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

talk in Polish

1 hour

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

workshop in Polish

2 hours

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.

portret

Grzegorz Godlewski

Passionate programmer, certified Scrum Master, Software Craftsman. He actively took part in various software projects building solutions for clients from various countries, sectors and using different technologies. During his professional career he acted as a tester, programmer, scrum master, product owner, analyst and an architect which yielded lots of experiences from different perspectives on the project / product and software development discipline as a whole. He's constantly looking for optimal solutions of problems both within and outside the software itself.

PHP development for large agile projects

talk in English

1 hour

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.

portret

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

talk in Polish

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ć.

portret

Sebastian Grodzicki

For more than 12 years associated with web technologies. A graduate of the Polish-Japanese Institute of Information Technology (PJIIT) in Warsaw specializing in programming of business applications. Certified Zend PHP 5/5.3 Engineer (ZCE), Zend Framework Certified Engineer (ZFCE) and SensioLabs Certified Developer Symfony (Expert). Between 2010 and 2016 involved in building GoldenLine. Currently CTO at SHOWROOM.

Profilowanie aplikacji PHP

talk in Polish

1 hour

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.

portret

Patrik Karisch

Patrik Karisch is a backend PHP developer, specialized with Symfony, and has been for about fourteen years. Besides this he is responsible doing DevOps at his current employer pixelart. Patrik is an open source enthusiast and is an advocate of modern development principles & standards. At other times, Patrik fiddles with electronics and microcontrollers in C and sometimes Assembler. If he's not coding he's busy cooking delicious food, baking muffins or playing drums.

The everyday basics of Caching and Performance

talk in English

1 hour

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

workshop in English

4 hours

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
portret

Martin de Keijzer

martindekeijzer

Martin de Keijzer is a dutch web developer working for a large dutch record label, Spinnin' Records. In the past Martin has also worked for some locally well known project development companies like Ibuildings and E-Sites. In these career steps Martin has mostly worked with web technologies with PHP being the most used technology.
Next to a professional career as a PHP Developer, Martin is also one of the board members for PHPBenelux.

High quality live broadcasting with PHP

talk in English

1 hour

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!

portret

Arkadiusz Kondas

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

talk in Polish

1 hour

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

talk in Polish

1 hour

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.

portret

Jarosław Kostrz

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

talk in Polish

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.

portret

Tomasz Kowalczyk

Tomasz Kowalczyk is a software engineer with nearly 10 years of experience in writing web applications. He is a Functional Programming enthusiast pursuing code quality whenever possible. As an author of several open source libraries he tries to provide well-designed and open solutions to various problems.

Podejście funkcyjne w projektowaniu oprogramowania

talk in Polish

1 hour

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.

portret

Błażej Kraszewski

błażej-kraszewski

Software engineer working mostly on PHP-based solutions however experienced with those built on Java and ColdFusion platforms as well. Mainly focused on backend solutions with high pressure put on performance and scalability of delivered products. Previously engaged in development of a content recommendation system Nextclick, currently working on backend cases in BlaBlaCar. He is passionate about music and rallycross.

Starość nie radość, o dorastaniu danych w BlaBlaCar słów kilka

talk in Polish

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.

portret

Marcin Kujawski

marcin-kujawski

PHP developer with 6-year web development experience. From beginning, in the Vercom S.A. related to EmailLabs and SMSLabs projects. Fan of programming, electronics and motorisation. Happy husband ( ͡º ͜ʖ͡º) from a month.

Wykorzystanie komunikacji e-mail i sms w praktyce. Jak oprogramować skuteczną komunikację z Twojej aplikacji?

talk in Polish

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:

  1. chętni wysyłają darmowy SMS-a ze swoim imieniem na numer telefonu,
  2. Dostają zwrotną prośbę o podanie adresu e-mail,
  3. Pobierany jest e-mail oraz wysyłana wiadomość z pytaniem konkursowym,
  4. Webhooksem odbieramy clicka,
  5. Wybieramy zwycięzcę,
  6. Pokazujemy kod aplikacji i omawiamy co i jak (wykorzystanie kanałów e-mail, sms, webhooks).
portret

Michał Kurzeja

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

workshop in Polish

3 hours

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.

portret

Yann Larrivée

President of FooLab Inc, I enjoy helping businesses reach their goals by offering advice & technical coaching.
As president of the ConFoo Developer Conference and the PHP Quebec user group, I work to increase software quality, promote web development best practices and encourage the local developers to network.

10 warning signs in IT projects

talk in English

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.

portret

Paweł Lewtak

plewtak

Developer PHP with a few years of experience, Python enthusiast after work. Fan of Coding Dojo, Continuous Learning and Continuous Improvement.

Object Calisthenics – 9 kroków do lepszego kodu

talk in Polish

1 hour

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

workshop in Polish

3 hours

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.

portret

Michał Łukaszewski

Web developer with dozen years of experience. Active mentor and presenter. Confessor clean and SOLID code ideas. Currently builds a better future with Intel.

Action Domain Response czyli nowoczesny MVC dla aplikacji webowych

talk in Polish

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.

portret

Sebastian Malaca

Sebastian is an experienced and dedicated software engineer specializing in object-oriented design and programming, software architecture, code quality and agile.
His interests include testing, programming, software engineering and agile software craftsmanship.
He's also a speaker (JDD, GeeCon, NDC), writer and contributor to several blogs (DZone, JavaCodeGeeks) about Software Development and Agile Software Craftsmanship.

Refactoring hacked

talk in Polish

1 hour

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.

portret

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

talk in Polish

1 hour

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.

portret

Ondřej Mirtes

Lead developer at Slevomat, Czech largest Groupon-like e-commerce site offering deals to >200k daily visitors. Especially interested in developing web apps outside of the traditional LAMP stack using technologies like RabbitMQ, Elasticsearch, Redis, Supervisor, React.PHP, and WebSockets. He loves continuous integration, unit testing, versioning, and code reviews. To broaden his horizons outside of his daily job, he also develops native apps for iOS.

Keep your users up-to-date in real-time with WebSockets!

talk in English

1 hour

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

talk in English

1 hour

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.

portret

Michał Paluchowski

Principal Developer at StepStone, paid to push technology and people beyond their current limitations. Architected the company’s move from a monolith to a full-fledged service architecture, now runs a major operation to brainwash developers into writing clean, properly tested code.

Dockerized Developer Toolbox

talk in English

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.

portret

Alexandru Pitis

Software engineer currently working at BlaBlaCar. Deeply interested in crafting and designing systems using Domain Driven Design approach. A clean code fanatic - he believes that every line of code written brings certain consequences the developer must be aware of. Besides professional coding, he has a great interest in reverse engineering malware and software in search for security bugs in both open source applications and closed-source in bug bounty programs.

Starość nie radość, o dorastaniu danych w BlaBlaCar słów kilka

talk in Polish

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.

portret

Michał Pipa

Programista, szkoleniowiec i konsultant. Zajmuje się projektami PHP oraz Symfony. Jeden z organizatorów spotkań PHPers.

Symfony

workshop in Polish

4 hours

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.

portret

Leszek Prabucki

PHP developer with 7+ years of web programming experience and knowledge. Symfony expert and quality freak. Developer with agile and lean metodologies experience. Team worker. Focues on discovering how business works by using methodologies like BDD. Zend Certified Engineer in PHP5 and Symfony Advanced Certificate holder

Efekt motyla – czyli jak można pracować z systemami legacy w PHPie

talk in Polish

1 hour

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ą.

portret

Michiel Rook

Michiel Rook is a PHP/Java/Scala contractor from the Netherlands and holds a Master's degree in Computer Science. He loves coaching teams to develop better software. He's been working with PHP for over ten years and is one of the people behind the build tool Phing. He is an Army reservist and enjoys music, cars, sports and movies.

The road to continuous deployment: a case study

talk in English

1 hour

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.

portret

Damien Seguy

Damien Seguy is CTO at Exakat Ltd., a company specialized in PHP code quality solutions for the industry. He leads the development of the exakat static analysis engine, that automatically review code for version compatibility, security and clear code. Over the last 17 years Damien has contributed to PHP, as documentation author, elephpant breeder, conference UFO on all continents. He also enjoys gremlin, 狮子头 and camembert.

Machine learning for PHP

talk in English

1 hour

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

workshop in English

3 hours

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.

portret

Michael Simonson

Mike is an enthusiastic - talkative - and open-minded knowledge-addict.
He started the Brussels PHP user group and is now the maintainer of doctrine/migrations and contributor to many other open source projects.
See you at the social!

Avoiding migration migraine with Doctrine migration

talk in English

1 hour

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.

portret

Tomasz Skręt

Senior Software Developer in G2A. Automation proponent – from development to production environments. Loves learning new technologies and methodologies of PHP programming. Linux believer. Willingly shares his knowledge and experience.

Skalowalne skalowanie obrazków przy pomocy PHP

talk in Polish

30 minutes

Jak za pomocą PHP, NGiNX-a i Dockera przygotować skalowaną i wydajną aplikację do manipulacji grafikami.

portret

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

talk in Polish

1 hour

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

workshop in Polish

3 hours

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 :)

portret

Krzysztof Sobczak

Krzysztof Sobczak, Web Developer, GOG.com.
Krzysztof has 8 years of professional experience in web development. A huge fan of a startup approach in app development.
Focused on scalability and efficiency. Currently working on dedicated web services for GWENT game on the digital game distribution platform GOG.com.

GWINT: Przetwarzanie rozproszone z wykorzystaniem komunikacji asynchronicznej w grze online

talk in Polish

1 hour

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.

portret

Marek Sokół

marek-sokół

Almost 10 years of professional experience as software developer, mostly in web applications development. Experience through different areas: backend development in PHP and NodeJS, frontend development, database administration (mainly PostgreSQL - architecture design, pl/pgSQL programming, optimization, unit testing), servers administration. Currently holds position of Software Architect in G2A.COM where is responsible for high level architecture design.

Enterprise Integration Patterns

talk in Polish

30 minutes

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

portret

Maciej Szkamruk

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

talk in Polish

1 hour

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.

portret

Wojciech Sznapka

Programming passionate, focused on the web technologies with more than 10 years of experience in software development. Always keen on solving complex problems, working with large volumes of data and leading an engineering teams. Has broad knowledge about online payments, web tracking and affiliation systems.
Works mainly with PHP, Python, AngularJS, Big Data tools and other modern web technologies. Recently particularly interested in Hadoop and Apache Spark ecosystem.
Author of technology blog blog.sznapka.pl and conference speaker.

Big Data in the trenches

talk in English

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!

portret

Miro Svrtan

A 17 year veteran of PHP development, from being a one mand band web developer, via focusing on PHP development in a team environment, being a technical analyst and back to senior dev role now. While focusing more on technical requirements of projects then how apps behave or look, I found opportunity to build/maintain/develop multiple large scale PHP projects. I founded ZgPHP, PHP user group based in Zagreb and WebCamp, a language agnostic web development conference held in Zagreb and organized by multiple user groups.

Jenkins vs Circle vs Travis

talk in English

1 hour

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:

  1. We don’t have time for it
  2. Who is going to write those tests?
  3. Who is going to maintain those tests?
  4. 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 hours

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.

portret

Łukasz Szymański

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

talk in Polish

1 hour

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

talk in Polish

1 hour

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.

portret

Hannes Van De Vreken

Software Engineer at madewithlove, open source user and contributor, blogger, organiser of meetups in Belgium and also a marathon runner.

PSR-7 HTTP messages in the wild

talk in English

1 hour

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.

portret

Rouven Weßling

Rouven is a developer who is passionate about automatic testing and version control. Being responsible for the PHP SDK and framework integrations for an API based product, he has learned to rely on automatic testing and likes his PHP as strict and static as possible. When he’s not programming, you’re most likely to find him eating cake or running on the streets of Berlin (so he can eat more cake)

Static Analysis of PHP Code – How the Heck did I write so many Bugs?

talk in English

1 hour

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.

portret

Tomasz Wójcik

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

talk in Polish

1 hour

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.

Stay tuned!

Subscribe our newsletter to be up-to-date with all important news about PHPCon Poland.