I’m Marco "Ocramius" Pivetta, an Italian PHP consultant, currently living in Germany.
Yes, the nickname is weird, but it comes from an era of Quake 3 Arena, Unreal Tournament & co.
I’ve been tinkering with computers since I was a child, and have been working with PHP for more than half my life now, developing a love-hate relationship with the language.
Interestingly, I didn’t start with the usual Joomla/Wordpress/Drupal/etc, but built a quite complex website that interacted with a browser game called "OGame", and scraped game information through a Firefox addon that would then provide an additional information to the players.
The reason why this project ("stogame") is important for me is that it included extremely challenging problems to be solved for a rookie with no help at all, and is still one of the most complex projects that I worked on:
XSS/SQL injections - had those, wasn’t fun
queuing mechanisms to sync browser extensions and the website - invented my own system
optimizing queries and indexes on ~60Gb of MySQL MyISAM tables
disaster recoveries on such a system - had those too, wasn’t fun either
real-time push mechanisms for clients via BOSHXMPP
simplistic prediction engine to aid players in decision making
All of the above were built by 15-years-old-me by just spending countless sleepless nights on it, and also jeopardizing my school evaluations.
Still, this was before libraries, design patterns, mentoring, Github: only me, some friends, and a good amount of design and prediction work.
I then moved on, gave up on the project, failed university (I’m a terrible student), got a few jobs and started using frameworks.
Eventually, I got to work with all of the typical DB abstraction approaches:
Active Record (with ZendFramework)
Table Data Gateway - in a custom solution
Data Mapper - in a Java EE project
I liked the JPA approach in the Java EE project so much that I started looking for a PHP analogue solution for my daytime job, and ended up discovering Doctrine 2.
Since then, I started getting more and more involved with the project, starting from answering questions on the mailing list and StackOverflow.
Benjamin Eberlei, who was the lead on the project at that time, pushed me towards contributing with actual code changes back in 2011.
Eventually, I became part of the maintainers of the project, and that also boosted my career, allowing me to become a consultant for Roave, which allows me to see dozens of different projects, teams and tools every month, as well as a public speaker.