My year in the PHP Community

This is a personal recap of my path to become part of the PHP community in 2017.

How did that happen?

It all started with my first acceptance at a real conference in September 2016. I spoke at Code.Talks in Hamburg, Germany about the history of a framework my colleagues and I developed over the last two years. The primary intent of that talk was to give an idea why we intentionally ignored current framework approaches and built one upon practical thinking about the problems we needed to solve. However, when I attended the first sessions of the conference I realized that most talks were technically very deep. I became uncertain about my talk. During the speaker dinner Raimo Radczewski got in touch with me because we both were supposed to give talks about the same topic – CQRS. His talk was scheduled directly before mine, so he was really kind and send all his attendees to my room, which was quite filled with about 350 people. The next day I read the feedbacks to my talk in the conference’s mobile app. My fear confirmed and most of the feedback was quite negative about missing technical depth and proof of statements I made. There was also positive feedback, so it wasn’t a complete miss. Even though I really enjoyed this conference I concluded that I am not yet ready to speak at big conferences, that I need to learn how to present technical details and how to express my ideas in a better way. In order to do so I signed a mission for myself.

The mission

I already was a regular speaker at our local PHP user group in Dresden (PHPUGDD) and like many user groups out there, we also lacked speakers and topics to fill a whole year with interesting meetups. I also found that the user groups were quite disconnected, so the idea grow to visit all PHP user groups in Germany to make connections, practice speaking in front of smaller, but equally critical audiences and to see what we may can improve in our local user group. As I already was in touch with Stephan Hochdörfer I thought the Frankfurt/Main PHP user group (PHPUGFFM) would be a good start for this journey. (And it was!)

I also was uncertain about the outcome of all this and if/how my company is supporting my private mission. So I decided to bear all the expenses myself, to do a review at the end of the year and then to decide what kind of deal I have to make with my company or myself.

Tackling more technical details by digging deeper when researching and creating talks was on the roadmap, too. I decided to reactivate my blog and started collecting ideas to write and speak about.

January 19th @ PHPUGFFM, DE

DRS 🛫 FRA. I had three hours to prepare my slides in the hotel room before Stephan picked me up for a short snack and took me to the meetup location. I was very busy the weeks before at work so I only had a lot of changes in mind that still needed to find their way into the slides. I intended to talk about the same framework as I did at Code.Talks, but with focus on the implementation. So I ended up adding a lot of code to it in a tiny hotel room in Frankfurt.
We entered the meetup location and I was warmly welcomed by Andreas Heigl and Sebastian Feldmann. I didn’t know at that time, but both will play a key role in my mission later on. Andreas, who is also organizing PHPUGFFM, gave a nice intro about the user group (the presumably oldest one in Germany) and started a short introduction round through all attendees. I was giving the last talk that evening and spoke for about an hour. Because I spoke about the details of code I wrote myself, I was very confident what I am talking about and had a good feeling when answering intense questions in the Q/A round. The evening ended up with some good discussions and a good sleep.

Fun fact: This meetup was also the first time that I met Marco Pivetta without knowing it was him. A couple of days later I saw this thread on Twitter and it took me a while to realize that it was one of my slides and that Marco was calling it “creative”. If you know Marco, it’s kind of a compliment. 🙂

FRA 🛬 DRS

March 14th @ PHPUG Dresden, DE

Stephan immediately returned the favour and flew over to our next meetup in Dresden. I am pretty sure he would have come regardless of my previous visit in Frankfurt, but I keep telling myself that his talk in Dresden was a payoff of my mission’s first milestone. 🙂

April 4th @ PHPUG Berlin, DE

Still thrilled by the past two meetup experiences I couldn’t wait to schedule my next milestone and got in touch with Christoph Lühr who is organizing the PHP user group in Berlin (BEPHPUG) and submitted a talk for their next meetup. Again I was talking about our framework with focus on implementation, but with revised slides. This user group only has three slots of 20-30 minutes and all talks must be given in english. So I needed to trim my 60 minutes talk down to 20 minutes and had to do it in english – for the first time ever. That really pushed me far out of my comfort zone. Even though I write and read a lot of english texts, speaking is a different thing. But I recalled my mission which included me getting out of my comfort zone – and told myself: Let’s do this!

DRS 🚘 BER. I was a bit early at the meetup location when one of the organizers asked me if I was speaking and wanted to check the projector. There was a very short user group and no host intro. I was first to speak this evening so a did my best to not overrun the 30 minutes talk slot and opened the Q/A round after 25 minutes. No questions. I ended my talk with “Thank you for listening.”. Half the audience stood up and started chatting with each other. I felt a bit like “Why am I doing this here?”. In the break I reached out to Frank Sons who is organizer of the PHP user group in Hamburg (PHPUGHH). He was accidentally in town for a client and helped out to fill the meetup slots. I took the chance to ask for a talk in Hamburg later this year. I also met Tomáš Votruba and Ondrej Machulda. Tomáš is one of the organizers of the PHP user group meetups in Prague, Czech Republic (Péhápkaři) and he was touring around PHP user groups as well.

BER 🚘 DRS. On my way home from Berlin I reflected this meetup with the strange feeling that most attendees were not really interested or engaged in having a social event among friends to learn something. They were like watching TV – to be entertained instead of being involved. The three other speakers got almost the same reactions. That was definitely not what I expected from a town like Berlin. On the other hand I was quite happy that I mastered my first english talk without bigger struggle. In fact I found it comfortable and more fluent to not switch between technical terms in English, German sentence structure and half-German-half-English (we say “denglisch”) words. From a German point of view English also offers to build shorter sentences to the point. That especially helps if your day-to-day vocabulary is a little bit rusty.

April 26th @ PHPUG Dresden, DE

Tomáš Votruba checked in and gave a talk about code quality tools at our local meetup. Another connection that paid off!
We also had Vladimir Reznichenko, author of the PhpStorm Plugin “PHP Inspections (EA Extended)” and Ondřej Mirtes, author of PHPStan, in the house. It was one of our meetups with the highest number of attendees.

PHP Developer Day 2017 – Kick off

April was also the month the PHP USERGROUP DRESDEN e.V. effectively started to organize the annual PHP Developer Day. Since we founded a legal club in 2016, we decided to lift this event as a community with no primary company in the background like there was in the previous two years. So we came together and made a plan, scheduled tasks, prepared speaker invitations and listed potential sponsors. Our main goal was to double the number of attendees and to create an event our speakers and our attendees will feel comfortable at and will recommend or visit again. I immediately had a lot of fun doing this and felt the big opportunity to move something, to do something useful inside the sphere of our local PHP community.

May 19th/20th/21st @ PHPkonf Istanbul, TK

In the first week of May I got an e-mail from Andreas Heigl telling me that a speaker canceled for PHPkonf in Istanbul and that they desperately needed someone who can talk about CQRS and Event Sourcing. Surprised I was heavily struggling with that offer for four reasons: First, I didn’t want to go to big conferences. Second, travelling to a foreign country always costs me quite an effort to do it. Third, the conference was on my wife’s birthday. And fourth, I was a bit afraid of the political situation during the elections in Turkey. Then I saw this line-up and immediately knew I would regret it, if I would not say “I’m in.”. So I did and literally two hours later Emir Karşıyakalı contacted me and handed me over a hotel and a flight booking. All my concerns were overwhelmed by the excitement and the challenge to bring up a talk about CQRS and Event Sourcing in just two weeks.

I took a week off of work to research and prepare my talk and slides.

