Ab jetzt international! Unser PHP-Gott und Rad-Profi Dan nimmt uns mit auf seine "Tour de Open Source".
Viel Spaß mit dem ersten MASSIVE ART Blog-Post auf Englisch!
The reason I find myself in this particular circumstance is largely, if not entirely, due to my involvement in the open source Symfony CMF project. When I made my first Pull Request I didn't realise that it would have such a large impact on my life.
How it all started
I have been programming computers for large parts of my life. When I was ten me and my friend used to go round to each others houses and program computer games on our Sinclair ZX Spectrum computers – typing the programs out by hand was actually a necessity in the beginning as we didn't have any external storage. Not losing power was very important.
Programming continued to become a large part of my life – and still is.
Working in France
In 2010 I left England and cycled around France. Four months later I was working in Paris – lucky to have found a great and challenging job. I stayed more or less for three years.
I was tasked with creating a new CMS (content management system): YProximité. The company was keen to embrace the much hyped second version of the Symfony framework, a web application framework for PHP. At the time I started, it was still in an alpha (very early) development stage – since then I have seen it go from strength to strength and it has received lots of skill investment from lots of talented people. Now it is hugely popular and well respected.
Around the same time that we started our project, the SymfonyCMF and related projects (notably PHPCR) were also born. Just three years later I would start to invest lots of time in these projects, but at the time they were young and under-developed and there wasn't really anything directly usable. So I proceeded to work long days and weekends building a CMS from scratch.
Working with lots of cool people for three years exclusively on this CMS I learnt many things, but in the end I wanted a change, I wanted a new challenge: What about about writing a new CMS and cycling around the world? I gave six months notice and started making plans.
Rediscovering the Symfony CMF
I decided that the first thing I would do after leaving my job was to work full time on my own CMS and I naturally revisited the Symfony CMF project and made my first Pull Request where I submitted some missing documentation.
Subsequently I began making more and more contributions to the Symfony CMF and its related projects – being greatly encouraged by the project maintainers David Buchmann and Lukas Smith (to whom I am indebted for my current position at MASSIVE ART).
The thing I found (and continue to find) most exciting about working in open source is that you are free to follow your own solutions without being concerned about money and deadlines – that is, you can play out the role of the idealist – in the commercial world idealism sits in awkwardly with business demands, but in open source idealism is encouraged and your code is actively scrutinized by people with the same or similar ideals.
In this way we really try and create the best possible code without compromise and we learn from each other while we are doing it. This was a really big motivating factor for me.
Contributing to the PHPCR-ODM
Six months passed and I left my job. I stayed in Paris for an additional month and worked on my CMS project (originally called DCMS). It was to be the CMS which took the best from my previous CMS project whilst solving the problems that I encountered.
Some of the problems were neatly "solved" by the PHPCR-ODM (an object relation mapper library), notably translations and versioning among other benefits. But I soon discovered that it had some issues – after using it for one day I already discovered bugs. Normally I would have left the library and gone somewhere else – but I didn't. There was nowhere else to go, the Symfony CMF was and still is the only serious attempt in PHP to create an agnostic content management framework.
So instead I began fixing some bugs and spending more time on the project. It was much more satisfying to work on something collaboratively than on my own. After my month in Paris was over, I went back to England, got on my bicycle and started cycling towards Spain.
France to Spain to Portugal to Zürich
I was cycling between five and seven hours a day, six or seven days a week. Every evening I would either be in a Hotel or a campsite – and it was rare that I would be without WiFi. On the bike you have lots of time to think (which is one of the reasons I love cycling), and so I would think during the day and work in the evening.
I had put my new CMS project on hold, and decided instead to create a website to track my cycling adventure with the added challenge that I would do it entirely using the Symfony CMF.
One of the cool features of the DCMS was, that it could generate URLs from content (this was also something I implemented in yProximité) and it is a pretty common requirement. The idea is, that you take an articles title – for example "It's Raining Dogs" – and make it accessible at a URL on the web: http://mywebsite.com/articles/its-raining-dogs. This wasn't possible in the CMF at the time, and I wanted this feature in my application. As I had decided to write my application using only the CMF, I discussed it on the mailing list and the RoutingAutoBundle was born.
The RoutingAutoBundle took about a month or two to write on the road. Whilst that was happening, there was talk of preparing for the 1.0 release of the CMF. We organized IRC (internet relay chat) meetings and we all made lots of progress. I made it a point to attend every IRC meeting, which was not always easy when you don't know where you will be from day to day. But the meetings were really productive and motivated people to get things done.
About this time I was in Portugal and my bicycle and all my possessions were stolen. After some agonising hours the police found my bicycle, but everything of value were gone – including my money, passport and laptop.
Long story short, I was able to get some money transferred to me from England – thanks to a kind bank clerk – and I obtained a temporary passport from the British Consulate. Finally I made may way out of the city of Oporto on a much lighter bike and found my way to Lagos and to a very nice Youth Hostel where I stayed for two weeks whilst waiting for a new bank card to arrive from France.
I managed to find a cheap second-hand laptop and spent most of this time coding and running.
When I received my bank card I set out again. Lukas and David proposed a CMF meet-up in Zürich in late July. I had a month or two to get there. So I rode leisurely around Spain for some time before making my way up through France and across to Switzerland.
Lyon to Germany to MASSIVE ART
After the Zürich meeting I went back to England. My temporary passport lasted only for three months and it was hassle to get a new one on the road. I spent the remainder of the summer with my parents, working on open source projects and thinking about my next steps. After a month or so I was contacted by my old company from Paris. The old company had been purchased by a company in Lyon and they were to relocate. They asked me if I would be interested in working for them again for a limited time. I accepted.
Within a month I was living in Lyon. The plan was to work in the city for three months, but I stayed for six. I liked it but the reason I stayed was that I was inevitably drawn back into my old work. I had to make the break.
A month previous to moving to Lyon I started German lessons. I enjoy language learning – its a perfect way to keep your mind occupied when cycling – and German seemed the next logical choice. I had learnt French and some Spanish but German and Germany were still mysteries to me. I wanted to get a job in a place where they speak German.
When I finally left it was the intention of doing another cycle tour with the ultimate destination being Germany.
So I once more took off from England, got the boat to Spain, cycled down to Madrid then to Valencia then up to France, back to Lyon where I resumed work for a few days, before cycling east to Switzerland, into Italy, across to Venice then up to Salzburg, across to Freiberg then across to Zürich where I met up with Lukas and David at the Liip open day – before going back to Germany and getting an email from MASSIVE ART.
They asked if I could pass by for an interview, so I cycled back past Lake Constance and to the town of Dornbirn. And I am still here.
Spending time with MASSIVE ART
At MASSIVE ART I am part of the team working on the Sulu CMF, which is the companies new (and open source) CMS system. It uses Symfony, PHPCR and components from the Symfony CMF project. It is really satisfying to have a job working with open source tools you helped to develop.
Along with Thomas Schedler, Daniel Rotter and Johannes Wachter and until recently Marcel Moosbrugger I am busy implementing new features in the CMF. Thinking about ways to improve our workflow and productivity and generally finding my feet.
One of the things I am aiming to do while I am here is to try and create standalone, generally useful, open source libraries – MassiveBuildBundle and MassiveSearchBundle are two nascent projects being written in this spirit.