No Server Space Needed: Test Plugins and Themes with Playground - Interview with Adam ZieliƄski

Maciej Nowak [00:00:00]:

Hello everyone. My name is Maciej Nowak and welcome to the Osom to Know podcast where we discuss all things WordPress. My today's guest is Adam ZieliƄski, who is a core committee at WordPress, Core, Automatic, and more recently, creator of the WordPress Playground. And in today's episode, we talk about of course, WordPress Playground, how it started and what problem does it solve. And the second interesting theme would be an insight look, how Automatic operates as a remote organization and how it enables people like Adam to create really cool stuff. If you don't want to miss new episodes and keep learning more about WordPress, please subscribe to our awesome To Know newsletter@awesomestudio.com. Newsletter. This is Osomstudio.com newsletter and if you are watching this on YouTube, please give us a thumbs and subscribe to the channel. This means a world to us. Without further ado, please enjoy my conversation with Adam Janinsky.

Adam ZieliƄski [00:01:03]:

Hey everyone, it's good to have you here. We're glad you decided to tune in for this episode of the awesome to Know podcast.

Maciej Nowak [00:01:12]:

Hello Adam. Great to have you on the podcast.

Speaker C [00:01:15]:

Hey Maciej, thank you for having me.

Maciej Nowak [00:01:17]:

Great. Adam, can you start with introducing yourself a little bit for our listeners?

Speaker C [00:01:23]:

Absolutely. So my name is Adam. Hilinski. I'm a WordPress core developer and committer working in automatic I started creating WordPress Playground last year to solve a problem with starting with WordPress that was just too hard. And I'll be talking a little bit about that today. And in my spare time, I like to play badminton, do some bouldering right on a bike.

Maciej Nowak [00:01:49]:

Great stuff. Yeah. And this is one of the reasons why we are talking today because I would love to dig deeper into Playground. So you briefly touched upon this, why you created this, but give us a little bit more of a background. Why did you start fiddling with Playground?

Speaker C [00:02:05]:

Sure. So last year I created this tutorial for Gutenberg that was called Create Your First Application with Gutenberg data Layer. And the data layer part of it that was pretty I don't want to say easy, but pleasant to work with. Progress was smooth, I get great feedback. But then, well, for new contributor to actually use that, start following the steps. Well, there needs to be a setup step in that tutorial and these instructions, like, they just take so long and they are so difficult for a new person. So you have to download WordPress or install some CLI tools, configure things that you maybe never even seen so far, just to get started with writing some JavaScript code. And I really want to believe a lot of people actually get through that and follow the tutorial. But I know this is a huge barrier of entry. So I was thinking, what if the entire WordPress could just run in here in the browser tab and then there would be no setup required. You would just start learning and well, week later, I had a working prototype, and a couple of months later it was at a stage where other people could start using it. So this is how it all started, because WordPress was too difficult to get started with and all right, yeah, I'll stop there.

Maciej Nowak [00:03:30]:

Yeah, please continue. This sounds interesting because I thought maybe the approach was initiated elsewhere. But since this started, as I understand this, it was an education exercise. So you were working on documentation and tutorials, and out of it the idea originated, so it's too complicated. And then you started with another approach. So this is super interesting. So please continue after you stop.

Speaker C [00:04:07]:

Absolutely. So in Athens, we had work camp here recently. So in Athens, at one of the workshops, the Interactivity API workshop, 70 developers showed up to learn how to build interactive blocks using the new API to come in the next WordPress versions. And this is all the same problem, right? Whether you have a tutorial or you have a workshop, there are developers that need to get started. So some of them already had their development environment, but for the rest of them, louise, who was the host for the workshop, prepared a special NPM command. And that command did two things. It started webpack for gutenberg packages of that, but also it started a complete WordPress development environment, even if you didn't have PHP installed or Docker or MySQL or anything at all, just note. So we had 70 developers sitting in there and I'm very happy to say that we almost haven't seen any technical issues. Like one person had something and for the rest of it, well, it just worked. So we went from downloading WordPress, setting everything up, like spending hours on it, maybe like half of the workshop, to just running a single command. And Playground even powers the extension for Visual Studio code, right? So you don't even need to know anything about Terminal. You just click a button there and I'm already touching on Samfan more. So Playground works in the browser, it works in the server also. And the barriers are getting very muddy in here, like the web version of Playground, as of yesterday, it supports mounting a local directory from your disk in the browser. So then you get Playground locally, but in a browser, but it uses your files. It's kind of magical. The point is the barrier of entry to WordPress, like it's getting lower and lower and lower. And some frameworks for JavaScript, like Sveld, they have these tutorials where you just open a website and you start typing code and you see what the framework does. And they can do it because they run JavaScript right there. WordPress could never do it so far. But now I've been in touch with folks who are working on the official documentation for WordPress and for learning materials for that, and they are all super excited about Playground. So who knows, maybe one day we'll see the entire WordPress documentation being interactive and you'll be able to start learning it on your phone when you have a break. Maybe you're not a developer yet, right. But you just open that and oh, let's interact with that.