DRS 🚘 TXL, TXL 🛫 IST. I was told that there will be a shuttle picking me up at the airport. No sign, no shuttle. I went outside the airport building to have a look if it is waiting outside. No sign, no shuttle. I went back in and realized that security checks are not located before you get to the gates, but straight at the entrance of the building. So unpacking all my equipment again, going through security check, back to the arrival exit. Right there I saw Andreas waiting as well. After texting Emir we were picked up some time later and got to the hotel in the center of the city. At check-in we met Juliette Reinders Folmer, Elena Kolevska and Nikita Popov who warmly welcomed us and we decided to have dinner together somewhere in the city. It was such a nice evening full of empathy, curiosity and awesome Turkish meal. I didn’t feel like a stranger even though only Andreas and I have met once before. (And needless to mention my imposter syndrome caused by one of the PHP 7 heroes (Nikita Popov) enjoying his meal right next to me.)

Rasmus Lerdorf joined us the next morning. He was giving the keynote to kick off the conference. Meeting two people that defined my work life for quite a time in two days is not bad, right? A couple of minutes before the keynote, Emir told Rasmus that there will be a simultaneous translation of the talks and we should speak slow to give the translator the chance to keep up. Rasmus immediately joined the circle of speakers in front of the main stage and gave some advice how to handle this situation. In the loveliest and most positive temporal meaning: This was a picture of daddy teaching his kids, that I will never forget.

My talk was one of the last slots, so I had the opportunity to see a bunch of very known speakers and good sessions before I entered the stage. Seeing others talking always calms me down, because you realize there is no such thing like a perfect presentation. There is always someone double-clicking the clicker, rushing too fast through slides, loosing thread after an interruptive question or struggling to find the right words in a foreign language. You also get a good feeling for the audience. Are they engaged? How difficult are their questions and do they appreciate the effort put into the event, the topics and the sessions. So if you are new to speaking or plan to speak at a conference, try to get a slot after some other talks. It will reduce your nervousness. Even though I heavily suffer from imposter syndrome and inner flurry, telling myself we are all developers, coincidentally sitting in the same room to learn something new, helps me to slow down my mind and speech when I am up for speaking.

After the conference everyone (speakers and attendees) were invited to a diner in a restaurant nearby with a beautiful view over the bay of Istanbul. I was listening to first-job tales by Rasmus, Rafael and some others. Most of the time I was just listening, inhaling the spirit of that very evening. And I was glad that I jumped over my shadow and managed to take that opportunity.

On the next morning I originally planned to leave early to the airport to avoid stress by rushing through a foreign country and airport. Just to be sure I won’t miss my flight. There is one thing I really don’t like about travelling: Scheduled travelling. However, as I was waiting in the lobby of the hotel Emir rushed in and asked if I wanted to join the breakfast and sightseeing tour and promised we’ll be back in time to catch my flight. I tempted to say no, but again there was that feeling of future regret letting me say “OK.”. Andreas, Rob Allen and me, squeezed in Emir’s car, drove off to the asian side of Istanbul to have breakfast in a traditional tea house with a diversity and mass of Börek from another store nearby. Some more speakers joined us.
Turkish tea glasses have no handle and they are filled up to the edge with very hot tea. No one was able to drink it before it cooled down. As good developers we tried to improve the situation by pitching a better solution (handles) to the waiter. That funny moment expressed the spirit of the whole weekend.

IST 🛬 TXL, TXL 🚘 DRS.

May 31st @ Péhápkaři, Prague, CZ

Tomáš Votruba invited me to speak at their next meetup in Prague. A couple of days before I released a new version of one of my open source projects and decided to speak about its usage. Two of my fellow user group organizers joined and we had a great meetup and social in Prague. That was the second time the whole speaker exchange idea worked out pretty well.

June 8th @ PHPUG Dresden, DE

Sebastian Feldmann and I were on schedule for our next local meetup. Sebastian introduced us to his open source PHP backup utility (PHPBU) and he was great fun to watch speaking. After the meetup Sebastian and I were going same direction to the public transport and his hotel. I remember that we were chatting about technical stuff at the tram station for like hours before tiredness told us to go to sleep. Third strike for connecting to other user groups.

July 26th @ PHPUG Munich, DE

DRS 🛫 MUC. The main office of my company is located in Munich. Now and then I am travelling for work to Munich and because I was on my mission I sent a message to Mathias Burger if I can give a talk at the PHP user group in Munich and pitched my framework talk. He replied very quickly and confirmed me on the schedule. There was a very warm welcome and a comfortable atmosphere when I entered the meetup location. Everyone was supposed to put on a name sticker to simplify the social communication, a lot of food and drinks for free and a tough number of 70 attendees! Luckily Sebastian Feldmann – a familiar face – was there, too. Again I had the last slot of the evening and assumed the audience already got a bit tired because it was around 10:30pm when I started the presentation.

I opened the Q/A round after 45 minutes and I was blown away by about 20 raised-up hands all asking intense questions and giving a lot of positive feedback regarding my work. About one hour later I was able to grab me a drink. Now I was the one being tired.

As my brain was cooling down, Lars Röttig came over. He is one of Magento CE’s core developers and told me that they also try to apply CQRS within Magento as part of a huge refactoring and if I may can help out. I was flattered. We’re still in contact from time to time, but a real coding session didn’t happen yet – unfortunately. But it will eventually and I am looking forward to it. If you are in Munich and there is a meetup at the same time. Go there, I can totally recommend it!

MUC 🛬 DRS

August 22nd to 26th @ WeCamp, NL

Occasionally I read about something called “WeCamp” on Twitter, but never had the time to follow up on the links. When I met Juliette and Stefan Koopmanschap in Istanbul I learned that Stefan is running this “WeCamp” and that it is a 5 day event with tech people left on an island, building teams with a coach, working on “something” and having loads of fun. Now they got me and I decided to buy a ticket. If I’m not mistaken, it was the first ticket sold this year, because I remember refreshing the website every 10 seconds to see the order button becoming active. 🙂

DRS 🚘 NL, NL 🚤 De Kluut

Dropped off on the island, after a short introduction to everyone, we moved into our tippis. A bit later the team compositions and their coaches were announced. Stefan explained the intention of the whole event. Juliette was my coach and together with Marieke Bednarczyk, Thijs Hulshof and Micheal Harris we started a brain storming session right away. This special place made it very easy to feel comfortable and productive, even though most of us didn’t know each other. Anyway, I don’t want to spoiler to much about this event, you need to be there. But let me say a few more words about the take-aways.

All of the coaches were very well known people from the PHP community and I was very happy to meet them all in person, to get the chance to talk to each of them during these 5 days. On a regular conference you probably don’t get the opportunity to find a quiet spot and have a face-to-face chat with Michelangelo van Dam, Chris Hartjes, Jeroen van der Gulik, Jeremy Coates, Steven de Vries and of course Juliette, when you barely know them.

After a while I also realized that this event is not about tech, not about computer skills – no it was about people. How do I behave in a foreign team? How do I solve conflicts or different points of view about something? How do we agree on a mission together? What do we want to learn and how do we accomplish that? How can I serve the team best? What speed do we go? These were some of the questions I came across on that island. The welcoming atmosphere, the community spirit and the absence of real world problems gave me space to think about it – without the need for a quick answer. And that was an experience that changed me – in a very positive way. It changed how I think about my job and the definition of the term “team”.

The moment I won’t forget about WeCamp is: Juliette, Michelangelo and me, sitting in the main tippi around midnight, a crackling campfire in the back, playing cards on a low table, Juliette served some scotch, Michelangelo offered a cigar and we were sharing stories. I am very thankful to all who made this event possible!

Before we left the island, Stefan called all the teams to the main tent and started a lottery for Enfys and a ticket for the PHP North West conference (PHPNW) in Manchester, UK. I was lucky and won the latter, happy to see a lot of the WeCamp people again in just a couple of weeks.

De Kluut 🚤 NL, NL 🚘 DRS

September 22nd @ PHP Developer Day Dresden, DE

