Navigating the Digital Seas of a Top WordPress Agency with Niels de Blaauw

Episode 18 November 02, 2023 01:02:55
Navigating the Digital Seas of a Top WordPress Agency with Niels de Blaauw
Within WordPress
Navigating the Digital Seas of a Top WordPress Agency with Niels de Blaauw

Nov 02 2023 | 01:02:55

/

Show Notes

In today's electrifying episode of Within WordPress, I, Remkus, your ever-curious host, delve into the fascinating world of digital media and WordPress with the brilliant Niels de Blaauw. Niels, a seasoned expert in the field, unravels his wealth of knowledge and experiences with infectious enthusiasm. As we navigate through the conversation, we dissect the intricacies of WordPress's latest functionalities. We don’t just skim the surface; we dive deep. The block editor, full-site editing, and translation capabilities come under our scrutiny. Niels shares his personal anecdotes and insights as the CTO, shedding light on the highs and lows of the company's growth journey. Switching gears, we tackle the crucial topic of website performance. Here, we agree unanimously: performance is paramount. Niels imparts practical wisdom on achieving that elusive balance between aesthetics and speed. We then shift our focus to the user, emphasizing the significance of a stellar UX design and the non-negotiable need for website accessibility. Drawing on our extensive experience, we dive into the turbulent waters of event organization. We dissect the challenges, stress the importance of efficient communication, and leave no stone unturned. Throughout, our banter stays light, our tone stays friendly, and our passion for WordPress shines brightly. So, whether you're a WordPress veteran or a curious newcomer, this episode packs a punch of knowledge, insights, and a good dose of witty banter. Tune in, and let's navigate the digital seas of WordPress together!

View Full Transcript

Episode Transcript

