0:00 Would you rather like, you know, just go off quit, see if you could do it full time or maybe just go back to working just like everyone else, and then do it in your free time again. So like, which one? To just for your own, like psychology. Right. And I guess for me, I ended up thinking like, okay, I want to just give it a shot, Like just see what happens if I just quit. Remember the full episode is only Hello, welcome to the Dev tools FM podcast. This is podcast about developer tools and the people who make them. I'm Andrew, and this is my co-host. Justin Everyone. Uh, our guest tod ay is Henry Zhu. Uh, you might know Henry as a longtime maintainer and steward of the Babel Project. Uh, Henry. Welcome. That's so great to have you on the show. Uh, before we start, would you like to tell our listeners a little bit more about yourself? Um, yeah, I don't know what else to add. Um, I, yeah, I maintained babel, uh, for a long time now. I, I used to work at Adobe. I quit in like 2018 and I also started a podcast myself. Um, then it's called Hope Insource. Yeah, what's the podcast about? Yeah, good question. Um, it's a little bit different. Uh, you know, like, I guess this podcast is about developer tools and people. This is about, I guess, people and community and like maybe how it relates to faith in a way. Um, it doesn't have to be about faith or anything. I think it's just maybe emphasizing the people side of communities, so, Or maintainers actually that too, so, yeah. That's awesome. I, I was actually browsing through and, and looking at some of the episode descriptions and. You know, I think one of the things that we wanted to do with this podcast when we were starting it off is like, make sure that we emphasize the, the personal connection, the people behind the tools, you know, Uh, and, and I like, you know, just going through and reading some of the descriptions and how sort of even more human that, that your, your podcast is approaching some, you know, deeply personal stuff that I think is, is kind. Yeah, I got binto, um, philosophy again, I guess. So I've been talking to like professors or people in seminary. Um, yeah, so that's been fun or just like different, like I, I always think of the example of like, um, Steve Claman had like that post about open source as a gardener, and I was like, Oh, I should interview a gardener at some point. Like they're maintainers, they're actually maintainers too, and like we can learn a lot. So if you're not already a gardener, so. That's a fun idea. You said you started, you were working at Adobe a few years ago. But in that time, I think you've been super heavily involved with open source. Like I've seen you everywhere on babel, saw you in the lerna repo a bit. I may have even seen you in the yarn repo. I, I don't know. Um, but how did you get involved with open source in all these different projects? Yeah. Um, I think I've said this before, but um, the summary is like I, um, I'm sorry, I'm from Georgia. Uh, after I graduated I was trying to get a job in California at the time cuz that's where everyone wanted to go. Didn't get into any of the tech companies. So I just found like a random job of the nowhere, um, in Georgia. And then, um, I met a coworker there that was sitting next to me and they were working on open source. Uh, his name's Jonathan Neil. He worked on some stuff like normalized css, uh, a bunch of CSFs still active now. And I was like, Oh, that's cool. I've never heard of open source before. Um, or at least thought that I could contribute to it. Right. I think at the time I was using like bootstrap for like random side projects and then I was like, Wow, I could actually, you know, participate in that. I thought that was cool. So he was like, Yeah, I just picked some random projects. So I was like, oh. At the time I was using Angular one and so I was like, Oh, I should try to contribute to that. But I ended up, that was really hard to contribute to cuz it's a whole framework. It's like, and we all know it's really complicated, uh, especially at the first one. Right? Um, and so one of the issues on there just happened to be an issue about linting and you know, if you look at all the issues in a repo, especially something like a framework, they're probably really hard to understand cuz it's all about the intricacies of it. And this one was straight up just like somebody needs something, like someone needs to like fix our formatting so that um, you know, the spaces and you know, names, stuff like that can be changed. And this is before prettier, before like, um, I think even ES Lin, um, and. I started working on it, um, just fixing angular JS code and I ended up getting like top 50 contributors, some, something like that, something high just by changing these like random things, cuz they told me you have to make every change on a separate commit. So I ended up with like 30 commits or something and I thought that was so cool at the time. Now I'm like, whatever. But, um, it, it made me feel like good. Um, but the problem is, uh, after I finished that I didn't know what to work on anymore cuz I don't get the framework. So I ended up working on the linter itself, like the JSCs, which is the thing I worked on. And then long story short, that led to eslint and then Babel eslint and then babel So like, somehow that, that one thing led me to somehow work on the babel even though I didn't know anything about linting so, It's transition to go from, you know, trying to find contribution. Moments inside of a preexisting project to being a core maintainer on a project. The pressure is different. Your relationship with the code is different, your relationship with the community. Um, can you talk a little bit about that transition for you? It's like, uh, you know, how hard did you find it to go from just like contributing sometimes to like being a core maintainer. And was there anything like surprising that you learned along? Yeah. Um, that's the thing, like when I come up here, it'll make it sound like it just happened overnight. You know, it, there's a long time period for a lot of these things. Like, say, when I started working, um, at that company and then started in GSCs, I think it was like 20 15, 16, and I think it was only until like. Or it might have been before that actually, or I don't even know the timeline anymore, but you know, it, it was a long time from like making a pull request. Like even the first pull request I made to the linter was a table of contents. Um, literally just changing it to read me. And I think that's automatic now. So like, that's funny. All these changes are things that GitHub does for you. Now, and um prettier does all the formatting for you. Um, but, but I guess I was a part of that movement of helping that exist in the future cuz I worked on a linter and the thing I cared about was auto fixing. Cuz I was like, I don't want, I just manually fix like hundreds of things, right? Um, so I want to figure out how do we automate that? And I think some, maybe some of those ideas led to what we have now, but I think that it took a really long time to build confidence on, you know, whether you think something's a good idea, you're, when you're beginning, you're. kinda, it depends on the person. You know, some people are kind of like, they almost demand to like, get their contribution in. But I feel like if you're the kind of person that is kind of maybe a little bit scared or fearful, I don't think that's bad in the sense of like, people will respect you for like, being courteous to the maintainer and then the way the repo works or the org like every, um, you know, repo or open source project has a different way of working, different culture, different ethos, whatever you wanna call it, different code of conduct, different, um, guides on how to do things, different, code review style, all that stuff. It's like a company, right? Basically. And only difference is that at a company, in order to contribute, you have to apply, get the job, and then there's an onboarding process and they're supposed to, they're paid to help you do that. In open source anyone can show up all around the world at any point in time, and you just have to, like, the maintainer is like, how, how much responsibility do you have to like help these people? Um, do you feel like you wanna do that and some people don't even have open contribution? Um, yeah, I, uh, there's so much there. Yeah, there's like varying degrees of getting into, you know, going from like, I'm just opening up pull request, and it's getting merged to like, now I have commit access, or now I have like admin access or whatever. Yeah. Yeah. Um, so just going off of that, I think it's funny, the, the way I actually got my job at Adobe, and this is kind of mind blowing, just thinking about like, I was working and then they sent me an email, um, like, Hey, do you wanna work at Adobe in New York? I kind of didn't want to, but I was like, Oh, they're, they're, they found me through open source. They hopefully care about opensource, so that's why I took the job. But two, the people that were the maintainers of that linter, I worked on JSCs, they worked at Adobe. So I got my job basically by working on that project. And they only gave me commit rights when basically the, my first day of joining the company. Um, even though I was obviously working on it for a long time. So I think that from the, from the maintain your perspective, like how much trust you wanna put in someone before you give someone commit rights. And this is a huge problem in terms of like, especially now you, everyone's been talking about security, uh, what's called supply chain attacks, stuff like that. I think giving someone commit right is not as bad anymore because you know, usually you publish separately, you know, like NPM and that has different permissions. So if they merge something that you didn't like, you can always revert it before the publish happens. I don't think you probably want to give someone NPM access to first, you know, moment. They give you a pull request cuz that's where that stuff happens. Where they like, you know, they like, they don't even publish to GitHub. They just auto publish to NPM and then it has some like bad code or malicious code in there. And that has happened like many times. Um, and so there's a huge problem, and this is actually something that happened in Lerna. I think you already talked to Daniel a few episodes ago. Um, you know, I actually of quote unquote took over the lerna quote, It's basically the same thing cuz the same person Sebastian made both. And I had to figure out how to transition that cuz like I was working on babel and lerna and we were using lerna in babel, you know, like all that stuff. And I was like, I don't want to maintain two things. I just, you know, we all have limits and finally I felt like I needed to step away from that. Uh, which is good cuz when you, um, start off on this stuff someone gives you like, commit rights, you're gonna feel this like obligation to help you start spending so much time and then you like lose all your free time. So it's almost like that you work yourself to the point where you realize you ca actually physically can't do it anymore. So I was like, I need to find someone. Right. And I think with that one, um, you know, people showed up and they were like, contributing a lot and I was like, Oh, might well just give it to 'em. People do it all the time. We just give people access and eventually just like, okay, I just hope that they're good people and they're not gonna screw everything over. And sometime s it works out. Sometimes, you know, people put like, you know, bad stuff in their code. Um, really hard. And, and that's why with lerna, um, I didn't feel comfortable and I, uh, I, uh, to just give random people the commit because a lot, there's this huge issue with hundreds of comments in it. Like, Hey, why aren't we updating this? Um, well first I haven't looked at it in a long time. I don't wanna just give someone access. They didn't show that they did any work. Like there's all these people demanding like, Hey, I said I'm gonna work on, I'm committing to this project. You just say, I don't care if you work it at Amazon or whatever. Like, whatever, like our Google, that doesn't mean anything. Right? If you have shown us, like, what I would do is like e fork it, get people to use it, and you've been contributing, that at least shows that you care enough to like work on this. If you just said, I'm gonna work on it, what does that mean? How do I know you're not just doing this to like get clout or, or whatever. I don't know. So, so it, I guess it's like, it's really hard. And I guess for Daniel, he ended up going with a company and that makes sense that they're like, okay, they're committed. They're probably, I mean, they could totally do something bad too, but at least there's like a almost like, um, ski the game. Like if they do something bad, it looked bad for their company. So yeah. Yeah, it's, it's a hard problem because I remember one, one package where a guy literally did that. He forked it, he became an active maintainer, was like part of the team, and then the guy was like, Okay, you can have it. And then after that, he's like, started spreading malware. So it's like, , it's like, it's so hard to, to trust these random people. Like I, uh, I took over responsibility for a package called jimp and then like, I was, I worked on it. I refactored the whole thing. I was like intensely focused on it for months. And then I just stopped using it cause I didn't need to use it anymore. And now I'm the sole maintainer that will respond to issues. And now I have people that are like, Hey, can you get these things merged for me? And I'm like, I haven't looked at this code in years. Like the anxiety of me releasing a thing for a thing I don't use and then potentially breaking everybody is, is weighs heavily on me. So like this passing of stewardship of a project, it's a very hard problem. Yeah. Um, and, and I'll, I'll just just say that like I am a random person, you know, when I started, right. So like, why would they trust me either? So it's like, um, at some point you kind of have to take that leap, you know? I, I was gonna say, I don't know if people talk about this, but like, You know, various malicious companies or even countries, they could easily just like train some people up to go to a project work there even maybe for a whole year. You know? And then, then that once that happens, they could do whatever they want and you can't stop that. And no one's gonna reasonably, like say, I trusted this personnel for a whole year and then suddenly they did that. It's not gonna be your fault cuz like, you know, you vetted them, right? You tried. Um, so that's really hard. And it doesn't even have to be a big package like your username left pad. Someone could have came in and become a left pad contributor, and then the second someone steps away, that's where they start inserting their bad code. And like it's not even a hard problem to like become a contributor too, to Yeah. Um, and I don't think there's a easy way to deal with it. Like a hundred percent. They like, I think there are different companies that do security. They can analyze code. Oh, they used eval, or they added these random things, that's fine. But like in the end, You still need to trust people. Um, and that gets into like a lot of issues around like funding and who you should trust, whether they should, you should have this many dependencies to begin with, you know, like all these things. Yeah, when I was a junior developer and I've heard for the first time that you should be auditing all your dependencies and like reading their code. I was like, How? How is that possible? You look at your node modules and there's thousands of packages in there. How are you possibly supposed to be able to go through those and be like, Yeah, those are good. yeah. It's not super, it's not really possible. And then the thing is, it's like, um, just going further than that, it's, it's a trust issue. It's a key trust issue, uh, and. You know, as we've said, there's only so much you can do to mitigate. I actually saw a package this week that was interesting, that was like, it hooks into like nodes actual like io native functions and will like let you know if certain packages are using that or whatever. You can like restrict sort of runtime things and it's like a way to slightly mitigate, but you know, not completely. But, you know, just thinking about this a lot, so I've been using Deno a lot more recently and the Yeah, the thing is, is like having a good security model built into your platform is an important part of this overall story. It doesn't, it doesn't, remove like supply chain attacks, right? Because it was like, you know, you could have somebody contributing for a year and they're like, great. And then you, they joined the team and then, then maybe they contribute for a while longer and then suddenly they. Off the rails and like chip malware and, and like, you can't, it's, it's hard to completely stop that. Right. But, uh, I do think as like platform creators, you have a, a responsibility to think about security a little bit, a little bit more, uh, top of mind. This reminds me of like, back in 2015, I was writing a GitHub notifications for atom, the text editor, and I realized it. Wait, how do I secure my token? Like, you know, is there a secure storage somewhere that I can just like dump it in and like it not get leaked out to other plugins and stuff? And they're like, No, that's not how this works. It's like there's no isolation between plugins and I, That was the first time that it like really hit me. It's like, oh wow. Uh, . That's kind of terrifying. No, I think even dunno, one of the problems is that I think it's like a, like a lot of these are like CLI type things. Like allow net or allow whatever io I think the problem is that it's like kind of really black and white and it's like, okay, either this whole process can't use IO or the internet, and it's like, well what if one package needs it and then now you have to turn it off and it's like, I feel like it's not even a benefit anymore. So I did see that, Um, I think it was, I don't know if that feels meta mask or some people they worked on this thing called Lava mote, um, because, you know, they're in extension, a Chrome extension, and then they have, they obviously need secure crypto or whatever. Um, what they do is they like, they actually look through every dependency and find out where those things are being used. So I think you need almost like a run time thing where it'll tell you every place that uses io I feel like you almost need to check every place and like, Oh, I allow, I allow this, I allow this. Like, oh, everything that babel has, it's, it's okay, but not like this random package. I don't know about. Um, that would actually be like more, a hundred percent rather than just like on or off. it's, it's interesting that a crypto project made this cuz like, it, that makes sense. Like in a crypto project, you'd want like, like iron tight security that there's no way that my key could get out possibly. I know that's like the only good thing. I was like, wow. The good thing about crypto is at least they care about security , and we can use that benefit for us. It, it, assuming we can even use it, but yeah. Uh, so I mean, going. The thing about Deno is like, I think you're right, is like, uh, the flags at the CLI level can be, can be a little, uh, blunt at times, but you can like narrow things down. So it's like, I want Fs access to like this one module. And then they also have workers where inside the worker you can give it explicit permissions that are narrow down from the, the, the top level things. You can run something in a different process that has like even more limited permissions, but, know, I think overall as an industry, it's like something that we have to start taking more seriously, uh, you know, heartened to see things like tar, the rust based electron alternative, if you will. Um, you know, it's, it's, it's obviously not feature complete with electron by any stretch of the imagination, but they do think of, but security in a bit of a different way. And I think that's, uh, I don't know, just something we, we should definitely, as hard as it is, just keep going. So you, you'd mentioned that you'd worked at, uh, Adobe in 2018, or left Adobe around 2018 and then, and then started, uh, essentially working on open source full time. That's a really fascinating transition. We've talked a lot about, uh, open source sustainability and, you know, funding for open source. Uh, how has your experience been of transitioning to Essent. subsist off of sponsorships. Yeah. Uh, I feel like that could be a whole book. to And I also, I don't know if it's like, I'm like, I can only, Yeah, I obviously, I'm talking about my own experience and everyone, every project is different. Everyone's lifestyle is different, everyone's background is different. Um, I think that, I don't know, I got to the point in, I guess working at Adobe that I felt like I really wanted to work on open source as my full-time thing. Um, I was lucky that my, my coworkers and then my boss, um, they were very encouraging and they gave me 50% time to work on babel at some point during my time there. And I was telling them, I was like, Okay, I wanna do full time. And they, they gave me half time and at some point I felt like I was doing a lot of work. Not with, obviously not with the rest of my team. And I just kind of felt like lonely in a way. I don't know how to describe it. You know, like no one was like being mean or anything. It was just kind of like, you know, everyone was doing their own thing and I'm doing my own thing sometimes, and I want to feel like I was on a team again. Um, there's, I don't know. You can't really solve that, right? And so the, it's a suggestion that my boss told me was just start up like, you just need to decide for yourself. Would you rather like, you know, just go off quit, see if you could do it full time or maybe just go back to working just like everyone else, and then do it in your free time again. So like, which one? To just for your own, like psychology. Right. And I guess for me, I ended up thinking like, okay, I want to just give it a shot, Like just see what happens if I just quit. Um, and they were really supportive of that too. They're like, you know, you know how like when you tell them you're gonna leave a company and they're trying to get you to stay and all that stuff, they, they, they know like, I'm not trying to do this for any other reason, just cuz I want to do this. Um, and so they're very supportive. They even let me stay at their office just like work there, you know, cowork, stuff like that, Stuff like that. Um, and I think, I don't know, I, I think the parts of open source that I liked the most were these, like what we were saying about the people side, all that stuff. Again, um, the non-technical parts of open source are just as important or maybe more important because no one's focusing on them. And I wanted to kind of explore that or at least be willing to put my time into that, if that makes sense. Um, and so when I quit, I, um, we didn't really have a lot of money. I think we had like 10,000 per year in babel which is basically like nothing. Um, and I only started that because our previous battle maintainer, one of our teammates, uh, his name's Logan, um, he quit his job just because he quit his job. And then I was like, Oh, we should figure out if he can fund you. Cuz he was just working on babel for fun. And by the time I, we had enough money, he already was like, I, I kind of just want to get a job again. You know, I don't want to deal with all this, you know, like, just like not knowing if money's gonna even come through. But then at that point I was like, I'm just gonna do it. Um, and I set up like a Patreon, um, which I guess got a lot of traction in the beginning. Uh, I got like, a lot of people were like supporting me, which is great. I got like two, 3000 a month the first month just cuz like a few people were like really nice cuz the next month there was already like a thousand . Um, and then, and then this other open collective stuff, which is, uh, basically Patreon for groups. It's a open source platform where, um, Companies can donate to a project that's like transparent and all that, that took a really long time to ramp up. Um, and I think most of it's just, cuz I put myself out there, I went to all these conferences and talks to tell people about open source, about babel and then, you know, getting people, I didn't even necessarily say donate, but like, you know, I'm there and I told them I quit my job and the stuff. Uh, and that company should support open source. Um, like we're talking all the security stuff. I feel like they should be paying open source people just for that, just to make sure they don't like, like it's sort of like you have all this responsibility and like power quote unquote, to do bad and you don't get anything out of it. Like you don't make more money by doing open source necessarily. Um, and if you could work at a Google, well you don't want to cuz you wanna work on your open source project. So it's like you, you put yourself in this position where you're kind of like, I kind of. know, you have to make a choice. Like, do you wanna work at this big tech company or do you want to just like do this other thing? And I think, uh, at the end I decided I'd rather just see if that makes more sense. Um, even just mentally, I, I just felt like I would rather, um, I, I, or like I am at the time or at the moment, willing to make less money just cuz I want to do something that I enjoy. Um, and everyone's different situation. Um, so Yeah, that's cool. Uh, it's, you know, it's, it's an incredibly hard thing to do just to get, you know, grassroots support for a project. So, you know, props definitely props to you for, uh, putting, pulling a lot of that together and. You know, as, as we've tried to go through our own like, sort of like sustainability thing and this, this is not even about like making a living. It's just like, how do we have this thing net zero where it doesn't actually cost us, you know, a bunch of time and, you know, money and just like random services that we had to pay for to get it to work. Uh, you know, even that it's, it's non-trivial, you know, it takes a lot of work. All right. And there's so many people wanting to be creators now, like whether it's YouTube, this podcast, like I have a podcast. Yeah. I'm spending a lot of money on this podcast. I'm not, I don't even want to it to be like a full-time thing For me. It's just like, like you said, you know you have to pay for hosting and editing all these, whatever it is. Yeah. Yeah, absolutely. Um, and I think that's, that's this like silent part of. open source maintainers who are doing it full time, or maybe even to like broaden it out, just content creators, you know, uh, who have to live this, like double life where you're like, you putting out your content or whatever you wanna focus on that you wanna make it great, but like to make it sustainable, you have to do all this extra work, uh, just to be able to ensure that you can continue it or. Take a personal sacrifice and you pay for it outta your pocket. You know, you eat up a bunch of your extra time on nights and weekends and you know, that makes it a lot harder and a lot less sustainable. So it's just, you know, one of those things that comes along with like, you know, all these great libraries and all these great YouTube videos and podcasts and all this stuff. It's like, you know, for the ones that are getting monetization, that's great. Uh, and for the rest of 'em, it's just like a, a lot of sac sacrifice that you might not see. So, uh, you do quite, quite a bit of work and a lot of it is people work and it's probably people that aren't the most grateful most of the time. So I can imagine that this has led to, to burnout, uh, quite, quite a bit. So how, how have you personally dealt with burnout or have you even dealt with it at all? Oh yeah. I mean I'm definitely . I mean, you could say in some sense I'm dealing with it now. Um, I think. think There. Maybe they're like, I don't even know. Maybe there's levels of burnout and there's like progressions of burnout depending on what you're doing as a maintainer. You know, like maybe every project I had some form of burnout, like, um, where do I start? Like, okay, so like JSCs, the first linter I worked on, there was a form of burnout there because, um, it's almost like JSCs and ES land were like competing against each other. And there's a form of burnout in the sense of like, you feel like, is it even worth working on this thing when we could just combine forces, You know? And our solution with that was, was to do that. We just merged the projects together, but not everyone's willing to do that. And there was some, like some people might be more willing to do it and other people don't want to, and then you have to convince them that it's worth it. Um, stuff like that. And I think that is a form that maybe is a stress and then other burnout, I think, um, many people have said like, you know, there's like the burnout of, like you said, it just costs money and time. Then there's the burnout of like, dealing with people. Uh, that's a separate kind of burnout. And then it's just straight up just being in a project for a long time regardless. Right? Like, it's not fun anymore. And, and like you said, like, uh, you know, you've worked on this thing 10 years ago, but some people are still giving you issues. Why do you feel like it's still your obligation to like, work on it? And I think there, I felt all of those before, and I think everyone will, if you put something on GitHub, um, for some reason it like creates this expectation that you're gonna maintain this thing for, for life. Uh, we like to joke about the whole benevolent dictator for life thing. Um, but it's like we're not really addressing it in the, the negative sense of like, you know, I've, I've made these like very small things. Like I made this um, Twitch plays Pokemon type app thing. It just helps you create a Twitch plays Pokemon. And I think I wrote it in like some JavaScript and this even has some Python in there or something. I was like, I don't look at that anymore, but people are still like, making issues. And I was like, I don't know what to do. So I, I think I unwatched the repo or something. Um, just cuz I can't be bothered. Um, like it, there's already all these other things. It's like, how many little things unless you still like it, you know? I think that's ultimately a thing. It's like, if you enjoy doing it, great, but there's probably a point where you, you're not really enjoying it or, or maybe you enjoy certain parts of it and then you have to figure out what's the best thing for it. Like, do you wanna delegate? Should you do the archive thing? People love doing that. Right. just make it read only, you know? Um, so GitHub notification anxiety is, is a real thing. Like when I started out in my open source journey, like I would be very on top of my notifications and then I'd read about people being like having that anxiety and I was like, I don't know what that means. And then like a few months go by, I put a bunch more projects under my belt and then it's like, Oh wow, this is like, that little blue dot up there sometimes scares me. It's like, what if I click on that dot? How much, how much of my life am I ? Am I gonna lose to that little blue dot today? Yeah, that's the thing, like the notifications won't ever decrease if you think about it. Like unless you decide to un watch things, every project will get used more. Just, I think everyone has to think about that inherently. Like even if you don't update it, right, the users over time will just increase. They can't decrease, really. Um, and so like the amount of issues you get is gonna increase. So, and you have limited time and limited energy, llimited effort. So, um, you're gonna get to a point where you can't handle it anymore. You know, we don't really know how to deal with that. There's no, I don't, like, I was gonna say, there's no course on how to do GitHub or be a maintainer, but I don't think that there needs to be either, because I don't think you could teach it in meaning, like in a standardized way where like, everyone should follow this thing. I just don't think that makes sense. But everyone has to almost learn for themselves maybe. And unfortunately, maybe the painful way, uh, of like putting boundaries and setting limits. Um, I talk about this a lot. I, I unfortunately do not necessarily know how to do that better than anyone else, obviously, cuz you know, we all deal with notifications on every other platform, right? Social media, all that. Um, it's the same problem, except I guess this is, It feels worse in a way, which is like, you know, with, with Twitter or whatever, it's like, oh, I'm not keeping up with like, what's going on, but this is like, you made this, or you're the maintainers and you feel, you feel like a more of an obligation to like look at it. Um, maybe even on the weekend. So I, I would like, you know, like a very simple practical things, you know, like turn notifications off on the weekend at least, or when you're not working, you know, or, or just choose to, You can even, and now we have the away message. You can have status things. Like, say you could tell people on the README itself, like, Hey, I'm not going to look at this, you know, um, during these hours. Or make a pinned issue that says we're not doing this. Just to, like, I think a lot of it's just setting expectations cuz you're, you're trying to like appease the random person and if they knew upfront, that would be a lot better. So, Yeah. You have to be a lot more conscious with what you put out and then how you put it out and being like very upfront about like, I'm just messing around with something here. Please don't depend on me for production. This is, this is a hobby project right? Yeah. Um, and it is hard to communicate that cuz you know, maybe you don't know, like, and you, you feel like you're bothering people. You have to keep changing. Like, you know, today is like, Oh, I do feel like changing it or I feel like working on it a lot. You know? And I think that's the problem is like, people are kind of stuck with a certain way of the project working or you working and you're, you're kind of just like, kind of loose. You're just kind of doing whatever you want. That, that's supposed to be the freedom of doing open source. And it's sad that like, open source actually makes you feel like you're in jail and that, but you put yourself in that jail. was like, ugh, It's pretty nefarious because I think at the beginning, at least in my personal experience, there's a lot of excitement and you get all this like momentum going and you write all this code and you accept all these pull requests and start collaborating with these people, and you just feel good, but you're like, a lot of times you're digging yourself in a hole and you just don't realize it yet. Right. So you're merging features that like, Hmm. are kind of outta scope for the project, but like, you know, you're so excited to collaborate with people. You're like, Yeah, yeah, this is great and we'll do this and we'll do this. And then you like refactor the whole project and you do all these things and you know, before you realize it, you're like neck deep and. A lot more work than you anticipated, and that initial motivation and momentum starts wearing off and you know, people have seen the activity and they're excited by it and they're wanting to get more engaged and, and you're slowly, like, you get less and less excited and yeah, that's, that anxiety starts to build up of like, Oh no, I've got like 15 pull requests, but I don't feel like looking at this project at all. And then you get that ping. Update question mark or like, you know, whatever, and you're just, Yeah. Yeah. That's a, it's real Yeah. And it's hard because, um, I don't know, it, it, like every interaction will change you in some way. You know, you build these kind of habits over time and it's really hard to be self conscious of these things. Like, how are you changing? By being in this community or people talking to you. And then I, I, I always use this like dark night quote about like, becoming the villain eventually, you know, like you die a, a hero or you live your, live long enough to become the person you didn't wanna be. And I think the problem there is like, you know, if you keep interacting with people that are negative, um, because they're, I mean, it's called issues, right? It's like, you know, they keep reporting issues and it's always negative, then you might start feeling like, Oh, I feel like I need to be negative. Cause you just not like you want to, you just, you just are. Um, and it's really hard to kind of stay so positive and like, unless you, like, do you make yourself numb to it or you just ignore that and you try to be positive about it? It's hard. Like, it's really hard to do that. And I think most people just like quit. I mean, it, it is like really hard . Um, and I've wanted to do that many times too. Um, but honestly I think like you have to do that at work. You have to do that in life in general. It's just another area where that happens. But, you know, another place. that this kind of happens, Like where people are people you have to learn to Yeah. Be with people. So, yeah. So Let's move on to a little lighter pastures now. Um, . So what have you been up to lately in open source? Yeah. Um, well, I'm taking a break from babel. Um, I, that's maybe that's obvious for people, but I, and then maybe that's not the light topic, but I, I might have to write about this. Um, some stuff happened last year where that made me feel like I didn't know if I wanna do this anymore. So that was like, the burnout I'm referring to is like, kind of, I don't know if, if some people make you feel like you're not respected or, or not don't deserve to be in this space, then I don't know if I would wanna do it anymore. So I'm taking a break, so I'm kind of like, I don't think I have to. Um, I could just go back to doing it. I just don't, that whole experience didn't make me want to be in it at all anymore. So I'm just choosing not to take money anymore. Um, so that, that's a just decision I'm making by myself and I'm just kind of just doing whatever, trying not to work on like random, um, experience experiments and stuff. I think a lot of 'em, I didn't open source yet. Um, but I just like playing around with stuff. Um, there was like a long time ago I made this thing that's related to babel called, I don't have a name for like babel map or whatever, and it basically basically ki, it doesn't use source map, but it basically, um, you know, babel will convert, you know, input to output. And I thought it would be cool to have an educational tool that would like, help you understand what the output of babel or any compiler is like, whether it's type scripts or whatever it is. And it basically just transitions the code from input to output. It literally just like animates. , uh, kind of like the prettier version, except it's the input of, you know, your ES whatever to the ES five version. And then every character will move to where it will be in the output and it kind of smoothly animates. So you could just have a better sense of what's going on. Especially for something like jsx, people don't even know what JSX is. Like what is it turn into? It's cool. Like, oh, this, you know, less than sign turns into like, whatever. It's a function call and it has like three parameters, like stuff like that class turns into function, you know, like all that. So I worked on that for a while. Um, haven't updated it, but that was just like, I think there's a lot of educational work that we could do in compiler land to help people. Um, and some other, recently I've been doing a lot of stuff in audio actually for some reason. Um, I, I don't know if it's cuz of the podcast, uh, like. One idea I had, I'm still thinking it through, so maybe you could, maybe people will help me. Maybe Okay. We have like syntax highlighting right? With uh, you know, different and I was like, Why, why isn't there like an audio form? I don't even know what that would look like, but it sounds interesting, you know, like when I'm typing, what if it could play sounds based on keywords or like whatever. Um, so I actually had like a very simple demo where like, you know, if you type in like null, like N U L L, it'll play like four different notes or you, you play like return. It'll do like the Zelda, like open chest sound, you know, like stuff like that. Um, I think it would be fun. It would make coding a little bit more, um, uh, more fun. Especially video game sounds, It's like very positive. yeah, that's like one example. That sounds fun. Uh, I, I, I love the emphasis on learning tools, like, as you said, like knowing what jsx actually transforms into you. Ki like without that you're like, Oh, magic is happening. But then you see, oh, it's just a create element. Then you go, Oh, so the function's not actually called when I'm doing that type of syntax. Uh, another tool that you've had involvement in, uh, at what actually started you getting onto this podcast was AST Explorer. Uh, AST Explorer is, uh, like a shining example of one of those tools where it's like pull back the compiler covers and you get to see what's actually happening. And just being able to see that opens up like worlds of possibility. So yeah. I mean, I, um, I know Felix, uh, who he used to work at Facebook, he started it. Um, I just helped various places. Uh, and then even the thing I worked on is basically just taking the same format and doing it again. I think it's a really good idea, um, because one of the coolest features is like when you high. Uh, so basically like the left side is like your code input and the right side is like the ast, which is just basically just fancy json, right? With like different, um, expanders and whatever. And so when you highlight the code, it'll actually focus in on like what note it is. So the idea is like, I think it's just giving you vocabulary. Um, you know, if I don't know what the name of some syntax is, then I could type it in as to explorer and it'll tell me, Oh, the name of this is this. So like, oh, a template literal, like, I didn't, who knew that that was like a thing, you know, like, or, or like, uh, for the other things like asy function, that's kind of obvious, but like other ones, it's like, I, I, there's a name for that and it's cool that we can use that. And then eventually you could write a bowel plugin or you can write a esent rule or whatever. Okay. Uh, let's move on to our last question before we move on to tool tips. Uh, so in each episode we kind of ask like a future facing question of like, where is the field that this person in particular is? Will, will it go? And since here we've mostly talked about open source. Uh, let's talk about that. So what do you think? Uh, the ideal scenario for open source funding at scale is do you like, think we're on a good path where we are now, and like what do you think the future of open source is? Is it company backed? Is it individual contributors looking at their GitHub notifications, feeling anxiety, like where, where are we going? Oh man, that's such a big question. Well, that's it for this week's episode. Remember the full episode is only available to our Patreon members. Thanks for listening.