The last 4 weeks before our own little conference were really stressful, but in a positive way. We were very late with all the print media, still had to answer a lot of sponsorship e-mails and we were checking our first ticket sale ever like every 5 minutes. But we managed to finish all tasks the day before the day. The last ticket was sold at the entrance and we were able to double the number of attendees compared to the previous year. So we achieved our main goal: Reaching more people!

I was giving the keynote with the main intent to provide some initial information about our user group, the speakers and to point out the importance of diversity and community spirit. But I must admit that I was not prepared well and forgot to talk about some important points. I actually don’t know if it was too much excitement or just fatigue or both.

Anyway, the whole day was a huge success for everyone who was there. The vast majority of feedback was absolutely positive, by speakers, attendees, sponsors and the organization team. Our speakers did an amazing job and provided fun and intense material. The day past way to fast for my taste.

On the next day we met most of the speakers for a brunch in the old town of Dresden. We went for a short sightseeing tour and talked about projects, tech and travelling. Later Marco and I were going to his hotel and ordered some drinks in the lobby. We were discussing Event Sourcing implementation approaches and async PHP. And I wished we could have those chats more often, because it is mind blowing to brainstorm with Marco.

On Sunday, two days after the conference, I was completely wasted and unable to get off my couch. But there was a big satisfaction in me and I already started to imagine next year’s PHP Developer Day.

September 29th – October 1st @ PHP North West, Manchester, UK

DRS 🛫 FRA, FRA 🛫 MAN. Next stop: Manchester!
I was a bit late with my flight booking and had to spend more money than I liked. Still, I didn’t have a hotel yet. I knew some of the WeCamp people would be in Manchester, so I asked for a recommendation in the WeCamp slack. Micheal, who was on my WeCamp team, responded quickly and offered me to stay at his flat during the conference. This is how community works! I hope one day I can return the favour.

Stephan and I checked in at the conference centre (we were on the same flight), Michelangelo welcomed us, sitting alone at the front desk waiting for his workshop to begin. After a while we also met Derick Rethans who took us on a detour through the city to a nice pub where we had some “interesting” beer flavours. At Friday evening there supposed to be a Hackaton and I was eager to attend it. That evening was the first time I realized that this event is all about socializing. Almost no one was actually hacking. There was a bar area and a courtyard with heaters and pavilions where attendees and speakers spent time to talk and relax. This was such a pleasant atmosphere. I was very happy to see Juliette again, who joined us after her workshop.

There was an unconf track on Saturday that I submitted a talk for. I was lucky and was scheduled for 3pm. Juliette’s talk preceded mine, so I had the chance to see her speaking for the first time. I love her passion for community driven projects!

Looking back I didn’t attend so many sessions, but I do remember a lot of very good discussions with new people, like Dan Ackroyd author of the PHP Imagick extension and Mark Baker, the man behind the Diversity ElePHPant initiative that I was backing at kickstarter. I needed to shake his hand and say “Thank you for all this. It is so very important!”. He is such a polite and inspiring person carrying a huge version of Enfys (literally and metaphorically).

During the closing keynote by Jeremy Coats and his organizer team a sudden twist turned the whole audience into a big ball of emotions. He announced that after 10 years of PHP North West they need a break and that this was the last PHPNW, for now. I was totally feeling his conflict – having an awesome event but all the hard, exhausting work to get there. And everyone else was, too. I was so glad in that moment that I had the chance to enjoy this conference and salute to Jeremy and the organizers.

After the conference I attended my first WurstCon! 🌭

MAN 🛫 MUC, MUC 🛫 DRS.

October 7th not @ SoCraTesDay Berlin, DE

My good friend Raimo, who I first met at the Code.Talks in Hamburg 2016 and had lunch with in April 2017, organized the first edition of the SoCraTes day in Berlin and even though it is not a PHP community event, I was eager to attend. I even had a ticket already. But when the day came, after heavy travelling to Manchester and in behalf of my job the weeks before, I was completely exhausted and my body conked out. Heartbroken I had to cancel this event. 🙁

October 28th @ unkonf Mannheim, DE

DRS 🚘 Mannheim. It was half past 10pm when I arrived at the hotel. Stephan told me that Michelangelo stayed at the same hotel, so I asked him, if he was still up for a coffee. Dumb question. This fellow is always up for a coffee. Far after midnight we found us still chatting in the hotel bar, drinking coffee.

The unkonf is kind of a bar camp with a session planning at the beginning. But before Stephan started the voting and to distribute rooms, Michelangelo gave his keynote about “Community and me”. He told us his very personal story of how he faced the ups and downs in his youth and the turning point where he decided to start a new life. I had goosebumps all the time during his talk. It was a hammer to the face, a reminder of how privileged we are to be part of a tech culture, having all these possibilities to choose our own paths.

The unkonf talks were amazingly diverse in topics and of high quality. All speakers delivered great content in a very relaxing atmosphere. The day was over very quickly. Andreas spontaneously offered a GPG signing session after all sessions were over to build a circle of trust. It was fun to see a crowd of geeks staring at their laptops and waiting for key servers to catch up with synchronization.

We convinced Stephan to join us for dinner in the city. Even though he was tired and started to get sick, he was in. He drove us back to the hotel, where he gave a private #Disco talk to Michelangelo and me. He really was pulling through that day!

Mannheim 🚘 DRS.

November 2nd – 5th @ PHP Central Europe, PL

DRS 🚘 Warsaw. Dariusz Grzesista and his team organized a sightseeing day in Warsaw one day before the conference. An impressive city with a lot of history. Our last stop that day was a city museum. There I met Alain Schlesser for the first time and we had great discussions about coding and architecture.

Warsaw 🚘 Rawa Mazowiecka.
The venue was a huge spa resort in the middle of nowhere. One really could have get lost in the endless hallways inside the hotel, if there weren’t number signs on the walls.

Again I was able to meet Andreas Heigl, who gave his first keynote ever in front of a thousand people, Michelangelo van Dam and Derick Rethans. I was also lucky to meet Mariusz Gil, Michael Bodnarchuk, Arnout Boks, Ivo Likač, Mihail Irintchev, Nikola Poša and many more. We had a constant spot at the bar where we met during the conference days.

Andreas’ keynote was about how to get the most out of a tech conference and was really inspiring and intended to help especially people who attend a conference for the first time or are too shy to join a discussion with speakers or other attendees. Remember the pacman rule?!

PHP CE is a conference that starts travelling through Europe in the next years. I really like that idea. Our user group and PHP CE started a PHPartnership just before PHP Developer Day and Dariusz proposed to let the PHP CE conference happen in Dresden in 2019 which would be a big deal and great opportunity for our local community and the city. Anyway, we still have a way to go from 180 attendees to over a thousand in less than two years. But I want to make that happen!

Rawa Mazowiecka 🚘 DRS.

November 21st @ PHPUGMS, DE

DRS 🚘 Münster. Benjamin Cremer invited me to speak in Münster. Usually they only have one talk per meetup, but since I had a long way over to Münster, they allowed me to give two talks. This user group is special: They are about 20-25 people who attend the meetups regularly, but those attendees do understand how to ask the hell out of you.

It was nice to have the last remote event this year in such a small and charming round. At the end of the meetup we talked about an extension to my presented piece of software in detail. So when I got home I started working on it and it was done in three days. Community driven development!

Münster 🚘 DRS.

November 24th @ PHPUGDD, DE

Our second last meetup in 2017 took place in my company’s office. I was giving the user group and host intro. We had a first-time speaker with Frank Jogeleit talking about API Platform. He did a great job. Because we were lacking a lightning talk I decided to shortly present my experience at PHP CE in Poland, talked about our goals for the next PHP Developer Day in 2018 and ended with a call for volunteers. Two people stood up and offered their help. That was amazing!

I was also happy to see new faces in the audience and our crowd becoming more diverse – a goal we were working on for the past year and will keep working on in the future.

