Benjamin Eberlei is the founder of Tideways, that builds monitoring and exception tracking tools for PHP applications. He has previously been the project lead of Doctrine, an open source PHP ORM and persistence tools project, and contributed to the Symfony ecosystem.
In addition, he has been blogging on a variety of technical topics including Ansible, Doctrine, Zend, Symfony, Software Quality and others on beberlei.de
HostNoc: What is the vision behind your startup Tideways?
Benjamin Eberlei: At my previous company, we had a tough time profiling code during load-testing experiments. High-level monitoring was available through NewRelic, but there was no way to trigger the Profiler reliably when optimizing as a developer.
We tinkered a lot with XHProf and built customized solutions that were complicated to maintain. Then I got the idea to build Tideways as the combination of application monitoring and profiling.
Our vision is to build PHP tools that help developers dig deep into the performance of their production applications.
HostNoc: Doctrine is a very popular open source tool. Projects of which size are more suited for doctrine ORM? Can it be used across other frameworks as well?
Benjamin Eberlei: Doctrine can be integrated with many of the largest PHP frameworks, for instance, Symfony, Zend, Laravel and many others. The goal was to build a great ORM and avoid stepping in the way of frameworks to integrate it.
You can use the ORM in projects of any size, but the larger and more performance sensitive the projects get, the more you need to know how to use it correctly and when to step around it using native SQL.
I talked about this a lot on conferences, referencing the pareto principle: 80% of use cases the ORM is good at, 20% you may need to overlook. In low-frequented applications with a lot of CRUD, you are often able to use Doctrine ORM for all access to the database.
HostNoc: There are so many PHP frameworks. Which framework would you like to recommend to beginners and why?
Benjamin Eberlei: That is a hard one to answer. I would always recommend learning Symfony because I think it embodies a lot of practices that allow you to write code with the SOLID principles in mind. It also uses no global state (static, singletons, …), and discourages the use of the global state.
In my opinion, this is a very good basis to scale up applications to large teams. There might be other frameworks that allow the same because I haven’t tried different frameworks for such a long time.
For beginners, Symfony is probably a few steps to advanced, the learning curve is quite steep, especially if you don’t have a good mentor to learn from.
HostNoc: What do you think are the problems that Symfony solves and what are the areas that still need to be improved in the next version?
Benjamin Eberlei: Symfony’s Request / Response cycle perfectly embodies how PHP applications function, and wraps the complexity around this in a very simple way.
Routing and Controllers are easy to get started with and all the features around Dependency Injection allow you as a developer to build maintainable applications that are easily testable.
For me personally, I don’t think there is much to improve in Symfony. Flex is certainly the next step for new developers starting with Symfony, but for me as a long-time user, it is actually hard to get used to it.
I am biased in my wishes to extend Symfony in ways that I use it, usually with my QafooLabsNoFrameworkBundle that introduces a bit more magic and automatic conversion between controllers and the Symfony framework.
HostNoc: You have been attending international conferences. Please share some memorable experience?
Benjamin Eberlei: I keep remembering and telling the story of PHP Benelux a few years ago, where there were bumper cars at the social event, which was a lot of fun.
It is the greatest conference in Europe in my opinion, highly detailed talks and valuable conversations with attendees, organized by an amazing team of volunteers.
In general, I am extremely grateful for the opportunity to talk at many conferences, learning about different communities, cultures, and countries.
The most memorable conferences for me have been PHP Argentina in 2013 and Symfony Live in Portland in 2013, because they have been the farthest that I have traveled.
HostNoc: You have been working in the community for a long time. Please provide a few names who have inspired you a lot and have been your source of motivation.
Benjamin Eberlei: When I started working on open-source in 2008, I learned so much more in such a brief period of time than in my day job. This was mostly due to interaction with experienced developers on the projects that I contributed to Matthew Weierophinney and Ralph Schindler when I contributed to Zend Framework 1, Kore Nordmann, Tobias Schlitt and Derick Rethans when I contributed to eZ Components and Guilherme Blanco, and Jonathan Wage and Roman Borschel when I contributed to Doctrine.
The early alpha-beta phase of Symfony 2 was also a roller coaster of learning with so many skilled people taking part. I tried my best giving back when I was the Doctrine project lead.
HostNoc: It would be an immense pleasure for us if you can share the pictures of your workstation with us?
Benjamin Eberlei: I have a simple docking station setup for my Lenovo Thinkpad. My office desk is a beautiful wooden crafting table that I bought from a conservator.
HostNoc: How much do you believe in maintaining a perfect work-life balance? When you are tired of coding, how do you rejuvenate your mind?
Benjamin Eberlei: I believe that a work-life balance is very important, but I am a very bad example at being able to follow this. Especially in the last 3 years of founding my company Tideways had meant way too much work and less life.
I am very hopeful to improve this, starting next year. Rejuvenation for me is hiking in the woods and mountains, any kind of project around the house and garden, and lounging on the couch, watching movies or binge-watching a tv-series, reading or listening to (audio-)books and podcasts, and lately a reclaimed interest from my youth: football (watching, not playing).