Deux

Deux

Today is a special one for me: It marks my second anniversary as part of the WordPress community. It was this day two years ago that I was on a plane to Sevilla, excited to attend my first ever WordCamp, WordCamp Europe 2015. It has been an incredible journey for me since then, and I’d like to process and share my experience of what has happened in the past year (I also have posts up for that very first WordCamp and for the recap of my first year).

Core Contributions

A year ago, I was pretty much regularly contributing to WordPress core, particularly to the multisite component for which I attended weekly meetings, wrote summaries, occasionally jumped in to run a meeting when Jeremy, the component lead, was absent, and of course I discussed tickets and worked on patches. Furthermore I worked on other small features and enhancements that made it into version 4.6, such as introducing the WP_Term_Query class and the wp_list_sort() function (on a sidenote, huge props to Dominik, that version’s release lead, for pushing regular meeting posts during that release, that was one of my favorites in our workflow). I was very happy to see that at the moment when WordPress 4.6 was released – the day which I “celebrated” it at a Limp Bizkit concert – I was named a “Recent Rockstar” for that release. Whatever a “Recent Rockstar” is, it was great to get that recognition. That was in August 2016.

Of course I contributed further, diving deeper into some multisite projects, particularly introducing network roles (just like regular user roles, but for a multisite network scope), which we discussed for some time in fall 2016 and planned to work on after the 4.7 release (if you’re interested, I still have a GitHub repo with a possible implementation available, for testing only) – this project ended up being on hold after the new focus-driven release cycles were announced at the State of the Word 2016, but it was a valuable lesson which exposed the WordPress Capabilities API to me at a deeper level, another area which I’m now very interested in – and who knows, we are probably going to continue pursuing the network roles project at some point.

But now I skipped what was the most important milestone for me so far: It was the final night before my deadline for handing in my Bachelor thesis. I had already printed it, and things were ready for the next day, but I still seemed to be a little too nervous and had a hard time falling asleep that night. Giving up trying to fall asleep, at about 2:00am I looked at my phone, just to see a Slack ping by Gary Pendergast:

Hi Felix! I wanted to let you know, you’ve been recommended by several folks to become a core committer.

For me that came so much out of nothing, I couldn’t believe to that. Super-excited I responded to him, he explained the upcoming processes in a bit more detail, and that was basically it. Of course at that point, I could bury my thoughts of ever falling asleep that night, but that didn’t matter now. I read some more of the core handbook, did some client work, in the morning took the bus to the university to hand in my thesis and then had a great day of sleep.

I ended up doing my first commit at the WordCamp US 2016 contributor day, and what I really liked about it was that at the same time I gave someone else their first props, Page, a WordPress developer from Mexico, who I finally managed to meet in person at this year’s WordCamp Europe.
I slowly got used to my responsibility as a committer, of course made some mistakes occasionally (I broke core tests once, yay!), but after a few weeks I felt comfortable doing it – a special thanks to my committer mentor Jeremy. The most significant change for me that came with the responsibility of being a committer is that I’m now much more hesitant with applying a change than before. Before I tended too be very quick, sometimes nudging people with commit access and wondering why things would take so long. It all made perfect sense now, actually from the first time I committed. The processes in WordPress are time-consuming and some technical parts of it surely can be improved, but as of now I have realized that being deliberately slow in decision-making makes sense for a project as big as WordPress. Letting ideas sink in to wait for further opinions (opinions of others who are yet to review the proposal or even your own opinions coming up a few days or weeks later) ensures (or at least increases the probability) that the end results are polished as much as they need to be. Last but not least, I’d like to dedicate another special thanks to Konstantin, who led the contributor day at WCEU 2015, which I up to this day reference as the best core contributor day I’ve attended so far. Not because it was my first one, but because of how motivating the projects were new people like me had to work on. It might have been very much that particular feeling of making a difference that got me excited enough to continue contributing.

My first commit