December 19th @ PHPUGDD, DE

Looking back to my initial mission statement, I kind of failed being focused on the target. For example I didn’t manage to visit the user group in Hamburg, which is definitely on top of my list for next year. I also failed to resist speaking at conferences. But hey, circumstances lead to chances. You have to take it or leave it, right? I am very happy to end my community year in my hometown with a local user group meetup giving a short talk about the news in PHP 7.2. It makes me looking forward to an amazing year 2018 among old and new PHPriends.

Summing it up

I had an incredible amazing year and made a whole bunch of new friends which I know will have positive influence to my life and career in the long term! I learned a lot – personally and technically – and had loads of fun.

Being on the road that often of course has implications at home and at work. I learned that a planning meeting (sounds weird, I know) with my wife once a week helps to avoid misunderstandings and stressful moments when suddenly a reminder pops up in the calendar. I also created the habit to take one more day off after a conference before I get back to work. That helps to gain new energy, get some sleep and decide what topics/technologies that I have seen I like to follow up on and maybe introduce to the company.

Like I said at the beginning, I not only wanted to recap my last year but also sum up my expenses and make conclusions on how to deal with a community life in the future. So I did the math:

🚘 I drove ca. 5.800 km by car to attend community events.
🛬 I flew ca. 7.700 km by airplane to get to conferences and meetups.
💸 I spent ca. 7.400 € for community activities (not all listed here).
🇪🇺 I travelled to 5 different countries.
🏖 I spent 90% of my vacation days in community activity.
👫 I gained two new colleagues out of community connections.
🌈 I gave away 7 Enfys (Diversity ElePHPants) to great people I met.
🍹 I drank massively less alcohol and more water during the whole year. (A very good thing!)
🍔 I ate way more fast food than usual. (Not a good thing!)
📝 I managed to write 6 blog posts of which 2 are already published (this one not included).
🐣 I increased the number of Twitter accounts I actively manage (with others) from 1 to 4.

Now I have a way better idea of what I can or have to put on my company’s table for negotiations and I’m curious about the outcome. I also have a better feeling for planning with my family, thinks that work or not work out.

After all, I am very grateful for the countless take-aways I was able to collect on this trip, unable to put them all in words here. So let me say “Thank you PHP community!”.

Special thanks goes to

  • My wife and kid, for allowing me to follow my mission in the past year. I know it wasn’t always easy.
  • Andreas Heigl, who constantly and subtly is attracting me out of my comfort zone. (Like with this post.) You are my wizard!
  • Stephan Hochdörfer, who is always dancing the extra mile to make thinks actually happen.
  • Juliette Reinders Folmer, for starting a special friendship from minute one, being so nice and keeping me on track regarding my visions.
  • Michelangelo van Dam, who is the best partner in crèma you can have, whatever may come. Thank you for sharing your thoughts, spirit and knowledge in the way you do.
  • Sebastian Feldmann, for being around wherever I need you!
  • Micheal Harris, who helped me out with a stay in his Manchester flat during PHPNW and who is such a nice person.
  • Marieke Bednarczyk, for calming me down once in a while with her great blog posts about mindfulness.
  • Mark Baker, for helping out when it comes to increase diversity and bringing Enfys to life.
  • My PHP USERGROUP DRESDEN fellows, for supporting every stupid idea I come up with.
  • All the names of great people I forgot to mention but I was lucky to meet on my journey.

Thank you!

Make a Difference

Believe it or not, I never wanted to be a software developer. Although I was introduced to personal computers at a young age, I did not enjoy writing software. At the age of eleven, I wrote my first applications in BASIC. While many of my peers were excited to be able to draw pixels on the screen or interact with users via text prompts, I did not enjoy it one bit. If you ever had to write an application in BASIC, you may have felt the same way. My feelings regarding software development aside, I was able to leverage this early introduction into an advantage in the ensuing computer revolution. I held a number of technical jobs such as Network Administrator and Database Administrator and eventually, despite my best efforts to avoid it, I became a software developer. I used some soon to be dead and even some already dead programming languages. Just as before, I didn’t enjoy the experience and did everything possible to maneuver out of development and into another role.

My attitude towards software development change dramatically ten years ago. As a last resort, I took a PHP development job. To my great fortune, I worked with an amazing and talented group of developers that challenged me a pushed me to become a great developer. The path was not a simple, quick, or easy one. Beyond the concepts like Object Oriented Programming, I needed an understanding basic tools like version control, debugging, and testing. Like many others that are attracted to the low entry barrier of PHP, I was a noob hackers are trying to build applications with PHP. Without the prodding and guidance of those coworkers and many other individuals, I would never have become the developer I am today.

Regardless of our skill level when we began using PHP, all of us were helped along the way by numerous community members. We’ve found the answer to some great dilemma from a community resource like a community site, blog, podcast, tutorial, IRC chat room, user group, or mentor. We all rely on the same resources in one way or another to perform our day to day jobs and develop our skill set. Within the past few years, I have learned that the community we rely on isn’t some magical place that appears out of the ether to answer our questions and write blogs. It is a community of passionate developers putting their hearts and souls into helping us be better developers. It’s also a community you can join. Regardless of your experience or skill level, you have something to offer. There is no shortage of need for contributors to the PHP community. Here are a few helpful hints to help start you on your journey:

Answer Questions

Everyone has a question at one time or another. There are enough questions out there that you are likely to find one to answer. There are a few different avenues for you to start answering developmer questions. Try and find one that feels comfortable for you.

Mailing Lists

PHP has a number of official mailing lists for developers to ask questions. This webpage has a list of them: http://php.net/mailing-lists.php. As with all mailing lists, you may need to adjust your settings to not be inundated with a barrage of email. If you are old school and prefer NNTP over email for lists, you’re in luck.There is a news server and site for that: news.php.net.

IRC

There is no official IRC channel for PHP. However, there are many channels dedicated to PHP. #php is the general PHP room to get started. There are also rooms dedicated to more specific topics. Here’s the official PHP Help page which touches on the topic: php.net/support.php#irc

Community Sites

Sites like Quora and Stack Overflow are filled with questions ranging from beginner to expert. Find a question you can answer and submit. It’s just that easy. Quora tends to be less critical of submissions from new submitters. If you aren’t prepared for random criticism of your answers, you may want to start with Quora to get started.

User Groups

User groups are fantastic ways to meet fellow developers and learn about topics related to development. It’s also a fantastic way to help other developers. As a founder of a user group, I know that most organizers are open to any help you can offer. That is especially true for presentations. User group organizers are always looking for presenters. You may not feel qualified to present to a group. That’s just not the case. Being an expert isn’t even required. Give a presentation based on “Here’s what I learned trying to figure out ??? for the first time.” We all need to keep up on emerging frameworks, libraries, and methodologies. Presenting on what you found trying to use one of them is really helpful.

If you need help finding a user group in your community, there’s a website for that: php.ug. If you can’t find a user group in your community on the site, you may be able to find one on Meetup, a site that many user groups utilize. If there is no PHP group in your community, you may be able to find kindred spirits in other developer user groups. Starting a PHP user group in your own community is something else you may want to consider. There is a page with resources for anyone starting or running a user group here: wiki.php.net/usergroups.

Be A Mentor

Being a mentor is something anyone can do regardless of skill level. There is always someone more noob than you. Find a more junior developer at work and help them build their skills. Become involved in local or internet based mentor programs. Local schools and community groups are always looking for mentors in technical fields to help student and disadvantaged populations. There are also peer to peer mentoring platforms in the Internet where you can lend a hand. Each method has a different time commitment associated with it. Find one that fits into your schedule.

Make a Difference

The greatest advantage we have as PHP developers is our community. My experience is that the PHP community is welcoming, energetic, and whole lot of fun. Do yourself a favor and take the next step in your evolution as a software developer. Become a contributor! Make a difference!

