Central Europe 2017

November 3rd - 5th

Hotel Ossa Congress & Spa

Rawa Mazowiecka, Poland

About the conference

phpCE is a first edition of a community conference for PHP programmers and enthusiasts. The meeting was stablished by merging two nation-wide events: PHPCon Poland and Brno PHP Conference.

An undoubted success of the PHPCon Poland, grown within seven years into one of largest PHP community conferences in Europe disposed us to take it a step further and organise yet bigger event, reaching out to expectations of potential attendees from Central Europe as well as people just beginning their PHP career. All the more we are proud to welcome our colleagues from Brno PHP Conference team and hope to efficient cooperation.

The phpCE cycle starts in Poland and the Ossa Congress & Spa hotel, well-known to PHPCon Poland attendees. The plan is that the conference will regularly move from one country to another and next edition (2018) should fire-up in Czech Republic. It is completely no barrier to do it Germany, Hungary, Austria, Slovakia or the Baltic states. Dozens and dozens depends on local PHP groups engagement, so, if you feel that phpCE Conference should host in your country, don't wait and contact us – we are really ready to do it!

Why you should join us?

Huge event

You attend in the biggest PHP conference in this part of Europe: over thousand people working and thinking just like you, in the same venue.

Diversified difficulty levels

Feel free to choose among the Relaxing, Intermediate and Geek paths.

Workshop Friday

We start from workshop day. It's a practical knowledge for the asking and great opportunity to clarify all details!

Possibility of overnight stay on site

Choose your favourite accommodation site! However Ossa hotel offers a large amount of hotel rooms, you can still stay outside and buy the phpCE ticket, including board only.

Contests and rewards

Our sponsors are happy to organise different kinds of contests with many valued rewards. It's worth to visit us and take part in it!

Entertainment zone

Our sponsor room is a kind of neverending chillout zone. Moreover, we have something for your ear and soul: a positive and irrepressible celtic music of the Carrantuohill group on the Saturday's night.

Venue

Ossa Congress & Spa**** hotel

We will third time stay (including PHPCon Poland) in fifth largest hotel in Poland, the Ossa Cogress & Spa. It is situated in calm countryside, away from city noise, which gives a possibility to take part both in conference and active outdoor rest.

Hotel is located in the small village with same name, between Rawa Mazowiecka and Biała Rawska, near the S-8 motorway and about 60 kilometers from the Warsaw Chopin (WAW) airport. Initially, hotel makes available the amphitheatre hall, congress hall, workshop room and bedrooms in four-star standard and diversified comfort level (Standard, Premium, Standard Suite, Premium Suite) to beglad even most particular guest tastes. The slanted lecture hall, unique among Polish hotels and exceptionally spacious, also waits for you.

Access

aircraft, then shuttle or cab

Best airport for landing is the Warsaw Chopin Airport (WAW). There'll be a shuttle-bus or cab you can take to get to the hotel and return. In order to book it, send us an e-mail before you buy a conference ticket. The cost of it is 10 € in one direction or 20 € in both.

Bus or cab driver will wait at agreed time in the airport departures hall. You can recognise him by the "phpCE Conference - Ossa" plate.

public transport

There are quite a bit buses to Rawa Mazowiecka departing next to the Warsaw West railway station.
When you reach Rawa Mazowiecka, change bus to Biała Rawska (via Lesiew, not via Babsk) or evt. Grójec. The important is that bus should stop in Wólka Lesiewska, because it's your final stop there.
Next, walk along a secondary road with direction Biała Rawska. Turn left on the first crossroad towards the Ossa (you can find an advertising board of the Ossa Congress & Spa hotel there). After a few hundred meters you'll see the hotel by left hand.
Bus timetable from Rawa Mazowiecka you can find at this website.

self-drive

The best way to get to Ossa is Warsaw – Wrocław S-8 motorway. Rawa Mazowiecka is situated between Warsaw and Piotrków Trybunalski (A-1 highway junction). You must leave S-8 motorway on the "Rawa Mazowiecka" junction, but not on "Rawa Mazowiecka Południe (south)". Then choose the 925 secondary road to Biała Rawska. After about 9 kilometers and the Wólka Lesiewska village turn left to Ossa. There's an advertising board of the Ossa Congress & Spa hotel. After a few hundred meters you'll see the hotel at your left.

Schedule

Tutorials

Friday

November 3, 2017
09:00
Registration for tutorial attendees
10:00 … 14:00
Jak TDD pomaga w pisaniu wartościowych testów jednostkowych?
Michal Kopacz, Łukasz Wróbel 4h

W swojej przygodzie z pisaniem testów jednostkowych zapewne zdarzyło Ci się że:
- sporo czasu zajęło Ci przeczytanie i zrozumienie co robią testy,
- zmieniłeś kod pod kątem nowych wymagań i spowodowało to, że musiałeś wprowadzić sporo zmian w testach,
- zaimplementowałeś funkcjonalność i pozostało Ci tylko napisać testy, ale nie było prosto je napisać więc w końcu zrezygnowałeś,
- zaimplementowałeś funkcjonalność, ale już nie miałeś czasu aby dopisać testy.

Takie sytuacje mogą powodować, że nie widzisz wartości w pisaniu testów jednostkowych, bo ich koszt przewyższa zyski jakie dają. Na warsztatach dowiesz się i przećwiczysz, jak można minimalizować koszt tworzenia i utrzymywania testów jednostkowych używając Test Driven Development.

W kilku iteracjach TDD przećwiczymy:
- przekładanie wymagań na testy jednostkowe,
- poprawianie czytelności testów jednostkowych,
- stosowanie fazy refaktoryzacji.

Functional testing made easy with PHPUnit & Selenium
Ondrej Machulda 4h

Learn how to use PHPUnit to test your app in a real browser using Selenium. This hands-on training will show you how to start writing & executing functional (aka end-to-end) tests with Selenium in a minute.

If you already use PHPUnit for your unit tests, there is no need to switch to a different tool or platform just to write functional tests. You can keep productivity from using your familiar environment of PHPUnit and just add some additional integration with Selenium.

So we will take advantage of PHPUnit and php-webdriver integration with Steward library, and use Docker to run Selenium without any other dependencies.

The training will cover:

- setting up local development environment (using Docker)
- practical examples of functional tests implementation
- exploring possibilities of Selenium WebDriver
- parallel test execution using Steward
- hands-on Page Object design pattern
- dealing with asynchronous elements of web-pages (AJAX, JavaScript)
- general tips & tricks how to keep a maintainable suite of functional tests in a long-term

Let your tests drive your development
Michelangelo van Dam 4h

Test driven development (TDD) is still a subject all developers agree upon it's a great thing, but never get around to actually do it for many reasons. In this workshop I use real world business requirements on legacy code for which we need to fix bugs and add features, but we're doing it in a TDD way.

No matter if you're already a testing veteran or a junior developer just started working yesterday, this workshop will give you the skills and passion to continue your career as a Test Driven Developer.

Other Info:

This workshop requires attendees to run PHP 7 on their laptops or have a VM running with PHP 7 enabled on it. I will provide the full packages on a thumb-drive that will be used during the workshop.

This workshop contains a small sections for developers new to PHPUnit, but the examples and exercises are aimed at those developers that are already familiar with PHPUnit and have an advanced knowledge of PHP. The exercises require knowledge of GIT branching and the correct usage of composer.

Requirements for participants: - PHPUnit 6.1 or higher - PHP 7.1 or higher (optionally XDebug enabled) - GIT 2.10 or higher

Symfony 4 - Hands On Tutorial (part 1)
Hugo Hamon 4h

Symfony 4.0 will be released at the end of November 2017 and will change the way you develop Web applications with Symfony. In this workshop, you'll discover the new recommended best practices promoted by the Symfony Core Team. You'll learn how to install third party packages with Symfony Flex, configure your application with environment variables or leverage the new dependency injection container features, use the new PHP 7 features, and much more! This two day workshop is a practical training where you'll learn how to build a small full featured web application with PHP 7 and Symfony 4.0.

14:00
Lunch
15:00 … 19:00
BDD with hexagonal architecture
Tomasz Kunicki 4h

