Screaming in the Cloud - The Nuanced Power of Headless Browsers with Joel Griffith

Episode Date: March 5, 2024

On this week’s episode of Screaming in the Cloud, Corey Quinn is joined by Joel Griffith. Joel is  the CEO of Browserless.io, a company focused on providing headless browser automation wit...hout the pains of hosting. Corey and Joel discuss the most common use cases for headless browsers, the spectrum of web scraping ethics over the last decade, and why it’s so important to always do what you are passionate about no matter how high you climb on the corporate ladder. Joel also gives us his insight into why so many engineers come from creative backgrounds and shares his story of moving from jazz trumpet player to CEO.Full Description / Show Notes(00:00) - Intro(00:53) - Guest Introduction: Joel Griffith(02:51) - The Genesis of Browserless.io(05:21) - Use Cases of Browserless.io(07:19) -The Potential for Abuse of Web Scraping(08:37) - The Legitimate Use Cases of Web Scraping(11:17) - The Power of the Right License Type(13:55) - The Value of Open Source and Charging for Software(14:13) - The Journey to Starting a Business(24:00) - Joel’s Emphasis on Quality of Life(27:43) - Staying Focused on the Work You’re Passionate About(30:00) - Conclusion and Final ThoughtsAbout JoelMaster of puppets and the browsers they run! I'm Joel Griffith, and for over a decade I've helped run, destroy, and make manageable things related to browser automation. I've had the pleasure of working on this in big companies and small, and more recently started Browserless to bring the power of automation to teams of all sizes.Links:Github: https://github.com/joelgriffithTwitter: @browserless https://twitter.com/browserless  