Maciej Nowak [00:06:46]:

Right. I'm thinking also about what would be the default approach, let's say, because if I understand this correctly, the barrier that playground is leveling is that you are starting from scratch. And is this a real concern? I'm a little bit like a Davis advocate here, but I'm thinking that if someone is learning advanced concepts like, let's say JavaScript here, there is already knowledge and understanding of basic programming and so on. So I'm thinking that maybe it's not such a big barrier for entry that would require another framework to do so. Don't get angry with me.

Speaker C [00:07:36]:

I'm really glad you asked that, actually. And my answer to this is have you ever attended a contributor day on any Word camp?

Maciej Nowak [00:07:46]:

Yes, once. Yeah, I've been there once, but I'm pretty sure that there was no coding, but this was more on a translation like end of spectrum, let's say.

Speaker C [00:07:59]:

All right, so for the coding part, some contributor days have these tables where you get to develop a pull request for Gutenberg or take your first steps with contributing to WordPress. And the way it typically works is that the entire day is spent on just setting up WordPress and if maybe a few pull requests come out of that, that's a huge success. It is so hard to get all set and I actually didn't believe it. Some people told me and I was like, yeah, but it's easy, right? Like you just download this and click that and it works. And then I started onboarding new people to WordPress development. I onboarded my friend and two of my friends and took us hours to get there and they had Windows and turned out, oh, now you need like WSL to run it and then you need to restart your computer a bunch of times and oh, maybe NPM install. Like there is a problem with that and this and that. There were just problems jumping at us from everywhere. On contributor days on WordCamp is the same story. You would think. It takes not that long. Like we work with WordPress every day. We have our development environments like setting up new website that's quite convenient and easy if you are already all set, but to get there, oh, this is super hard. And this is the same problem with contributing for Gutenberg, even outside of the context of contributor days. My wife Anya, she is now working as a software developer and she switched careers recently. So during that journey, I showed her the Gutenberg repo and she actually got inspired to contribute a pull request. So the process of creating that pull request, that was reasonably straightforward. But getting to a working development environment, that was super difficult. That was a very long answer.

Maciej Nowak [00:10:02]:

But what I'm saying is I like long answers. I tend to ask even longer questions than your answer. So stop me if you hear such a question.

Speaker C [00:10:12]:

Absolutely.

Maciej Nowak [00:10:13]:

All right. But yeah, this is illuminating because my understanding was that if you are a WordPress developer and you are capable of creating something worth like a pull request, you wouldn't have problems setting your environment for for the day. So, you know, it's like I'm, I'm thinking is it a chicken or an egg problem? So are for everyone. But I'm thinking maybe it's like if someone is able to create code that's worth incorporating into platform, that person would be also able and capable of setting up their environment relatively quick. But on the other hand, if the exercise is to get other people to work with WordPress, familiarize them with the platform and make it easy and assisted by organizers and people who are on the whole helping everyone, then that's very valid point that if the exercise is to make them understand WordPress like workshops. So it's like there is a workshop path and there is a contributor day which is a workshop in these guys, right?

Speaker C [00:11:39]:

Yeah, essentially. And for workshops like even the online ones, for people who already have WordPress, well, some of these workshops are about very specific things in WordPress, for example, creating an interactive blog. I like this example. And to start doing that well, maybe it's nice if you have WordPress but also the latest Gutenberg plugin installed. Maybe it's also nice if you already have some kind of plugin boilerplate to start working with. Maybe it's also nice if you have a specific theme because the entire workshop tutorial wants to show you interactions between things that are shipped in specific WordPress setup is what I'm saying. And you can start reproducing all these things locally by just oh, like I move this piece here, I go to plugin directory, I install stuff. But again, this takes time and you need a fresh WordPress install and then maybe you learn oh, I need this and this PHP extension, I don't have it. So now I have a problem. Right, well, maybe I'll get to this tutorial on another day. Well, with this as a tutorial author, you will be able to share the exact state that you're starting in and everyone who follows along would build on top of that. And that would be not just WordPress files but the complete WordPress environment. So you would know it works everywhere and you would be able to share it for people to work locally, but also a link that they can click to to maybe finished state of that. Oh, here's what I'm building to and this also has huge implications for folks who are not developers, right. If you want to build a block theme, you can do that in the site editor where we create block theme plugin. But you need a WordPress site and you need that plugin installed. And this is already quite a big barrier. Right, because for a WordPress site, well, you need to pay someone, and if you need to install plugins there, maybe that plan is more expensive. Right. So it's not Quick, it's not straightforward and it's not free. However, with Playground, you can go to Playground WordPress net, there can be a special link that gives you the exact state you need to be in and you just start building a theme.