The aim of workshop is to create a testable structure using the concept of Hexagonal architecture with Behavioral Driven Development by Behat v3.3 and configuration functional tests with container. We will focus on setting up a basic structure and configuring the test framework. We'll talk about the pros and cons of this solution. Using that example, we'll show BDD in practice. After the workshop, participants should be able to understand the concept of BDD and could create a basic structure integrated with Behat. This project should be testable on functional level tests. Additionally, the participant will understand the pros and cons of this approach in project.

Symfony meets Elasticsearch
Michal Kómoch, Michał Jankowski, Bartosz Telesiński 4h

To szkolenie ma na celu przedstawienie prawidłowej integracji i użycia biblioteki FOSElasticaBundle w połączeniu z Symfony3. W trakcie warsztatów postawione zostanie pełne środowisko w kontenerach docker oraz zaprezentowane zostaną przykłady użycia ręcznego tworzenia zapytań do Elasticsearch, a także sposób ich reprezentacji za pomocą Query Buildera w frameworku Symfony3.
Po zakończeniu szkolenia każdy z uczestników będzie posiadał solidną wiedzę na temat konfiguracji i wykorzystania Elasticsearcha w połączeniu z Symfony.

WYMAGANIA:
- Własny laptop z Linuxem
- Zainstalowany Docker (najnowsza wersja) oraz Docker Compose
- Zainstalowany GIT i umiejętność korzystania z jego podstawowych komend
- Ulubiony edytor kodu

Demonstrating advanced layouts and block management in Symfony based web solutions
Ivo Lukač 4h

Handling layouts and blocks in templates does the job but it is very rigid, not flexible and hard to maintain. It gets even more complicated with responsive or adaptive rendering for different screen sizes.
To improve this we built a tool based on Symfony full stack so that we can:
- easily manage different layouts with zones
- add/more/remove blocks to zones with a drag and drop interface,
- reuse blocks with shared zones
- implement custom blocks by simple template and/or controller override,
- apply layouts to routes with conditions like user roles, geolocation, time, languages, etc.
The tool is envisioned to be used in front of a backend system like a CMS or a eCommerce and provide a faster and more agile way to develop complex web solutions

Symfony 4 - Hands On Tutorial (part 2)
Hugo Hamon 4h

Symfony 4.0 will be released at the end of November 2017 and will change the way you develop Web applications with Symfony. In this workshop, you'll discover the new recommended best practices promoted by the Symfony Core Team. You'll learn how to install third party packages with Symfony Flex, configure your application with environment variables or leverage the new dependency injection container features, use the new PHP 7 features, and much more! This two day workshop is a practical training where you'll learn how to build a small full featured web application with PHP 7 and Symfony 4.0.

Talks

Friday

November 3, 2017

Relaxing

Intermediate

Guru

14:00
Optional lunch
15:00
Registration & check-in
16:15
Official opening
16:30
Keynote: How to get the most out of a tech conference!
Andreas Heigl 30m

What are the DO's and DONT's for conference-attendees. How to make the most out of the conference-ticket we posses. I will share some tips from my past conference experiences on how to get the most out of a tech conference.

17:00
Jak zacząć, aby nie żałować?
Piotr Horzycki 1h

PHP stanowi bardzo elastyczne środowisko, które można wykorzystać zarówno do małych studenckich projektów, jak i dużych, komercyjnych serwisów internetowych. Nie narzuca przy tym jednolitej architektury systemu - to my musimy o nią zadbać. Co zrobić, gdy mamy przed sobą pusty projekt (greenfield)? Jak dobrać właściwe narzędzia, by później nie żałować wyboru? Jak przygotować się na nieoczekiwany wzrost złożoności projektu?

Opowiem o burzliwej historii PHP, pierwszym PHP-owym szale w Polsce z lat 2000-2005, pojawieniu się frameworków MVC i ORM, które automatyzują stawianie projektu - i dlaczego nie zawsze można im ufać. Opiszę podstawowe narzędzia, z którymi pracuję dzisiaj: Vagrant, Composer, PHPUnit, Phing, PHP Code Sniffer. Co warto od razu zapiąć w greenfieldzie, aby dalsza praca była przyjemna i efektywna? Jaką architekturę wybrać? Jak pogłębiać swoją znajomość PHP? Jakie są najnowsze trendy w tym środowisku?

Żegnaj REST, Witaj GRPC
Pawel Rekowski 1h

Przyzwyczailiśmy się już do komunikacji po REST’cie. Wysyłamy po HTTP requesty w te i z powrotem mając nadzieje, że kontrakt API się nie zmienił. Co by jednak było, gdyby zamiast długich i ciężkich JSONów czy XMLi, mogli byśmy komunikować się w sposób binarny? Co by było, gdybyśmy mieli pewność, że kontrakt w API nie może zostać zmieniony i co by było, gdybyśmy mogli odizolować warstwę komunikacji od serwisu niezależnie od używanego języka? Przyjrzymy się bliżej technologii od Google, czyli Protobuff razem z frameworkiem GRPC.

Z tej prezentacji dowiesz się:
- Czym jest Protobuff oraz GRPC?
- Jaka jest różnica między komunikacją po REST’cie, a po ProtoBuffie
- Dlaczego warto przyjrzeć się tej technologii?
- Jak wyglądało wdrożenie GRPC w BlaBlaCar?
- Jak możesz wykorzystać komunikację binarną w swoim projekcie?
- Jakie są plusy i minusy takiego rozwiązania?

Who's the king; who's the ruler. How to answer the question before it was posted.
Hubert Bryłkowski 1h

I will share with you a story about hashes, what they're good at and what they're bad at. Most importantly how to use them in a not-so-typical way.

I was faced with a challenge to search a database of questions (about 2 million records) and find duplicates among them.
It may look like a pretty simple problem, but doing this efficiently was not trivial. I will explain the algorithms used, discuss their benefits, and show you how I tweaked them to our needs.
My main topic will be MinHash and LSH, with a little reminder about general hashing algorithms.

18:00
Bezpieczeństwo aplikacji internetowych
Pawel Makowski 1h

W trakcie prelekcji zostaną omówione najważniejsze kwestie związane z tworzeniem bezpiecznych aplikacji internetowych.
Uczestnik zdobędzie wiedzę na temat OWASP top 10, ASVS oraz podstawowych narzędzi do testowania aplikacji.
Zaprezentuję podatności, tak te popularne o których często się słyszy jak i nieco bardziej ciekawe.

Encryption, authentication and data integrity in PHP 7
Enrico Zimuel 1h

In this talk, we will show how to encrypt and authenticate sensitive data using PHP 7. We will show how to use the new Authenticated Encryption available with PHP 7.1 using OpenSSL. Moreover, we will introduce the usage of the new Sodium functions of PHP 7.2.

Eventual Consistency - Desining Fail Proof Systems
Grzegorz Skorupa 1h

Each day our systems deal with more data, more traffic and more complex tasks. Every large-scale system has to integrate with other internal or external systems. At the same time it should provide up to date information. On the other hand business states high availability and reliability requirements. Those two make designing of such systems difficult. In particular it is difficult to keep your data consistent.

It often happens that not all requirements can be technically met. Fortunately there are theoretical proofs that define what can and cannot be met in what circumstances. During the talk I will present some of the data consistency related problems typical to high traffic systems and try to sketch possible solutions. During the talk I will mention a few words about: CAP theorem, Eventual Consistency, At Least-Once Delivery and Self-Healing Systems.

19:00
Dinner
20:00
A hands on introduction to Laravel
Freek Van der Herten 1h

Laravel is an amazing framework that allows you to rapidly create quality applications. If you've never worked with Laravel before, and are interested to know what the fuzz is all about, this is the talk for you.

In this beginner level talk you'll learn how Laravel makes your job easy. We'll go over the stuff that makes Laravel shine like it's expressive routing system, the easy to learn Eloquent ORM, the powerful command line tools, the scheduler, the built-in testing facilities and much more.

Behat - Zaimplementowałeś kilka scenariuszy, Co dalej?
Grzegorz Skorupa 1h

Słyszałeś już co nieco o Behavior-driven development. Nawet samodzielnie napisałeś pierwsze 5 Scenariuszy i zaimplementowałeś je z pomocą Behata. Chcesz podążać tą ścieżką ale twoja głowa jest wypełniona pytaniami i wątpliwościami. Byłem w tej sytuacji 2 lata temu i chcę ci pomóc.