The past few months I spent on continuing multisite work of course, where we have been discussing ideas on how to properly implement REST API endpoints for the multisite objects. I’m very grateful being part of this team now, among great people most of whom, as of now, I was fortunately able to meet in person at least once and who I, although that may seem a bit strange considering how rarely we meet, certainly call friends.

Another project I’ve been heavily invested with is improving the ancient Settings API in WordPress, together with several people from the accessibility and design teams. Our main goal is to have better accessibility for the settings pages as well as an easier-to-use API (which of course needs to stay backward-compatible, as usually). Despite this not being a focus for this year, we’re convinced that it makes sense to work on this now, especially since it’s a big project which requires a careful investigation of the current behavior as well as long discussions and many opinions on how to iterate on the current API. If you’re interested in this project, we have a very early prototype ready for testing that mostly focuses on the accessibility part of things (which includes the very significant change of getting rid of the old HTML table structure and switching from a two-column to a one-column layout for all settings pages).

There are still other small things here or there in core, which I wanna work on. Apart from multisite, I’m particularly interested in introducing more granular capabilities, an effort for which John Blackbourn has opened several tickets, and a few days ago I opened my first pull request to Gutenberg, the new revolutionary editor, which I’m actually using right now to write this post (OMG I USE IT IN PRODUCTION). Last but not least: If I ever have more time to spend on core, I will certainly spend it on the REST API.

Me writing a post in Gutenberg
Me writing this post in Gutenberg

WordCamps (and other events)

I attended several WordCamps in my first year, but it has escalated since then. Since WordCamp Europe 2016, I attended WordCamp Frankfurt, WordCamp Milano, WordCamp Cologne and WordCamp US in 2016. Then I took a little break, but especially the past few months have been crazy. I travelled to one WordCamp every month essentially, so I attended WordCamp London in March, WordCamp Torino in April, WordCamp Bilbao in May and finally WordCamp Europe in June just last week.

For WordCamp Cologne I was also part of the organizing team which was a nice experience – I have to admit though that I learned that organizing a WordCamp is an entirely different discipline which I didn’t enjoy as much. Even more grateful that makes me towards all the lovely people who make the numerous WordCamps and other WordPress events around the world happen – you rock! Without WordCamps I would not be where I am now, instead I would still be sitting in my dark basement, not talking to anyone about what I do. Well, that’s not entirely true, but I honestly didn’t have any WordPress people before to share with what I do or to learn from on a deeper level. Back to organizing, I am still in the organizing team for our monthly WordPress meetup in Cologne, and I’m also part of the team that started the WordPress meetup in Dusseldorf last September, which has gotten more and more attendees, and we’re very satisfied with how it has evolved. Organizing a meetup is obviously not as much work as organizing a WordCamp or other big event, so this is something that I continuously like helping with to play my small part there.

So what’s next with events? Actually, for a while I will be absent from WordCamps, particularly because the past few months have been so intense. In addition, I’m a summer person, and I’m usually good spending most of the summer in my home area – I can still travel to better places when the weather in my home town sucks. I will still be doing some trips this summer, for instance to travel to a festival or a concert, but that’s mostly it. I would have loved to attend WordCamp Utrecht and WordCamp Bern this year, but there are other things colliding with both of these two, so I won’t be able to make it. After that though, things will finally get crazy again, with more travel: I have been planning to do a longer trip through the south of the US (where I’ve never been before) since I knew that this year’s WordCamp US would take place in Nashville. Once I learned about the exciting Camp Press event, I had my location to start from. So I’ll be flying to Oklahoma in late September to go camping with fellow WordPress people, as always some who I look forward to meet and others who I look forward to see again. It’s also nice that Bernard decided to come along there as well. Afterwards I’ll be “digital-nomading” a bit, through Texas, Louisiana, Alabama and eventually Tennessee for Nashville, before I head back home. During the trip I’m looking forward to attend local US WordCamps for the first time, WordCamp San Antonio and WordCamp Austin are currently on my schedule, as well as meeting some fellow WordPress people in their local areas.