Maciej Nowak [00:13:58]:

Okay. And the current state of affairs is that I can download playground, run it, and I have full WordPress operating locally without any hassle. Right, nice.

Speaker C [00:14:10]:

So how is it done, technically speaking? All right, so WebAssembly time. So there's this cool new technology called the WebAssembly. And what it does, it allows you to take, I would say desktop programs. There are nuances to that, but take desktop programs and build them in such a way that you can run them essentially in JavaScript in the browser.

Maciej Nowak [00:14:38]:

Yeah. Does it work like trans compiler, something like this, like compiled from one programming language to another, or from one technology you have, for example? I don't know, you can run Windows within Mac if you can cross compile one platform all right, into another.

Speaker C [00:15:00]:

Yeah, like WebAssembly is a compilation target. So in a way that is cross compiling.

Maciej Nowak [00:15:07]:

Yeah, this was what I was thinking.

Speaker C [00:15:09]:

All right, got you. Yeah. So takes the source code and it outputs a binary code, assembly code, only it's not an assembly for any specific CPU, it's this format called WebAssembly that it's a common standard across all runtimes. So you can take and you can run it in your browser, in node JS, maybe even on a tracking device dropped to a C turtle, like somewhere. Right. If you only can run, like you only have JavaScript runtime there, or more precisely, WebAssembly runtime, there are nuances to that. But the way it works is that so PHP as a programming language is itself a program written in another programming language called C. So you can take that C code and you can build it for the server or for the desktop, and then you can run PHP classically, like every WordPress runs this way. But now you can also take the same source code and compile it to WebAssembly, and then you can take the output and run it in the browser, in node JS, in Visual Studio code, like anywhere you have JavaScript.

Maciej Nowak [00:16:17]:

All right, so this means that once compiled, this can be ported to everywhere, wherever there is JavaScript. And this is provided by the browser, correct?

Speaker C [00:16:31]:

Yeah, pretty much. Pretty much. There are nuances like you have this Quick JS JavaScript runtime, for example, and I'm not sure if it supports WebAssembly. I would guess not. But the big ones, the most popular JavaScript runtimes. Yeah, they do run that. And the biggest of them all, like V eight yeah, absolutely. Support WebAssembly.

Maciej Nowak [00:16:51]:

All right, so we've talked a little bit about the case use case which originated inspired the idea to create this. What is possible with this? What are the other use cases? Because it's often the case that one idea inspired the solution and that solution can be used in multiple ways.

Speaker C [00:17:14]:

Yeah, this is a really cool question and I am only discovering that. Honestly, I had some ideas of my own. But the community and people using playground keep coming up with fantastic use cases. Like just recently my colleague Ella, she built this iOS application that runs WordPress like directly on your phone and this was never done before. So it's called the block nodes. It's currently in a public beta and well, you can use it to write notes using Gutenberg. And the cool part is these nodes are synchronized across your devices. And the web version of Block Nodes uses the exact same WordPress, the exact same code base. And it uses this browser feature that allows you to mount a local directory and use it in a browser to allow you to edit these nodes, like right there without sending them into any cloud. So now the entire data is yours and the same app runs everywhere, which makes maintenance quite easy. You don't have five different code bases. Suddenly you don't need to write Swift and Objective C and then PHP and JavaScript and all that. Like you just have a single thing that works every well, this is really cool. Another use case for this would be test environments. So right now if you are working on a WordPress, say plugin and you have a pull request, you want to test it, well, you need a server somewhere and that server gets notified about your pull request, downloads the changes, like applies it, all these things and then it gives you a site. And maybe some companies only have one staging. So if you have like three pull requests at the same time, like they are all competing for that server space. But with playground you can just run that temporary WordPress in your browser and we in fact have a pull request previewer for Gutenberg. So this moves the computation to the end user. So you no longer need cloud infrastructure for this. And everyone gets their own private instance. Like in a similar vein, product demos, right? You can put playground on your homepage if you're a company working on a plugin or a theme and then allow people to interact with it. Like right then and there you no longer have to do screenshots or videos, you just show your product. Like how cool is that? And further down the road, I fully foresee a button that will say, well, host it, right? Maybe I interacted with it, I put some content in there. All right, I like it, I want that to be my site. Well, why rebuild it? Why not host it from there? We could have that on Wordpress.org, right? There could be an entire WordPress running in there and every theme could be previewed in playground. And then once you customize that and it looks lovely, just use it as your site. There is a ton of this stuff, honestly. Like one of my favorite sort of futuristic examples is edge computing. So right now WordPress works on a server and this is a centralized model. So you have like maybe one central server or a data center, WordPress center, you have like MySQL database. And if you want to make it faster, well, one of the things you can do is hire a network of computers worldwide that will be closer to your readers, to your visitors and then ship parts of the WordPress. There maybe like static files, maybe like upload some computations but that's the idea. Like just put WordPress closer to the end users. Well, with playground and WebAssembly, well maybe WordPress could work just on these end devices like some cloud providers like Cloudflare, they already support WebAssembly as a runtime language for their edge nodes. Well, let's take it a step further, shall we? What if the entire WordPress was just downloaded to your end device and maybe you have to do it only once during your entire lifetime as a device and then it stays cached and maybe updates. But every time you visit a WordPress site you just download a small database file and then you browse that right, it's an ultimate PWA like entire thing is on your device and oh, if that's a WooCommerce store and you enter a tunnel and you no longer have mobile range well maybe you can still browse these products. Why not, right? It's on your device.