W sieci znajdziesz wiele kursów Behata ale niewiele z nich daje wskazówki jak implemnetować testy w długoterminowym projekcie o dużym stopniu złożoności. Prawidłowe rozplanowanie scenariuszy i ich implementacji, gwarantujące, że nie zmienią się w trudny w utrzymaniu kod, jest trudne. Wytyczne jak to zrobić nie są łatwe do znalezienia w sieci.

Spotkanie rozpocznę krótkim wprowadzeniem do BDD. Następnie przedstawię prosty projekt korzystający z Behata, który będzie prawdopodobnie podobny do twojego pierwszego scenariusza, który napisałeś po przejsciu kursu Behata. W tym momencie zacznę rozszerzać i refaktorować kod tak aby ostatecznie uzyskać skomplikowany framework testujący twoją aplikację. Przedstawię przykładowe rozstawienie testów Behata, które wspiera testy integracyjne, API oraz interfejsu. Postaram się również wyjaśnić jak planować kroki, cechy (features) i konteksty Behata w celu uzyskania kodu łatwego w utrzymaniu i rozszerzaniu.

Domain-Specific Assertions
Sebastian Bergmann 1h

A common language, understood by technical and non-technical stakeholders alike, is essential for good communication in a software project. Combining ideas from Domain-Driven Design and Test-Driven Development, this ubiquitous language can be represented in both production code and test code.

Attendees of this session will learn how to create tests that are easy to write fast to execute, and deliver highly reliable results. They will gain expertise in the confident and effective implementation of automated tests for their software and learn how to implement custom assertions for PHPUnit to represent the common language of their project in test code.

21:00
Agile 101
Bartosz Boguszewski 1h

Most of the people when hear Agile think Scrum as this is one of the most popular buzz word. But Agile is much more then Scrum. There are variety of methodologies and frameworks. During this meeting, we are going to talk about origins of Agile. We are going to get familiar with number of methodologies and frameworks like Scrum, Lean, XP, FDD Crystal, DSDM and Kanban. We are going to talk about pros and cons of each of them. Let's see what is out there and decide which one is best for your project and your team.

The GDPR is coming, are you ready?
Michelangelo van Dam 1h

On May 25, 2018 all companies collecting and processing data of people from within the European Union must comply to the General Data Protection Regulation or GDPR. In this talk I'll cover what the GDPR is and how it will impact businesses within the EU and abroad, what can be done to comply to this regulation and how to proceed further.

This talk will not provide you legal answers, but will give you technology solutions that will make your applications compliant to these regulations. Even if you're not processing data from the EU, these solutions will offer you better protection to the data you currently keep and will ensure that in the case of a breach, the impact will be minimum.

Design Principles for MVP
Junaid Masoodi 30m

User experience is the solution for engaging client or user on a site or App. How to design a user experience for MVP (Minimum Viable Product) is very important and how to design right user experience is more important. So how do you ensure that you build the best product when everyone has the same million ideas. We will be talking about MVP and Design principles:

* What is Minimum Viable Product and UI/UX:
* Why MVP?
* The MVP is not about the Product but The product itself.
* UI is not UX and UX is UI.

*Design Principles:
* Unity/HarmonyHierarchy.
* Scale/Proposition.
* Balance.
* Dominance/Emphasis.
* Similarity/Contrast.

* Designing User Experience for Minimum Viable Product
* How MVP and Design Principles should go parallel from day one.
* How to featurise UX for MVP.
* Why touring is important for MVP

By the end of session you will be able to:
* Start working on a product with MVP practices.
* How to design MVP using design principles.
* For the web, how colours, position and placement of blocks affect site traffic.
* How is UI different from UX.
* Why touring is important.

Saturday

November 4, 2017

Relaxing

Intermediate

Guru

09:00
Breakfast
10:00
Kompleksowe wprowadzenie do Value Object
Mikolaj Adamczyk 1h

Słyszałeś już o Domain Driven Design i chciałbyś wypróbować to podejście w swoim projekcie? Dobrym sposobem jest rozpoczęcie od wdrożenia w nim kilku Value Object. Pokażę, że może to być dobry krok w stronę udoskonalenia kodu również jeśli nie korzystasz z Domain Driven Design.
Podczas prezentacji postaram się na konkretnych przykładach pokazać czym jest Value Object, czym różni się od Data Transfer Object oraz Encji. Zobaczysz jak łatwo używać Value Object z formularzami Symfony, jak zapisać je do bazy danych za pomocą Doctrine, jakie dodatkowe korzyści otrzymujemy korzystając z Value Object oraz jak łatwo możemy je testować.
Wskażę również czym w kontekście Value Object są named constructors oraz postaram się odpowiedzieć na pytanie, czy tworząc złożone Value Object lepiej użyć dziedziczenia czy kompozycji. Opowiem również o sytuacjach w których nie należy korzystać na siłę z Value Object.
Ze względu na dużą popularność DDD możemy bez problemu znaleźć najpopularniejsze Value Object gotowe do użycia. Na koniec podzielę się informacją, gdzie możemy znaleźć najbardziej przydatne repozytoria Value Object.

Discovering unknown with Event Storming
Mariusz Gil 1h

Event Storming is a lightweight discovery and collaborative learning tool for exploring complex domains and problems. Using Events, the first-class citizens of modern software development, in very short period of the time we can discover, model and visualize flows, aggregates, bounded contexts, business rules and related hotspots, commands, read-models… Event Storming is also a communication platform and knowledge transfer tool you may apply to release into production proper developer’s understanding of the problem, not assumptions or speculations.

During this talk you will learn about Event Storming core concepts, patterns and best-practices you may apply in your next complex project. You will also learn how to use Event Storming on different levels, from big-picture system overview to designing aggregates, commands and merging output of Event Storming session with CQRS, Event Sourcing and Domain Driven Designs implementations.

Introduction to PHP Extensions
Derick Rethans 1h

In this presentation, we take a first look at writing PHP extensions. Using
step-by-step examples, we'll take a function written in PHP and convert them
into a loadable extension using C. We'll then test both versions and compare
the results. After seeing the size and scope of the benefits that can be
realized with only a few minor changes, you'll want to try it out for
yourself. You'll also understand why we start with simple things, and not try
to rewrite all of Symfony in C.

11:00
ElasticSearch jako baza danych. Jak radzić sobie z zapisaniem i przeszukiwaniem 10mld+ wiadomości
Tomasz Banasiak 1h

Jak podejść do tematu przechowywania dużych zbiorów danych w momencie kiedy musimy zachować bardzo wysoką wydajność jednocześnie zapewniając absolutne bezpieczeństwo danych i pewność ich przechowywania. W tym kontekście opowiem trochę o ElasticSearch oraz otoczce zbudowanej przez nas wokół tej technologii. W prezentacji z pogranicza architektury aplikacji pokażę jak ugryźliśmy ten temat i co z tego wyniknęło.

Modern Testing with Codeception: Tips and Tricks
Michael Bodnarchuk 1h

Codeception is a full stack testing framework. It is widely used by various PHP companies (3+ million downloads on Packagist). What does it offer to you and how can it improve your testing experience? Codeception has smooth integration with all PHP frameworks and provides a clean DSL for scenario-driven testing. You will learn how to make:

* user-driven web site tests with Codeception and Selenium
* how to organize complex tests with PageObjects and StepObjects
* how to write and execute feature files (BDD) with Codeception
* how to test web applications effectively
* what makes a perfect API test
* how to extend Codeception

IoC containers beyond constructor injection
Hannes Van De Vreken 1h

Did you know your IoC container can do a whole lot more than just constructor injection? Besides that it is actually packed with features. Inflectors, resolving callbacks, aliasing, method invocation to name a few. In this talk you will learn how to leverage the power of a great container and service providers to write better, loosely coupled code. Well designed code put together by your IoC container will make your applications SOLID, modular, lean and decoupled from the framework!

12:00
How to double your team performance? Let’s talk about headless and API first approach.
Chris Ozog 1h

More and more projects are built using JavaScript frameworks that rely on APIs for data storage.
In this speech I will talk about the Codesushi way of developing projects that can boost a team performance.

Main elements of the talk:
- stages of the project
- tools that we used during the design stage
- description of a project where we used this methodology [case study]

Why Is CRUD a Bad Idea?
Matouš Czerner 1h

