Modern Web Performance & Core Contributions: A Conversation with Adam Silverstein

Modern Web Performance & Core Contributions: A Conversation with Adam Silverstein

Modern Web Performance & Core Contributions: A Conversation with Adam Silverstein

19th July, 2022


As a proud media partner of WordCamp Europe 2022, we had the chance to sit down with Adam Silverstein for an insightful conversation about their journey in google, ideas, and the future of WordPress. This episode captures the moments, thoughts, and stories that stood out. Here’s our full chat – enjoy reading!

Hello everyone. This is your host, Vineet Talwar, back again, live and exclusive from WordCamp Europe in Porto. We are back again for our next episode with Adam Silverstein from Google. Hey, Adam, welcome to the show.

Hey, Thanks for having me.

So Adam, we can go on and on and talk about it, but we’d like you to introduce yourself to our listeners.

Sure. So I work on the developer relations team at Google, and my team is focused on content management systems and improving the open web by just bringing up the web platform as a whole. And of course, WordPress is a really big part of the web platform, so this is sort of what we’re focused on, and yeah, that’s what I do now.

Awesome. And when was it that you entered the world of WordPress, and what motivated you?

So it was a long time ago. I want to say probably around WordPress 3.0, whatever year that was, at least 2012, 15 years ago, and I know that I should know what year it is, but I was building websites at the time using HTML and CSS, and what I’ve discovered in WordPress is that I could build websites for my clients, and then they could take over editing the content. And that was really exciting to me because before, before discovering WordPress, I had to do all of the content updates for my clients. So that was probably the first thing that really got me excited about using WordPress: the ability to let my clients edit their own content and at the same time not destroy the website that I had given them.

All right. And let’s talk a little bit about your current goal at Google and what your day-to-day activities look like.

Sure. So, right now I’m actually spending a good bit of my time contributing to WordPress core, probably about 50% of my time. So after that initial part of getting my clients on WordPress, I decided to contribute back to WordPress, and eventually I became a core committer. So I’m very involved in making WordPress itself better and making the core, improving the core of WordPress. And most recently I’ve been focusing on media and trying to make images faster in WordPress. So the team that I work on, we have, put a lot of energy into this new performance group that you might have heard of. It’s a core team that’s focused on improving the performance of WordPress. And that’s one of the main things that I spend my time on: trying to push those ideas forward and spread the word around them to developers. And then another part of it is getting feedback from the community and then taking that back to Google Teams. So, doing things like the new APIs that are coming, like the privacy sandbox initiatives, and talking to developers in the WordPress ecosystem about that and then giving feedback back to the teams. I also work on the Site Kit plug-in, which is a plug-in from Google that lets you connect your website to Google services like Analytics and Search Console, and I actually work on the back end of that, which is a service that runs in Google’s cloud. It’s a Gong, a Go language application, so I work on programming on that and developing features for that. And then the last thing I work on is a project called Newspack, which is a platform for local news publishers that’s a partnership between Google and Automatic.

All right, and you guys also work on web stories, yeah? So could you tell us a bit about that?

the web stories? Yeah, so, web stories is kind of a format for the web that lets you create these horizontally clickable, kind of scrollable carousels, very similar to Instagram stories, I guess, but the idea is it’s a way of presenting content. And this will show up. I think right now it shows up in Google Discover, which is like on a mobile device. If you look at the Google homepage, you’ll see some links, and sometimes you’ll see this kind of carousel, and when you click on them, you know, you click through. So, yeah, exactly, that’s it. And Web Story is a way to create those types of experiences on the web using WordPress. And it is Google’s first-party editor for web stories. So Google decided we’re going to create a Web Stories editor for the web, and we’re going to do it in WordPress, because that’s the biggest platform; that’s where most people are creating content, so we’re going to start there. There are also other tools in the ecosystem for creating web stories, but this is like one; this is our first-party tool. So you can take your content that you already have in WordPress, and you can build this very interactive, you know, a lot of times they have kind of fancy features with things scrolling up or a video overlay text. It’s a pretty sophisticated editor in terms of the capabilities of what you can do with it, but you can also use it to create just a simple story. And the idea is it’s just like a different way of engaging with content. but I haven’t actually personally worked on the editor of that project that much, but it is like part of my team.