Maciej Nowak [00:21:46]:

That's interesting. That's very interesting because at the same time I'm wondering about the whole big side because you have all of media, images, videos so it's like take everything and download it and browse it locally. Because I will challenge this idea because this sounds very futuristic. I like the concept but it resembles for me at least like using a mobile application instead of using online shop. Then you can the app, but then the app still needs to download the content and real time data like on stock of stocks, products, availability or prices with websites. The bottleneck I would say would be the data of you can have the compressed text data of articles, but what about images? So I see a lot of challenges still. But maybe there are challenges, are there?

Speaker C [00:22:55]:

All I'm saying is that everyone seems to go headless these days and this is your front end for this. And now everything that gets invented in the headless space like well, maybe adaptive image loading depending on your network connection, maybe some kind of predictive technology or doing your profile in real time client side and then figuring out well this browser is likely to down browse these and these products, right? Well, maybe some pre bundled. Smaller versions of these assets could be shipped to their device right ahead of time. And sure, you want to have HD preview of everything, but that's better than not having the access to website when you're out of French, right? Yeah.

Maciej Nowak [00:23:40]:

I'm amazed that at the speed everything is developing and what you have available in terms of how rich the content can be and how fast can it load and how much data is transferred in the background. This is amazing. All of those technologies like Headless and other hardware solutions like CDN is old, but all of this combined creates real time experience for browsing some of the websites. Obviously not every, but some of this. And I I have a feeling that this can this playground can make it much more easier to develop and develop and then faster ultimately for for the end user. I don't know yet how, but this is like with every new tool which you mentioned, this is a year old technology.

Speaker C [00:24:40]:

Not even like I started, what was it, july or August last year? Something like that.

Maciej Nowak [00:24:47]:

Ten months? Yeah, something like this. How was it developed? Because you had your gutenberry career in automatic, then you came up with playground. Because from my understanding, you are fully committed to playground right now, right?

Speaker C [00:25:07]:

Yeah.

Maciej Nowak [00:25:11]:

How did the transition look like? Because you invented a job for yourself, right? At least.

Speaker C [00:25:21]:

Yeah, you could say that. This is how it typically works for me though. Most major projects I've been a part of, maybe at the beginning I had something that someone asked me to do, but then as I explored, I started noticing systemic problems, like larger issues to fix and these were always more interesting for me and I naturally gravitated in that direction. And automatic is really great in that it gives you a lot of freedom to explore, especially if you find problems that matter, that are worth solving, that make people excited. Chances are you'll have a chance to actually work on them. So before playground, for example, I was working with my colleague and friend Denise, who is going to look over playground while I'm away. Like we've been looking into this HTML tag processor, that's official WordPress APIs of WordPress 6.2. So everyone used to process HTML using regular expressions. Now you have a proper parser for that. And this was spontaneous thing that started on a meetup. Like Denis was exploring this for quite some time already and thinking about all the different solutions and I noticed him sitting on a couch and we started talking and he's like, well, I bet we could implement HTML spec in here. And I'm like, well, that surely would be overly complex, right? Like there is no chance it would work, but I like the idea and we started hacking together and week later we had something that worked and then we spent some more time to ship it in WordPress so no one asked us to do this. This wasn't planned at all. It was spontaneous innovation. Same with playground. I had a problem, I was getting people to start using their course. I ideated a solution, started working on it. It took a week to create an MVP that somewhat worked. And then turns out quite a few people started getting excited about this and I started getting all these ideas. Hey, like I bet this matters beyond tutorials, right? Like I bet this is a game changer for the entire WordPress world. And so as new ideas appeared, I was just keeping track of them. Like talking to people, getting everyone with.

Maciej Nowak [00:27:51]:

Notebook, a little notebook with idea note.

Speaker C [00:27:55]:

But yeah, no one ever stopped me from doing it is all I'm saying. And quite the opposite. Like everyone wanted to see more of playground and I think that big turning point was when Matt Mullenweck and talked about playground during State of the World last December, this was the point where a lot of people learned about playground both externally and internally in automatic. And it started becoming a thing.

Maciej Nowak [00:28:34]:

Interesting because what I'm thinking now when you related the whole story is that in a product company, because automatically it's a product company, there's a product behind even though it's heavily like open source and also developed by the community. It's like you can find yourself a niche that interests you and then if the whole product benefits from this, this is great, no one will bother you because you are building something great, right? So this is very interesting in a sense that you can invent yourself a cool thing to do while you are building, while you are working in a product company. That's super interesting.

Speaker C [00:29:28]:

One thing I really like about that is automatically sort of this choose your own journey environment. If you can find something that you are proud of and it is useful to people, chances are you'll be just able to work on this. And what you said about finding a niche inside a product company, it's funny you phrased it that way because I was exactly thinking about playground as a kind of a startup, even like inside WordPress. So there are different directions it can take, you need to pivot it, you need to talk to the customers. So users of playground, right, like you need to listen to feedback, accommodate for all of that, make sure it grows, get people on board. All the things you do in a startup, you may say but there are no sales. But oh, every user actually adopting that in their workflow, that's a sale and sometimes that's a much harder sale than a monetary one. Because people have habits, they have chose, they are used to, they're like is this actually stable? Is this actually going to be a thing? Is this actually solving a problem and getting folks to start see value in a new thing in this space? This can be challenging, but I feel the value of playground is becoming apparent now, and I'm super excited about it.

Maciej Nowak [00:30:58]:

Yeah, you are super excited because we were in a hurry to record this podcast. So because you are also super excited about your female sabbatical, right?

Speaker C [00:31:08]:

Yes. It actually starts later today. Like, this is my last day of work.

Maciej Nowak [00:31:15]:

All right. Yeah. We are recording for the listeners. We are recording on Friday. And this is the last item on Adam's checklist before going. Of course.

Speaker C [00:31:26]:

Last one. But it's one of the last ones. Yes.

Maciej Nowak [00:31:29]:

It's noon. A couple of hours more to spend at work. Yeah, because Freeman's sabbatical is a great thing, not so common as well. And can you tell us a little bit more how this works in terms of also Remote culture of automatic?

Speaker C [00:31:48]:

Absolutely. So Sabbatical is an experimental benefit in Automatic, and after five years, you get to take three months paid leave. And the idea is to completely disconnect from work. And well, if you felt any sign of fatigue or burnout or just had none of that, but some super cool adventure you wanted to explore. I don't, like, travel around the world, like get into woodworking, whatever. That's your space to do it. And I think this is quite amazing. And I never seen I've never worked in a place that offered that ever before. And this is like I know some people do this, for example, they leave one job, they take some time off before starting the next one, and they get the sabbatical kind of this way. Well, what I really like about this one is, as you can tell, I'm super excited about playground. I really enjoy working in Automatic. And Sabbatical is this opportunity for me to take time off without changing anything in my life. And this is super, super good. There's a bunch of other cool things in Automatic. So you may not know this about me, but I explored a data scientist career for some time. So I took a lot of machine learning courses, statistics courses, mathematics. It took me two years to learn all this stuff. And then I was thinking, well, where can I actually apply this? And this was soon after Automatic acquired Tumblr. And Tumblr has a lot of opportunity for data science work. Like, how do you recommend the best possible content to a user browsing Tumblr. Right. And these users have very specific preferences, like how to make sure the platform caters to that and keeps everyone satisfied with what they're seeing. And so I had a rotation in Tumblr as a data scientist for a few months, and, well, surprise, surprise. And I'm saying that because I'm here talking to you about playground, I decided to not pursue that. And if that opportunity wasn't there, maybe my only choice would be to actually find some company who had an opening for that position and then go there and discover after a couple. Of months. Maybe I enjoyed what I was doing before more. So how do I come back? It would be much harder, but I had this excellent opportunity to just do it all in my current workplace and I'm actually super grateful for being able to do that. As you can tell, I'm quite hyped about Automatic. It's an excellent place for me.

Maciej Nowak [00:34:44]:

Yeah. And those opportunities usually comes with the size of the company because if you have enough branches or areas of expertise or products within a bigger organization, those opportunities present themselves by default. Right. They are there justified by the size of the organization. But this is like the management decision to let employees migrate because who will be filling your post and okay, then is there a way back to the previous state? Right. This is, I would say, management decision that would be elastic for the employees to pursue their interests.