Everyone knows what CRUD means - Create, Read, Update and Delete... But wait what is actually an Update? Does writer “update” an article or does he “publish” it? Do customers “update” an order or do they “pay” for it? Does your happy boss “update” your salary or does she “raise” it? Generic CRUD approach does not represent a real-life experience and makes both your user interface and API harder to understand and maintain. This talk covers differences between Rich Domain Model and Anemic Domain Model, their advantages and disadvantages, and how these concepts affect the design of your model, forms and user interface.

Modeling complex processes and time with Saga pattern
Mariusz Gil 1h

Time modeling is always difficult, as well as implementing business flows inside complex domains. Long lived transactions which span multiple bounded contexts, possible success and failure scenarios are even more difficult to model, test and implement. Fortunately, we have an answer to this problem! Multiple messages, events, aggregates and bounded contexts? Not a problem, Saga pattern may be very helpful… During this talk you will learn how to model long running business processes which affect many regions inside domains, what are the best possible use-cases and when to avoid sagas.

13:00
Constantly improve your PHP code
Arkadiusz Kondas 1h

Podczas testowania aplikacji PHP niezależnie od tego, czy ręcznie, czy też automatycznie, programiści spędzają wiele czasu na wykrywaniu błędów w kodzie, który nawet nie byłyby kompilowany w innych językach. W ten sposób pozostawiają mniej czasu na testowanie rzeczywistej logiki biznesowej, która powinna być najważniejsza. Dzięki statycznie analizie kodu powstało szereg ciekawych narzędzi pozwalających w pełni zautomatyzować proces Continuous Improvement. Ta prezentacje będzie obiektywnym przeglądem najnowszych rozwiązań pozwalających na stałe ulepszanie jakości kodu w Waszych projektach.

Mikroserwisy nie są lekiem na całe zło
Maciej Malarz 1h

Ale mikroserwisy są najważniejszym wynalazkiem od czasów koła! Na pewno musisz ich użyć, Amazon ma ich mnóstwo i tylko popatrz na nich. Chyba nie muszę nawet wspominać o takich tuzach jak Google czy Netflix?

Prawda jednak jest taka, że (zazwyczaj) nie jesteśmy Amazonem, skala na którą operujemy jest ciut mniejsza. Nawet problemy, z którymi codziennie się mierzymy, są z zupełnie innego typu. Mimo wszystko, ignorowanie mikroserwisów nie byłoby najmądrzejsze, więc podczas prezentacji przyjrzymy się zarówno im, jak i problemom które obiecują rozwiązać. Większej reklamy im robić nie będę, to nie jest ten typ prezentacji, po której siądziecie do komputera i zaczniecie kodzić. To jest ten typ prezentacji, po której pomyślicie dwa razy zanim dacie się porwać hype'owi. Zamiast koncentrować się na zaletach, przyjrzymy się balastowi, jaki towarzyszy mikroserwisom, oraz zastanowimy się czy gra jest w ogóle warta świeczki.

It's all about the goto
Derick Rethans 1h

Don't worry, this is not about the goto keyword.

In this presentation, I am showing you some of the inner workings of PHP. We
are going to look at how different language keywords and constructs are handled
internally. Basically, everything is converted to goto, but the how and why, is
not as simple as it seems!

This is a very in depth talk, mostly interesting to people that want to know
how PHP works internally. Expect lots of wonkyness, a form of assembly, and
trees.

14:00
Lunch
15:00
PHP + Business = Money!
Martin Hlavač 1h

PHP isn't sexy anymore and that's why we love it!
This is a story of mature language that drives huge businesses, generating billions in revenue. At Wayfair we use mostly PHP and we try to stay pragmatic about it, avoiding dogmas by always evaluating pros and cons of our decisions. Keeping things simple with 1000+ engineers isn't easy. I'll share with you our magic formula and few insights that will make your decisions more pragmatic, helping you run your own business.

Journey through "unhappy path" - Dealing with exceptional conditions
Nikola Poša 1h

Developers naturally gravitate towards the "happy path" - default scenario in application execution in which everything works as expected, consequently neglecting exceptions and error handling aspect of a software development. This talk provides a comprehensive insight into widely adopted practices and patterns for dealing with exceptional and error conditions. You will learn about writing and organizing custom exception classes, formatting exception messages, component-level exceptions technique, and much more. In a word - Exceptions cheat-sheet. Once thrown, the exceptions should be caught, so you'll also be introduced with different error handling strategies and concepts.

Getting started with PHP core development
Arnout Boks 1h

While PHP’s open source community is thriving, only a relatively small number of PHP developers contribute to the number one tool they use on a daily basis: PHP itself. Although it may seem daunting to help out on a project written in C, requiring compilation and linking, getting started is actually pretty easy.
In this talk I would like to share my own recent experiences of beginning to contribute to PHP itself. We will cover some practical tips, workflows and resources, so you can start giving back to your programming language straight away!

16:00
Code Review - jak robić to lepiej?
Sebastian Malaca 1h

Im bardziej skomplikowana jest aplikacja, tym więcej osób nad nią pracuje. Im więcej kodu tworzą programiści, tym ważniejsze jest dbanie o jego jakość. I w tym momencie przychodzi nam z pomocą Code Review.
Jednak, często zdarza się, że po jakimś czasie, kiedy chęć ludzi do wypróbowania tej techniki maleje, a ilość review rośnie, wiele osób zaczyna narzekać. Szukają wymówek, aby tylko nie robić review. Albo nie robić ich wystarczająco dokładnie.
Czy to jest problem? Tylko jeżeli w tym momencie nikt nie zareaguje. Ponieważ tak naprawdę jest to chwila na wprowadzenie usprawnień i poprawek!

Start Smoking, Get Confidence - HTTP Smoke Testing
Petr Heinz 1h

It is usually not easy to start with automatic testing of an existing web application. You may have heard that applications must be written to be “testable”. But what if you still want the confidence that your refactoring did not cause the application to crash? And even if your application is testable that does not stop you or other people from skipping writing tests in order to “save” some time because let’s face it - the application can be used even without automatic tests.
We will present you our package for HTTP smoke testing that:
- makes it easy to start with testing any Symfony web application
- will automatically prompt you to test new pages/actions
- is so cheap to use that you will not even think about skipping writing tests

Constructing a Test Pyramid: Because Your Tests Needs Architecture Too
Michael Bodnarchuk 1h

Every PHP application needs its policy about tests. What is important to test, what is not, at which levels should a feature be tested. As we think of application architecture before writing a single line of code, we should think of a test architecture before implementing tests.

From this talk you will learn:

* how to transform business expectations to tests using ATDD and BDD approaches
* how to write stable tests that evolve with code
* how to deal with test data
* how to decide, should it be unit or integration test

17:00
Coffee break
17:30
Migracja danych - case study
Piotr Kosinski 1h

Kiedy dwie firmy się łączą, developerzy stoją przed wyzwaniem integracji systemów oraz migracji danych. Tak się stało kiedy eMAG - jeden z głównych graczy na rynku e-commerce w Europie środkowo-wschodniej - zdecydował się na migrację systemów przejętej firmy do swojego ekosystemu. Nasze zespoły miały możliwość pracy nad migracją dużej ilości informacji - danych kilku milionów produktów do naszych systemów. Brzmi banalnie - "weź produkt z aplikacji, dostosuj i zapisz w naszej aplikacji". Chcielibyśmy żeby tak właśnie było ;-) Opowiem Wam naszą historię: jakie problemy napotkaliśmy, co zrobiliśmy dobrze oraz gdzie popełniliśmy błędy - pamiętajcie że najlepiej uczyć się na cudzych błędach! Moja prezentacja obejmie tematy z obszarów analizy biznesowej, rozwiązań technicznych oraz zarządzania.

How we handle integrations of more than 100 different partners?
Umit Akkaya 1h

Having many partners is an amazing thing. What about integrating with them?
You have to
- Provide implementations for REST APIs, SOAP services, non-standard web services.
- Support different authentication methods
- Handle errors in case of a failure in third party system
- Last but not least each side has to be aware of every change.

In this presentation I will show you how we tackle all those problems within our architecture by creating a centralised integration application. Our solution heavily relies on the following techniques and technologies:
- Message Queue
- Command/Event bus
- API Callbacks for realtime events

Chain reaction of scaling up
Lukasz Szymanski 1h

When we are talking about scalability, we are focused on technical side of things. In practice, scalability of the application is only one of the many areas which are enablers for our product to be scalable. We are going to discuss what does it mean to be scalable and what areas we must cover in order to support that - organizational structure, process, people management, infrastructure & environment. All of the examples will be the case study of our own journey in OLX.

