Early November I attended the first edition of phpCE, a new PHP community conference in Central Europe, originating from a merger between PHPCon Poland and Brno PHP conference. In this blog post I would like to share some of my experiences and things I have learned during that event, in terms of interesting content, delivering two talks myself, and interactions with the community.
A conference is nothing without great content, and phpCE surely lived up to its expectations. Of course I cannot describe everything I've learned in a single blog post, but there were certainly some personal highlights I'd like to share.
Andreas Heigl kicked off the conference with his keynote 'How to get the most out of a tech conference!', containing some practical tips for both first-time as well as seasoned conference visitors. Not only did he give advice for attending talks, but also for social interactions in the hallway track (including the Pac-Man rule).
Sebastian Bergmann presented 'Domain-Specific Assertions', about how using the ubiqitous language of the domain in PHPUnit assertions can help to make them more understandable to your coworkers, your future self, and even non-developers. His talk wasn't actually limited to assertions, making a plea for understandable programs (and against the term 'code') in general.
In 'The GDPR is coming, are you ready?', Michelangelo van Dam talked about the General Data Protection Regulation from the EU, which will be effective as of May 25, 2018. As this topic had not received that much attention in the Netherlands yet (as far as I know), for me this talk really was an eye-opener to start reading up on it and taking measures. Michelangelo's talk already contained a lot of practical hints for implementing compliant systems.
Another really interesting session was Nikola Poša talking about best practices for exception handling in 'Journey through "unhappy path"'. I actually wasn't able to attend this talk myself (due to speaking at the same time), but I heard a lot of really positive reactions and talked a bit with Nikola about this subject afterwards. We really value well-designed exception handling at Moxio (especially with the research Tom has done in his thesis project), so it's nice to see this topic getting some well-deserved attention at conferences.
Microservices and event-driven architectures were popular topics at phpCE, with both Mariusz Gil ('Modeling complex processes and time with Saga pattern') and Christopher Riley ('Microservices vs The Distributed Monolith') speaking about this subject. They both described how microservices done right require an asynchrononous event-based approach, and how failure handling in such an architecture (rather than trying distributed, long-lived transactions) means embracing eventual consistency. The Saga pattern can be seen as a recipe for failure handling, describing actions to take for failure events at different steps in the process.
For me, the main reason for attending phpCE 2017 was as a speaker, having been invited to present my talk 'Getting started with PHP core development' (slides). In this talk I described my own journey to my first contribution to the PHP programming language itself, from encountering a bug to writing a test, fixing the C source code and patching the documentation. With this talk I wanted to show, based on my own experiences, how any PHP programmer can contribute something back to the PHP project, even without any experience with the PHP core and/or the C programming language in which it is written. Based on the reactions I heard, I hope that some of the people attending this talk will have made their first contribution to PHP by now.
Eventually I ended up doing a second session, filling in for another speaker who had to cancel. In this vacant slot I presented 'Introduction to the Semantic Web' (slides), a talk I did earlier at DPC17. It aims to show the audience the strengths and limitations of RDF, OWL and the other Semantic Web standards from W3C, which open up possibilities for a web of linked data that can be consumed by smart agents. After the session I got some really interesting questions about representing non-factual data in RDF, which can be done by a technique called reification. I will definitely include this topic in an updated version of my talk.
Although phpCE had a lot of interesting content, good content can also be found in a lot of other places: in books, videos and blog posts. What really sets a great conference apart is the interactions with fellow community members. From that viewpoint, the remoteness of the conference venue (in Ossa, about an hour's drive from Warsaw) was actually ideal. While at other conferences quite some attendees leave the venue after the day programme (to spend the night at home or at a hotel downtown), at phpCE almost all delegates stayed in the Ossa hotel. This gave many opportunities for great discussions and socializing with fellow developers before and after the main conference programme. I got to meet new friends and gained many interesting insights during the meals, late night drinks in the hotel bar, and the newly discovered sport off-by-one bowling.
A disadvantage of a remote location can be that there isn't actually much to see around there. To make up for that, the phpCE team organised an opening day for speakers in Warsaw the day before the conference. We spent the day with a tour guide and an old bus from the communist time, walking and driving around the city center. It was a great occasion to see some of the cultural and historical highlights of Warsaw, learn a bit or two about Poland, and meet fellow speakers before the start of the conference.
I really enjoyed attending phpCE 2017. The conference was packed with great content from which I learned a lot, I met many really nice people, and just generally had a great time. I can highly recommend to attend the next edition of this conference, which will be in Prague in the fall of 2018.
This post was originally published on the Moxio blog.