No, that’s, that’s really good. I mean, I was exploring that Google is taking initiatives now to support the WordPress project. Yeah, and that’s really good news for us, in fact.

Yeah, yeah, I remember when I went; I think it was 2016, which was the first year that I saw the Google show. Up at a work camp. It was WordCamp US, and I was in the exhibition mall, and I saw there was a Google booth, and I couldn’t believe it. Like, why is Google at a WordPress event? You know, two of my favorite things in the same room. And so I went right over to them, and I, you know, I said, “What, what are you doing here?” Why are you here? And they were very much trying to figure out, you know, how they could have a presence in the WordPress community. And honestly, I think Google should probably be paying more attention to WordPress. There’s a whole bunch of different services and APIs like the Maps API and YouTube API and all these different tools that are available on the web, and probably most people who are using them are using WordPress. So to me and in my mind, it makes sense for Google to pay attention and try to support those developers. I think, you know, that I also work with the team that makes the Chrome browser, and they tend to think of Chrome and the web as the platform that they’re developing on, the web platform. But I think in WordPress, we think of WordPress as our platform. We’re not really looking at what web APIs are or what things that are like JavaScript that are new are. We’re looking at what’s in. WordPress. What are the APIs that are in WordPress? So I think we need to meet developers where they are, and that’s why Google should have some presence in this community, if only to hear back from people what would work better. Why is it hard to use your APIs? What could be better about them, which is part of developer relations? It goes both ways.

I mean, we saw in Google IO this year that a lot of new features were announced and a lot of new APIs are announced. So, are Google planning to integrate them sometime in the future, let’s say with WordPress so that it’s easier for the WordPress developers to work on them.

Yeah, I mean, I think that’s again, it’s like kind of the two levels of the of that platform where you have the web platform at the very sort of base and and those standards and APIs that come into browsers, but then you need, you need sites to actually start using those and adopting them, and we have great examples of how WordPress has done that in the past. So one example is the source set attribute inside of images, and that was something that had, you know, started to develop in browsers, and WordPress adopted and went WordPress adopted it, that pushed all the browsers to adopt it. same thing with lazy loading, like if you look at what happened with the lazy loading of images, which was available in Chrome, and then WordPress adopted it, and then Firefox added support for it. So there’s a way that WordPress can actually help drive these standards forward if, if we can adopt them, if they’re actually beneficial enough that WordPress Core will adopt them, that, that can kind of like push the whole ecosystem towards adopting them. So very much so, and then again like it, it’s both ways, like it, it works to get feedback from developers, so. you know, there was a proposal from the privacy sandbox initiative called Flock that was actually rejected very strongly by developers and even in the WordPress ecosystem, and that was really important feedback for that team to get. So it, it can be something that people are happy about and sometimes it’s something that people don’t like and, and the, the, you know, raw browser developers need to understand the actual needs of developers.

You’re absolutely right. I mean, I see a lot of good initiatives as well, taken over by Google. Like, for example, one of my favorite initiatives is the PWA initiative. I so love that. I would love to see that one day in WordPress Corps, and I hope Google can push for it also.

Yeah. So we do have a PWA plug-in that, that won a Google or a Western router, who’s also a WordPress Corps committer, came from the WordPress world. He’s very active in, in supporting that. There have been some challenges to landing that in core. Part of it is figuring out good use cases that, that actually we can get like eat our own. Dog food, as they say, but like actually to land something in core, typically we have to show that it will be useful, and one of the ways we can do that is actually use it in core. And getting to the point, for example, where WP admin could be a PWA, where it would be amazing, and that would be a great justification for having the capability and core. At the same time, that’s a really big technological leap, so it’s not something that is a small project.

yeah, absolutely, I, I mean it would be nice to be able to create your articles. Even when you’re, let’s say you’re flying and the internet is not offline, offline, you create that and as soon as the internet is connected, the article is like.