Kid friendly PHP

If I were to sit down and count how many meetups and conferences I missed in my life after I became a mother, I would probably end up crying. When those little guys are born we put all our passions on hold and they become the whole world to us. After a year or two when we snap out of it and start craving our life back we face the fact that it is gone. Forever. And we unlocked a higher, more difficult level of life.

You’re supposed to do everything you did before and more, but now with your permanent plus one. Go shopping, go to the toilet, take a shower. And it’s ok, you get used to those things after a while. But what happens when you want to go to a meetup? At a conference out of town or out of your country? What happens then? Well, the lucky ones can leave the kid with the co-parent if they have one and they’re free in those days, or maybe with the grandparents, if they live nearby. But what about single parents with no close family around?

Guys, seriously. How can we talk about diversity, inclusiveness and women in tech if even the biggest and richest conferences don’t provide daycare? What am I supposed to do with my 100%-dependent-on-me child when I want to invest in my career at a conference? There are simple solutions out there, but we need the good will to do it.

A few tips for conference organisers

The space

Every event, especially longer events should have a kids’ corner. If the venue itself doesn’t provide it (which it should), the organisers should set it up. If it’s a profitable event, they can invest a little bit of money and buy some toys they can re-use every year. If it’s not they can start a media campaign for toys donation.

The accidents insurance

This is a very small amount and most parents will be happy to pay it.

The food

Provide free water and a microwave for heating up baby food. Toddlers are usually fussy eaters, but there are some universal constants like pizza for example that almost any toddler would be happy with. It would be nice to have more variety, vegan and vegetarian options, but I think that most parents would be happy to bring food and snacks themselves if you provide the rest. Just make sure you notify them about the options so they can plan ahead.
Maybe one day, when kids’ areas are the norm we will come back to this point and talk about it in more details, but let’s take it slowly, one problem at a time.

The nannies

If the event can afford it – it should definitely include daycare in the ticket price for all parents who’ll come with their kids. That would be the noble thing to do. If not they could try and get a sponsor for it. If that doesn’t work either, then get one professional caretaker, calculate the costs and split it between the parents (who would need to register the kid up front, obviously). Since one caretaker is not enough, they could go ahead and give free conference tickets to a few computer science students who would spend a few hours helping with the kids and would then have the rest of the conference free, to see the talks they’re interested in or just go, network and talk to developers about the “real world out there”.

You see, everybody wins in this scenario: the conference – cause it gets a good name and more audience, the parents – cause they get to attend the conference, the kids – cause they get to socialise and hang out with other kids, the students/volunteers – cause they get to go to the conference for free, the hired nanny – cause she gets work… It sounds perfect, right? So why isn’t it done more? This article by Tara Tiger Brown was written in 2012 and it’s sad to see how little has changed since.

I created this repo where everyone can add resources and tips to make life easier for conference organisers and indirectly for us, parents.

Kids’ corners should be the norm already; banks, hospitals, restaurants… basically everywhere you need to spend more than 15 minutes. Let’s make some noise and make this happen! We are a community and we should take care of each other. This time around let’s send some love to all the hardworking, loving parents out there and help make their lives easier, at least a little bit 🙂 Tweet with the hashtag #kidscornerseverywhere to your favourite conference, your local event, offer to help… Heck, maybe even volunteer to be Elsa, IronMen or Santa for an hour. Why not? And who knows, you might end up having a lot more fun than on the event 😉

Big thanks to Anna Filina for the review and ideas.

Do Different

In internet years and in the programming industry, many might consider me a dinosaur. I’m in my mid-forties, and have been programming professionally for almost 20 years. In fact, I’ve been working for the same company for over twelve years; who does that?

Here’s the secret: I pace myself.

9 to 5 is enough

I see a lot of blog posts from people much younger than myself about the horrible expectations of startup culture, and, really, technology firms in general. Expectations that you put in 60 to 80 hours a week, because if you’re not fully committed to the organization’s success, you’re a dead weight. They all talk about the toll on mental health.

To be honest, when I started at Zend, I felt the same pressure, but, interestingly, it was pressure I exerted on myself. There was always so much work to do, and, with Zend Framework in its nascent stages, I found the only way I could juggle both my actual work duties (which, at the time, were actually around the Zend websites!) and my OSS contributions and collaboration on ZF was to put in extra time. I’d work my regular hours, and then work an hour or two after the family went to bed, and while we had downtime on the weekends.

And once I was transitioned to the Zend Framework team, it was just habit.

Eventually, Zeev became my boss, and he put a stop to it. “You’re of no use if you’re burnt out.” He basically forbade me to put in more than 40 hours a week.

My life turned around. But why?

It turns out that if you do not treat time as a commodity, you squander it. I quickly discovered that limiting my hours forced me to prioritize what I was doing, so that I could do it in the time I had alotted. There was no more “this will only take an hour or two; I’ll finish after dinner.” Instead it became, “Can I finish this today? No? Put it on tomorrow’s list.”

And with that focus, I found that I was doing the tasks that were necessary, and that I actually ended up doing more in less time.

Sure, it’s great to be passionate about your work. But passion isn’t focus, and without focus, you won’t ship anything.

What about learning?

The technology industry is terribly unforgiving. You’re expected to not only know what each new shiny emerging technology is, but have opinions about it. Constant learning is valued.

Interestingly, my father has always told me, “The day I stop learning is when it’s time to die.” I’ve always lived by that mantra.

So, how do you pull off constant learning in your normal work week?

You carve out time from your day and dedicate it to learning. Even 30 minutes a day is enough to dive into something. Remember what I said about constraints? If you put constraints on your learning time, you tend to be more focused in what you want to accomplish, and spend your time more wisely.

Thirty minutes may not seem like a lot. But in that amount of time, I was able to build my first Node middleware, my first web component, my first React component, a script to mine data from GitHub, a chatbot in coffeescript. Thirty minutes is enough time to decide whether you want to continue with a technology, or move on.

What about after work?

Without work consuming my free time, I found I suddenly had a lot of it. What was I supposed to do if I wasn’t working?

I’ve brewed beer off and on for over 20 years; with more free time, I started brewing again. I took the time to better understand the craft, and to document how I brew, as well as examine the results so I can improve, and brew beer I actually want to drink.

When I was in my twenties, I used a bicycle as my primary mode of transportation. I missed it, so I acquired a new bike, and started biking local trails regularly, when the weather permitted.

Also in my twenties, I trained in both T’ai Chi Chuan and Aikido; these past few years, I discovered I missed moving my body as I sat at my desk day in and day out. Around 18 months ago, I started training in Hapkido, which taught me new ways to move.

We were finally able to buy a house six years ago, and with a house comes both maintenance as well as a desire to make it your own. This past summer, we tore out our aging and rotting patio deck and built a new one. Ourselves. And passed the city building inspection!

Consistently, I come back to work each week refreshed and ready to tackle my projects. Consistently, I find I have new ideas and approaches to try as I start the day.

Those extracurricular projects force your brain to work in different ways, and lead you to solutions you would not have come to with your eyes glued to your monitor.

Fin

I love what I do for a living. Professional problem solving? I’m in! Working with people from around the world? Hold my coffee! Helping people help other people with technology I maintain? Sublime!

But, believe it or not, folks, 9 to 5 is not the sign of a lazy or unenthusiastic developer. It may be a sign of somebody who knows that the value of their craft is how they work within constraints, including the most unforgiving constraint of all: time.

What will you do different this year?

My Journey Into The PHP Community

Today I’m taking a moment to reflect on my experience so far as a software developer and the communities that helped me develop myself in many ways. To admit from the start, this was not the journey I planned to take on, yet it never ceases to amaze me how drastically it changed me and my life overall.