WordCamp Europe 2017

I noticed I haven’t talked much about this year’s WordCamp Europe before – but why would I? It should be obvious that it has been a blast! I took an Airbnb with Sven, Thomas and Matthias from the German community, and we got to Paris on Monday before the WordCamp, knowing several exhausting days would be ahead of us. It was the first time that I had been invited to the WordPress Community Summit, an event that happens about once a year, where people from all the distinct areas that make WordPress what it is come together to discuss topics that matter for the project’s future – both in their own teams as well as more collaboratively among completely different groups. We had many great discussions on both days there, and it was very remarkable to me how much overlap there is in some areas – which you probably wouldn’t expect between things like core, community or design for example. The major takeaway from it for me personally was a confirmation of how much all of us still need to improve the onboarding processes for new contributors on their respective teams. Investigating new ways and collaborating with the other teams is my main objective to work on for my third year. It would be amazing to have regular meetings for such a working group that should if possible consist of 1-2 members from each WordPress team. Some of us discussed starting such a group at the Community Summit – let’s see where this goes, I’m positive we’re going to get the train rollin!

Of course we also had a great time eating out and chatting apart from the community summit:

WordCamp Europe itself started with the contributor day this time where I, alongside Pascal and Peter, was leading the core team. I also had a workshop at the end of the day that aimed at showing ways to continue contributing after the initial guided contributor day work (the workshop ended up having way to much content, which embarasses me a little, but I hope to learn from it and make it up next time). We got several people started with their setup and even managed for at least two people to go through the entire workflow of opening a ticket, creating a patch and having it committed the same day. That was satisfying for us, but honestly it is still a low number. Circling back to the onboarding process, I hope that over time we can lower the barriers and figure out ways to make contributing to core easier and more rewarding from the beginning on.

In the evening of that day I went to the speaker’s dinner where I had a good time talking to new and old people from around the world. I met a few people from the WCEU organizing team, and spent some time talking an getting an update on folks I hadn’t seen for a while (for some it was the first time since WordCamp Europe 2016!). I had lots of fun playing foosball with Dominik, Pascal and Ibon, all of whom I had seen just a month ago at WordCamp Bilbao: The idea was that whichever team would lose would have to drink Calimocho which meant that Ibon would have a great outcome regardless (he is from Spain, where Calimocho, which is coke plus wine, is a popular drink). As it got later, a group of a few, led by two particular crazy party people I won’t name (who I met a little earlier that night) got increasingly funny influenced by all the free booze that was available. Let me say that it was fun standing in their circle for a bit, while being nowhere near at their wastedness level.

The next morning it was time for the actual WordCamp. Before the opening remarks I wandered through the location a bit (props to the organizers – this was my favorite WCEU location so far) to say hi to some people and meet a few new ones. My first session to attend this morning was Alain’s talk about the WordPress core bootstrapping process – it his incredible to me how he can take apart some of the most complex bits and pieces of WordPress and still manage to explain them so that even newbies can understand the ideas behind it. I’m very excited for where his bootstrap project will lead us. Afterwards I remained in the building to see a very informative talk on performance and its related metrics and tools by Otto Kekäläinen, and shortly before lunch I attended Mark Jaquith’s talk on security, which was rather general, but emphasized and explained in a great way how all of our development should be security-driven.
During lunch break I met up with some fellow multisite people, Jon, Jonny and Stephane from Automattic to talk about some of our recent efforts in person and to brainstorm ideas for improving the organization and workflows in the component. This (plus the next day’s follow-up meeting) was a really beneficial conversation that’s already showing the first results internally. In the afternoon I spent a lot of time in the hallway track, first continuing the previous conversation, then talking to further people. I made sure to attend K. Adam’s session on data visualization with the REST API though.