exactly, yeah, and PWO is kind of purpose built for that type of capability, and I think Gutenberg Project is probably already looking at kind of rolling their own solution to, to that, but I, I think, you know, the PWA capabilities still, are important, and then there’s all the stuff with the service worker, and how, and how you integrate with that, so there’s a lot of, a lot of potential there, I guess.

All right. OK. So let’s move on to the next question. Yeah. what are the future plans we can expect from your team, towards WordPress contribution?

so, focused very much on the performance aspect right now. so some of the things we’re working on, WebG by default, which is when you upload a JPEG image. why not have WordPress output the sub-size images that it creates in a more modern format like Web D. WebD generally gives you about a 30% savings on, over JPEG, and for end users, this is like no effort on their part. They just would continue to upload their images as usual, and they would get a 30% smaller sized images. So that’s one really big one that we’re hoping for. related to images, there’s sort of a whole bunch of different work. one is around improving the sizes attribute that’s, output in the, in the image tag because right now, WordPress make some guesses, but they’re not always very good. And, and this is one of the Things you see when you run Lighthouse reports and check that often, Lighthouse will complain that your image sizes are not correct. so improving image sizes in the, not the, not the sizes of the image, but the actual sizes attributed in the image tag could be a really significant improvement for WordPress sites. and I think coming up with Gutenberg, adding more, kind of theme-based contextual data like with theme.json and adding things like layout information into there or into blocks could give us more context to actually be able to get the sizes more accurate, or we might need some system where we have JavaScript that runs like in the preview window and can actually report about the image sizes. Part of the problem is you don’t know from the back end. kind of what the, how the images actually wind up on the front end, and that makes it hard to get the right sized image for, for what you’re actually displaying. And if the image isn’t the right size, then you’re sort of wasting, it’s typically too big, is what the problem is. So that’s one thing. also working on script loading in core, right now, you can put scripts in the header or the footer, but we would love to introduce like to the direct capability to add the defer attribute, which allows the browser to decide how to prioritize the script. And amazingly, blocking scripts can be a huge problem. Like, even when you look at something like the largest potential pane or the largest image on your page, and how long that takes to load, you think, oh, I just need to reduce that image, reduce the size of the image. But many times that’s only a small part of the problem. there can be blocking scripts in the header, and, and by blocking, I mean the browser, when it encounters the script tag, it has to go fetch the script. It has to process the script before it can continue down the page and even get to loading the image. So, by making scripts, more flexible and giving them the capability to load later, that should also overall improve speed. And then a couple other areas we’re working on. one is adding information to the site health area of WordPress to give users more information, hopefully that they can act on that’s like in a user-friendly way, that warns them about things that could be improved, like if they, they lack webP support or if they don’t have object caching enabled, trying to help users. And then the final area is improving measurement tools for, for WordPress. So, like the Gutenberg Project does a really good job of this. Where every commit that they make, they have a CI that runs that tells them how the editor performs, how quickly does each keystroke get acknowledged by the editor, how long does it take to load a large page. They have these tests built in. They run them on every merge, and if they have a regression, they can figure out which, where that happened. We have nothing like that over on the core side, and let alone for other plug-ins or theme developers, it’s very difficult to build these tools out. So, one of our goals is to actually develop a standard way in core that we could use both in core and also plug-in and theme developers could use as a continuous integration tool to be able to measure the performance of their plug-in or theme, and see how changes they’re making improve or negatively affect that. And hopefully also giving users some of that information. Like, I think it would be great if before you install the plug-in, you had an idea of what the impact of that plug-in might be, how many, you know, scripts it loads, what the total weight is, how much CSS does it load. Some of that’s hard because it’s very technical, and, and, and users don’t tend to be very technical. So there’s a challenge there, but I, that’s one of the things we’re hoping to improve as well.

I mean, you will make my life 75% easier by doing all of that. It’s all about what we are doing also, like supporting them with performance. I, I also give a lot of performance talks about try to tell people how they can improve about it. I even hosted a workshop back in Geneva and talked a little bit about UX and yeah, and this thing. So this is what we also, I also do in my personal working career to help support performance. So it would make my life easier, as I’d say. And scripts are always the tricky part, getting them right, loading them right time. And if we would have differred there, that would be really awesome. Yeah. Anyways, so let’s move on to our next question. So, Adam, there you had a talk. Today, yeah, today. Optimizing WordPress, could you tell us a bit about your session?