Transcript
Discussion (0)
Starting point is 00:00:00 There absolutely are legitimate use cases. And obviously, those are the ones that I like to align with, of course. But the web scraping is the skeleton in everyone's closet. Every corporation I've ever been at, every company I've ever worked at, has that at some level in their stack. And it's always the one people are like, don't look at it in the eyes. It'll turn you to stone. So just leave it alone and it'll all be okay.
Starting point is 00:00:30 Welcome to Screaming in the Cloud. I'm Corey Quinn. I'm joined today by someone I encountered during my last couple of months of building a Kubernetes at home. One thing leads to another thing leads to another thing. And I discover some fun tools along the way and they have dependencies, some of which don't work as well as one might hope on Raspberry's Pi. I start talking to still more people. And my guest today is sort of the end of one of those deep dive chains. Joel Griffith is the CEO of Browserless.io. Joel, thank you for joining me. Yeah, thank you so much for having me.
Starting point is 00:01:01 Appreciate being on the show. One thing I've always sort of wanted is something that'll just sit around and keep an eye on various webpages and alert me when they change. Not everything supports RSS notifications or prunes appropriately. Terms of services on websites are a terrific one for this. Show me a diff. And I found a project that's open source, but they also have a hosted version called changedet detection.io. And it works super well. If you upgrade the connection type, it will, instead of using curl,
Starting point is 00:01:32 it'll instead wind up using playwright as a driver and hook out to browserless, which is where I first encountered you. And oh, it's effectively a separate container that runs a headless version of, in my case, Chrome, but I don't know if that winds up working globally or if that's just a one-off here, and it's basically magic in a box. That's my weak, fumbling-in-the-dark explanation. What's the better one? Yeah, so, I mean, you're right on. That's pretty much exactly what it is.
Starting point is 00:02:00 We have, over the years, used headless chrome for a variety of things the one you just described is a very good example web scraping is another very popular one ai is a big one right now so we get a lot of the ai gold rush as well but the thing that we've you know noticed over time is like first off it's hard to get chrome running in a docker container and the second thing is is when you start chrome it binds to a random port and a random interface almost and a random uh like url to connect to so in order to get that whole thing working you have to build all this like command line interface tooling to like get the right stuff out so you can connect to it and tell it what you want to do and i was like oh
Starting point is 00:02:40 there's just this missing like web services layer around headless browsers and a way to isolate them from your infrastructure. Because as we all know, they update and they have security vulnerabilities and so on and so forth. So yeah, the genesis of the company was really just behind what can we do to make that experience a lot easier and a lot more secure, to be honest, just to have it like kind of off in the dark doing what you need to do, but not have it be accessible to anything else. So that's it. It's the missing management layer for Headless Chrome, Headless Firefox,
Starting point is 00:03:07 and Headless Safari. I've used a bunch of headless things over the years, Selenium, Puppeteer, etc. I worked at a company over a decade ago where Plaid wasn't really thinking about startups yet, so their pricing was absurd. So we wound up building scrapers to log in with stored credentials to various customer bank accounts to pull transaction logs and having to, and finding a way to set that up. Every time they change the interface a little bit, how do we wind up having a team of contractors being able to reasonably update how that works? We had to build it from scratch at the time. It was not terrific. So it seems like that's really come a long way. And also, if you're working in the banking world, please don't do that.
Starting point is 00:03:49 That is the wrong way. That is the wrong axe to tackle the intricate wiring problem with. Yeah, it for sure has come a long, long way. What's funny to me is the basic problems are still there, like what you just described. And with change detection too, being able like intelligently know what changed on a website or why it broke is really important and there's a lot of good tools like playwright's really good at this anybody's got first-hand experience using playwright for test automation it's amazing like they the diffing the visual diffing all that stuff is just kind of like built in and it just works
Starting point is 00:04:20 but fundamentally yeah it's like the dom changes, you know, your selectors or whatever you were trying to do change and now things stop working, which is not very ideal. There has been some pretty cool innovation and things that are happening in that space, around visual computer vision. And so instead of doing DOM scraping, you do a picture and then you feed that to an ML thing of some kind and it'll say, oh, the price is this if you're interested in pricing. So I think there's like some newer applications that even make it more compelling and fun. But at the end of the day, it's still just a struggle sometimes to get it off the ground and running like well and continuously. So definitely.
Starting point is 00:05:01 You have some fascinating reference logos on your website of companies who will attest to working with you. Heroku, Webflow, Microsoft, you know, small companies some folks might have heard of. This is clearly something that's working at scale. It's not just someone with my use case with a couple dozen websites have let me know when these things change from time to time. What sort of use cases do your customers wind up doing at scale with browserless? Yeah, the funny thing we see at scale a lot is load testing. That probably is because there's lack of good load testing tools that parse and run JavaScript. But everybody's building single page applications. They're building React, Vue, whatever the next thing is.
Starting point is 00:05:43 And there's this thing that has to run and fetch more data and then assemble the page and like load testing tools obviously majority of them just don't do that like you'd have to run it run headless browser to do all that and so a lot of our use cases around that is like you know making sure you know they instrument code to make sure like certain api calls happen or that the page renders you know, making sure, you know, they instrument code to make sure like certain API calls happen or that the page renders, you know, things of that nature that are hard to like do, you know, in full production. But the other part is like, you know, we sort of innovated at like the infrastructure level to a degree, like you can multiplex clients through Chrome, which it's a mouthful. I'm sorry. It's not jargon, I promise. But like having a couple different like puppeteer
Starting point is 00:06:25 scripts running at the same time that talk to the same underlying browser process, you could get a little more performance doing it that way. So just novel stuff like
Starting point is 00:06:33 that, that's like hard to implement yourself. But we since we kind of manage Chrome for you and manage incoming connections, we can take care of that in a pretty intelligent way.
Starting point is 00:06:41 And so things like that just make it much more scalable and you get more throughput and benefit. And it's just like another thing you don't have to worry about, you know, because, you know, does anybody like write and run their own databases anymore? Or do they, you know, use a managed database
Starting point is 00:06:54 or do they at least, you know, run it separate from their own like web services? So anyways, bad, bad comparison on my part, but that's the one I tend to go to because I think everybody's pretty familiar with like, oh, you need to hook up to a database. Don't run one yourself. Like, just pay the money and use a managed service because they do the backups.
Starting point is 00:07:11 They do everything. You know, they take care of all the stuff that you don't want to waste your time on. And so this is very similar, I think, in a lot of capacity to that. Yeah. The potential for abuse of a service like this is also almost certainly non-trivial. It's, oh, great. I'm going to have a bunch of things that'll log in and do things for me. I mean, I brushed against the edge of that
Starting point is 00:07:29 myself when I started down this project because I was running it on my dev EC2 box and some sites, including AWS's own terms of service, refused to accept the connection coming from their data center IP space. So that was something I had to wind up. I looked like, okay, how do I proxy this through my home connection? How would that I'm building a Kubernetes, put it over there. And suddenly those problems, entire class of problem went away. Do you find that that's a problem for, I guess, legitimate use cases? I mean, if people are hitting their own, their own environments, yes, they can, they can allow list anything that they want. But when I'm just trying to keep an eye on a
Starting point is 00:08:03 variety of websites around the internet, I look like normal traffic. But as soon as I start looking like a bot, people get very blocky. Yeah. And to be clear, like I agree with most of the reasons, but it's never black and white. That's the thing like I keep finding with, you know, web scraping is like you say the term web scraping a lot of the times and people will automatically like flinch up a little bit because just like you described with you know your banking before plaid thing is like it's painful to do for one but also it's like it's kind of an illegal gray area at the same time but there's cases where it's not and we see a lot of those so like for instance there's a user of ours in i think the nordic territories that by law goes through and has to review
Starting point is 00:08:46 shopping sites to make sure they're legit, they're not scams. So it's like for their citizens, they want to make sure that the sites that they're going to aren't fake or I guess fake is the only way to describe it. But those sites have bot blocking technology too. And they say, you can't automate our sites. Well, this is a government body trying to do something the right way to describe it. But those sites have bot blocking technology too. And they say, you can't automate our sites. But I'm like, well, this is a government body trying to do something the right way, but they run into the same problems that web scrapers run. So there absolutely are legitimate use cases. And obviously, those are the ones that I like to align with, of course. But the web scraping, it's the skeleton in everyone's closet. Every corporation I've ever
Starting point is 00:09:25 been at, every company I've ever worked at has that at some level in their stack. And it's always the one like people don't look at it in the eyes, it'll turn you to stone. So just leave it alone and it'll all be okay. Yeah. In my case, it's often, oh, I want to buy this thing. You're out of stock. I want to get an alert the next time it comes back in stock because in your infinite e-commerce wisdom, you didn't put a click sign up here to be notified when we have this again. It's one of those things where it's, yeah, you want me doing this, I promise, but it's tricky to, like, you can't ever have a conversation with policy. So it's great. You just have to work around some of the limitations that are out there. Yeah, it's almost an arms race, to be honest, because PlayStation 5 is a great example.
Starting point is 00:10:08 I remember during COVID, that was an impossible console to get because all those bots were out there buying them as the stock came out. And me, I wanted one. So I wrote a script on BrowserList to get one in a cart and inform me when it was time to check out. And I wasn't reselling it. I still have it. It's actually right over there. But the thing is, is like I had to like rise up to that level that all these bots are. And like, is this the way forward?
Starting point is 00:10:36 Absolutely not. Like this, not everybody should be having to program a headless browser just to get a pair of shoes or to get a console. But like, I don't know. When the ante gets raised like that and you need something. And of course, if you're an engineer that's bored during COVID, like why not just. Yeah. And the problem is you're doing the same thing as a bunch of scalpers are doing the same technology, same approaches with a lot less pure of an aim. It's honestly, it feels like robot wars back and forth. I am curious about the direction you took the company in.
Starting point is 00:11:06 I believe you're bootstrapped, not taking outside investment. Everything you do, to my understanding, is open source. So great, we're going to wind up giving all of the IP, making that public, anyone can use it. And then we're also going to charge money for the thing. Sounds historically like, ooh, that sounds like a great way to starve to death. But clearly it's working for you folks. How'd you get there?
Starting point is 00:11:27 Well, the right license type is absolutely the thing to get right at the beginning. If you go with a very permissible license and then you relicense to something more constrained, you're going to die. Afternoons is going to kill you. It's better to start off more constrictive with a license and then get maybe more permissive over time. That's way better. It's like starting off with a price and thing like that too. But, you know,
Starting point is 00:11:50 starting off with a low price and then just gradually. And of course we did that. Start with a low price and then, you know, go higher. Nobody's going to be a fan of yours. But so fundamentally, I think it's licensing,
Starting point is 00:12:01 you know, making very clear, like we were GPL3, I believe originally. And it was the idea was like, yeah very clear, like we were GPL three, I believe originally. And it was the idea was like, yeah, if you're using this for commercial purposes, like please pay us and get a license. And any legitimate business that sees that license type pretty much kind of like it triggers them to be like, yeah, we need a license because we don't want to deal with like all the nuances of that. You know, like when is it free and when is it not?
Starting point is 00:12:23 But that one, I just kind of luckily got right from the start as, you know, like when is it free and when is it not? But that one, I just kind of luckily got right from the start as, you know, engineer, but not versed in software law. Like it was kind of a shot in the dark, to be honest. And I'm kind of glad I made the decision I did then just to make it work. But I don't know. The other thing is, is like, I just see all these people struggle at the same time with like the sponsorship model. And it's like, why don't you just charge money for your software? Like that's, that's the easiest way to do it like this is commerce that predates like written history is like you have a service you trade services for a another thing or you you buy them with something and versus like please pay me if you think i'm doing
Starting point is 00:13:01 well like i don't know it just i don't want to say it comes across as like manhandling, but I kind of feel like it does to a degree rub me the wrong way. Like just charge. I know I'm going to get pushback on this, but it always feels weird to me when you see someone building something incredibly valuable and useful
Starting point is 00:13:19 and then they have the Patreon link or whatnot there. It's, it feels like when you wind up going to a professional, like you go to an attorney's office, for example, or a doctor's office, and then there's a tip jar sitting there. It's, that doesn't, the model doesn't seem commensurate with the environment and the way I'm using this thing.
Starting point is 00:13:37 Again, I'm not trying to crap on creators who decided to go down that path, but it always struck me as, yeah, a little, it felt relatively down market. And for a lot of these things that are solving enterprise solutions, it feels like it'd be driving away some of your prospective customer base. I agree a hundred percent. It almost like you're broadcasting insecurities or unsureness of your thing. You selling software let's say in this case like asking for a sponsor is like this is kind of anytime i hear that i just i just feel like it's pre-beta or a beta alpha
Starting point is 00:14:13 thing like that's not quite there yet because if it was why aren't they just charging you money for it and so yeah it's kind of like sending the signal or you know you know telegramming out that like i don't have enough value in this to ask for money. So I'm just asking for whatever you have to spare. You also don't want to equate the value of what you're doing to, well, okay. If you buy me a cup of coffee, we're square. It's look, if I help someone with a problem for half an hour and like, thanks, can I buy you a beer? Sure. That's, that's fair. That's awesome. Hey, you wrote some stuff that's transformational to my business and we're making significant revenue off of it. Can I buy you dinner? Doesn't quite cut it.
Starting point is 00:14:49 Yeah, exactly. There's a value being traded here, right? And I think as engineers in particular, many times I've bought lunch for people just to probe them with questions on, I don't know, infrastructure or load balancing or something. Just like, hey, can I buy you lunch? And just ask you some open-ended questions? And they were more than, but they didn't like come in and architect everything until, you know, they didn't solve the problem fundamentally. At that level, it's like you should be compensated well for it because it's not only knowledge that that person didn't have to know about, but like you fundamentally fix something for
Starting point is 00:15:23 them that, you know, turn into revenue increase or whatever it is. I mean, the way that I fix it with the consulting stuff that I do on AWS bills is pretty straightforward. If I can fix your entire problem in a half hour conversation, I'm not going to charge you for that because I want to stay the hell away from, ah, I know the answer to your problem, but I'm not going to tell you unless you pay me, which does not present super well, but I'm not going to tell you unless you pay me, which does not present super well. But I'm also not going to start doing multiple days of work and diving into a thoughtful analysis for funsies. I mean, there's a clear boundary at some point. I used to worry about that where, well, if I sit down with someone for half an hour, am I going to give the value of the
Starting point is 00:16:00 engagement away? And what I realized pretty early on was if the value of the engagement fits in half an hour, I'm not selling anything of particular note. The generic advice is all out there. It's how do you think about it? How do you address the problems that you have in the context of your business? Yeah, that is a very good point. I mean, there's a lot of nuance to this. And I think, again, as like engineers, practically, like you don't really ever get told. I mean, you get told the value by a paycheck for sure. And then you kind of get an under a very small glimpse of the value you provide based upon like that kind of compensation. But the value you have and the ability you have is literally magic to a lot of people. And so I think because we know it and it's like known quantities, it's like we undervalue it almost on purpose just because it's like,
Starting point is 00:16:50 well, I know how to do that. So it really can't be worth that much, you know, and other people know how to do it. So it probably isn't worth a lot, but I don't know, time and time again, I've seen engineers just undervalue to an incredible extent what they can do and maybe what they're doing. It's easy to devalue your own efforts and your own stuff. Because if I know how to do something, everyone must know that. And if I don't know something, that must be the hard stuff. That is never true. But it's a lie we love to tell ourselves.
Starting point is 00:17:14 Well, I think a lot of us too just suffer from imposter syndrome. Like I'm definitely victim of that for sure. I wasn't an engineer to start with. And I kind of taught myself everything I needed to know to get started and do it. And so like, I have this like intrinsic sense that, you know, I didn't go to school. I don't have a CS degree. Like I can't tell you all day about algorithms and inversing binary trees and whatnot. So like, I'm probably just not worth a lot because there's other people are that do that, you know? Anyways, I think that's another dimension at play here is, you know, just the amount of imposter syndrome feelings that we all
Starting point is 00:17:46 have. I'm with you on that. I mean, I don't have a college degree myself. And I know that I can't pass a lot of the big tech company interviews that are effectively hazing because I can't off the top of my head spout computer science algorithmic trivia that has no bearing to 99% of any work I will ever do professionally, but that's okay. I found that that's not the gate I necessarily wanted to go through. What was your path, if you don't mind the question? How did you get to where you are of running a bootstrap company that provides a arcane and very valuable service? I was a jazz trumpet player, actually, to be honest, originally, and then went down the path of having kids and you know i had some had some small life tragedies happened at the same time where it was
Starting point is 00:18:29 like man getting by on a musician's salary right now just isn't gonna cut it longer term and then uh was working at a music store and they got a website quote for redoing their website and having had a background in computers and hearing this quote i was like like, dude, they're way overcharging you for this. Let me give me two months and let me see if I can build something better. And that was the start. It's just been ever since then, just like continuously learning stuff and like playing with new things and I don't know, trying to understand things better. And the trick is getting started.
Starting point is 00:19:01 I would absolutely say that is the hard part is like the, you know, the, the big bang event or whatever for your career is getting that first job, getting the first client or whatever. But after that, it's just keeping up with the pace, which is staggering. It's hard. There's a lot of changes. Things continuously change, especially front end. Yeah, that was kind of my intro to it. I just loved it. It's fun. It's tinkering. There's not always an answer, which I kind of like about it. And I kind of hate it the same time too. But there's a lot of creative freedom. And so I think, I don't know, a lot of programmers have like this art background or some sort of like creative background, painting, music, something. And they kind of fall into this because I feel like there's like a lot of similarities between the two. But yeah, it just jives with my personality and I enjoy the work. And, you know, most of the people are pretty awesome to be around and work with and they're smart and, you know, are well aligned to what we're trying to all do. So yeah, that's kind of the broad strokes of how it happened. You spent some time as an engineer in a number of places of significant scale. Was there a moment where you were effectively trying
Starting point is 00:20:02 to find a good way to do something with a headless browser and kept beating your head off the wall? And was that the spark? Or did it happen completely in a vacuum of, you know, I bet this is an expensive problem. People would pay money to make go away. I'll go build a business around that. I have a sneaking suspicion it is the former rather than the latter, but I've been wrong before. No, it's mostly the former, but I will say, you know, there was a lot of ammunition to that effect. So like, you know, there was a lot of ammunition to that effect. So like, you know, the first company is like we had a Jenkins cluster that ran Selenium tests and it was always falling over. It was never working.
Starting point is 00:20:34 It was garbage. Yeah. I see you nodding your head and I'm sure there's much people like, mm-hmm, been there, done that. Ooh, some white space change. Time to fire off all the alerts. Yeah. And just even trying to read any sort of like diagnostic information from Jenkins is like, I don't even know if I'm in the right part of the app for this or what it's trying to tell me. It's all this Java stuff everywhere and, you know, no pointer references. But,
Starting point is 00:20:55 so that was a big part of it. But honestly, the thing was, I was working on another business, trying to get it off the ground and ran into this problem of SPAs loading JavaScript. And it was making my life a living hell to try to get this thing off the ground. And I was like, this has been a problem. Every company I've ever been at. And I'm facing it again with this really simple thing. Just like with change detection. I just want to monitor a change on this website for pricing information. And anyways, I started working on this is right around the time Puppeteer came out, which is starting to show our date, our age a little bit. But there was just no way to run those things effectively in the cloud.
Starting point is 00:21:34 And, you know, after looking at that and thinking about my history and all these other things, I was like, I feel like there's something here that's better in this dimension than just another, you know know kind of business to consumer thing the web used to be usable without javascript enabled on your web browser those days have passed yeah it's funny because even when you mentioned aws like blocking themselves their own data ips data center ips from visiting their own properties and just like you got to like pull your head out of the sand at some point and be like how did we get here this is not right this is not how it was supposed to be but even
Starting point is 00:22:10 simple sites that are pure html like server-side rendered it's weird to say that because it's just the way things were but anyway server-side render pages even those have cloud front orare in front of them. And so it's like, you still have to bring a browser into the picture just to get past that. And then you can finally get to the content underneath it, which didn't need JavaScript to begin with. And they do the fingerprinting and they look at user agents and all the other stuff. And it feels like it's a game of cat and mouse. It is. And it's another escalation like war, you know, like you'll implement a fix or something and then they'll you know work around it and i don't know but you know again like everybody relies
Starting point is 00:22:50 on open data on the internet to do business like literally every single company i've worked at did and i've talked to many many others that do and like data and tell it like i guess fundamentally it's access to data. Like it's almost, it should be almost a human right, I guess. I don't know. I don't know how to like put that into more like political terminology that makes more sense.
Starting point is 00:23:13 But like access to clean water, you know, access to data is I think one thing. And this kind of is working against it in my opinion. But yeah, it's incredibly nuanced too at the same time. So when is it right? When is it wrong? Yeah, that's up for debate. It's been a fantastic journey so far. Some of the flags you can pass to these things that just seem to work are wild. You can specify resolution of the display. I've done it on developer mode and been able to basically program navigating through a website when I was kicking
Starting point is 00:23:41 the tires on it. It's stuff that for my use cases, this is completely pointless and I have no use for it today, but I love going on those little journeys because six months from now, I'm going to have a problem and it's going to be, oh, wait, I remember a thing. And that's how we learn. I mean, this is a bit off the beaten path for the things I normally spend my time on, but man, has it been an improved quality of life? Yeah, thanks. I mean, that's quality of life is very important. I think full stop. Like that's probably the thing that I would say is the most, that's the dimension that's the most important for us
Starting point is 00:24:14 is like improving quality of life for developers that have to deal with these kinds of problems. And if we have a live debugger and that's like super, I use it multiple times a day to kind of like dive into a site without having to like fire up everything locally and get all the tooling set up and yada yada and it's just nice to have access to those kind of tools because like what you said like may not be today may not be tomorrow but you know six months from now a year from now you're probably going to run into it at some point in your career and just like knowing that it's there and being
Starting point is 00:24:41 able to reach for it and just keep moving forward is good. Because anytime you lose momentum on something, it's really demoralizing. So yeah, just keeping the trajectory up really is the goal there. How do you tend to divide your time between working on the open source parts of it or source available? Because I know you're under the MongoDB server side license now. So someone is going to complain, you're dual licensed, right? But the, how do you divide your time between the open stuff and the parts of your business that are the secret sauce that makes your platform work? Plus of course, running a business, which is a whole bunch of things that people don't think about when they're starting a business of, oh, right. Accounting, taxes, payroll, the things that you, your wheels fall off your company real quickly without
Starting point is 00:25:25 those things. Yeah, exactly. Yeah, man. If anything else, like getting skills in that area have been huge and it took a long time to get there. To be honest, I, everybody I've talked to does it a little differently. You know, some people are just very good, like just keeping it in their head, but I'm kind of like a set it and forget it person. So I just abuse the hell out of my calendar and it's like blocks everywhere for different things. It also helps me just keep me honest and on track. The other thing is I'm a big inbox zero person, which if you've never done that, that's like you go to your inbox and if there's nothing to do, you have no emails in there and it is pure Zen. And so my email inbox is literally just like a running to-do list. And so I usually just
Starting point is 00:26:07 first thing to do, go email, start from the oldest one and kind of work my way up. But yeah, like deciding open versus closed source, that is tricky. I've had this stance that anything that like Puppeteer and Playwright and all these libraries just kind of support out of the box, we should just have that in open source. So if they have this like fun novel way of dealing with like, I don't know, downloads, let's say like we should just support that in open source and kind of make it source available. But anything else outside of that, like if you want bot detection, if you want, I don't know, like multiplexing through Chrome with multiple clients, all these other kind of like novel things, those tend to go into like
Starting point is 00:26:45 the proprietary side of things. And then, you know, we do have sort of like a very non-programmatic recipe for like how to like boil the, bubble those back up into open source again. So I wish I could tell more details about, but I can't articulate it by any means of the imagination.
Starting point is 00:27:01 So it's a lot of it, just like internal compass and internal sense to a degree. But more generally, it's yeah, if other libraries and stuff have it, we will try to have it and support it as well just to kind of keep equal footing.
Starting point is 00:27:13 Yeah, it's worth pointing out you still have maintained being the number two most prolific contributor to the browserless repo on GitHub. Number one, of course, as is always the case, is Dependabot
Starting point is 00:27:24 because it is... If I don't have good things to say, I'm just going to bedazzle everyone with nonsense. Yeah, good old Dependabot, man. It does the job. It's the hero that we need but don't deserve, really, to be honest. It is the Batman of the open source world. Yeah, at the end of the day, I love writing code, man. That, that's just my big thing. I love programming, the creative part of it. You know, if I could,
Starting point is 00:27:49 that's all I would do. And I'm always trying to work towards that direction. I'm just always, you know, building stuff. I just think, I don't know. Another point of reference is like, I just see a lot of engineers
Starting point is 00:27:59 go to management or go to other, you know, disciplines inside their companies and they never get to program anymore. And like, well, that was the thing that you liked and made you special, you know, and you kind of, you know, sacrificed it for, I don't know, maybe a raise or title or whatever, but like, maybe that's not always the best idea. Maybe, you know, things, things should be a little different.
Starting point is 00:28:18 Like maybe, I don't know. Yeah, it could be better, I guess. I don't know how else to put that, but don't lose what you love, man. And I feel like if, you know, programming is what you like and it's, and it's there and you want to do it, like just find a way to make that always happen. Even if you're, you know, the CEO of a company, let's say, but yeah. Yeah. You, you find time for the things that matter. I think that that is something that people don't fully grasp when it comes to, oh, I should run a business or how I'm going to do this. It's a, it's a consistent challenge, but people make time for the things that matter to them and everything else is
Starting point is 00:28:49 prioritization. Exactly. I mean, yeah, kids are a great example. After having kids, it's like you put so much time and effort into them. It's almost like running a business. And then you forget about what you liked or what you've done before or what makes you happy to a degree. And you can't lose sight of that. So I think, yeah, always keeping that as like your North Star or your compass is 100% the way to go. I really want to thank you for taking the time to speak with me. If people want to learn more, where's the best place for them to go? Yeah. I mean, like GitHub is great. I do a lot of stuff on GitHub. I mean, you can open an issue and say hi if you wanted to. We've actually had issues before where people have like complimented the service, which I thought was great.
Starting point is 00:29:26 Well, it's not technically an issue, so there's a bit of a semantic problem here. Clothes won't fix. Yeah, clothes won't fix. Yeah. It's a good one. So yeah, GitHub, we're on Twitter and X as well. Less so on those platforms.
Starting point is 00:29:41 It seems like it's time it goes on, but we're there if you want to say hi or ask questions. Slack too, there's time it goes on, but we're there if you want to, you know, say hi or ask questions. Slack too, there is an open source Slack channel that we're on. So yeah, if you want to come and see what's going on and say hi, always open there. But yeah, those are the big ones.
Starting point is 00:29:53 And we'll put links to that in the show notes. Thank you so much for taking the time to speak with me. I appreciate it. Yeah, thank you so much for having me. Appreciate it as well. Joel Griffith, CEO of Browserless.io.
Starting point is 00:30:04 I'm cloud economist Corey Quinn, and this is Screaming in the Cloud. If you've enjoyed this podcast, please leave a five-star review on your podcast platform of choice. Whereas if you hated this podcast, please leave a five-star review on your podcast platform of choice, along with an angry, insulting comment. Heck, leave that comment on all of the podcast platforms out there using Browserless to do it.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.