The evening of that day Steven, Jon, Jonny and I went to the WP Engine gathering where we shared some Ahoi-Brause (a weird tradition that Robert, thanks to my obsession with it, introduced at WordCamp US 2016). At the venue we met several other old faces, such as folks from Automattic, Inpsyde plus other freelancers or agency people. The two crazy party people from the night before were around as well and at some point convinced me and a few others to join them, which ended up causing some of us to end up in a karaoke place late at night and me having a big hangover the next morning. It was a very fun night though, both the sober and the not-so-sober parts of it. I felt like that had been the after-party.

Having come home so late caused me to miss both Nacin’s and Boone’s sessions in the morning, which was a bummer for me. I watched both on WordPress.tv after the WordCamp, and especially Boone’s talk was amazing, trying to clear possible misunderstandings of the WordPress slogan “Code is Poetry” by comparing traits of a developer and their code with those of a poet and their poetry. Later during the WordCamp day I attended the lightning sessions on development all of which had useful takeaways for me, and then it was time for the usual interview and Q&A with Matt, which didn’t really bring up any surprises other than the important announcement that the new Gutenberg editor was finally available for testing in the plugin directory.

The final part of WCEU was the after party, with a neat 30s theme. While I brought my suit to Vienna last year, this time it was a bit too much, so I kept wearing my common wardrobe. Nonetheless it was amazing to see how many people had dressed up in an outstanding fashion. The Yoast team was probably my personal favorite here. I had several good chats that night, with people like Chris from Awesome Motive, Omar from Yoast, several Inpsyde and required+ friends and of course the usual multisite suspects whom I had spent lots of time with already. While it was the after-party, I spent most of the night doing conversation (again, my “after party” in the other terms, was already the day before), in particular sitting on the ground outside talking to Ryan and Joe for a long time, both about WordPress, contributing and their stories. Of course we also shared an Ahoi-Brause.

Overall it was an outstanding WordCamp. I love WordCamp Europe and WordCamp US especially since you can meet and chat to so many different people – the scope is just a lot bigger. While I didn’t talk as much to some of my own folks (German that is), at the bigger WordCamps I’m especially keen on meeting new people and spending time with those I don’t see as often. I hope none of y’all Germans gets this the wrong way – but we have a lot more time to annoy each others during other, more local events. Now I’m looking forward to WordCamp US and then especially to next year’s WordCamp Europe which will take place in Belgrade – I heard their community is amazing and the people I’ve met from there certainly are!

What’s next?

As mentioned before, my main goal for the upcoming year with the WordPress community is to make a change for onboarding new contributors, alongside anyone else who participated in the related discussions at the community summit or is otherwise interested in it. As soon as there’s movement in that area, you’ll notice I’m sure!

Otherwise I’m of course continuing to focus on the multisite component of core, to hopefully be able to finish our REST API work sometime in the next few months. We’ve had thorough discussions, so I think we’re now close to knowing how to approach things. After that I’d like to focus more on the UI of multisite, migrating parts of it to the REST API as well as generally improving it at the same time – because multisite UI is incredibly complex, and I’m sure we can do better.

For my more personal plan, I still have a big client project to work on at the moment that will continue going on for a few months, but afterwards I’d like to reduce the amount of client work I do in favor of working on products, such as plugins or services. While I do the latter now to some extend, my goal has always been to do that full time. Related to that, there’s also a project that I have had in mind for a while, but haven’t really started it yet, so particularly towards the end of this year, during my travel months I will try to focus more on such projects that keep bugging me in my head. I’m also curious what the future brings in terms of work opportunities – while I enjoy being a freelancer now, I could see myself working for another company part-time at some point or trying to find ways to contribute to core more.

The past two years have been an incredible ride for me, and I can’t wait for what’s to come in the next year. The WordPress community and ecosystem has helped me get into a position where I enjoy my work on a completely different level, where my co-workers are also my friends and where I have a network of people from all around the globe to learn from and give back to – on a level that, while being professional, allows being natural and honest. For all of this and so much more, I’d like to thank you, yes YOU, and everyone else in the WordPress community!

Leave a Reply

Your email address will not be published. Required fields are marked *