Sure, yeah, it was actually a workshop, so it was geared towards site owners, but actually a bunch of developers showed up, so I had to modify it a little bit. the idea was to explore like why you should care about optimization as a site owner, and how it affects the goals of your site. obviously if your site is performing better. You’re gonna get more engagement, less abandonment. and I talked about how, it’s a trade-off between when you add features to your site and performance. There’s always a trade-off that you have to consider. Anything that you add to your site, like when you first install WordPress, the performance is great, 99 or 100 on Lighthouse, but that’s without anything, without any plug-ins or any content. And as we know, WordPress core is very lean, and the way our system works is you need plug-ins and extensions. So it’s kind of about how we, how to think about that as a, as a site owner. How do I think about like what should I choose? How do I choose which plug-in, why are plug-ins so bloated? Why do, why do plugins affect my performance negatively? And also, I, you know, gave some background about the core web vitals, which is Google’s initiative for measuring page experience and how trying to measure. Experience is different than measuring raw speed that we’ve evolved from thinking about performance as just like a raw speed metric to more about how does the user experience the site, how does it interact when they try to use it? Are things shifting around? how, how long does it take to load the page? That’s part of it. Let’s see. And then I talked a little bit about the difference between lab metrics and real user metrics. A lot of people didn’t know about this. This is actually what I kept asking questions, you know, who’s heard of this? And I think a lot of people really didn’t know about the difference. So, it’s talking about how, you know, what you measure when you test your site using Chrome Dev tools or Lighthouse is, is quite different than what actual users. might experience when they visit your website. Users might be on a constrained connection or a low powered device, or they may hit your website when there’s a million people trying to load content at the same time, so your server is slower. And so actually being able to gather that data from the real world is super valuable in understanding where you should prioritize your performance improvements. yeah, so those are kind of the things we covered, sort of like the why, like how to think about it, and then, you know, how we measure it, and I think that was most of it.

and how was the response of the people?

Good, I think, like I said, there were a lot of developer people there, so maybe it was a little bit of a too of a high level session for them because I didn’t go into a lot of technical details, but I think, like I said, the most people hadn’t really heard about really using metrics and Trying to understand, like, you know, the differences between those, I think was super interesting for people and I had some good questions. And, you know, I think one of the things too is, and part of the reason I wanted to do a talk for users and not for developers is that, Right now as a plug-in author, you really don’t have much incentive to focus on performance. Plug-ins tend to compete on features, and that’s almost the opposite of, of performance. You have plug-ins that are trying to load up more features so that they can compete with the other 10 plug-ins that also do the same thing in our ecosystem. And so, you know, one of the questions from the audience was like, how do I choose a plug-in that has good performance when the most popular plug-ins are all just bloated and have so many features? And I said, well, you know, if you see that your performance goes down, open a support ticket, like, like tell the, tell the plug-in author that, that you were negatively impacted by installing their plug-in, and they should and ask them to work on performance, and I think this. This is what it’s going to take. It’s, it’s going to take the whole community being aware of performance, even site owners who aren’t technical, having some understanding of why performance is important for them. It’s, it’s not just about a fast site. It’s about actually having the site work towards their goals, which might be newsletter subscriptions or selling widgets or having people read more articles or listen to more podcasts. You have goals and you You need to meet those goals. so I think as the community starts to focus more on it and, and site owners become more aware, then plug-in authors and theme authors can start to see it as a value, and it will become a feature. My hope is in the future, you know, you’ll see great performance as one of the things that a plug-in lists, and that’s why you would choose that plug-in. so we’re, we’re far from that right now, but that’s, that’s where I hope we go.

You’re right. There are like a lot of plug-ins that we also use are bloated. I don’t wanna name them. But yeah, this is more like a, a shift towards the thought process of plug-in developers or, or even the general audience and I believe that will take time. Yeah, I, I totally agree to that. All right. So let’s move on to the next segment. so, what is that one thing you love about WordPress?