I was walking on an unrelated path as a classical ballet dancer and a pianist mainly practising Bach and Rachmaninoff every morning and night, getting ready for the end of year recitals and somehow also managing to score top notes on all my classes. Sadly due to an accident I suddenly had to give up on my career as a ballet dancer after 12 years. At that time my mother, who was in the first team to install computers into banks and hotels in our home town took me with her while she was working. I spent a lot of time in her workplace where I enjoyed reading her BASIC and COBOL notes and playing with her collection of games on floppy disks.

Eventually I accepted the fact that I had to switch careers and aspired to explore science in all its branches that interested me. Maths, physics and computer science always amazed me so I started building a collection of papers on certain theories and researches in different areas of physics, collected computer science books and wrote my very first working code, an image gallery that served my collection of satellite images and other awesome pieces of astrophotography from a local folder.

Later on, I won a scholarship to study software engineering at a local university. We started with learning Scheme and C, yet the pace of the programme was extremely slow. In the same year I had to leave the school and I had to continue studying auto-didactically and I kind of had to forge my own path at that point.

When you are working on something on your own, or you are on a journey towards a goal, you are prone to making a lot of mistakes. You might fear facing problems that you won’t be able to solve by yourself. You may think that you will never reach to the point you aim for.

The period of time when I decided to take on programming as a profession and picked up a new language to learn, crossed the time I discovered Stack Overflow and specially The PHP Room a.k.a Room-11. (o/) The people in that chat room were (and always are) working on their own projects and after some time I started to get involved in projects of some of the members.

One of these projects was a chatbot they were writing called Jeeves. I sent my first PR to that project and then many others followed, which was a scary thing to do for me, because I had never publicly shared my code nor had I interacted with people on GitHub before and I was afraid of making mistakes. But many regulars in the chat room helped me and talked me through the process and basically just “forced” me at some point to send in the PR saying that it is okay to make mistakes.

After that I started feeling more confident. I kept hanging around in there and followed up with the developments of php-src and amphp libraries. I also got to contribute to different projects all the while learning from the people around me. Not only from people working on projects written in PHP, but also from people actually working on the PHP source code (php-src). I even ended up submitting two PRs to php-src!

Thanks a ton to Chris, Pieter, Gordon, Niklas, Bob, Aaron, Paul, Joe, Nikita and all other R11 regulars for everything they made me learn over the past few years :-)

This year I also went to my first PHP conference (PHPKonf). When I arrived at the conference I really didn’t know what to expect or what was expected from me. But while attending the conference I met Juliette, I got to take her quiz with familiar faces and over the speakers dinner I enjoyed getting to know people from the community having nice discussions ranging from different cultures to the past and future of PHP. Learning from the talks aside, I had the chance to enjoy exploring notable parts of the city along with Andreas, Rob, Patrik, Holger, Rafael, Tiscilla, Emir and Rasmus and eventually came to realization that sharing is an indulging part of a community. Thanks to everyone who made this event such a great experience.

After the conference I kept in touch with Juliette and connected with @Mark_Baker, who recently invited me to PHP Benelux on a PHPDiversity scholarship. (Thank you both!) I hope I can make it there :-)

I’m very grateful to be connected with all members of the PHP community I met so far that I would otherwise never get to know.

To all those who take part in such communities either online or at events, who share the knowledge and experience and who contribute, I wish you all a happy and productive year!

The power of language

He’s sweet, but he’s just not good with other dogs

That used to be the description I gave to people when it came to our 3-year-old dog Baloo.

My wife and I both have a lot of experience with big dogs. I grew up with two Dobermann, and she owned a Rottweiler when we met. So while dogs are still animals and the teeth occasionally come out, neither of us feared those moments and knew how to handle them. But Baloo is different. Despite puppy training and additional guidance, at some point we realized that we could not predict his behavior with other dogs and trust was lost. He stays on the leash at all times when we’re outside.

Depressed Baloo.

When a dog is aggressive towards almost every other dog you meet, that has a greater impact on your day-to-day life than you realize. Like finding a kennel when you want to go on holiday, and not stressing out all the time if something bad has happened. Or asking someone else to walk him, when you want to go to a theme-park for an entire day. Or having our young kids bring friends over to play after school.

Or even something as simple as where, when and how you walk the dog. I started taking the less-used routes. I started to walk on less-popular hours. And most importantly, I started to avoid other dogs completely – crossing the street whenever I encountered one.

And I would say “he’s sweet, but he’s just not good with other dogs”…

When you feel your world and your options getting smaller and smaller, something is wrong. And both my wife and I experienced less joy from being dog owners than we would like to. So we decided to change what was happening. The simplest thing we changed, that had the most surprising effect on our daily lives, was the way we talked about the incidents.

So Baloo is now a dog still learning how to behave with other dogs, and whenever something happens, it’s a learning moment.

Where before we would say “he tried to attack another one today” or “he really can’t stand that beagle on the corner”, we would now say “I had another opportunity to correct him today”, or “I got really close to the beagle, and while his hair was standing up, he did not try to lunge this time”.

And the weirdest thing happened. In a few days time, I realized I was actively seeking out other dogs on the street. Not because everything was going so well, his behavior really didn’t change much in that short period of time (didn’t I mention this is not a success story? Sorry about that…). But because I wanted to have more “learning moments”. The dread of having to explain my dogs behavior made place for optimism in explaining he was still learning and that the incident was actually helping him get better.

There’s hope for me yet!

We’ve noticed changes in others as well. The neighbor from across the street has a lovely dog that reacted to Baloo quite strongly, and got a strong reaction back. We’ve gotten to the point where they can both walk down the street without acknowledging each other, which is a great victory. But our change in attitude (and language) brought some confidence to our neighbor as well. He expected positive change because we allowed the option of improvement in our description of the situation.

You see “he’s just not good with other dogs” is a definitive statement. It places no responsibility on the issuer of the statement (me) and leaves no possibility of change. So just by changing the vocabulary used to describe a situation, we have changed our own experience of the same situation. I’ve always been a fan of ways to trick the mind. For example, you can improve your share of happy thoughts by sitting up straight.

Now I know this is just a story about some guy and his dog. But I think I’ve learned a few things that might come in handy at work:

Change the tone

Recognize definitive language (from you as well as others) and gently replace it with alternatives that leave options of success open. A client might come in with last-minute changes and the response could be “Wow, they never learn”. But perhaps “they repeated an earlier mistake” would be better. I don’t know about you, but my mind sees the second version as a fixable problem and tries to find solutions.

Celebrate small improvements

I also found that new descriptions left room to celebrate even the smallest improvement. “I had to correct Baloo, but he shook off the aggression faster than before” is not something I would have even mentioned (or noticed?) if it was just another incident. But now, those small improvements where noticed, shared between us and grew to become bigger victories. The same goes in a team. Don’t save the celebrations for the large accomplishments, but make small goals explicit and enjoy the moment that it happens. Especially in a large legacy big-ball-of-mud project those small victories start to add up to a general feeling of progress within a team.

You have the power!

Most importantly, I realized that your language is always within your own power to change. So even if you feel like there is nothing you can do, you can do something. Namely, describing the situation in a way that leaves the option for success open.

Because if the shape of your body can unconsciously influence the mind, the shape of your language might do the same, right?

Woof.

From PHP to Python and Beyond

To be perfectly honest, I have never had a professional PHP job.

Whilst most of my current personal projects are made with PHP and Laravel, I work as a Python developer in London mostly dealing with data ETL and analytical modelling. I love both languages, but I found myself doing completely different things with these two languages. With PHP, I do only web based applications; and with Python, I only deal with data. Come to think of it, except for playing with Flask, I have actually never made a proper web app with Python.