18:30
Easy Coding Stadard - Setup Coding Standards under 5 minutes
Tomaš Votruba 30m

I educate companies about advantages of coding-standards when it comes to hiring new people, code-review smells and upgrading to newer version of framework.

When I explained developer PHP_CodeSniffer and PHP-CS-Fixer I often saw, it's too complicated for them. I realized, I'm so used to them, I don't see the huge entry barrier I had many years ago too.

I don't want programmers to put energy to learn complicated things, that are very simple in their essence. That makes me really angry!

So I took a year off and made a tool, where all you need is one CLI line.
I named it EasyCodingStandard. It focuses on open and clear communication, what is happenening, which class is doing what check and guides you what you should do. Did I say it supports own checkers and uses cache, that finishes 2nd run under few seconds?

Uncommon (Ab)Uses of Composer
Alain Schlesser 1h

Composer is a hugely flexible tool that works reliably on all but the most obscure hosters/platforms. What's more, it provides a plugin system that lets you pull external code from a repository and have that code hook into the normal Composer execution flow. The logical conclusion is that Composer is used for much more than just pulling in dependencies.

We'll start this session with a quick look at the basic mechanisms that make Composer as flexible as it is. Then, we'll go through some of the more useful and/or exotic examples of how to use Composer for solving problems that it wasn't really meant to solve.

Event Sourcing - the story of an entity
Jakub Saleniuk 1h

Advantages of Event Sourcing have in the past few years gained it a lot of popularity. The presentation is an introduction to Event Sourcing for those who want to start programming in the new way. More advanced notions, such as event versioning, creating a projection and external services integration in Event Sourcing will also be covered.

19:00
Jakie są koszta hostingu na AWS?
Krzysztof Daniel 30m

To pytanie pojawia się często, kiedy pada propozycja uruchomienia projektu na AWS.

Podczas prezentacji pokażę parę casów odrobinę bliższych polskiej rzeczywistości (hostowanie średnich projektów, nie Neflixa czy innych ogromnych startupów) i średnich kosztów automatycznie skalowanej infrastruktury, które dla wielu jest rozwiązaniem na nieograniczony skalowanie horyzontalne i problemy z wydajnością.

Przedstawię kilka wskazówek na temat kosztów, pułapek abyście mogli wyciągnąć wnioski z naszych wpadek. Pokażę, jak my pracujemy ze środowiskami automatycznie się skalującymi, jak je konfigurujemy i jaka jest nasza strategia na rolling update. Jakie opcjonalne założenia musimy poczynić, kiedy wśród wymogów pojawia się wysoka dostępność.

Ostatecznie postaram się odpowiedzieć na pytanie czy AWS pozawala zaoszczędzić pieniądze na hostingu?

19:30
Dinner
20:30
Concert of celtic music by Carrantuohill, after-party

Sunday

November 5, 2017

Relaxing

Intermediate

Guru

09:00
Breakfast
10:00
Czy PHP znajdzie swoje miejsce w IOT?
Przemyslaw Krzywania 1h

Opowieść o podłączaniu sprzętu przemysłowego do serwerów z PHP.

Async PHP requests & reactive responses with php-fpm
Holger Woltersdorf 1h

There are many approaches to execute PHP sub-tasks asynchronously or to parallelise PHP execution.
While some solutions require extra extensions, individual PHP builds or a lot of process control management, this talk will show you how to configure and use the built-in PHP FastCGI Process Manager (php-fpm) to execute requests asynchronously in an isolated, tunable process pool and eventually handle their responses in a reactive way.

Diving deep into blockchain
Tomasz Kowalczyk 1h

The blockchain is a hot new topic in the technology due to the rise of various cryptocurrencies, Bitcoin being a most prominent example. How does it work? What advantages does it give? What problems do they solve? What problems can be solved that way? I want you to dive with me into the immutable world of blocks where I will explain everything, from a simple hash, through Merkle trees, up to implementing your own blockchain.

Blockchain to technologia, która stała się popularna dzięki najpopularniejszej kryptowalucie - Bitcoinowi. To idea bazy danych, w której raz umieszczone dane nie mogą się już zmienić. Te właściwości powodują, że wiele branż zainteresowało się przechowywaniem swoich danych w blockchainie. W tej prelekcji przedstawię ideę blockchainu, techniczne mechanizmy i algorytmy, które umożliwiają jego poprawne działanie oraz pokażę w jaki sposób działają istniejące implementacje blockchainu.

11:00
Simple Plugin Creation in WordPress
Peter MacIntyre 1h

Can't find that perfect plugin in the thousands that exist?
Do you want to extend an existing Theme? Come to this session
to see just how easy it is to create your own plugin and to
get a brief look at the internal functions that WordPress makes
available to the developer. We will actually create a simple
plugin and a child theme in this session while looking at the
PHP code needed to make this happen.

Middleware-based architectures
Matthieu Napoli 1h

HTTP middlewares are spreading everywhere since PSR-7, yet they are often seen as an implementation detail for very specific problems.

After having discovered them with PSR-7, after having written a middleware-based framework and after collaborating on PSR-15, my understanding is now different: middlewares help us better understand and design the architecture of our applications.

Let's start again from scratch and work our way up to an architecture entirely built on middlewares: what does it look like and how does it compare to the frameworks we all love?

Microservices vs The Distributed Monolith
Christopher Riley 1h

When faced with a challenging legacy code base, tightly coupled and void of discernible structure: a big ball of mud, it is common to decide to refactor this monolith to a microservice architecture to separate concerns and split the codebase up, however without any clear boundaries you are in danger of creating a distributed big ball of mud.

You may recognise the symptoms of a distributed ball of mud: a large unfocused 'common' library shared between multiple services; performance issues as your front end makes calls to multiple back end API's to serve a single request; dependency hell on deployments as you have to release multiple code bases simultaneously and uptime issues as a single microservice going down brings down your entire application.

In this talk I'm going to cover some of the common pitfalls you might encounter when building a microservice architecture and show you how to use an event driven architecture to build truly scalable microservices.

12:00
Building an Open-Source Campaign Platform for the new President of France
Hugo Hamon 1h

This case study will take you to the technical backdrop of Emmanuel Macron's victorious campaign in the French presidential elections of 2017. We will reveal how the En-Marche and SensioLabs teams worked closely together to develop a collaborative, Open-Source and citizen platform with PHP 7 and Symfony to structure the movement. In addition to the technical and political issues involved in this project, we'll present solutions such as continuous deployment with Docker under Kubernetes, continuous integration with Circle CI, SCRUM and Kanban project management, use of Rabbitmq, Symfony 3 new features, and more. We'll demonstrate the importance of choosing these solutions to meet the agility and scalability needs of the highlights of the campaign.

What we learned by merging two big Symfony based applications
Ivo Lukač 1h

Due to complex web projects we work on, there was a need for deeper integration between content management system and eCommerce solution. As eZ Platform is based on Symfony we searched for a Symfony based ecommerce solution and found Sylius as the best choice.
We combined the two systems in one Symfony instance so we can integrate on much deeper level. Learn about our experience with merging and maintaining such a solution.

Time-driven applications
Piotr Horzycki 1h

Discount systems, booking platforms, contests - all those applications have one thing in common: date & time management. How to implement business logic dependent on the time of the day, week, year? Half-price pizza on Mondays, course registration until the end of August or a landing page available only in November?

I deal with business requirements like these every day at work. I will show you the way I refactored messy code and wrote tests, so other programmers would not be afraid to make changes anymore. I'll convince you to use DateTimeImmutable and show some interesting date/time operations available in PHP standard library.

13:00
UUID - The only ID you need?
Arkadiusz Kondas 1h

Co to jest UUID i co oznaczają kolejne jego wersje? Jak zacząć korzystać z UUID w PHP? Czy moja baza poradzi sobie z UUID? Do czego nadaje się UUID, a do czego nie? Czy UUID to jedyne ID jakiego potrzebuję? Na te i inne pytania postaram się odpowiedź w prezentacji poświęconej wyłącznie uniwersalnie unikalnym identyfikatorom.

Lessons learned from dockerizing complex web apps
Grzegorz Drozd 1h

What we learned from putting Perl, php, mysql, solr, redis, queues, cassandra, aws services, web applications, api endpoints and off-line scripts processing into docker containers. They fit great in them.

