 One of the things I've been thinking about is we haven't discussed what we're going to call this series. It doesn't actually be two or three, but it's different. We've got people. People, like real people, not like humanoids. Welcome, who are you and why? Oh, can I start with the why question? Yeah, go on then, go on then. No, no, so I'm Eva and I work at Developer Relations for Chrome. And I'm here at IO to enjoy the beautiful weather and other participants and also to give talks and interact with people. A lot interact with people. I know, it's a lot of interaction, isn't it? Yeah, at the end of the day, my introvert self tries to hide inside, but actually it's very worthy as well. I really enjoy it, but I also need to recuperate a lot afterwards, usually. It's a weird part of this job, isn't it? We take people who are traditionally introverted. I think we all include ourselves in that and we go, what are we going to do for a living? Or we'll go on stage, right? Talk to people all the time. Yeah, and it's just all of the energy just zapped away at once and then we have to go and lie in a coffin. Feet in a position, yeah. Feet in a position, in a coffin. But you see, it's a bit difficult. Totally different if you talk to a group of extroverts and you hang out with extroverts. But introverts is different. You can just say hi and everybody goes their own way and everybody's okay with that. Yeah, you stand in a circle all looking at your phone. People understand, you know? So one of the things that I encounter at these kind of events, because I walk past people I vaguely know or have met before and something will walk past you and go, hey, Mike! And you go, hey, Jake! And now we're locked in. And that sort of thing is like... Do you want to go for a picnic? What's the next step? I thought it's the thing where you pretend you haven't seen the other person, you just keep walking, you just change. Look at your feet and you're like... Oh, so you're trying to avoid people? I have been guilty of that. I'm too low on energy and I'm like, oh, that's a person. No, I'm happy with the meeting and the talking, but it's like when to break it off. And what's the rule there? I would just say, oh, I have a thing. Oh, a thing! I've got a thing. I'm so glad, you know, Googlers go ahead of our needs. Have you seen the demo with the phone call, you know, where the AI is doing phone call for you? In the future we can just send that to the conference. One thing is that, you know, all this technology behind it is so amazing and everything. But what amazes me the most is that there must be so many introverts in the world if they made a technology for people like me. I finally feel included, you know? So, what have you been doing? What have you been talking about? What and why? Well, it started that we built an app with Adi and it was crap. But that was Adi's fault, right? No, it was an amazing app. You could go and check Google Doodles and you could play them and it was all super interactive and nice, but it was just not performant. When you do stuff with Adi and folks, it needs to be performant so they made a fix it and we learned quite a bit out of that. Yeah, so we've been sharing that throughout the talk. It's actually much easier to run into performance troubles than we originally thought. So, yeah. Well, we definitely need to talk in the description. Yeah, what kind of performance problems were you hitting then? Well, a lot of stuff comes from the fact that when you develop things it lasts over some period of time. And after some time you don't remember what you did before and so on. So, things accumulate, right? And you just forget. And we've been working with some tools that help you remind like what might go wrong. Yeah, there were no tools, everybody was happy. Nobody had any scores, right? But now there are tools that can remind you of, for example, I don't know, the library you forgot to kick out because you're not using it anymore. About the images that are twice as big because you said, okay, I'll optimize them later and this later just never happened. So, it's all about like process. It's less about the code and some of the techniques you use in the code is more about the process, like how to fit your performance habits into your overall kind of... So, how big of a role does Lighthouse play in that? Is that something we're basically trying to, if Lighthouse does everything, reminds you of everything that needs it to remind you of? There are new audits landing each quarter in Lighthouse and it's getting better and better job of giving you just an overview of what you could be improving. And that's pretty neat because usually you don't want to improve everything like you just need to pick and choose. So, if you have a whole list, you can go and say, okay, apparently this one, this one and this one is cheap, so I'll do it now. And this one and this one are important, so I do it now. And these are expensive and not so important, so I just ignore them, right? So, it's getting better. And it's really a good guidance that can kind of lead you through that process. So, what were the issues that you kind of punted into later on? What was the stuff that was going to be really complex to solve versus the stuff that was really easy? Well, generally you want to add a feature, like you want to have some images on the page and you want to land it as soon as possible. So, you add a feature and you forget to optimize it at the same time. Right. So, it's like the stuff, if you don't do it great at the beginning, straight away. You say, okay, I'll do it first like initial version, agile style. And then I'll come back later and make it better. This later might never happen because, for example, you're preparing for Google I.O. or something like that. Oh, yes. So, is there a difference like between working towards like performance stuff versus working on features because you've been doing sort of both, right? Yeah, that's the thing. So, we decided to write this up without taking performance much into consideration and see how it is to retroactively go back and fix those things, right? That was the kind of exercise. It's probably very realistic because I think those teams work and like let's get the functionality first and optimize later. But then it puts you in danger of not doing that last step. It's like, oh, we'll do accessibility at the end and then people go, oh, the project's over running, let's cut it there. But also there's people throwing around the whole thing, you know, premature optimization is a root of our evil. So, people are trying to follow all this conflicting advice. I mean, of course, it's really good to like start with designing for performance first and it really leads to great results. But I mean, sometimes it does not happen. Like, you have a lot of stakeholders in your project, you have your boss, you have your marketing team, you have your other folks, you know, and you need to kind of juggle that. And sometimes you are really realistically in the state where you have an app and you want to make it more performant and you need to do retroactive work. So, we just wanted to explore that a little bit and see if Lighthouse is a really good tool that can lead you to some gains there and apparently this. So, when you were developing this app, did you basically give feedback to the Lighthouse team and saying like, this did not get caught by Lighthouse, fix it kind of thing? Yeah, so there were some areas where we were pointing stuff like this and fortunately, most of the time, Dancer was way the quarter or two, like it's in progress, we're getting there. We know it will be there soon. So, yeah, it's a very dynamically developed tool. So, you've been in the sandbox as well, right? The area of IO where we've kind of got all of those. They have stickers there, so you know. Why is it called a sandbox? Because it's not like, when I think of sandbox, either it's an actual box of sand, or it's like a metaphor for where you go to build things, but that's also not... No, no, it's about faces. Have you seen kids going into the sandbox and the face they make at that point, like pure joy? Well, in England, we call it a sandpit, which sounds like... it sounds like where you might die as well. Yeah. It's a difference between like, you know... Is that arena? Put your kid in the sandpit. Shh! Kid's gone. Never mind. Well, that's a quicksand. Well, do you know? Yeah. Well, but like, I had a sandpit growing up, but we also had cats, so the sandpit was not a fun place to be. So, when people are saying that the sandbox, that's all I'm thinking of is like, oh, got it. It depends on the definition of fun, I guess. Yeah. In the north of England, like, we'll take any fun we get. It's like, oh, modeling clay. No. So, who have you been meeting there? What kind of things have you been doing? I've met quite a few Google Developer experts, and it's pretty cool because they have so much passion, and they usually specialize in some narrow area. And, you know, I can't, like, know about every single nook of web, so it's always very enlightening to see all this passion. But knowing all about all of the web, that's something I remember having to let go of. And I was talking like 15 years ago, I kind of felt like I knew a reasonable amount of the web. This is kind of in the IE6 days when the web is essentially stalled. But then, like, new things were being added, so when we start to get IndexedDB, WebGL, and that sort of thing. And I panicked at first thinking, how am I going to learn all of this? I feel young now. Right, but it's like, you don't have to learn all of this, right? Yeah, that's why a lot of people are choosing their specialization path these days, I think. Web performance is one possibility. Other people focus more on the backend side of things. And, you know, like, I mean, the web is broad, and there's space for all type of specialists, I guess. And that's where I see part of our job most, to try and figure out which APIs are relevant to everyone. Stuff like, for example, CSS Grid. It's probably useful to everyone, and everybody should take a look at that. It is so useful, and I feel like I only know, like, one percent of it. It's still powerful. It's probably enough for most of the time. But then there is, like, the niche, like, do you really need to know WebGL or WebUSB? You don't, if you don't have a use case. Good, because I don't know either of those two things. Thank you for validating my skills. Yes, I think that's, and that's something where we have been trying to also get better at. And with projects like this, because in these projects, you kind of figure out, Grid was useful here, and I can see it being useful in more use cases. Or you find out I had to resort to Feature X, even though I don't think it should be the case. Can we do something to make it easier for developers? I think what is cool about Web is there is a lot of community around different, you know, areas. And it's not a matter of being a specialist in every single area so that you can have a cool project. When you have a project and you have, you know, a particular problem to solve on that project, you can go out and find information that is relevant to you on a given particular moment in time. So as long as this information is findable, it will be fine. You just need to know how to look for it. Yeah, I mean, it's good, though, that we're keeping an eye out on, like, that you have people like you who actually feel test this stuff. Yeah. So that it doesn't, let's get sooner, sooner than later. English is hard today. Yeah, yeah. It's getting late. High days, this type of things, yeah.