well, the community obviously is great. It’s really fun coming to these events. I love how extensible WordPress is. The whole system of hooks is amazing. I love our commitment, love, hate our commitment to MadWords compatibility. I think it’s amazing that, you know, a plug-in that I wrote 10 years ago, it very likely still works today in WordPress. I don’t think there’s too many other platforms that can, that can claim that, I love the flexibility of it. I love, again, the ability for content to be edited by someone and then someone else to handle the design of the site and the development of the site, Yeah, just the powerful features that it puts in people’s hands to, to create content on the open web and, and, and for anyone to publish content, you know, when I started doing web development, it was quite a different world than today, and, and, and there was this idea that anyone could have a website, and it was such a like exciting thing to be able to put up your own website. And I think like I see in my own community where I live that some people don’t even bother. They just, they just post their events on Facebook, and it’s just so easy for them to do that. They have no friction. They can just go and They have to set up an account, but they probably already have an account, and then they just create a little business profile and boom, boom, boom, they’ve posted their thing. And we have to make it easier on the web to both start, you know, that we have a starving problem. Like you start and you have a blank slate, which is awesome, but how do you get to an actual functioning website? There’s a lot of steps, a lot of choices you have to make. And then once you have that, like how easy is it for you to post up your content like from your phone, you know, like is, does it work? I think it’s hard these days, and that’s, I’d like to see it getting easier and easier for people so that, it’s not such a daunting thing to have a website.

Yeah, I mean, WordPress is such a, I would say, easy to use collaborative system, if I can, if I can quote it correctly, and powering 40% of the web. So we’re already supporting a big number of, people across the web. So, sure, it has a long way to go and I believe a bright future as well.

Yeah, I’m, I agree, I agree.

All right. So, next question is, when did you start, working with WordPress, like, and basically what’s your WordPress origin story?

Yes, I am supposed to have that on your profile. so I’ll say like when I really got involved in the core project was, with the version 3.6, so I don’t know what year that was, but, at, at that time I was actually applying for a job at Automatic. And I was rejected. And one of the things they told me was you should study the core APIs more. You should learn more about WordPress core. you, your coding is not WordPressy enough. and I had never really thought about that. Like, you know, I knew it was open source, but I never really thought, oh, I could just go look at the source code and, and learn about how WordPress works. So I, at the time there was no Slack. We were all in core. We were chatting on IRC and I joined the WordPress developer Slack and pretty like very shortly after I joined, they were discussing rewriting the revision screen in WordPress, and I put my hand up and I volunteered. I said I, I’d like to help with that like, and, and, I was really getting into Backbone at the time, which was the JavaScript library that we were all excited about, kind of the react of 10 or 15 years ago. And so we, I helped rebuild the revision screen for 3.6. and got a, you know, big prop at the state of the word that year for, for all that work, and that was very exciting for me to actually build something in WordPress, and I basically got hooked. But what I loved about it was that I was making something better that was used by so many people. I felt like I was helping the world, I guess. so I really, I really felt good about that work, and I got, I got hooked on that feeling of feeling good about helping people. And so I Just came back and just kept, kept getting involved. Of course now I’m like the revisions component maintainer because I built the thing, but also I’ve gotten super involved in media and other areas of core, and, and over time have, have grown to learn more about all the different parts of core. Core is a huge amount of code to understand, but I would say a great way to learn about WordPress is taking some part that you use a lot and then trying to understand how it actually works.