[00:00:00] Speaker A: Welcome to another edition of Within WordPress, the podcast that you like to listen to because you're learning a lot about not just WordPress, but also about the people behind. Today's guest is Niels Dublau. I know Niels for quite a while, but for most people you are entirely unknown. So probably good to start with an introduction and welcome to the pod cast. [00:00:30] Speaker B: So I'm Neil and thank you for having me. Rampus. As you said, we know each other for quite a while. I think I first met you at Worst Camp Netherlands 2016. Yeah, in utrest. I was like, there's this giant walking around in the volunteers carrots. And as you said, I'm not famous in the workplace world, but in the Dutch community I try to be visible and try to contribute. I do talk a lot at WordPress and work Camp Netherlands and I've spoken some local meetups. I've once done a session which was going to be the first one in Porto, but it was moved to an online only version. So I had a lightning talk about logging. So it was a bit disappointing to have some online audience just for that because they was really excited to be on stage at Wordcamp Europe. Didn't go that way. [00:01:48] Speaker A: Yeah, that was disappointing for a lot of people, I would say included being on the organizing team. I have zero desire to organize an online event. I don't mind being there as a presenter, but I don't enjoy being responsible for the whole online thing. And so from an organizer's standpoint, that edition was disappointing as well. [00:02:13] Speaker B: Yeah, I believe in the grand scheme of things, it was a good addition. Like, you're being confronted with a lot of changing situations. Can it go on? Can it go on? A lot of uncertainty. I think for a first online event, it was amazing. They had so many good sessions. The technical parts worked. I think everyone was like, this is something new, let's try it. So from that perspective, it was interesting, but I'm glad we had Wordwurp in essence months ago. I agree, and was much better this way. [00:03:02] Speaker A: Yeah, the interaction is quite different if you're in real life versus staring at a screen, however this works. But it's just different. It's a different energy for me. We met in 2016. I think I knew of you before that, but what I'd really like to have the listeners and viewers know is you do work within WordPress. You have, I would say, a very special role and a very nice expertise in that role. So maybe share a little bit about that, because the company you work for, work at has a very interesting profile. [00:03:56] Speaker B: Right. So I'm CGO at level, which is a bespoke WordPress agency from the Netherlands, from Rotterdam. And I've grown into this leadership role in the past year. So before that I was from a development background, programming since as long as I can remember, since I was git, like programming chat bots for IFC with my friends to HanSen at 1314 years old, trying stuff, having fun. And I got into the whole programming thing a bit by accident because for me it was just a hobby, something to have fun, something to do with friends. And I think I did it casually up until 18 years old. And then I lost interest a bit and I was looking for a job and this outsourcing company was sending me two metros, all kinds of unrelated jobs, cleaning garages and doing data entry. This kind of time, different time, yeah. And then for the elections in the Netherlands, I was caught up to count votes and I did this for the evening. And then the next day this guy who was in the outsourcing agency, he called me and he said, you can program. I said, yeah, I can. What about it? He said, why haven't we sent you to any programming jobs? Now I'm like, is it more than fun? Can you make a living of this when people want to pay for this? Yeah, I think I was 20 when I, when I got my first programming job, enrolled from there. Eventually I ended up at level, I think it's now eight years ago. And the interview was with Taco, who is the founder of Now Level. He started the company 17 years ago and the interview was drinking beer at the cafe and seeing if it's a cultural match. And if it is, then welcome aboard. Let's do this. [00:06:35] Speaker A: Which was an interesting experience that I can imagine. Yeah. [00:06:40] Speaker B: So when I started at level level, it was my first experience with professional WordPress before I set up some blogs and some hobby stuff. But first time professionally working with WordPress. And from there we developed the agency from, I think it was eight full time employees at that time to 32 now, which is pretty cool growth to experience from the first row. Now we've got a really exciting team working to make the web a bit better. We do a lot of accessibility work, we do a lot of performance work. We make bespoke themes for government, semi government, NGOs, insurance companies, all kind of clients. And yeah, it's been an exciting time and more to come. [00:07:50] Speaker A: Yeah. So I was hinting at the accessibility stuff is where level level is. I would say more than a little bit invested in. Obviously, you have, I think, one of the premier accessibility experts working for you, Rihanna Riedfeld. What I like about what Levelle level does is you're not making this an optional thing. [00:08:19] Speaker B: Yeah. [00:08:19] Speaker A: At one point, a conscious decision to do it like that, or did that sort of just roll on as things happened, or how did that. [00:08:29] Speaker B: So in the beginning, when we were selling WordPress, you had to convince people that WordPress was a platform ready for enterprise. Right. There was a lot of worries about security, about scaling, about performance, this kind of stuff. And in every sales pitch, you need to talk about why WordPress wouldn't be hacked if you do it right. And as the market learned that this isn't a big of an issue, the sales pitch changed. It's not just professional platform, but it's a community platform. It's good, it's open source, it's for everyone, by everyone. Then this sales pitch, like for everyone, by everyone, naturally leads to everyone must be able to participate. We were in this trajectory and then Rion approached us like, this is something you want to do, and we were already selling it, as you said, as an optional thing before. And then we said, it doesn't make sense to have it optional because if you don't do it, you're excluding a large part of your potential customer base. So I think in the Netherlands, it's around 15% to 20% that's either permanently or situationally disabled. Permanently. Like, everyone can imagine what this means, but there might be some situations in which you perceive a handicap. Like maybe you're in a busy train and you can't put music on, so you need to rely on subtitles. Or maybe you're walking around with a gift and you can only use one hand. Or maybe someone's screaming for attention and you can't focus on something you need to do. So there's all types of less permanent, but still very real ways why you want to focus on being as successful as possible. [00:11:21] Speaker A: That's an interesting extra distinction. I think a lot of people are not fully aware that that's also part of accessibility. I think tend to think if you have a visual impairment, maybe you're colorblind or things of that nature. Those make a lot of sense to a lot of people. And obviously that's a percentage. I don't know what the percentage is, but to also include the types of scenarios that you just highlighted is. Yeah, I mean, I was kind of aware of it, but hearing you list them up as such, that to me already is like, oh, yeah, okay, yeah, of course that's also a thing. [00:12:06] Speaker B: There's also this aspect, at least in the Netherlands. I think it's in more countries around the world of the population getting older and living longer. But at the same time, when you get older, your reading ability gets worse. Maybe you get hard of hearing, so you need a hearing aids. Maybe you get less mobile. Maybe you get less savvy with small devices. So it's not just something that happens to someone else. It happens to everyone. [00:12:41] Speaker A: It does. [00:12:42] Speaker B: Everyone eventually is going to need an accessible environment. [00:12:49] Speaker A: That's a really good one. You're building sites for government sediment, government NGOs. That used to be part of my clientele as well. I think I have a few clients left in, in that area. But what I remember from that is that they had a very strict policy that you needed to adhere to. Like, these are the standards that we want you to make use of. Were you motivated externally in that direction as well by requests from clients? Or is it the other way around that you sort of led the path and said, dear client, this is where we need to go. Let us help you get on that path and find the right way. [00:13:43] Speaker B: In 2018, it became mandatory for Dutch government entities to be accessible. And I think from 2020, they actually like, or there's penalties to governments that don't comply, right? Yeah, but before that, we were already pushing in the direction of being accessible because it makes sense from a business standpoint to do this. And also, if you're doing it in the early stages of design or creating a project, it doesn't actually cost that much extra. It's not really an extra hurdle to take. It's just part of the design requirements. The earlier you pick it up, the less expensive it becomes to make changes afterward. Like this doesn't comply or this should be changed or whatever. So for government entities, we would get these requests afterward anyway. So why not preempt them? Why not get ahead of the things you're going to have to change anyway? And like you referenced at the start, that it's not an option anymore in our product and what we're doing. But from 2025 forward, it's going to be mandatory for pretty much everyone in the European Union at least, because there's going to be European accessibility going into work, which is a standardized legislation of which guidelines ecommerce. Everyone selling or having a commercial website on the Internet should follow. Everyone has to comply in two years. There's no option anymore. [00:16:08] Speaker A: So when's the time to start learning? [00:16:12] Speaker B: Yesterday. [00:16:13] Speaker A: Exactly. That's a huge implication. I have a slight hesitance is not the word, but a little bit of a skepticism in terms of how much of this is going to be enforced. Because if we look at GDPR type. [00:16:35] Speaker B: Stuff. [00:16:37] Speaker A: That'S also European mandatory. It is mandatory, but it's not enforced. Maybe sometimes a little bit here and there, but cookies GDPR properly taken care of. It's not happening to the level that I say it instills fear into whatever person has that we know it needs to be done, but we can get away with it. So you still do. Do you expect this to work differently or how do you see that? [00:17:12] Speaker B: The Dutch government hasn't yet made any recommendations about how to enforce these laws, but I would imagine that it's going to be much the same as the JBR legislation. So I think that means it really applies to businesses making more than 2 billion a year in revenue. And the fine is up to 4% on revenue in the States that it works in. So it's more of a way to force the big players comply, which they should, because every year we do research project to the biggest e commerce shops in the Netherlands. [00:18:16] Speaker A: Yep. [00:18:17] Speaker B: Which has some Dutch brands, but also some international brands. And it's insane to me that companies like Amazon or Zalando aren't accessible. They have the resources. Easily they have the resources and still they part of what's happening. Because we've had some interviews with companies in the research project and what they're saying is there's a mismatch between different departments within the same company. So there's a marketing team or CRO team, which is running experiments. And they're finding in your experiment is that things are converting better if you're making some text light gray. But at the same time the design team is like, what are you doing? This is like a conscious problem. This is unacceptable. Right. So there's multiple interests colliding or conflicting, which causes problems for these big entities. But if you have to, you have to. [00:19:34] Speaker A: Yeah, that's an interesting tension. You outline whatever you want from a design perspective, whatever you want from a conversion perspective are not necessarily for. I mean, not for all web building companies is not always the same thing. And then you have marketing who also has a particular say on how they think things should look. It's a big mix that has a lot of different angles, that it's also technical. [00:20:10] Speaker B: That's also very often a cause of why things aren't picked up. Because if you're. [00:20:18] Speaker A: Can you give an example of what technical depth means? [00:20:22] Speaker B: Correct. [00:20:23] Speaker A: I'm assuming. Will people listening know what technical depth mean, but perhaps even explain that a little bit. [00:20:29] Speaker B: So if you're making changes to code, there's multiple ways of getting the same thing done, but there might be one route that's cheaper or easier for a quick experiment or whatever, but it gets harder to change in the long run. So it's harder to maintain this piece of code if it's written quickly or you're picking a certain framework which might stop getting updated. Or maybe you're working with CSS variables, but they're ballooning. Right. If you've ever tried this, at the start you're going to have eight colors, and at the end of a project you're going to have 40. The larger in scope a project becomes and the more shortcuts have been taken while developing it, the harder it becomes to make future changes. And a lot of these platforms are Eurochain complexity, and they're also a date testing. So there's multiple variations for a single page, and it becomes so hard to see the full picture and make changes quickly, because if you're changing something on one page, it might break something on the other page and becomes really hard, especially for companies that don't have the technical expertise in house to keep up with these developments. At the same time, when you are using the wake 2.1 or 2.0 guidelines, they're not changing that much that fast. So the basis of accessibility, which is you have to be able to see stuff, you have to be able to interact with stuff, you have to be able to contact company behind them. These things haven't changed. They've been refined. [00:22:58] Speaker A: The basics are the same a bit. [00:23:01] Speaker B: But the basics have been the same for a decade. [00:23:08] Speaker A: In other words, the best day to start was yesterday, and the second best day is today. [00:23:16] Speaker B: Definitely, yeah. So. [00:23:21] Speaker A: From a technical point of view, you are CTO, so that means a chief technical officer. That means you have a lot to say about the technical direction the company takes, I'm assuming. [00:23:33] Speaker B: Yeah. The way technical decisions get made at level. Level are bit in two ways. I listen to what people here on the floor are saying, like, we want to use this technology, we want to go in this direction, we want to use this provider or framework, and I analyze the implications of introducing this technology, and then we go forward. So sometimes, officially, there's a request for change document in which proposal is made. How would this change impact the company? What are the resources that are required to implement this? And then we move forward at the same time. Sometimes you just have to make choice as a manager, which is not my strong point. Or sometimes you just have to say no, which is also par in other words. But those are the two ways that things can done. [00:24:46] Speaker A: That last one is a good example of I don't think anybody likes that per se. [00:24:52] Speaker B: Right. [00:24:52] Speaker A: So there's a way of if you're forcing yourself to be authoritative, I don't care if you feel like you are authoritative person or not. I don't think that ever works well in terms of you have an idea, you want other people to understand your idea and eventually start liking that idea. And ideally you want to win people over. Right. With arguments and examples and logic as to why that is the right decision, just taking the decision and cutting everybody out. In terms of how you got there. I'm not saying that in terms of satisfaction is much less than somebody says. This is a problem we need to solve, and we apparently need to solve it repeatedly. So we need to think of a framework for this. So let's all see what we can find as a framework. And then there's a group decision and you ultimately make the decision. That's a different route. Yeah, I can see how that would not be always like, hey, this is my favorite thing to do in the job. The technical part. Sure. [00:26:05] Speaker B: Yeah. You talk about this with James Giroud. I think his name is about growing from a technical role into a leadership role. It's not the same thing. For me, it was like going from high school to college. In high school, you know what's expected of you, and you're like the biggest kid in a classroom, and then suddenly you're going to college and you have to reinvent yourself. You have to do something else. You're in an unknown space and you have to think about, how am I going to do this? I haven't been to school for this. I don't know how to resolve these conflicts. That's really been a gigantic learning curve for me. Very exciting as well, because I like learning new things. But it's fun and exciting and also quite hard. Uncomfortable sometimes growth. [00:27:27] Speaker A: I think it's important to understand that growth in of itself is uncomfortable. If growth feels like it's a very comfortable thing to do, then I don't think you're really growing. [00:27:36] Speaker B: Yeah. [00:27:38] Speaker A: The podcast you're referring to is with James Giroud, and we indeed talked about how someone who is great at their role from a technical standpoint doesn't necessarily translate into a great manager. Those two are not the same, nor should they be treated as such. I think it's pretty rare for somebody going from a senior technical role to actual management and having the skills for that. That is a very small subset of senior people, whether that's technical or not. [00:28:13] Speaker B: So to be honest, I don't have the skill set for this, but I'm learning. [00:28:19] Speaker A: I think you do, otherwise you wouldn't be in this position. You have part of that skill set. There's perhaps a portion that you still need to get comfortable with or learn, broaden yourself in, or deepen yourself in, in terms of knowledge, but you have an innate ability to do it, otherwise you wouldn't be in this role. I know Taka well enough to know that he wouldn't put you in that role if that quality wasn't already there. [00:28:47] Speaker B: Yeah, sure. [00:28:50] Speaker A: But yeah, you sort of let on in, like how you kind of stumbled into code, then finding reward was actually an option, other people paying you for it. When you moved to Wordpress for truly starting building complex stuff, I'm curious, is there a moment when you went like, okay, I get it, this is how it's supposed to be done. [00:29:28] Speaker B: So at the previous company I worked for, we had a pretty small development team of three people, and we were very strained in making decisions and making our own choices of how to work. And there I went from being novice developer or hobbyist developer into really learning as a craft. And after that, when I moved to level and to WordPress from day one, the thing that shocked me as awesome with WordPress, was that I didn't have to validate everything from a form perspective, right? So if you're working in pure PHP and you're making a form, you have to check every single thing it's required. Is it the correct length? Is it this is that? And when I came in here, we were using custom fields, and it does everything in this direction for you. Like, I want to get a coordinate from the user, right? So here's a map and they can click it. This would cost me, I think, 20 hours development before when doing it all yourself and making a good user experience for it. And within WordPress, it's like five minutes, you're done. So this was like the power of WordPress, which from day one it was obvious, but at the same time, at previous company, we were using some workflows that are accepted in the PHP world, like using a composer to manage your dependencies and using a deep Moid tool or continuous deployments instead of logging into a server and copy pasting a zip file. So when I came in to love novel, there's been quite a few things that I was like, we can do this better. This doesn't have to be a manual workflow. This doesn't have to be like some individual heroics to keep a website upstate. We can structure this and automate this. So that took, I think about a year to get some of these standard workflows into this. And then from that point on we started working on code reviews, we started working on automated testing, we started working on infrastructure as code. Truly professional, right? TakiNg it to another level. And I think we succeeded in getting a pretty good ecosystem or technical environment here at level, which allows us to manage a lot of projects quickly or efficiently. [00:33:00] Speaker A: I think you would have to, as soon as you start growing as a company, you need to have your processes in place, otherwise you're never going to be efficient. So you're wasting huge amounts of hours. You have to have processes in place. If you look at the stuff happening in WordPress, right, that is available to us nowadays, I'd say we'd seen a huge uptick of possibilities that encode at our disposal. Most recently, obviously the block Editor, which the WordPress 6.3 is impending, which will hugely improve, in my opinion, on the site editor. So the full site editing themes, I think we're still calling them, I'm unsure. Correct wording here is, but yeah. What is your opinion on that in terms of what WordPress brings to the table over the years? Is that in line with what you as an agency building high profile sites for governments and with accessibility in mind, is WordPress providing you what it needs to provide you there, or are you building your whole subset of tools and systems and frameworks around that? So you sort of circumvent that? I know that's a long question. [00:34:28] Speaker B: Yeah, it's a bit of a mixed bag. We've been working with Gudeberg, the blog editor, since it was in beta. Before 5.0 came out, we were building our own website in the blog editor and I think it's one of the best developments to come to WordPress since I've been in the WordPress ecosystem. I couldn't imagine not having it with all of its malls. It's still like a superior user experience for someone editing to be able to see what they're doing and seeing the results in the editor as opposed to having to preview wait, preview Wait, preview Wait. But actually seeing what you're doing at the same time there's a lot of freedom that's by default enabled within the block editor. That allows a customer to make a circus of their website. Right. We're a full service agency. And we have a design in house, and we have user interaction experts in house, and we have accessibility experts in house. And these all have a crucial role in creating the website and the layout and the flows that a user takes and the customer journey takes, which customers pay us for. And if you then deliver them a website in which they can create their own color palettes, or go off grid and create their own columns and style, or even creating their own full signed editing experience, it's a bit like what is the experience of the expertise you're paying for where we're adding value? With our expertise, we're often like circumventing or disabling features in the editor, but at the same time it's bringing really exciting workflow for users to create and edit pages. And I think if you are looking into the future and you're going to maybe get a collaborative editing in the future, which allows multiple people to edit posts and work together on creating an article or leaving in content comments on pieces of content within the editor, that was something that wouldn't be possible at all with the classic editor. No, be out of the question. [00:37:49] Speaker A: Not by all. [00:37:52] Speaker B: That's a very exciting development that I'm really looking forward to having. Yeah. So it's a bit of mixed band in how we're using it. [00:38:07] Speaker A: Do you disable a lot, would you say, on maybe not just the block editor, but in general, like clients ending up with the site? Do you consciously say, okay, this type of client, we're just going to turn a few things off. Do you go in? [00:38:25] Speaker B: Yeah. Even without considering the block enter or full site editing or whatever, we don't allow customer to install their own plugins or don't allow them to edit files on server. Because we're managing this for, we're giving guarantees that a site functions in a certain way. [00:38:51] Speaker A: I'm of the same opinion. [00:38:54] Speaker B: So we have to lock some of these things down to guarantee correct behavior of the website. Also, we have very rigorous testing works notes for updating websites, updating plugins, updating dependencies, whether we create websites with connections to maybe ten outside pools. So we are monitoring that these things work well. Yeah, but we need to limit the customers ability to some point to be able to give the guarantees. [00:39:33] Speaker A: I'm asking because I also know a few companies build high end stuff that just generally still give a lot of freedom to the end client because the client sort of demands it. Like I need this, whatever compliance reasons they can think of. And then I go look at some of my clients and I go, can you give me FTP access, please? And I go, no, but here's a question for you. Why would you want it? There's always a thing that they come up with that makes sense in their head because they've been told, whatever, and you go, no, we have a better solution for that. Because you're paying me to manage your site, right? You're paying me to maintain it, keep it up and running. So yeah, I tend to leave the dashboard fairly accessible in terms of what's available to them. But bear with full site editor especially I haven't checked. If you're an admin, then it doesn't always make sense for that administrator to have full access to the site editor. I think that's something that's becoming a little bit more difficult to control. Then you would want them to have access to the menus. [00:41:01] Speaker B: So what are features that you're looking forward to going to? Future versions of WordPress or something on the roadmap? Then you're going to, this is a game changer. [00:41:14] Speaker A: Translations. I for the longest time think we're running way behind on looking at the multilingual world of WordPress, which is huge, which is far more than 50% of all install bases are in a different language. And I don't actually know what the percentages of the number of multilingual sites are, but there are many. Like there's countries that have it as an obligation, Switzerland being the prime example. But there's obviously Belgium. There's also here where I live in the northern part of the Netherlands, Frieslan. We have government sites in Friesian and in Dutch, so it's very Close to home. Yeah, that to me is the biggest, big thing. I like this because you refer to phase three of the Gutenberg project, where the collaborative part is being explored and implemented. I have less with that. I'm more curious about phase four, which is the internationalization as a whole. Short term. I'm very excited for 6.3, actually. 6.3 brings, that's the third edition of WordPress that brings huge performance benefits. And I love performance. I love it when stuff is fast. I like seeing this as a pattern now, like the WordPress core performance team, what they keep outputting on a regular basis. Johnny Harris, my first guest on the podcast, being a good example of. Good representative of that team. [00:43:03] Speaker B: Yeah, I think you talked about WordPress Postmetal being lazy loaded. [00:43:11] Speaker A: Yeah, it is in 6.3. So yeah, that has a huge implication for a very large array of sites not having to have everything in memory, but be able to lazy load it as you go, as you actually interact with it. It's things like that that just make sense. Why didn't we do that before? It's different focuses. [00:43:40] Speaker B: Yeah. So I think that's part of it. Like taking the performance baseline of WordPress to a higher level. But at the same time, I'm also noticing that the biggest challenges that we run into with performance is just stupid stuff. Sorry for being rude about it. [00:44:12] Speaker A: I need to have an example to confirm what your subset of stupid is. But I tell what you mean. [00:44:23] Speaker B: Doable. I had to debug a plugin because we're using Redis on our website. So we're using Dill Cruise plugin, which is Cache Pro, also had on the podcast and we were seeing like six megabytes payloads going into Redis and out of redis on every single request. Wow. And we're like, why is the website downloading six megabytes from Redis on every single request? So we're debugging and there's this plugin that's writing log files into the options table with auto load on. So there's just a four megabyte, megabyte option in the WordPress Options table that it's loading on every single request, which is. [00:45:21] Speaker A: That doesn't scale. [00:45:23] Speaker B: That doesn't scale. No, this is an example. Like there's a lot of low hanging fruit within the ecosystem. And at the same time, that's why WordPress is interesting, because you just contact the person who's building it and go like, we found something and you might want to change it. Here's some suggestions then. [00:45:47] Speaker A: Maybe that is, they didn't do it intentionally, like with an idea that made sense. [00:45:55] Speaker B: No, it's just lack of knowing better. What's the easiest way to do something? This works and we're testing it on a site with street posts. So it works. Right? [00:46:12] Speaker A: Technical debt built in right there. [00:46:15] Speaker B: Yeah. So we had another example, which is like stupid way you find out, but at the same time it's a scenario that doesn't, I expect it not to be on the standard list. Things to test, right? Yeah. On our bigger clients, we're horizontally scaling the sites. So this means that we're using multiple web servers to render a single site. And when you're doing this, you're dealing with uploads being on multiple different servers. So what we're doing is we're creating a network share that all servers connect to and they're storing their uploads in this directory, right? So what was happening was there's this plugin and it writes a directory within the uploads folder with a semi random name, and it puts an index PHP file in the root of the folder so you can access the folder accidentally. Like if you're a red guy and you guess the name of the folder, you don't want to see what's in it, right? Yep. So this works on ordinary WordPress installations, but as soon as you're moving the uploads folder into Amazon, like the S Street buckets, and there's a SiM link going from a deeper folder back up, it's going into an endless loop of trying to write index PHP folders. And we were seeing like this saw tooth profile of memory being eaten. Every single time that a crone was starting, it was trying to do this, getting into an endless loop and then being killed and trying to reproduce it locally can do it. So at the end we ended up profiling it with PHP Spy on the live server. So what this does is it takes snapshots of what PHP is doing at certain intervals and then stacking these on top of each other. So, oh, it's rendering page now. Oh, it's grabbing a form now. Oh, it's grabbing something from database now. And it takes these sections like four minutes, stacks everything on top of each other and then says it was mostly doing this, and then it was like 99% doing writing a file of index PHP to this. Why is this happening? What's it doing? [00:49:12] Speaker A: That's a cool tool, PHP spy. [00:49:15] Speaker B: Yeah, sure. [00:49:18] Speaker A: To add it in the show notes. [00:49:21] Speaker B: If you have a regular profiler that you're running locally, you're tracing every single function call and it puts a little bit of overhead on every single call that's being made. So everything gets a bit slower and this ends up being like two to three times slower than without profiling. The thing about PHP Spy is that it doesn't monitor every function going in and out, but it just like 20 times per second takes a snapshot of what is it doing now? What is it doing now? What is it doing now? So it's for life environments where you don't want to increase load three to four times. This is awesome because with really few added resources, you can get an insight into what your production server is doing. [00:50:21] Speaker A: That's a cool suggestion, because oftentimes people tell me like we need to figure out on the server what's happening, and they'll suggest something like new Relic. And I know new Relic doesn't necessarily have the memory and resource footprint as it used to, but it's still adding to us. If you have a busy, busy site, it's definitely adding to your footprint. It doesn't always make sense to have such a thing. Harving your even when there's a solution like PHP Spy that would solve the same problem and not have the resource issues I like. [00:51:01] Speaker B: So there's a bit of a multi level debarring process that we use. Like we're using sentry to create traces, about 1% of all requests going to the website. So we got them to have a background monitoring what was the performance at a certain time going 90 days into the past. So if something suddenly gets slow or customer writes an email, like things became slow, we can see like is this something that's happening now or has this always been like this? And is this just like an instance that they're considering? Then we end up like the standard MySQL dump snow like slow logs, PHP logs that are constantly gathering data. And we have workflow where we can increase the number of traces that we're doing. So if there's a performance problem, we can up the number of traces to see which kind of processes are taking most of the resources. Sometimes we install tools like query monitor on websites to get a bit more live fuel of what's actually happening or what resource are being used. And then we have really high tech tools like LSOf to find open files, PHP spy to index. Like what is the server actually doing? Redis monitor to find out what Redis is doing. My top to find out what MySQL is doing. Like all these specialized tools for debating certain situations. [00:53:09] Speaker A: I like my top as well. Not a lot of people understand how to debug a database, mostly because people don't, quite possibly, I'm assuming here, but from the feedback that I've gotten, they don't fully understand what a database is. And it's a relatively flat thing in and of itself, even though it's not flat, but like base concept of this is how it works and this is how it works. There's not a lot of wiggle room in how it works to then be able to have a tool that sort of intercepts what's happening. I've seen many cases where my top just tells you in the first command, like, okay, here we go, this is it, move on. [00:54:03] Speaker B: This query is locking the table for 30 seconds and nothing else getting true. Makes sense. [00:54:09] Speaker A: Yeah, this doesn't look like behavior we want. What's going on here? [00:54:15] Speaker B: Yeah, those are cool tools. [00:54:17] Speaker A: I like those. My top is a good reference again to mention. And PHP spy I'm definitely going to check out. So last question for you because I think we're closing up on the hour. [00:54:35] Speaker B: Can I give a question that I've been waiting to ask you as well? [00:54:40] Speaker A: Yeah, sure. [00:54:44] Speaker B: You've organized tons of WordPress work camp gatherings. I can imagine that there's recurring challenges that you've seen since organizing the first camp Europe in Lila up until June this year in assets. What are the recurring challenges that you think every single time we're organizing this? Why is this happening? Why is this still the challenge? Why are we still having so much problems with this? [00:55:29] Speaker A: That's a good question. I don't know. I stopped counting, but I think I'm somewhere in the 20 different word camps that I've organized in one way or another. Yeah, Wordcamp Netherlands and then Wordcamp Europe and Wordcamp North Netherlands. I think the most difficult thing still is communication. And it's a very easy one to use because isn't life about miscommunication in and of itself? Yes, but in terms of an event, people have an expectancy of what is going to be there and whether that is, for instance, the diversity of the speaker team or whether that is the availability of sponsor packages and what is in them and what is not included in them in communicating the tickets. Like what am I getting as an email confirmation? What information is in there? There's a lot of stuff. There's a lot of lot of stuff that when taken care of correctly will take away a lot of insecurities, uncertainties and just general lacks of information. So what I see still happening is certain things just not being communicated on time. And there's often very valid reasons for it. For instance, work of Netherlands. We sent out the confirmation of who was selected for presentation this September and we were a week late. Now there were many reasons why that was, but you're so busy in your work because you're doing this on the side, but you're so busy in the work of selecting and there is stuff coming up as you're doing that that you forgot to mention, hey, we're running a little bit late, which is, for instance, something that I think we should have mentioned in an email and you didn't. Now most are fine with that, but some go like, no, I've been waiting till the end of 1 July, 1st week of July and they haven't heard anything. So I'm assuming I'm not selected. So that's a good example of where communication is always something that is never. You can hardly over communicate, let's put it like that. So I think my biggest lessons till this day still is strive to get as close as possible to over communicate. [00:58:16] Speaker B: Yeah. [00:58:16] Speaker A: That's not just your presentation. [00:58:18] Speaker B: Over communicating, over communicated. [00:58:24] Speaker A: It may sound seem feel like you're over communicated, but you rarely are. [00:58:30] Speaker B: No, but then I notice this in my daily job as well. I'm like, I called a couple of people yesterday and I called a couple of people today, and you need to get the message out to everyone and need to get the message out often more than once, because sometimes goes past and people think about other things and we're here, conflicting messages or whatever. And then you need to remind them. [00:59:06] Speaker A: I'll give you another. This is a mini event, what you and I are having right now. You filled out a form, you picked a date and a time, you filled out a form, and upon hitting submit, you were redirected to another form. In that form. I ask a few things. [00:59:21] Speaker B: Yeah. [00:59:22] Speaker A: The first version of that form and the confirmation you got upon submitting of my form is quite different from what is currently there. And that's because I keep learning on little things of feedback, like, how does this work? How does that work? What do I should take into account for this? The current version says something explicitly about make sure you're in a room that has a little bit to no echo. Get a microphone if you can't have one, a separate one. And also in terms of preparation, I book a slot of 90 minutes, but the recording is not 90 minutes. We have 30 minutes to figure out stuff, which in our case, we, for instance, a good example. So these are the things that you learn. So it's not just communicating, it's also learning of the feedback that you intentionally or unintentionally get and then incorporate in your future communication. So, yeah, that was an interesting question because I genuinely think that the communication part is the hardest part of anything in the realm of collaborating with other people. And whether those people buy a ticket from you, whether they're speaking, whether they're sponsoring, whether they're showing up for the speaker sponsor dinner, in terms of an event, that's always the thing that you never over communicate. I've never. Anybody say, look, you sent me six emails, now it's enough. I'm opting out. Anybody say that? [01:00:55] Speaker B: Yeah. Especially for something they sought out by themselves. Like, I want to go to. Exactly. I want to take at work. [01:01:10] Speaker A: Yeah, no, that would be my answer. So from the very first time that I organized one, which is 2009 till the current one that I'm organizing workup Netherlands 2023 in September. That is a consistent thing because we work with varying teams, right? It's never the same team. So I had certain responsibilities lie with somebody else, different combination of people. That means stuff is going to change and that's very hard to continue. So if it's just me or two or three other people, then you have rules within your little team. It's much easier. But if you have a fluctuating team, it's very hard. Have communication be on point all the time. It's just difficult. That's the downside of, I guess, working with volunteers. That's a good question. I like it. And now I forgot what my final question to you was. So good. One good diversion. [01:02:19] Speaker B: Dodgy. [01:02:20] Speaker A: Do I guess so. Well, on that note then, thank you for being on the podcast. I've enjoyed this conversation. I think a lot of people, having listened to it, have learned a lot about accessibility and how it's an integral, or should be an integral part of whatever you're doing. We talked about something as well, so that's always a favorite of mine. So yeah, thank you so much. [01:02:47] Speaker B: It's been my collector. Thanks for asking.

Other Episodes

Episode 3

June 02, 2023 00:45:26
Episode Cover

Solving Human Resources for WordPress Companies with James Giroux

James Giroux sat down with me for an episode of the Within WordPress podcast. We talked about how his company Team WP is solving...

Listen

Episode 1

April 25, 2023 01:00:42
Episode Cover

Making WordPress Core faster with Jonny Harris

The very first Within WordPress podcast is with Jonny Harris. Jonny is a WordPress Core Performance team member and as such responsible for some...

Listen

Episode 25

December 29, 2023 01:01:26
Episode Cover

Understanding Tech Changes and Agency Evolution with Steve Zehngut

In this episode of the 'Within WordPress' podcast, Steve Zehngut, founder of Zeke agency and experienced WordPress professional, joins the host to discuss his...

Listen