Infrastructure as Code
Sebastian Grodzicki 1h

Terraform enables you to safely and predictably create, change, and improve production infrastructure. It is an open source tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned. Terraform has emerged as a key player in the DevOps world for defining, launching, and managing infrastructure as code (IAC) across a variety of cloud and virtualization platforms, including AWS, Google Cloud, and Azure. In this talk I'll show you how to get up and running with Terraform using IaaS (e.g. AWS, DigitalOcean) or SaaS providers (e.g. CloudFlare, GitHub).

14:00
Closing remarks
14:30
Optional lunch

Speakers

  • Mikołaj Adamczyk

    Mikołaj Adamczyk

    phenoma.ly
    Jest programistą wdrażającym głównie rozwiązania webowe (PHP, MySQL, Redis, MongoDB, Symfony, REST API) skupionym na architekturze wdrażanych produktów, zainteresowanym logiką biznesową, nastawionym na rozwój i poznawanie nowych technologii. W wolnym chwilach spędza czas z rodziną, aktywnie wypoczywa oraz planuje wyjazdy na kolejne konferencje.
  • Umit Akkaya

    Umit Akkaya

    ZnanyLekarz
    Moved to Poland in 2014 and works at DocPlanner which ZnanyLekarz belongs to, and DocPlanner aim to make healthcare more human. PHP and .NET developer, JavaScript admirer. Responsible for integrating third party softwares with our application, and keeping them stable.
  • Tomasz Banasiak

    Tomasz Banasiak

    RST Software Masters
    Programista zawodowy od 7 lat, programista pasjonat od zawsze. Bez przywiązania do technologii, bo one jak moda lubią się zmieniać. W RST członek zespołu odpowiedzialnego za Archiwum, czyli bezpieczne przechowywanie i indeksowanie dużych zasobów danych.
  • Sebastian Bergmann

    Sebastian Bergmann

    thePHP.cc
    Sebastian Bergmann has instrumentally contributed to transforming PHP into a reliable platform for large-scale, critical projects. Enterprises and PHP developers around the world benefit from the tools that he has developed and the experience he shares.
  • Michael Bodnarchuk

    Michael Bodnarchuk

    SDCLabs
    Passionate PHP/Ruby/JS web developer from Kyiv, Ukraine. Author of Codeception testing framework. Michael maintains various popular opensource projects and aims to popularize testing. "Testing should be fun" - is his motto. Speaker of PHP Framework Days UA (2013-2015), PHPKonf Istanbul (2015), Dutch PHP Conference 2016, Bulgaria PHP (2016), Scotland PHP (2016), PHP Benelux (2017) and various meetups.
  • Bartosz Boguszewski

    Bartosz Boguszewski

    Intive
    Project Manager with vast technical background. He has over 10 years of experience in software development during which he was involved in many small, medium and large projects. He is certified Product Owner, Scrum Master (scrum.org) and Test Manager (ISTQB). Bartosz is an agile enthusiast who puts huge emphasis on delivered value and quality.
  • Arnout Boks

    Arnout Boks

    Moxio
    Software architect by profession but mathematician by education, Arnout has his interests on the boundary between the two, where formal modelling and logical reasoning meet practical problems and pragmatism. He works at Moxio, where he solves complex information management problems with innovative software, and aims to grow a culture of learning and quality. In his free time he contributes to a number of open source projects, like PHP-CPD, PHP_CodeSniffer and Symfony, and more recently the PHP core.
  • Hubert Bryłkowski

    Hubert Bryłkowski

    Brainly
  • Krzysztof Daniel

    Krzysztof Daniel

    Creativestyle Polska Sp. z o.o.
    His work, hobby, and passion is the creation using computers. For past 18 years, he's been focusing on the creation of beautiful software. He is leading teams responsible for large eCommerce implementations. Worked for Eventim, Media Markt, CEWE, BMW, UEFA, Pro7 and much more. His first well known (almost 20 years ago) polish startup was napisy.info. He has passed multiple technical certifications, among others: Symfony Certification, Zend, AWS Solution Architect, Mongo DB Developer. Currently he is CTO in creativestyle - software house focused on eCommerce projects from Kraków and Munich
  • Matouš Czerner

    Matouš Czerner

    Shopsys s.r.o.
    Matouš has always been a very competitive person with interest in puzzles. During his high school studies, he accepted a few orders for websites, although he had zero experience in programming. Anyway, he eventually fell in love with development and started to work in Shopsys company, where he maintained many big e-commerce sites. His experience and hard work earned him a position in the Shopsys Framework team, where he has been able to apply his knowledge of e-commerce solutions. Besides being a passionate developer, he also loves to collect vinyl and enjoys to design websites and logos.
  • Grzegorz Drozd

    Grzegorz Drozd

    Duze O
    Greg is a developer with many years of experience. He has worked for multiple companies both big international mega corporations and small startups. Starting as a developer and then progressing into a technical leader, Greg is now a software architect. He specializes in high performance, secure web applications and is experimenting with DevOps and IoT hardware design.
  • Mariusz Gil

    Mariusz Gil

    Source Ministry
    Mariusz Gil is software architect working on high complexity and high value scalable web applications. Trainer, consultant, and conference speaker. Mariusz has been working for several companies on PHP projects for millions of active users, from biggest social network and instant-messaging software in Poland to multi-billion PV content personalization and discovery platform. Mariusz is also member of dev conferences Programme Commitees, and one of core members behind PHPers, open meetups for PHP developers in many cities in Poland. After hours, biker, rock guitarist and photographer.
  • Sebastian Grodzicki

    Sebastian Grodzicki

    SHOWROOM
    Chief Technology Officer (CTO) at SHOWROOM. Previously software engineer and CTO at GoldenLine. PHP programmer from 2000 (PHP 4) until now.
  • Hugo Hamon

    Hugo Hamon

    SensioLabs
    Hugo Hamon is a PHP and Symfony certified developer. After five years of professional PHP web development in web agencies for famous french customers, he now works as a software architect, consultant and trainer at SensioLabs. On his free time, Hugo contributes to Symfony and many other open source projects. Hugo also wrote and contributed to french and english books related to PHP and the Symfony framework.
  • Andreas Heigl

    Andreas Heigl

    wdv Gesellschaft für Medien & Kommunikation mbH & Co. OHG
    Andreas helps solving problems at a german corporate publishing company. He sometimes even uses code for that. Besides his family, his work as jack-of-all-trades and contributions to different open-source-projects he still finds the time to co-organize PHPUGFFM, the PHP-Usergroup in Frankfurt/Main and maintain PHP.ug and Zend\Ldap .
  • Petr Heinz

    Petr Heinz

    Shopsys s.r.o.
    Petr was fascinated by computers and programming from an early age and started freelancing as a PHP programmer since 18 years old. Loves clean code, regular expressions and clever design. In 2011 he joined Shopsys, built several e-commerce solutions since then and shared his experience on PHP conferences in Czechia and Slovakia. He dedicated last year to developing the Shopsys Framework, open source e-commerce framework made with passion on Symfony 3.
  • Martin Hlavač

    Martin Hlavač

    Wayfair LLC
    I am a software engineer working at Wayfair Europe, I love open source and the community around it. Business value is what matters to me and faster it can be delivered the better, that’s why I try to find and fix the bottlenecks. Outside of my work I develop apps to make my life easier and I feel like superhero when I do that.
  • Piotr Horzycki

    Piotr Horzycki

    Gdańskie Wydawnictwo Oświatowe
    PHP developer with 9 years of experience. Leads an 8-person team. Still learns new things thanks to his coworkers. Enthusiast of clean architecture, cohesive business logic and refactoring bad code. In the past he successfully optimized relational databases with hundreds of millions of records. After work he plays bass guitar and sings.
  • Michał Jankowski

    Michał Jankowski

    Espeo Software
    Backend Developer z ponad siedmioletnim doświadczeniem zawodowym w PHP. Zainteresowany również innymi językami programowania - C# i R. Zawodowo związany z dużymi projektami, opartymi o framework Symfony, REST API i Elasticsearch. Zafascynowany możliwościami jakie daje szeroko pojęta analiza danych.
  • Michał Kómoch

    Michał Kómoch

    Espeo Software
    Swoją karierę rozpoczął ponad 8 lat temu w największym Call Center w Poznaniu, następnie przeszedł do Poznańskiego Software House, gdzie nieustannie rozwija swoje umiejętności związane z programowaniem (PHP, Elasticsearch, RESTFull API) oraz zarządzeniem zespołem jako Team Lead oraz Scrum Master. Współpracuje z sukcesami z klientami ze Skandynawii oraz Stanów Zjednoczonych. W wolnych chwilach dużo jeździ na rowerze oraz planuje kolejne dalekie podróże, które motywują go do działania w pracy;-)
  • Arkadiusz Kondas

    Arkadiusz Kondas

    Proget Sp. z o.o.
    Zawodowy programista. Entuzjasta uczenia maszynowego. Wierzy w ideę Software Craftsmanship. Miłośnik open source. W wolnych chwilach rozwija swoje projekty na githubie, bloguje i biega ultramaratony.
  • Michał Kopacz

    Michał Kopacz

    RST Software Masters
  • Piotr Kosiński

    Piotr Kosiński

    eMAG
    PHP developer with eight years of experience. Currently he works in an e-commerce company eMAG where he leads a team of developers. Fan of Scrum methodology, focused on delivering high quality solutions. As a developer, he works according to the rule: bring solutions, not problems.
  • Tomasz Kowalczyk

    Tomasz Kowalczyk

    IFX
    Software architect with over 10 years of experience in writing web applications. Functional Programming enthusiast pursuing the ultimate goal of software quality and maintainability. An author of several open source libraries. Provides well-designed and open solutions to technical problems.
  • Przemysław Krzywania

    Przemysław Krzywania

    bkfmyjnie.pl
    Commercial developer since 2008. Have written software for such devices as ambulance, car wash, industrial Windows CE devices and of course mobile&web solutions since than. Currently team leader focused on IOT and web solutions.
  • Tomasz Kunicki

    Tomasz Kunicki

    I take interest in the topic of delivering best solutions for given issues - standardization, algorithmics, architecture and testing. I working with automation tests using Behat and promote BDD solution for communicating with business. Additionally, I spoke at technology conferences and actively participate in the development of extensions for Behat as open-source projects.
  • Ivo Lukač

    Ivo Lukač

    Netgen
    Cofounder of Netgen, Croatian based web company. Building web solutions from 2002. eZ Publish Community Board Member. Organising Web Summer Camp since 2012.
  • Ondrej Machulda

    Ondrej Machulda

    LMC s. r. o.
    Ondrej is a web developer who is friends with blue elephants and penguins. He works as a PHP developer and QA Engineer for LMC (a company behind the biggest Czech job portal Jobs.cz and is also training teams in Selenium & PHPUnit usage. He is co-maintainer of php-webdriver library. Ondrej is also gaining new ideas at meetings of Prague PHP and Symfony community that he helps to organise.
  • Peter MacIntyre

    Peter MacIntyre

    Paladin Business Solutions
    Peter MacIntyre has over 25 years of experience in the information technology industry, primarily in the area of PHP and Web Technologies. He has contributed writing material for many IT industry publications: Author of "PHP: The Good Parts" (O'Reilly); co-author: Pro PHP Programming (APress), Programming PHP (3rd Edition - O’Reilly), Using Visual Objects, Using PowerBuilder 5, ASP.NET Bible, Web Warrior Survey on Web Development Languages, and Zend Studio for Eclipse Developer's Guide. Peter has another book covering WordPress that was published in May 2016. Peter is currently the co-chair, co-founder and board member for the Northeast PHP Developer's Conference held in Boston, MA and Charlottetown, PE Canada for the last 6 years (northeastphp.org). As well, Peter has spoken several times at North American and International computer conferences including PHP[World], Washington, DC; ZendCon 2016 (Las Vegas), NortheastPHP 2016 (Charlottetown, PE, Canada), Prairie Dev Con 2016 (Winnipeg, MB, Canada), CA-World in New Orleans, USA; CA-TechniCon in Cologne, Germany; and CA-Expo in Melbourne, Australia. He is a Zend Certified Engineer in PHP 5.3 and PHP 4.0
  • Paweł Makowski

    Paweł Makowski

    Programista pasjonat od najmłodszych lat. Robię to co lubię. Projektuję, programuję oraz szukam luk bezpieczeństwa.
  • Sebastian Malaca

    Sebastian Malaca

    Luxoft
    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, Confitura, Devoxx, etc.), writer and contributor to several blogs (DZone, JavaCodeGeeks) about Software Development and Agile Software Craftsmanship.
  • Maciej Malarz

    Maciej Malarz

    Codete
    Team Leader @ Codete, MongoDB Team @ Doctrine, Fan @ Symfony. As a child, perhaps like most of us, dreamt about creating all those cool computer games he was playing but in the end around 2006 found himself in PHP world and stayed there until this very day, trying to make that world a little bit better every day.
  • Junaid Masoodi

    Junaid Masoodi

    Acquia
    I am a Front-End Developer, Designer and Evangelist at heart. I have spoken at many conferences and places across globe including US and Europe. I love to talk about Front-End web technologies and _Usability_. I am jumping more into the Usability and content strategy as I feel this is the area I love most and it needs an impact.
  • Matthieu Napoli

    Matthieu Napoli

    Wizaplace
    CTO at Wizaplace, Matthieu is also maintaining several open source projects like PHP-DI or Silly. He loves working on topics related to code quality or developer experience: anything that makes our job easier. He is also passionate about framework interoperability and is involved in both container-interop and the PHP-FIG for PSR-11 and PSR-15.
  • Chris Ozog

    Chris Ozog

    Codesushi
    Chris is experienced PHP Developer. He started programming in this language 10 years ago. His specialisation is Symfony framework, and after 6 years he is undisputed expert in it. Besides of PHP he is also skilled in other languages that power the Web, like javascript, SQL, HTML and CSS. Chris graduate Computer Science and Philosophy at the Pedagogical University of Cracow. Since 2012 he is a CTO in Codesushi, where he cares about the quality of the code. He always follow the best practices and have a strong knowledge about Git workflow. Chris enjoy working with startups and mobile development. Check out Chris’s presentation on Symfony Camp: https://youtu.be/NhIrY2w2X20
  • Nikola Poša

    Nikola Poša

    Arbor Education
    Nikola is a web developer and software architect specializing in PHP driven applications and web services. He's passionate about object-oriented design, SOLID principles and best practices in software development. Nikola use and contribute to open-source quite a bit, and what he does can be found at his GitHub profile: https://github.com/nikolaposa.
  • Paweł Rekowski

    Paweł Rekowski

    Backendowy Programista PHP/Java z ponad 10 letnim starzem w klepaniu kodu. Pracował dla takich serwisów jak Allegro, Oferia, czy BlaBlaCar. Trener w infoShare Academy, a Prywatnie tata, bloger i poszukiwacz sposobów, jak Czuć się, Wyglądać i Żyć #Lepiej.
  • Derick Rethans

    Derick Rethans

    MongoDB
    Derick Rethans is a PHP internals expert, author of Xdebug and an OpenStreetMap and mapping enthusiast. He has contributed in a number of ways to the PHP project, including the Xdebug debugging tool, and various extensions and additions. He's a frequent lecturer at conferences, the author of php|architect's Guide to Date and Time Programming, and the co-author of PHP 5 Power Programming. He is now working at MongoDB to work on the PHP and HHVM drivers for MongoDB.
  • Christopher Riley

    Christopher Riley

    Imhotek Consulting
    Chris is a freelance consultant based in York, Uk with experience working in the public sector, small and large companies throughout North Yorkshire. Chris has over 10 years experience with PHP and has a keen focus on both software architecture and none functional requirements such as security, performance and maintainability. In his free time, Chris can often be found producing or playing with experimental libraries and contributing to Zend framework.
  • Jakub Saleniuk

    Jakub Saleniuk

    Dialcom24
    Currently I am a PHP programmer and a Scrum Master in Przelewy24. I have been programming for 10 years. I am also experienced working with Angular and NodeJS. I consider myself as an open-minded person with a positive attitude to life. I like to take risks. I deeply believe in Karma and the law of attraction. My file is guided by the principle that development comes from changes and we should not be fear to make something new. It works in all areas of our life.
  • Alain Schlesser

    Alain Schlesser

    Bright Nucleus
    Alain is a freelance software engineer and WordPress consultant living in Germany. He started out as a government agent working in prison administration in Luxembourg, and has recently made the switch to self-employment to enjoy productive work without the bureaucratic hurdles. He has worked with numerous platforms and programming languages for the past 25 years, and is now trying to settle down on modern web development with the WordPress platform. He is passionate about software architecture and code quality and never misses an opportunity to share best practices. He offers his WordPress services and expertise through his company Bright Nucleus, while you can catch some of his more personal ramblings at https://www.alainschlesser.com.
  • Grzegorz Skorupa

    Grzegorz Skorupa

    Intive
    Developer, System Analyst and Software Architect. Works with PHP for more than 10 years. He gained experience in many small and large projects. He also has a PhD in Computer Science. He has spent recent years developing large-scale microservice based system at Intive. He still believes that failure-free and useful computer system is possible. He constantly seeks for solutions that enhance and guarantee quality.
  • Łukasz Szymański

    Łukasz Szymański

    OLX
    Development Team Leader at OLX. Chief Editor of tech.olx.com
  • Bartosz Telesiński

    Bartosz Telesiński

    Espeo Software
    Software Developer z 8 letnim doświadczeniem. Głównie nastawiony na PHP oraz Symfony. Nie zamyka się tylko na PHP i uważa, że do wielu zadań lepiej użyć narzędzi napisanych w innych językach. Poza PHP interesuje go także Docker, RabbitMQ, ElasticSearch oraz to, jak Golang może pomóc przeskoczyć ograniczenia PHP. Od kilku lat rozwija platformę rekrutacyjną dla wiodącej grupy medialnej z Finlandii.
  • Michelangelo van Dam

    Michelangelo van Dam

    in2it
    Michelangelo is a senior #php architect, co-founder and #ceo of @in2itvof, #community leader at @phpbenelux, board member at @dutchweballianc, #globetrotter, likes #coffee.
  • Hannes Van De Vreken

    Hannes Van De Vreken

    getstream.io
    Software Engineer and in charge of Developer Relations at madewithlove, open source user and contributor, blogger, organiser of meetups in Belgium and also a marathon runner
  • Freek Van der Herten

    Freek Van der Herten

    Spatie
    Freek Van der Herten is a partner and developer at Spatie, an Antwerp based company that specializes in creating Laravel apps. The company has an open source first mentality. Freek is the author of many packages that Spatie releases. According to GitHub awards Spatie is in the top 5 of PHP developers worldwide. After hours Freek writes about modern PHP and Laravel on his blog and is a co-organizer of PHP User group in Antwerp, Belgium. When not coding he's probably rehearsing with his kraut-rock band.
  • Tomaš Votruba

    Tomaš Votruba

    Pehapkari
    Tomaš loves PHP and connecting people, so he founded Czech PHP Community Pehapkari, where PHP developers can share their knowledge, opinions and educate themselves. His seconds passion is open-source - mainly automatization of coding standards and CLI refactoring. He contributes to Symfony, Nette and takes care of Symplify and ApiGen packages.
  • Holger Woltersdorf

    Holger Woltersdorf

    Fortuneglobe GmbH
    CIO - Head of FORTUNE SOLUTIONS at Fortuneglobe GmbH. About 12 years of developer and team-lead experience in mobile communication and fashion eCommerce industry. PHP developer for more than 16 years, co-founder and chairman of the PHP USERGROUP DRESDEN e.V., avid meetup and conference speaker, core-developer of the open-source PHP framework "IceHawk", dedicated to multiple other PHP open-source projects.
  • Łukasz Wróbel

    Łukasz Wróbel

    RST Software Masters
    Łukasz zajmuje się tworzeniem aplikacji internetowych od 2006 roku. Pracował dla wielu firm, z których dwie (Gadu-Gadu i Nasza-klasa) dostarczały usługi dla milionów użytkowników. Przeszedł całkiem długą drogę, zaczynając jako programista, by później zostać liderem i architektem. Interesuje go projektowanie wydajnych i skalowalnych aplikacji internetowych, tworzenie kodu wysokiej jakości oraz zgłębianie motywów ludzkiego działania.
  • Enrico Zimuel

    Enrico Zimuel

    Zend, a Rogue Wave Company
    A developer since 1996, Enrico Zimuel works as a *Senior Software Engineer* at Zend, a Rogue Wave Company. He is a core developer of Zend Framework and Apigility. He has been a Researcher Programmer at the Informatics Institute of the University of Amsterdam. He is a TEDx speaker and a regular speaker at international PHP conferences. He is the co-founder of the PHP User Group of Torino (Italy).

Tickets

If you are not a confirmed speaker, your ticket does not have bed and breakfast included. We were promised that all the rooms in the Ossa hotel will be for our disposal only. Keeping in mind that there's more conference tickets than accommodation, the best solution is to book B&B first. You can stay in the Ossa or any hotel nearby.

Blind Bird tickets are offered before announcing the agenda and gives you access to the same services as Standard ones, but these tickets are intended especially for students and persons in worse financial condition, not for groups. If you want to buy group ticket for your company team, we suggest to choose rather Standard Tickets, due to limited amount of Blind Birds.

Note, that payments for tickets below are in Euros. If you'd like to pay in Polish Zlotys (PLN) or your company has a NIP (Polish tax id number) please change the language of this webpage to Polish first.

Become a sponsor

Become a Sponsor of the phpCE Conference 2017 – it gives a rare opportunity to appear among the most talented members of PHP community and show them full brilliance of your trademark!

Contact

Please read carefully our F.A.Q. before you ask the question.

E-mail
phpCE: info@phpce.eu – organisational issues
dgnet.pl office: biuro@dgnet.pl – formalities, invoicing, etc.
Phone
+48 604 435060
We speak English, Russian a bit, and natively Polish.
Corporate information
Name: dgnet.pl Joanna Grzesista
City: Rybnik
ZIP: 44-200
Address: 50A, Wodzisławska
Country: Poland
EU VAT ID: PL9372362537

Logotypes of the phpCE Conference

Download

Organisers

  • Dariusz Grzesista

    Dariusz Grzesista

    phpCE.eu
    Originator, founder and team leader of the php Central Europe Conference. Event manager with ten-year experience, involved in the Linux Autumn, PHPCon Poland, PyCon PL and dBConf conferences. Former president of the Polish Linux Users Group. Devops in Polish customs administration from a dozen years. Happy husband and father of other phpCE organisers ;) Addicted to nomad-like bike trips with tent, foam pad and bedroll.
  • Joanna Grzesista

    Joanna Grzesista

    dgnet.pl
    phpCE's CFO, office manager and sponsor relation. Responsible for on-site organiser's reception and starter-pack distribution. Wife and mother of other phpCE organisers ;)
  • Mariusz Kuta

    Mariusz Kuta

    webMASTAH.pl
    Frontend ninja, database lover, php hooligan. phpCE'17 website designer. Lecture hall technician and multimedia recorder. Addicted to electronic music, crime books and sunflower seeds.
  • Piotr Krzysztofik

    Piotr Krzysztofik

    piotrex41.pl
    PHP programmer, webmaster, webdesigner and webdeveloper. At phpCE acts as lecture hall technician responsible for multimedia recording and maintenance.
  • Przemysław Pawliczuk

    Przemysław Pawliczuk

    przemyslaw.pawliczuk.pl
    Specialist for pathetic and impossible issues. His first words were "Paamayim nekudotayim". Learnt programming upon rendez vous with Symfony, after 10 years with PHP. An orange juice addict, pays attention to stuff-things on PHPCE and for many years on PHPCon PL just after started his journey as a speaker. After hours - husband, President of Pionier Rzeszów Toastmasters, DIY-maker, fan of accordion loving good vocal-trance music.
  • Martin Hlavač

    Martin Hlavač

    Wayfair LLC
    Software Engineer that loves to solve real problems. Making feedback loops faster and more open. Responsible for phpCE'17 Platinum Sponsorship relations. Czech translation guru for the conference website and more.
  • Viktor Csiki

    Viktor Csiki

    Stronghold Media
    Full-Stack Software Developer, Systems & Database Administrator, and Master of Struggling with Pointless Tasks. Non-Baptizing Vegetarian. At phpCE'17 Master of Any Hungarian Translations.
  • Mateusz Grzesista

    Mateusz Grzesista

    Student in one of Silesian high schools. At phpCE helps with a lecture hall technical issues and multimedia recording / maintenance.