In case you didn’t noticed it, there was a PHP conference in Sofia, Bulgaria at the beginning of October. Besides an amazing line-up of speakers, the organization went beyond expectations to make the whole experience amazing.
For me it all started at my arrival where I was picked up by the organization and brought directly to the hotel. They even provided me a SIM-card to make sure I was connected during my stay in Sofia. My Huawei E5372 MiFi made sure I was connected without changing my SIM card. A great investment if you travel often!
— Michelangelo van Dam (@DragonBe) October 6, 2016
Hotel Legends was just 5 minutes walking away from the Sofia Event Center making it a perfect place to relax if the conference was too hectic. Fortunately the conference organizers were even taking care of this option by offering a “speakers room” where speakers could hide away from the crowd to relax a bit. If you organize a conference, having a “speaker’s area” is a great investment for your speakers to prepare their talks in the quietness away from the crowd.
Tutorial day was for me a great moment to prepare my slides and find a solution to use GNU parallel effectively with Docker and PHPUnit. I even got support from a group of PHP developers from Barcelona and Samantha Quiñones to solve this challenge.
I ended up with a nice one-liner on the command line that allowed to run my unit tests in parallel using Docker as a daemon. So thank you all who helped me!
— Michelangelo van Dam (@DragonBe) October 7, 2016
The first conference day
Day 1 of the conference was an awesome experience! I got to see Anna Filina talking about refactoring 15-year old legacy code and Adam Culp talking about deploying PHP applications effectively with Jenkins. Both of these talks were amazing and a “must-see” for everyone who’s going to a conference where they are lined up.
I even was able to have great conversations in the hallway track with local and not so local attendees. We discussed subjects about automation and unit testing and I learned that most people still think that unit testing is all about testing database storage and web service API’s. I immediately sat down with them explaining that you have two kinds of tests: unit tests and integration tests.
Unit tests are testing the logical flow of your code on the smallest executable part which we call “a unit”. Integration tests are tests that are verifying how different systems can work together and integrate with each other.
So when you’re dealing with code that handles incoming and outgoing data, you should focus on how your logic handles the data and not the data itself. In most of my projects I use “Faker” to generate fake data that I expect from an external system (DB, web service, command line, etc…) as my logic needs to handle the data and process it correctly. Handing the data off to a web service is adhering to the documented API of the web service, not part of your inner workings.
I presented my talk “Continuous WordPress, life is all good” where I explained how we use continuous integration and continuous deployment to automatically update our WordPress installations, their plugins and themes. WordPress websites are for us just the same as any other software project, with a version control system and regular updates.
Right after my talk the social activities started. I was planning to join the hackathon but ended up motivating a bunch of people from Varna in Bulgaria to get started with their own PHP user group PHPVarna as they were too far away from Sofia to attend on a regular basis. So if you’re in the aria of Varna, let them know you like to attend their meetups!
— Michelangelo van Dam (@DragonBe) October 8, 2016
Second conference day
I had the early slot after the big social evening, but that was not a problem as my room was half-full when I started my talk “Dockerize your unit tests for faster feedback“. This talk is taking 10K unit tests that runs in little over 3 seconds and we’re stepping through the efforts to make them run under 3 seconds. Using Docker in parallel we can actually achieve that goal.
Of course my friend Anna Filina had to make a meme out of me.
— Anna Filina (@afilina) October 9, 2016
The rest of the day I spend talking with people in the hallway about unit testing and how to test legacy applications. After lunch I even got a bunch of people together in the hallway for a true improvised workshop on unit testing which was loudly applauded.
— Mark Baker (@Mark_Baker) October 9, 2016
And closely after this on-the-spot workshop Cal Evans was giving his best-ever closing keynote “Groupies, Roadies and Rockstars”. He totally nailed it on each part of his talk about what’s involved in being a roadie, a groupie and a rock star.
I can only say that the BGPHP team surely are professionals in every way. From pick up to delivery everything was flawless. Their passion to bring a great experience is showing before (in all communications), during and after the conference. An amazing crowd and a superb selection of speakers. If you ever think of going to a PHP conference in Europe, BGPHP should be on top of that list. Thank you all for this awesome experience!