Speaker C [00:35:28]:

Yeah. And to be fair, rotations are limited in time by default. Right. So at the beginning, you already know you will be coming back to your previous state unless everyone decides like it works and you want to pursue the new thing. But this particular thing wasn't that big of a concern, but is very much a decision to make. And I know not every organization makes it easy or makes it even possible, like, despite the size. And I'm really glad Automatic does.

Maciej Nowak [00:36:02]:

And can you tell us a little bit more about working remotely? Because automatic is famous for the remote work culture and it was there before it was a thing. And now we also notice trendsetters. Yeah. I think demo like a pilot project in terms of other companies. Now the trend is in reverse, in full reverse. Big organizations are putting people back to the office by these guys of hybrid work, which forces you to work in the city where the headquarters or the offices. So it's like no longer remote. You cannot travel while working. So I'm curious how this is possible for Automatic and what makes it so, why is it smooth and how does it work? Because people were forced to push people to work from homes. Now for some reasons, they are not very happy about them. But Automatic is nothing changed there. Right?

Speaker C [00:37:18]:

Yeah. So I'll answer in reverse. Like, you asked a couple of questions in there. So I've been on a couple of conferences this year and these are like all the badges that I collected. And I probably have like I could probably find like one or two more summer. And all these conferences, I've been talking to people from many different companies and one recurring theme I heard there was that a lot of resumes they get are from folks who are working from some other company that is now reverting back to the office work and no one wants to return to the office. And of course, this is a biased sample because you will not hear from the other people who are happy about returning.

Maciej Nowak [00:38:01]:

But data scientists talking bias samples.

Speaker C [00:38:08]:

But there is a friction in going back to the office work, right? So if you have a company that can make it work remotely, you suddenly get access to much more talent. You're no longer restricted to people that are available in your vicinity. You have access to talent worldwide, even if it's in completely different time zone city. Maybe your native languages are different, doesn't matter, right? Because remote work makes it all possible. So what makes it work for automatic? Well, I would say it's a couple of things. The number one by a huge margin. That's a culture. It's a culture of communication, it's a culture of mutual respect and it's a culture of embracing our differences. And what I mean by that is there is no standard template for a team working in Automatic. Every team gets to refine their own processes, their own tools, their own way of work. It's not like everyone has to use trello or be agile or use any framework at all. I've been in teams who had very vague roadmap or almost no roadmap. I've been in teams who had very detailed like item by item roadmap. Both types of teams worked. I've been a lead for a time and my team Ranch, it was spread through all major time zones. So I had people like on east and west coast in the US. But also in Europe, also in Asia and Australia and New Zealand and these are fun times. And how do you make all these people work together when there isn't even a single time window where they can communicate? Right? That's a challenge. So we had to find a solution specifically for this situation and maybe that solution wouldn't work for other teams. So all sorts of these scenarios already happened at one point or another in automatic. So there is very rich knowledge base and experience in the company that you can consult to solve your specific problem. Maybe it doesn't make sense to make a recurring call when there isn't a specific time where everyone can gather, right? Or maybe it makes more sense to document more stuff that you're doing in writing if the next person that you will be handing it over to will wake up long after you disconnect for the day. So what I'm saying is communication is the number one factor that makes it work and it works differently for every team. And we have this motto even like communication is oxygen and yeah, automatic has a creed also. I'm not sure if you've you've heard of that. I will never stop learning is one of the things that it says. And this is true, right? There are no defined things that always work. Things are always in constant flux. Like if something doesn't work, you have to figure out why. If something works well, well, how do we double down on that every situation is different, every team is different. But this is one jolly bunch of folks who work together surprisingly well. And also one other thing about automatic is that it can be chaotic at times and it's fine. There's no point in trying to structure like 2000 people working in different places and pull them into a mold. Like just embrace the chaos and let it give you the best of it. Like for example, playground that was a chaotic enterprise. Like a random person on random project just had this idea and turns out they had enough web skills to prototype something and then take it from there. Right. It didn't have to happen but it happened. And if things were much more structured it would have probably not happened. I was the right structure from this, you know what I'm saying?

Maciej Nowak [00:42:22]:

Yeah. I'm thinking about this because it's like again double edged sword because I'm thinking about raining 2000 people in the space also spread across every time zone. I bet there is person in every time zone. Even Alaska probably as well. Especially Alaska.

Speaker C [00:42:47]:

I don't know. I just know there are people there.

Maciej Nowak [00:42:50]:

Yeah, but when I'm thinking about action and processes and when I'm hearing every team has its own way of doing things, okay, there is that knowledge base of corner cases. Probably every corner case gets documented probably at some point so that it is benefiting the whole organization. But I'm thinking about migrating people from team to team, changing the way they are documenting their work or how they communicate. But maybe this is not such a challenge. But at the same time this gives a lot of opportunities where this is not so structured a process that gives random Adam an opportunity to create playground, for example. Yeah, exactly. And be let loose to pursue what started to look promising. I'm thinking about that organic structures where again because I used that phrase with talking last time with Brian ILB because this is also one of the reasons I'm coming back to that questions of how automatic operates because it's like a little bit chaotic but at the same it's resilient to some extent. So again, my question is very long, not a very specific question but this is what I am thinking when I'm listening to you about how this is working from taking internal point of view.

Speaker C [00:44:36]:

If I'm working with another team and well I want to get a feeling of what they are working on, how does it work, like what are their processes if there are any. I can go to their P two and I can find out. Right. It's not like this information is fenced. I don't have to go through there. So Timilizine, automatic are very different from managers in most companies in that.

Maciej Nowak [00:44:59]:

If.

Speaker C [00:44:59]:

You want to take time off for example, there are scenarios where you have to figure out if enough people are going to be around, blah blah. But most of the time that's how it works in the teams I was a part of, like you just go to a tool, like choose something in your current there is no approval process is what I'm saying. And this works similarly for surprisingly many things. So team leads are more contact points than they are the directors, if that makes sense. So I can go to any team SPIto, I can interact with the folks there, I can go to their slack channel, and if I need something from a person, from another team, I can just approach them directly. Right? I don't think I've seen a situation where someone was like, oh, I'm managing this team, you should have talked to me. That never happened to me. So there is a culture of openness and access to information and we're all in this together.

Maciej Nowak [00:46:04]:

I'm also thinking about culture feat when hiring people because look, you've been managing team across twelve time zones, right? More or less or even more, yeah, twelve is max in terms of time spread. But those people have to interact with each other. And I'm curious now if you've been recruiting to your teams, how you think about this in terms of culture feed. Because you can inherit culture from the organization and you can recruiting is separate.

Speaker C [00:46:51]:

From team leads from what I've been exposed to. So I didn't get to recruit to my own team. Like there's a recruitment process and you can volunteer to be a part of that, but there is a process and it has specific steps that are different roles and nuances, but more or less that's the case. So the culture feed, it becomes very apparent during that process. So things also change over time. But when I was joining Automatic, my trial was a couple of weeks of actual work, like paid work also with a team I was about to join. So I was interacting with them, we were working remotely, I was asking questions, they were giving me feedback. And once everyone decided it works, so works for me, works for the team, then we moved on.

Maciej Nowak [00:47:49]:

All right, yeah. I read that this is like initial process. I wrote on your website that this is the initial process that you work with. Join the team for a trial period, which I think very good idea to do. So especially if you have very certain way of doing things like 2000 people, strong remote company. So this is full disclosure.

Speaker C [00:48:12]:

I think the trial process evolved and I'm not familiar with the details right now, but I think it would be different today than it was five years ago when I was doing yeah, sure, yeah.

Maciej Nowak [00:48:23]:

It's not like legal advice or career advice of any sort. All right. I'm also curious, taking steps back to playground still. Is there one thing that surprised you most when you've been building playground? Because when I'm talking to my other guests, when they were building products and playground as a product. This is a very interesting thing for me to ask. What were, let's say, initial assumptions that got corrected or you got surprised by something that you wouldn't tell this would happen or this would behave this way, or something surprising?

Speaker C [00:49:12]:

Sure. I never expected anyone to build a mobile app based on this, but I know that wasn't your question. Honestly, I don't have any I didn't have many assumptions in the first place. I just wanted to see how far I can take this and all right, my largest assumption was that this wouldn't work and I just wanted to see how far would I get before I hit the wall. And I don't see the wall yet.

Maciej Nowak [00:49:43]:

All right. Yeah, the road is straight. Speaking of road, what's on the roadmap? Obviously, after you get back from your wonderful three months sabbatical.

Speaker C [00:49:53]:

