Co-Creation and Live Streaming Laravel With Nuno Maduro

## Metadata
- Author: [[The Laravel Podcast]]
- Full Title: Co-Creation and Live Streaming Laravel With Nuno Maduro
- Category: #podcasts
- URL: https://share.snipd.com/episode/02340463-609a-4c3e-a732-df1e31a00e2d
## Document Notes
## Highlights
- **Nuno's Early Laravel Journey**
- Nuno Maduro started as a regular software engineer enduring long commutes before joining Laravel in 2020.
- His early open source contributions helped him join Laravel, where he became employee number three or four.
Transcript:
Nuno Maduro
Yeah, great question. So, I mean, before joining Laravel, I was a regular software engineer dude, literally. So I was working at a company doing a social media, actually, using PHP. And kind of my journey towards Laravel, not the Laravel company, but the Laravel ecosystem or the Laravel community was starting by literally listening to Laravel podcast season Three. And, you know, a little bit of Laravel and start following a little bit this very famous dudes within the Laravel ecosystem, Taylor Otwell, Matt Stouffer, Jeffrey Way and many others. And I was a regular software engineer. I remember that I had to commute a lot back in the days. I was living in France, in Paris, and I had to commute like one hour, two hours a day to my office. That was a lot. So, which in hindsight, it was a bad thing, but allowed me to actually have a lot of time to consume some of this content online, which kind of opened some of the doors to understand how Rich software is. So, you know, I remember equally starting some of my very first open source projects. We're talking about very small CLI tools, including Collision, Laravel Zero. And that is what got me to kind of join Latavale because I had this small tooling out there, but also my very first contributions to open source was made back then as well. And in 2020, that was the day or the year I joined Latavale. And I still remember very well receiving the email from Taylor. I received your application. What do you think about joining Laravel? And I was a huge Laravel fanboy. The guy asked me, like, what's your salary expectations? And I said, I don't care. Like, literally, I'm joining no matter how much you pay me. And, you know, it was super fast joining Laravel on his side, but also on my side. And probably one of the happiest days in my life. I still cannot remember if I was the employee number three or four, but we were little back then. I can tell you that. So it was Mohamed and probably James or Dries. And then it was me. And that was in 2020. And it's been five years. ([Time 0:01:46](https://share.snipd.com/snip/994f3a56-73ff-46a4-b2d8-058af73d912b))
- **Simplicity Trumps Complexity Over Time**
- Early in his career, Nuno favored complex, clever code to showcase smartness and follow all principles strictly.
- With real-world experience, he now prioritizes simplicity and consistency for maintainability in team environments.
Transcript:
Nuno Maduro
Funny they talk about Chris because, well, I wasn't at that point of exact pattern or whatever, but I was definitely all about writing clever code. You know, like everything's super complex. Just trying to be the smartest person on that code ever, you know, kind of also following all the rules on the books because I was just came out of university and I wanted to kind of implement Everything like it is on the books. But, you know, I think it's the same for you. Like the experience of actually developing real world stuff brings you a different mindset, basically. So these days, I'm much more about simplicity, consistency on top of it, because, you know, for example, now we have this Laravel Cloud team receiving people all the time. So something I always make sure is that all the code looks consistent. So if someone is joining the team, they know exactly how to develop a new feature because all the other features look the same so i'm much more about consistency simplicity make it simple Back in the days i was so much into over complicated things overall like you know trying to prevent the end of the world and prevent that whatever we change the framework or we change the Database i'm not into that kind of stuff anymore. I'm glad that I'm not, by the way. So, yep.
Matt Stauffer
For those who know me, I promise I didn't prep or plant this answer for Nuno. It's just literally he and I have gone through the same journey. You know, it's just like, you're just like, I don't need to do it like that anymore.
Nuno Maduro
Yeah, sometimes I like to give an example, which is sometimes I feel like it's much more simpler changing like a very simple code than changing a code that is ready for everything. Because it just, it's, well, it's just, again, it's the experience overall of maintaining real world stuff just brings you that. ([Time 0:10:29](https://share.snipd.com/snip/da0f96cc-3031-4582-b96b-bb26315d8d2a))
- **Value Full-Stack Developer Teams**
- Teams work best when members can build full features from database to UI independently.
- Relying on segmented front-end/back-end roles can cause blockers and slow feature delivery.
Transcript:
Matt Stauffer
Being on a team where you have less responsibilities than you did on day one? Think there's anything wrong with those responsibilities? Like what's your thought about like building teams where people are really segregated, doing just back end, just front end, just writing versus teams where everybody does a little Bit of everything?
Nuno Maduro
Oh, that's a good question. I want to have a team that is able to still deliver a feature from back to the end. So I think, for example, if you're working in the product and you have someone able to deliver a feature from the very first database make migration to the last click on the button, I think That's a positive thing to have. And I think today, for example, on the Laravel team, everyone on the Laravel cloud team is able to perform that way. I think that's important. I think, for example, having someone just doing the front end and someone just doing the back end can be sometimes blocking in the sense that, you know, you have to wait for, have the availability Or a front-end developer to help you out. And then you have to always have a specific feature that needs to be performed by two people, which is not always positive. However, I do think that it should hand on the designer. It should hand on the content creator. It should hand literally before the documentation, because I think that's old new science, and I shouldn't be involved in, I shouldn't be doing that. If I want to, I can do if I want to learn and be good at that. But I do think it's a totally different thing.
Matt Stauffer
Yeah, 100% with you. Once again, did not feed Nino this answer. He and I just happen to agree on this one. I love the idea of finding things that are outside of the world. Like I think a project manager is a very helpful tool. I think writers and editors and designers and photographers and videographers are all very helpful folks. And I do think that sometimes you really do have to separate your teams. But personally, even if you do have to separate your team, I still would prefer a team that has a back-end developer and a front-end developer working on it together on a feature. And then the next team is another back-end developer and a front-end developer versus a team of front-end developers and a team of back-end developers. So, you know, and I was kind of curious whether you had landed in a place where you're like, yeah, full stack's not the ways to go. ([Time 0:14:37](https://share.snipd.com/snip/f17a8f9e-b87b-44af-8252-3fd0c6c02c4c))
- **Share Ownership to Sustain Projects**
- Co-create open source projects with others to share ownership and avoid burnout.
- Give collaborators credit and responsibilities to keep projects thriving long term.
Transcript:
Matt Stauffer
But rather than kind of like ask leading questions, I just wanted to ask you, am I reading right that that's a thing you often do? You're going to have the idea, but you're not going to be the long-term maintainer.
Nuno Maduro
And if so, what motivates you and what are the benefits and the costs of working that way? Yeah, that's a great question. I do get that question sometimes. And I feel like the answer is, just to be clear, I like to co-create packages with other people. That's the way I like to put it. Because I feel like I'm a creator. I like to build stuff. But overall, I think one of the mistakes people do sometimes is that they create something and they want to have full ownership of the thing they created to the point that sometimes they Get bored and they are focused on other stuff and the project just dies. Okay? So in my opinion, I think the balance of having other people joining me and making sure the project is successful, not only today, but will be successful over the years is a much better Balance. So, you know, over the years, I actually have done this technique of co-creating stuff with other people. Those co-creators actually may join in the middle of the project and I will still call them co-creators by the way. Yeah. Okay. So some of the things I like to do is give ownership, but also give credits and make sure that people think that project is theirs and make sure they go to conferences and they, for example. Present it, yeah. Exactly. They say that this is a project I have created with Nuno and this is what it does. And I like to as well make sure people do releases on those projects and they tweet from their accounts as their own thing. So it's also part of it, like making sure people are getting enough credit as co-creators of that thing. So this balance have particularly helped me with multiple projects in the past and continues to help me today. You know, Larastin is one example, but also a past PHP, multiple people have came in and came out over the years. I call them core team members, for example. The OpenAI client is a very good example where Sandro has joined the client. He is the co-creator. He has spoke already in multiple conferences. And also like one thing that I don't mention enough, but that is actually people who have joined me in different projects and they actually got better job positions thanks to that because They got super into open source. Other people start noticing that they are doing releases about these projects and they contacting them. So it's a win-win situation for everyone, not only for me, but for the people joining me in these journeys, but also for the ecosystem in general. ([Time 0:17:31](https://share.snipd.com/snip/141f23d1-c057-4218-97ad-c1a013fe1c7e))
- **Creator Over Maintainer Persona**
- Nuno identifies as a creator who thrives on challenge and novelty, often starting projects from scratch.
- He loses interest quickly if work becomes repetitive and unchallenging.
Transcript:
Matt Stauffer
Or do you find that you're able to do both, but this is just a way that you like collaborating with people?
Nuno Maduro
I actually thought about that a few months ago about myself, and I'm definitely a creator. So basically it's, I'm not a creator, but I like to have challenge, you know, either being a creator or joining in the middle. But if there is no challenge, if I'm not learning, if I'm not doing something new, I get bored. That's it. Yeah. That's why sometimes I start this experience like Pokeo, for example. I don't know if you noticed, but I've started this new project called Pokeo, blah, blah, blah. Anyways, I like to basically be into stuff that I'm being challenged and I find exciting. If I'm working on something that I have done in the past, I just get bored. That's it. So, you know, if I were to, you know, answer one of those two options, I'm definitely the, I like to be the creator and I like to start something from scratch. I like to be involved while there is challenge. And for example, on a lot of Elklaw, there is multiple challenges, you know, from the very first start, but there is still challenge today. That's why I'm still on the team and I will be continuing on the team until there is challenges to solve. ([Time 0:20:31](https://share.snipd.com/snip/feb674f7-cae6-485f-972f-9af41b147fb7))
- **Nuno's Streaming Journey**
- Nuno began streaming live content about six months ago to explore his extroverted side and share knowledge.
- Streaming requires consistent effort and balancing it with his full-time Laravel job is challenging but rewarding.
Transcript:
Matt Stauffer
You know what I mean? Can you talk a little bit about like what led you there? What was the process like? What was some interesting stuff that happened along the way?
Nuno Maduro
And it's kind of fun that you have seen it all, right? Because you know me for more than 10 years at this point, probably. So you probably saw my first tweet ever and you are not seeing me where I am at the moment. I wouldn't say that I'm a streamer though. Okay. I'm still trying to figure this out a little bit. I'm still doing it because I enjoy it. And I cannot promise you that we'll be like still streaming within three months. Okay. I have this problem again of not being able to continue working on something when I'm not excited. So hopefully I will continue to be excited with streaming and I will continue to do it. So my journey regarding streaming is, you know, I always have been a fan of live content in general. It doesn't have to be always about programming, for example. I remember I still watch, for example, just people cooking on Twitch or yeah, people just, but not like the real plate gourmet. I'm talking about regular cooking, like burgers and hot dogs, you know what I mean? So I always have been a fan of that type of content, gaming, for example. And at the same time, I always knew that I'm an extrovert and I would do well if I were to do some live content. So, you know, six months ago, I just said, I'm going to just start putting some consistency into this to see how it goes. And so far it's working out. People are happy with my streams. I'm happy with streaming in general, which is probably one of the first things I wanted to know is that if I'm able to keep up with the consistency. And if people at home are listening to me right now, I feel like when you see streamers, you have no idea how the amount of work streaming every two days involves. And streaming is all about that consistency and being able to keep that pace. And I feel like doing one stream is easy. Doing two streams is easy. Doing three polished videos is easy. But like doing consistently is a whole new beast. So I'm still trying to discover if I can actually do this long term, which is maybe still not the case. There is a few things I'm discovering. For example, I cannot simply go out, you know, get hammered with a few drinks because my voice the next day will be gone. That's just one example. You know, there's a few things you have to keep in mind if you want to do it consistently. So I'm still learning all of this to be able to understand if I'm potentially, you know, within five, ten years doing this full time. I'm just trying to understand if this is really something I want and this is really something I enjoy. And then once I have these questions, I probably will, you know, call myself a streamer. Until then, it will be just a hobby and something I'm having fun with. ([Time 0:23:33](https://share.snipd.com/snip/f3f07cb5-27a2-40d1-9e30-14ec52608072))
- **Repurpose Stream Content Effectively**
- Reuse live stream content by cutting it into shorter videos and polished clips for various platforms.
- Use short, informational videos on platforms like TikTok to efficiently share programming knowledge.
Transcript:
Matt Stauffer
You're creating smaller content, like shorts and everything like that, are you trying as hard as you can to reuse stream stuff or is it just sort of like, yeah, they're two different Ideas? Absolutely.
Nuno Maduro
I want to set up like this train of content that starts from, okay, what do I actually need to have for this conference two months from now, for example? So I need Pokeo, I need Pest4, for example. So what I will do is try to create content live streaming about these two projects. And while I kill them, like while I'll do them, I will be able to provide for my viewers at the same time. And when I finish a stream, potentially I will end up with good segments or very good, you know, four minutes of content about a specific content. And that may end up being a polished video. But sometimes I end up with segments which are not worth of a polished video. So what I do is a one minute short. And that content actually served me very well on various different platforms like TikTok, because people like to have this very informational, short, 30 seconds video that just give Them something new about programming. And I enjoy doing them a lot. So ([Time 0:27:15](https://share.snipd.com/snip/f16a9443-8377-463f-b9ef-9eba61f0b855))
- **React and Inertia Transition Challenges**
- Early use of Inertia v1 with React in Laravel Cloud felt limited versus Livewire due to missing features like prefetching.
- Feedback from Nuno helped tailor Inertia v2 to better suit Laravel Cloud's needs, improving developer experience.
Transcript:
Matt Stauffer
So one of the things I asked when I asked my team is they were asking about the switch to React. And it's maybe not a switch, but I remember there was one project, and I don't remember which it was first, where they picked React. And then I think it was Cloud picked React, and then Nightwatch was like, well, Cloud's using React. We're going to try it. And so one of my team members asked, what have been some gotchas you ran into when you were working with React or gotchas with Inertia when you're building cloud. He said Nightwatch or cloud, but I know that you were primarily involved in cloud.
Nuno Maduro
Yeah, yeah. For the record, I actually haven't been involved in Nightwatch at all. So I haven't done any Nightwatch before and I didn't actually check the code yet from Nightwatch. So I will be probably as surprised as a regular customer and excited to try it out. But on Latavale Cloud, I indeed worked with React and Inertia. It's kind of funny because I still remember typing Latavale New, and one of the first things Latavale New gives you is like, what is the stack you use? So me, Taylor, and Joe, we were discussing a little bit, okay, what is the stack we use for this? We had so many questions, this is one more. I was very good at Livewire. I wouldn't say very good, but I can develop with Livewire because I have done Pinkery and many others. And there was Inertia, but Inertia had React, and I wasn't super familiar with React, but I have done Vue. But React has a much bigger ecosystem and blah, blah, blah. So we picked back then Inertia and React. And a gotcha that I remember from that time was this was Inertia v1. So, and I don't know if you have, you know, developed already with Inertia v2. I have not. And for me, you have not. Okay. So for me back then, coming from the LiveWire experience, Inertia V1 with React felt broken for me because I was used to so many stuff, like prefetching in some of the very cool things You might find on LiveWire. You take it as granted. And I remember changing to Inertia V1 with React. I was like, oh, my God. I don't have all of this power on my fingertips right now. What I do. So there was a bunch of gatches like prefetching was missing. I remember as well every time I would, you know, when prefetching got implemented by Jyoti, then there was bugs in between. So Jyoti started Inertia V2 at that moment within Laravel. And obviously a bunch of ideas of Inertia V2 came from Joe T as well. But I remember giving me almost daily feedback about what is not working on Inertia V1 and what do I need for cloud. So he did a bunch of things almost tailor-made for Laravel Cloud, which ended up being on a changelog of Inertia V2. And right now, I feel like being experienced with both Livewire and Inertia V2 with React, I feel like both frameworks are super powerful in the same way. And I am fast with both. They both have great features. Undeniably, React, in terms of the market, is big these days. It's undeniably big these days. So, yeah, we're happy at the end with the peak Inertia V2 in React. But, yeah, in the very early days, it wasn't as good as it is right now.
Matt Stauffer
Yeah, I love it. The answer to what was there some gotchas is go look at the V2 Inertia launch list. Quite a few of those are the gotchas we ran into. Yeah, ([Time 0:30:18](https://share.snipd.com/snip/c648556f-58aa-4c6c-a81e-f0d23e96e686))
- **Livewire vs React Productivity Tradeoffs**
- Livewire offers quicker productivity initially due to less code and simpler learning curve compared to React with Inertia.
- However, React has a larger ecosystem and may offer broader adoption in larger teams.
Transcript:
Nuno Maduro
Livewire. You know what I mean? Because you still have to learn React and probably get familiar with everything within the React ecosystem. And it's a little bit more to maintain as well because you have more code to maintain. But both are great frameworks. Yeah, that's how they are.
Matt Stauffer
100% with you. I think that any conversation around these things requires nuance and it requires some level of it depends, right? Exactly. I love your approach of you're like, look, I can use both. I can be productive in both. I know the pros and cons of each. So. Yep. Okay. So I know we're supposed to wrap soon, but I have one last thing I really wanted to make sure we talk about. And then of course, after that, I'll ([Time 0:35:42](https://share.snipd.com/snip/c261d340-861b-4c17-a147-0f5a77f9975a))
- **Pokio: Async PHP for Pest 4**
- Nuno created Pokio, an async PHP library inspired by JavaScript's async/await, to speed up Pest 4 testing features.
- He developed Pokio live on streams and plans to use it as Pest 4's core engine for improved performance.
Transcript:
Matt Stauffer
Want to talk about Pocchio. So you have just recently been sharing on your your social streams that you're working on this thing and you've been streaming yourself working on the thing. So let's assume somebody's never seen one of your streams, doesn't know anything about Pocchio. Tell me about it. What's the story? What's the motivation? What kind of prompted you to want to make it? And what does it do?
Nuno Maduro
Yeah, so absolutely. So as you may know, the Latacan US US is coming, and I am one of the speakers, and I am supposed to speak about PEST 4. Now, PEST over the years accumulated a bunch of different features, which made PEST probably very popular around there. But one of the things I have noticed is that for big projects, just like Laravel Cloud, some features in PEST can become slow. Things like type coverage, architectural testing, they actually And what does it do? A lot of time if you want to scan like a big project. And something I want to bring for past four is a much performance, various performance engagements on those various features. So when I looked into that, I started looking into, okay, what do we have on the PHP ecosystem for parallel processing or asynchronous programming? These are all difficult and complicated terms, but they all mean the same. So on to basically leverage all the CPUs I have on my Mac to make this faster. And I started looking at what we have at the moment. And I noticed that, okay, that is literally this framework, but requires me to change all of the internals of past so this no yeah that is this particular library but you have to have xyz Extensions installed so i said i cannot afford this because people are going to run past on windows so this cannot i cannot use this so at some point i was like i will have to create my thing That's it i gotta do it myself that's it exactly so i thought about you know i'm gonna literally just open the live stream and just code this with my viewers with the new nation how i call It and i started the project from scratch and i noticed i could actually do it and then within two streams i have literally the project nearly complete with a logo with readme i publish On packages people can already try it out so my goal now is, and just for the record, for those who actually understood, Pokio is literally this asynchronous library for PHP. So you do async await, just like you would do in JavaScript, basically. So you do async, you can have a task inside that does whatever, and you have another async below, which does another task that does whatever. And those two tasks are going to be processed in parallel. That's what Poccio is about. And it has this syntax, which is async await, just like you would find in JavaScript. So if you came from JavaScript, this will be super kind of easy to use. So that's something I also want to be able to just put this on existing team and people will know exactly what this syntax is about. They don't have to change a single line of code because it will just work. And it's got that simple to use. So anyways, fast forward, Pokeo is already kind of almost complete. My next step will be polished, teeny beats I have to do still, but do a YouTube video about the project and just prepare an announcement. And hopefully I will have some co-creators which will help me kind of making sure this project ([Time 0:36:21](https://share.snipd.com/snip/34547e23-4530-4e3a-85b2-baa35fa9bbda))
- **Pokio Boosts Pest 4 Performance**
- Pokio will bring significant performance improvements to Pest 4's heavy testing features like mutation and type coverage.
- Expect faster tests and a smoother experience, especially for projects using React and Inertia.
Transcript:
Matt Stauffer
But before we wrap is there anything that you want to talk about anything you want to share anything you haven't gotten a chance to speak about or a platform or you want people to take a
Nuno Maduro
Look at that we haven't covered today uh not really so i have probably to talk about just that pokyo is coming out in the next week or so i don't know exactly when are you publishing this Podcast but i've heard it's the 26th May, I think. So by this exact moment, Pokio should be out already. Then I'm going to use Pokio to be the core new engine of Past4, which is coming out this summer around Laracon US. And for Past4, you can expect, as I already have said, performance improvements within the framework. So the things you are used to, like mutation testing, type coverage, code coverage, all of those features are going to become hopefully much faster. And that is one little thing I'm preparing that I'm not ready to say yet, but that is a brand new thing coming up for past four that I think people are going to really enjoy it. ([Time 0:39:43](https://share.snipd.com/snip/59033693-3015-4de4-8915-9e7bafef3435))