For the longest time, PHP and Laravel has been a hobby of mine. Especially when I was still in my last job, when I didn’t have nearly enough responsibility as I do now. All I was doing was writing scripts for web scraping and data extraction from external APIs, and the most I’d do was generating PDF reports.

At the time I was able to spend all my spare time focusing on my personal projects. At the same time, I felt really lonely, neither did I have anybody to talk about PHP with, nor did I know many people in the UK at all (I moved here from the US just a little over two years ago).

The Community

I had heard of PHP communities at one point, but I was hesitant to join, because I thought I had to at least be a professional to be a part of any communities. The hesitation didn’t stop me from trying, I was excited to have found PHPWomen slack channel, and I knew it would have been the perfect place for me to make some friends.

Not only did I make friends through PHPWomen, I was also invited to PHPSC on scholarship (Thank you so much @michellesanver !). That was the first ever conference I had been to, and it really gave me the chance to see how the PHP community is like: diverse, accepting, supportive and friendly.

Confidence had been one of my personal issues, I’d always be worried whether my skill level is good enough. Being around people at the conference had really made me feel comfortable and less insecure. Let’s be completely honest here, in the tech industry everyone is constantly learning and improving our skills. The concept of being good enough or not good enough probably doesn’t apply here. And this is what I have learned from the community.

What Happened After

Just a month after the conference, I got transferred to our company’s Data Labs department, where we process large amount of data from various different clients every single day. I got a lot more involved with developing in Python than I had ever been, and at the same time, I needed to constantly up my skill on not only Python, but all the other technologies I had not used before.

As I spend more and more of my free time learning and improving my skillsets relevant to my job, I got less and less involved with PHP. Because of that, I had distanced myself from the community as well.

Just when I was feeling a bit lonely again, I received a message on twitter from @heiglandreas asking if I could write a post for ’24 Days In December’. I was thrilled about this, but at the same time I was wondering if I deserved this honor. Especially when I haven’t been involved for months, and I haven’t contributed much back to the community.

“Would I be out of place?”

“Shouldn’t someone more involved be on the blog instead of me?”

All these thoughts came to me. After reading @grmpyprogrammer’s article, I felt much relieved that I’m not alone.

What The Future Holds

Although nobody knows what is going to happen in the future. I’m probably going to continue developing in Python professionally. Even though I might not have much time writing PHP code anymore, I will also continue involving myself in the PHP community, a place that I can call home. What’s most important is the friendship.

Merry Christmas everyone!

Giving back to PHP

PHP has a tremendous community behind it, that community consists of you and me, and millions of others that help promote PHP by continuing to develop awesome applications that power some of the biggest websites in the world, but within this community exists a relatively small community that actively develops PHP, such as making it run on your favorite platform or making your favorite extensions compile and work or even keeps the documentation up-to-date. Today I want to dwell into that community, and perhaps giving you flavor enough to contribute back to PHP with code.

Infrastructure

Before we go into deep, let’s take a look at the infrastructure that powers our favorite language and some of the technologies that is being used behind the scenes.

Technology

PHP is written in C. C89 to be more exact, while this is an old standard, PHP strives to be able to be compiled out of the box on virtually any operating system out there, even your PlayStation! This naturally means that all extensions are also written in C, however it is possible to write extensions in C++.

The PHP Documentation is written in Docbook XML, which is as the name says, an XML based documentation system. The PHP Project have developed its own Docbook rendering system named PhD (PHP Docbook Renderer), written entirely in PHP that can render Docbook XML based projects!

Servers

The entire PHP.net website (including mirrors and systems) are spread across about 100 servers, where almost 90% is mirrors hosting the documentation in 58 countries, so the manual is always available to a location near you, no matter where you are in the world!

Besides documentation mirrors, PHP.net also hosts both an SVN and Git repository (The Github repository is a mirror of PHP.net). Nowadays almost every project within the PHP umbrella are developed under Git, however the PHP Documentation and a few PECL extensions are still hosted under SVN.

Communication

All official communication is done by mailing lists, the PHP project hosts a ton of mailing lists (which is viewable online), this is where all discussions regarding features (RFCs) and other technical details are exchanged. This is naturally, where the notorious internals mailing list is hosted. Subscribing to a mailing list can be done by sending an empty email to <name>-subscribe@lists.php.net (e.g. internals-subscribe@lists.php.net) or by using the web interface for popular lists. The mailing list software used is ezmlm (which of course is the reason why PHP have the ezmlm_hash() function in the standard library).

There are also 2 common IRC channels, where you can find some members of the PHP Project, both of these are hosted on EFNet under the #php.doc and #php.pecl channels, whereas #php.pecl is primarily internals.

Other resources

Like any other large project, the PHP project also hosts a bug tracker where all bugs should be filed, as well as simple feature requests (more on that in the next paragraph). The bug tracker also hosts bugs for most extensions published at PECL, including the PHP.net website and other system related issues.

Lastly, there is also a wiki, this is where RFCs are described and voted upon. Larger change sets, such as new language features should have an accompanying RFC that explains the feature in great details, its typical that all RFCs have an implementation patch attached. Smaller features, for example “Add the latest cURL constants”, are small and self explanatory enough to be filed in the bug tracker.

PHP needs you!

Like any other large open source project, PHP is always in need of creative minds that are interested in making PHP even better. You don’t need to be able to do C or understand the massive Docbook XML DTD to join, all you need is a positive attitude and be able to read and write PHP (but you already know this!).

First I would suggest you to join the mailing lists, especially internals (medium volume) and phpdoc (if you are interested in the documentation) and take part of the discussions, or at least keep yourself familiar with the day to day discussions about PHP.

If you got 5 or 10 minutes to kill while on a form of public transportation, then helping to review pull requests (by testing, reading code and commenting) is a great way to begin the wonderous journey into contributing to the PHP project. The same goes for bugs, and there is even a nifty feature to find a random, open bug report if you feel adventurous: bugs.php.net/random.

If you got a little more time than that, then writing tests to help coverage is also an area that is very easy for new contributors who wish to contribute to the PHP project

The “Unthankful” job is more “Thankful” than you might think

The title above is of course very subjective, as we all have each our agendas, and goals here in life. However here is a small personal anecdote, on why I keep contributing, and why I feel contributing many thankless hours, becomes some of the most thankful in the end:

I myself would never in a thousand years, have thought that I would contributing to PHP (even less thinking about being a programmer in the first place). I got a book back in 2002 from my mom (I was only 13 at the time) about PHP. It was some of a read, but I got through it and I was able to enhance my already poor understanding of PHP into something more structural, and while reading about user input through $_POST ($HTTP_POST_VARS), the book was talking about register_globals, which would let PHP auto populate the global scope with variables from the $_POST array. I never really thought more about it back then, but 8 years after, I would think back to this moment, as I would be the one to remove this feature from PHP. However for me personally, this was where I began to really see the thankfulness of being a contributor, as it helped millions world wide create more productive applications even easier, and that sense of accomplishment is making all those unthankful hours spend culminated into moments like this.

Final words

Like I said above, this is very subjective topic as everyone look at how we are attributed different, but for me, looking at other passengers on the bus or the train (who are glued to their smartphones), and knowing that there is a good chance that one of them is using an app or webservice with a PHP backend, meaning that somewhere they are using code I helped write, is a very accomplished feeling of being a part of an amazing community like PHP.

I hope this blog post gave you some insight to the PHP project, and perhaps some interest to begin contributing to PHP. Perhaps 2018 is the year where we will welcome YOU to the development team!

Lessons learnt from running a conference

For those who don’t know me, I spent three years with a team of fantastic individuals organising an annual PHP conference – PHP South Coast, in the sunny seaside city of Portsmouth, UK. This was a very rewarding experience for me, and paired with my unexpected career in speaking, I’ve been lucky enough to visit many conferences. It’s been very fulfilling, quite an adventure, and way out my comfort zone. Whilst I can’t speak for the rest of the team, I had several goals in mind when starting the conference.