Sure. So the roadmap, that's very much a living document and it's in Flags. So as we learn about new use cases, it will change to reflect what makes sense the most. And also, everyone is welcome to join the GitHub issue about the roadmap and discuss that being said, three primary things on that roadmap are making WordPress super accessible to users, designers, developers, just to use it, just to get started with it. Then there is learning WordPress and about WordPress make that super accessible. So whether you're a developer and you want to start writing code, or maybe you just want to find out how to change a theme on your site, right, or how to change the URL structure, like make this super accessible. One of the things I'm excited about that may come together is live testable documentation is what I call it. So imagine a markdown document where you have a code snippet and that code snippet when it's rendered on a website in the actual docs, maybe it becomes live and you can change it and rerun it and get the different results. But it would also be tested as a part of CI process. So whenever any pull request breaks something in a dogs well, right now it's very hard to find out, but with this kind of process in place, it would be very apparent. And I think the same could be done for the actual guided tutorials for using WordPress. So, oh, maybe here is a list of steps to switch a theme. And we know it works because at the end of it we have a new theme. So, oh, here's a pull request that broke it. And we can walk through these steps because playground works in the browser, but also on the server, we can walk through these steps like in CI and know, oh, this doc page no longer works. So that's something I'm personally very excited about. But that's the second thing. And third, playground use case on the roadmap and I have to pull a roadmap for that because my memory is not so good. Open new doors for WordPress and this is innovative. Things like the mobile app, but also the Vs code extension, but also maybe bringing the Visual Studio code extension into the browser version of Visual Studio code or integrating all of that with your local directory. The best development environment is one that you don't have to install in your browser. Maybe that is integration with exciting new tools that we have. So say chat GPT. Right? You can go to Playground, you can say, oh, I want a three column layout and by the way, I have a fish store and it does something right there and you don't need any hardware for that, like just the open I API key once these models get into browsers, like, you wouldn't even need that. But I'm getting ahead of myself, so quite some things and none of that has any date on it. So it's not like there is a roadmap of specific milestones and stages. It is a general roadmap. And the thing I love about Playground the most is that a tiny push, like applying a tiny force in one part of it can lead to amazing results across all playground use cases. Because playground is portable, right? So it runs in all the different contexts. So maybe if I'm able to, say, have a local development environment which now exists, well, maybe it's not that hard to take it. And once I have some kind of code editor in the browser, well, plug this in there, right? And now I have an environment in a browser, or maybe if I have so Playground has this language of Blueprints that you can use to set up any website that you want, like you give it steps, right? Install plugin, create these files, site options. So once you have that, maybe it's not that hard to also plug it into a hosting environment. And now you can start actual WordPress websites using Blueprints, right? And then if you can use the same Blueprints for both, well, maybe you can play with something in your browser and then make it interoperable with oh, is this a real site? Is this a playground? Well, does it matter?

Maciej Nowak [00:54:23]:

Yeah. Interesting and exciting future in front of Playground. Yeah, great.

Speaker C [00:54:29]:

I am very excited about it. I wonder if there's anything else I can give you on that. Just let me take a quick glance over this. There's one other thing. So when I talk about applying one force in one place, here's another example of that right now. A couple of days ago, the plugin, WordPress plugin based on WordPress Playground was approved for WordPress plugin directory. It is called Interactive Code Blog. And what it allows you to do is write a blog post with PHP code snippets in it and you can run those snippets as a user. And you can actually write in the editor, write PHP code in that code editor in Gutenberg when you're authoring the post. And this was itself a sum of very tiny advances in other areas. So now that we have this, that's another one of these small steps that oh, well, we can run code in the browser now. Well, maybe we can take that and put it in a tutorial and you can add tabs to that. So now we can edit different files. Well, tabs plus code editing, that's not that different from a code editor, right? So like, here's another direction and I can keep talking and talking.

Maciej Nowak [00:55:42]:

Yeah. So that's great to hear. The roadblock is very full. So very exciting times in terms of playground. Adam, thank you very much for making time to record and for our conversation. And I wish you yes, I did.

Speaker C [00:55:57]:

Add one more thing because the roadmap is so full and Playground is, well, such a promising project. Like I invite everyone listening to this conversation to come over to the repo, come over to Metaplagground Slack channel on Wordpress.org Slack and help us build it all. And helping can be anything, right? It can be just sharing a problem you're experiencing or what is confusing about Playground. It can be proposing a solution, it can be triaging existing problems, it can be contributing code if you're up for it and you don't need to know any WebAssembly to do that. I really hope Playground to be very welcoming environment for new contributors and if there is any friction along the way, even speaking about that and helping everyone fix it, that's also super helpful contribution. So I just wanted to say that please come over and help us build the future.

Maciej Nowak [00:56:55]:

Great. We'll include this info in the notes so our listeners can find a link to the playground. And Adam, have a great sabbatical, recharge the batteries for the playground and take care, please.

Speaker C [00:57:13]:

Thank you so much. Thank you so much for having me. It's been lovely. And yeah, let's make a good sabbatical and good playground.

Maciej Nowak [00:57:21]:

Exactly. Thank you.

Adam ZieliƄski [00:57:23]:

If you like what you've just heard, don't forget to subscribe for more episodes. On the other hand, if you've got a question we haven't answered yet, feel free to reach out to us directly. Just go to awesomestudio.com contact. Thanks for listening and see you in the next episode of the awesome to Know podcast.

No Server Space Needed: Test Plugins and Themes with Playground - Interview with Adam ZieliƄski
Broadcast by