Yeah, I mean, this revision component is making the life of editors pretty easier, I would say. All right. So, what is the one thing that you would suggest to the user who have just entered to the word of WordPress?Yeah, that’s a great, that’s a great question. I mean, I would say, there’s a, there’s several different things. One is try to connect to the WordPress community, so there are, meetups all over the world. I don’t know if they’re happening again yet in person because of COVID, but I hopefully they will be. and in many places that if you live in a small city, even there may be a local meetup. That’s a great way to meet other people who are also using WordPress, and, you know, often there’ll be someone presenting about a topic and you can learn about something. so attending meetups to me or, or a word camp, a regional work camp, if you can go to one to kind of meet the community is really exciting. getting involved in contributing to core is a really great way to learn more about if you want to become a, a WordPress developer. and, and there’s all kinds of ways you can contribute from, you know, core coding to documentation to all the different aspects, translations, there’s all kinds of ways to get involved, but I think getting involved in, in the project itself and giving back, not only can you learn a lot, but you can, it can lead to great like career things and clients or whatever, you know, you, you’re trying to get. So I think those things.

All right. So let’s move on to our last segment, which is life outside WordPress. What do you like to do in your free time?

So I’m a big gardener, ran a farm for many years, so I like to spend time with my hands in the dirt, and other things I like doing, I like river rafting. I live in a beautiful place in Colorado where we have a lot of rivers, so I like to go like whitewater river rafting and also hiking, hiking up in the mountains, hiking in the desert. I like to play music. I play an instrument called the mbira, which is a thumb piano from Zimbabwe. so I’ve been studying that for many, many years, and I can play that by myself or with my friends. yeah, those are the, I guess the main things.

Would love to hear that one day.

Yes, I played it once on stage.

Oh, you know, totallyfor about 30 seconds.

we totally missed that. We’d love to see that one day. Yeah. All right. And how do you de-stress yourself?

you know, all of the things I just said, going to the garden for sure, going for a walk. I like to take a break in the middle of the day. I usually start my day very early because many of my colleagues are in Europe. So the way the time zone works, it, it works better for me to work in the mornings. And so usually middle of the day, I go down to the farm, I work on irrigation. I might take like an hour or 1 hour and a half hour break. I find that to be very relaxing. I love, the way that gardening, when you’re doing something like weeding, you can see the product of your work very immediately. You can see, oh, before and after, this is what I’ve accomplished. I feel like That is mostly lacking from working on a computer. It’s a lot of long term things take a long time before you can see an accomplishment. Sure, maybe one day you ship a product or you ship a website, but there’s many, many days where you just look down and you’re like, what did I do? Did I do anything? so I love that feeling of, of accomplishment that comes from, from working in a garden and, and, and then eating the food that comes out of it.

Yeah Awesome. And let’s talk about our last question. The Easter egg question. Are you ready?

I’m ready

All right, what is your favourite song?

My favourite song? Oh, that’s a hard question, I don’t, do I have to have a favourite song or a favourite musician? I love Thomas Mapfumo

Thomas?

Mapfumo, OK, yeah, he became like a big star in Zimbabwe. And he sort of made a pop music. He invented like a pop music sound that took this, the Indira instrument that I mentioned, this traditional African instrument that’s been around for 10,000 years, and you know they actually handed the instruments down like they were very valuable, and he took the sound of that and then he put it on like electric guitar and he made like sort of a modern band with this traditional music, and I love that. I love that combination.

we would love to post, we would love to share that link with you. So we’ll, guys, we’ll try to find the musician’s, profile on the internet. We’ll post it in the description. So hopefully you can, also try that. Awesome. All right, thank you, Adam, for being part of the show. It was lovely hosting you today.

Yeah, thanks for having me, loved doing it.

All right, guys, till next time. Bye-bye

Listen to the audio podcast and other audio podcasts here.

Meet the Host

Vineet Talwar is the founder of Some Tech Work, a Germany-based digital consulting studio, and the creator of Jump.ac, an AI-powered EV fleet charging platform built through the Carbon13 accelerator. When he’s not building products or fixing websites at scale, he’s usually experimenting with new tech ideas or polishing his next WordPress talk.

Meet the Guest

Adam Silverstein is a long-time WordPress core contributor and performance engineer known for his work improving the speed, stability, and future direction of the platform. Currently part of Google’s Web Ecosystems team, he focuses on advancing open-web standards, Core Web Vitals, and developer tooling that helps millions build faster, more reliable websites. Adam is one of the most active voices in the performance community, bridging the worlds of WordPress and modern web engineering.

No Comments

Sorry, the comment form is closed at this time.