Firstly, to provide a platform and opportunity for new speakers to be able to speak at a real conference. I spent a lot of time trying to start getting accepted to conferences. I followed all the advice out there as best I could. I visited user groups up and down the United Kingdom – even a trip to Manchester and back to Portsmouth where I used to live in one evening, which in good traffic is about a 4 hour drive. I saw it as an investment, and it’s paid off. Right now I’m sat in a hotel in Vancouver, ready to give three talks at ConFoo. I’ve visited countries I’ve never been to – South Africa, Bulgaria, Czech Republic, Italy, Romania, Ukraine and more. I’ve been lucky, but I’ve also put in a lot of effort to try and build my speaker profile. I wanted to give other budding speakers the same chance. For this goal, I’m proud to say we achieved it – around 40% of our speakers year on year were “new and upcoming” speakers, most of whom had never spoken at a conference. The lesson learnt? It is possible for new speakers to get accepted. The advice put out there works, but you need to work at it. Speak at user groups and get experience – don’t just submit to conferences having never spoken anywhere and expect to be accepted (although, it might happen!).

Another personal goal when organising PHP South Coast was to bring awesome speakers to the south at an affordable ticket price. There was already PHP North West and PHP UK conferences, and both these conferences really were inspirational for me; I like to think of it as a complimentary homage to the conferences. With the new speakers with exciting new proposals, and also some “big names” in the speaking circuit, I feel we were able to put on what I feel was an interesting selection of great, diverse content. We budgeted hard – really hard – to keep ticket prices as low as possible. The highest ticket price in the last year was just £130 – which is a fraction of many conferences with similar calibre of content. To make this possible, we had to skimp on many things. Each year there was only one or two speakers we could afford to pay for travel for. The catering was the most expensive part of the conference, and even then we pushed the catering company hard to bring the price down – in the end that cost us a smidge under £10,000 – just for the food. We didn’t print t-shirts, as much as we wanted to, but making t-shirts gets expensive. We discussed every year whether we should, but we agreed it was a cost we couldn’t afford without raising ticket prices to account for that. The lesson learnt here was that it is possible to keep ticket prices down, but there are some things that will suffer for it. It’s a trade-off, because money is not unlimited. And of course, our sponsors were amazing with helping out with around half the cost of the conference. Thank you sponsors!

The first year we made a big mistake with the social. Whilst we provided board games and laser quest games, which were superbly received and we had great feedback about, the bar offering was somewhat lacklustre. We actually did this intentionally. We wanted the social to focus on networking, and having folks enjoy themselves with board games and the fast-paced laser quest games, and we wanted to take away the emphasis on alcohol at the social. So we offered a bottle bar, but the pricing was set by the caterers, and it wasn’t exactly cheap. These combined factors unfortunately meant our plan backfired, and a lot of folk left the social early to go to nearby pubs for more reasonably priced drinks. We learnt our lesson from this, and so in the second and third editions of the conference, we put money behind the bar – a token system which I feel worked much better. The socials were busier, more sociable, and those who came were able to network at the tables, enjoy a board game or two, or exhaust themselves running around shooting laser guns at each other. We put an extra twist on the bar too. The conference was held in the Portsmouth Historic Dockyard, and so as a nod to the Royal Navy traditions, we gave away a tot of rum to those who wanted it; this is a tradition known as “splice the mainbrace”, so it fit in nicely with the theme of the conference.

Finally, another lesson learnt is that having a code of conduct is an absolute necessity for an event such as PHP South Coast, especially when serving alcohol. I am so thankful to say that we didn’t have any serious incidents that we were made aware of, and although there were a couple of minor complaints, they were dealt with appropriately. The couple of issues were things like inappropriate comments, but were sorted swiftly. I wanted to make everyone feel welcome and comfortable at PHP South Coast, so I made sure we had the code of conduct clearly in place, and although we used the standard PyCon template, we chose that because it details the procedure for handling incidents.

There are many other things I’ve learnt from running this conference. I’ve improved myself as well, and hopefully I’ve helped others improve. It was an incredible experience for me, and seeing all the great feedback made it all worthwhile. I admit, I was a little sad to end it, but maybe one day someone will take over the mantle, whether resurrecting the conference, or maybe something new, but I feel we did the community a great service for the short, but sweet, run of PHP South Coast conferences.

Have a silent night, calm days and plan to rest

The end of 2017 is near and the holidays are right in front of us, making everyone slowly coming down. It’s like December is the after work time of the year. At least for those who are celebrating the new year in January 1st., but even when the new year is happening at another date, we look back at the year to see what we have accomplished. Some are evaluating the past year with some kind of scoring system to see if it was a good, bad, happy or sad year. As developer, we might even look back to see how far we went in our own progress and if we gained something at our jobs making this year worthwhile. Yes, I’m talking about the progress of a career.

We work hard on ourselves and at the job every day of the year, gain new knowledge, master some challenging problems or save company time and money by just helping colleagues or using a new code quality tool. As young developers, we see how a senior developer is doing a lot of work in just a small fraction of time while we feel uneasy or even dumb compared to them. It’s like all problems are a piece of cake to them and they seem to have an answer to everything, being dependable and the first team member who you can ask questions. If anything goes wrong, seniors take you “by the hand” and the cause of the problem vanishes into nothing. Some may even be annoyed by them. Still, at the end of the year we take a look at ourselves and realize that we didn’t come close enough to what they are and what they know. What a bummer.

As seniors we compare ourselves to other seniors, friends or even some well known names of communities and conferences and may think, that we still stuck at the same spot like last year. Maybe others got their promotions or worked successfully on an important project making them look like they rose one step closer to… Yeah, to whatever goal they aim for.

All in all, we get the feeling to stuck in our career, but what does the word “career” mean? If we compare ourselves with others, it must be the same thing for everyone and has to be accomplished in the same amount of time. Some people have to work harder than others, forcing themselves step by step toward their goals and witness that others might be much faster, giving the impression to be more competent in the same matters. So we force ourselves to work much harder, ignoring that our body doesn’t work like a machine, while we go up the stairs of our career goals. Every stair tread has the same size but for a tired body and mind, climbing the very same steps become a hurdle. Your battery need to be refilled, but doing so will cost you time. Time you need to invest into your career.

Calm down! You are chasing the goals of others, not your own. Comparing yourself to others means to have the same goals as them, but this is rarely the case. You’re not perfect and the same goes for every other person too. You only see the current career-state of others and not how they reached their goals. Even if you know about previous steps in their progress, you will never grasp how much work and effort were put into reaching a new goal. Neither do you know if all the work led to the expected results or if there even was failure before that. You have to find your own way and that path in your career has to have some silent moments and times of rest.

Resting isn’t just about health

Wasting time by relaxing while others are already planning their next career steps? Stereotype software developers are working until night time to solve problems or bugs, but real life developers should know how important rest is to us. Sometimes it just takes some sleep to solve big problems and in the aftermath, the problem, that was devouring the time of last night, isn’t looking like a big deal anymore. A good rest keeps your mind clear and will make yourself more creative in what you do. This can even be a break for a few days, a short vacation or just a good time at home. You’re not part of a car race where the fastest one is going to be the winner nor is there only just one path for everybody.

As you may have noticed, I don’t see career as a name for rising to the next hierarchy level where you have to be in lead. I even left a lead-position to become more involved in development again. Did I do a step back in my career? No, because I still make progress and thanks to the PHP community more than ever. I know when I have the strength to spend more time on something (like the mentioned night time coding) and I know when I need to settle down and take it slower, maybe even in form of a timeout. This is an important soft skill to learn on your path to whatever your next goal is. Use this season to find your way for your career and don’t forget to take some rest from time to time.