Ngroking With Scott McAllister.

Posted on Tuesday, May 16, 2023
PagerDuty alum and former Page It host, Scott McAllister, returns to the pod in this episode to talk about what he’s doing now and his experience jumping back into the startup world.

Transcript

Mandi Walls: Welcome to Page It to The Limit, a podcast where we explore what it takes to run software in production successfully. We cover leading practices used in the software industry to improve the system reliability and the lives of the people supporting those systems. I’m your host, Mandi Walls. Find me @LNXCHK on Twitter. All right. Hi, everybody. Welcome back to this episode, very special episode, of Page It to The Limit. On the other side of the table today, Scott McAllister, welcome back to the show.

Scott McAllister: Thanks, Mandi. The view from over here is really weird, but it’s coming back.

Mandi Walls: So for the folks who don’t know, Scott left us earlier in the year. What are you doing now? What’s going on?

Scott McAllister: I am now a developer advocate over at ngrok. For those who haven’t heard of ngrok, it’s essentially a platform that allows secure access to every environment, whether it’s local on your machine, in Kubernetes clusters, IOT devices. It’s honestly loved by more than 6 million engineers worldwide. Isn’t that crazy? It’s something that I think flies under the radar in a lot of spots, but 6 million people is a lot of people.

Mandi Walls: That is a lot of people. So what’s it like? We have PagerDuty, much larger company than ngrok. And now, you’re back in startup land.

Scott McAllister: Yeah, it’s kind of fun. I basically… I’m part of a team that is around 70 or so. And for years, the project has been run by Alan Shreve. And it was a project that he built out while he was working at Twilio. At Twilio, he was working on their webhooks. And he needed a way to be able to test out those webhooks, and to have a way for those webhooks to reach his machine. And so he built out this project that would allowed him to have a destination for the webhooks to go, and he could process them on his machine with his code that he was writing for Twilio. And when he did that, he realized, wait, this is useful. And so he released it to the community. I don’t remember if he released it open source first. I think he did. I think it was open source at first. And then for years, he made a company out of it, and ran it himself. And it wasn’t until the last couple of years, the demand of support requests and feature requests were coming in so much that he had to expand the team. And so he’s been building out the team over the last few years, and so it’s hit a point now, where they need a developer relations. And they reached out and said, “Hey, Scott, we’re ngrok.” I was like, “Oh, I know ngrok.”

Mandi Walls: Tell us that part of the story. You knew ngrok. I wasn’t really super familiar with ngrok until someone else in my network had gone there not too long ago. And then, you had said about it, but you’re familiar with them from before.

Scott McAllister: Yeah. I discovered them years ago. In fact, in 2019, I wrote a blog post. It was my first blog post on dev.to. The only reason I wrote the blog post was because someone introduced ngrok to me, and I thought it was cool. And I thought, if I don’t write this down, I’m going to forget. I’m going to forget that this tool exists, or how to use it. And so super simple way to just spin up your own connection to your machine, I put simple instructions on how to set up your own Python web server, real basic with a single Python command, and then point ngrok at that Python web server. And that allowed it so that web server could be visible to the world. And so in my case, I wanted to share my website with somebody else, and without having to think about how to get it out, and opening ports and firewalls, and things on my machine, and things like that. ngrok just allows you to do that all, for you, as a service. And then, you can focus on building your website rather than figuring out how to release it.

Mandi Walls: And they found you again, and off you went.

Scott McAllister: So right. And so now, a lot of folks have discovered ngrok as that tool, as that developer tool. That tool that they use for the most common use case as a developer tool is the webhooks, testing out webhooks, and making sure they work, and they run. And they built out a lot of great tool sets around that. That’s been fun. But then they’re starting to expand out from that, from the idea that there’s a lot more devices and situations where you need connectivity. And so one of them that I’ve been… Was told is, there’s a coffee chain that needed access to their point of sale systems, like cash registers, because they couldn’t access them from corporate. And also, when DoorDash orders came in, they weren’t going into the point of sale system. They were getting emailed to each of the stores.

Mandi Walls: Oh my goodness.

Scott McAllister: So all the baristas had to be sitting there, looking at their email to see if they needed to fulfill an online order. But now, they have ngrok running on each of their point of sale systems. DoorDash has a destination to send those orders. And those orders go straight into the queue.

Mandi Walls: Interesting.

Scott McAllister: And then, you have happy coffee customers. And so that’s something that’s where… ngrok is actually being used in production, like in Internet of Things, IOT situations. And I think that’s where the ideas are going. It all stems from this idea that… There’s a concept going around the internet, talking about self-provisioning run times.

Mandi Walls: Okay. What’s that?

Scott McAllister: Yeah. With that, there’s a great article that we’ll put in the show notes, where… The author describes it as… You hear a lot, where there’s various services, even PagerDuty, for instance. PagerDuty says, “You focus on building your software. We’ll focus on getting incidents to the right people at the right time.” And so that way, you focus on writing your business logic. And so ngrok is essentially saying, “You focus on your business logic. We’ll focus on your connectivity, getting your application, or getting your devices accessible in a secure way, but it’s accessible to the internet.” And so with self-provisioning run times, essentially, the author was saying that there’s… With the advancement of two different fields, there’s programming languages and cloud infrastructure. As those continue to evolve, and continue to progress, they’re going to… Eventually, they think they’re going to converge into a single paradigm. That resonated with me. Because, if you remember, from my background at PagerDuty, I got way involved with Terraform.

Mandi Walls: Yes.

Scott McAllister: Infrastructure is code, where you’re essentially building out your infrastructure through code. Now, it’s a separate code base, but it’s still part of your code. It’s part of the repository where your application code sits. With ngrok, one of the cool things that’s coming around is, they have… The original idea is an agent that runs in the command line. You have this agent, you say, “ngrok,” you give it the type of protocol you want to do, and then the port. So ngrok HTTP 80 is the most common way to do it. It’s pointing at port 80, sitting on your machine, and then exposes that to the world. However, what if you wanted to take that, and thinking of this self-provisioning runtime, and move that inside of your code? So recently, we’ve been releasing libraries for Go, and we just released one for Rust, that allows you to embed ngrok inside your application. That way, now, you can decide, and you can build on the concepts of adding connectivity into your Go application, setting a domain, setting a WAP, setting IP restrictions, all inside your application code. And then, it doesn’t matter where your application runs, where your code’s running. I could have the same URL running on my local machine. Then when I pass the code over to AWS, GCP, running it in a data center, all those settings will be the same. Going back to that self-provisioning runtime idea, you’re taking your application code, you’re taking your infrastructure, you’re bringing them together to where your application doesn’t care where it’s running. Because it has everything already set up inside of the application.

Mandi Walls: That’s interesting. So instead of instantiating an connector class, HTTP class, and setting all that stuff up manually, you pull in ngrok library. And it has the primitives and everything else there for you. So you don’t have to think about all that crazy business.

Scott McAllister: Yeah. So in Go, the net.listener is the way that you set up a web server, essentially, or you make it listen on a certain port, so you can [inaudible 00:08:54] be a web server. ngrok Go, the library actually uses those same structures, that same API, essentially, to where you can swap out net.listen for ngrok.listen. And now, it’s exposing all your ngrok stuff, or it’s allowing ngrok to expose all your stuff.

Mandi Walls: Oh, wow.

Scott McAllister: When I heard about those types of ideas, taking things into production, making it so that people can, again, write their code and not have to worry about it, those were some of the things that excited me.

Mandi Walls: Yeah. No, that’s super interesting. Put it anywhere. Who knows what folks are going to come up with, especially when you’re talking about smaller devices and edge networks, and Internet of Things, the stuff that is out there and has whatever basic operating system on it, but maybe not exactly what you need, you can customize it.

Scott McAllister: Yeah. One of the biggest concerns folks have is security.

Mandi Walls: Definitely.

Scott McAllister: You’re opening up a hole. You’re essentially opening up a tunnel on whatever device is running things. And the engineers have thought of that already. And so with ngrok, now you can also incorporate OAuth, like right [inaudible 00:10:04] your tunnel. So you can say, “Use Google, OAuth. GitHub, Microsoft.” And it pops it right in front of your application. That way, again, it’s using that to keep things safe, secure. You can restrict things to the domain. That way, only certain domains can come through that OAuth, that type of thing.

Mandi Walls: Oh, nice.

Scott McAllister: It can also have OpenID and things like that, things that I’ve been exploring, honestly. Because I’ve been here a few weeks, and so still learning all this stuff, but it’s super intuitive how… If I wanted things in my application that deal with connectivity, they’re all going to be sitting in there.

Mandi Walls: Awesome. Super. Interesting. Some of those primitive connector libraries, depending on the languages that you’re using, are really obtuse. And you didn’t have to be this [inaudible 00:10:56] about any of this stuff. It could be nicer. It could be slick.

Scott McAllister: Totally. Interesting story on that note, actually. When we released the ngrok Go library, within the same day, someone else had created an additional library that went off of it for… And it’s something I’m not as familiar with. I think it’s called Caddy, something. I think it’s a Caddy connector that helps you with… Connecting with Kubernetes, I believe.

Mandi Walls: Oh, wow. Okay.

Scott McAllister: We’re going to have to put show note corrections to my [inaudible 00:11:27]-

Mandi Walls: Yeah, we might have to…

Scott McAllister: … if I’m totally saying the wrong thing,

Mandi Walls: Full adaptation here.

Scott McAllister: Right. But they were able to do that within a day. Because the API design on that Go library was clean enough, and made sense enough that it allowed them to be able to add that functionality into something that a lot of the community’s already using. The Kubernetes community, as we all know, is gigantic, right?

Mandi Walls: Yeah.

Scott McAllister: It has taken the world by storm. And it’s nice to be able to integrate in with what people are already using, giving them tools that they’re already used to. And with that Go library, actually, we’re developing a Kubernetes ingress controller for ngrok. It’s going to be coming out, hopefully, probably before this show goes live, I think. I haven’t been given an exact date. But essentially, it allows you to do ngrok inside of a Kubernetes ingress…

Mandi Walls: Oh, okay.

Scott McAllister: … statement. And so the thought there… And this is hard to explain when you don’t have a screen in front of you, but imagine an ingress configuration inside of your Kubernetes. Yes, with ngrok, you can spin up a single tunnel or a single connection in the command line, but what if you have multiple things that you want to expose? You want to have a certain section of your application, that the public sees, that’s not behind any Oauth, but then you have another section that is behind Oauth. And so you want to have your admin section, and then also your public section. You can configure both of those inside of your Kubernetes ingress definition there, and then have those different endpoints routed to those tunnels. And so I can say, “For the admin section, you’re going to route to this spot. And you’re going to go through Oauth. And then, you can get into that whole section.” But just for the home section, or whatever, the general section, that’s not going to have to go through OAuth. You can start thinking about your applications getting more and more, and more complex. And you can have more and more, and more connections, because you will. Because your applications are… Applications all increase in complexity as we build out different features.

Mandi Walls: Definitely. Cool. So how’s this been different from you? You’re in a place where things are growing in a little bit different direction than… It’s like PagerDuty, which has been around 13 years, and pretty… Established project with the Terraform provider. You’re off paving to new roads there.

Scott McAllister: Yeah. PagerDuty was great in the sense… I mean, PagerDuty’s great. Period. We’ll leave that sentence with a period there. And it’s a place where there’s enough people that everyone has their defined role. And you have your defined areas. And everyone has their boundaries. And everyone knows how the process works. When you’re on a team of 70, it’s a much smaller boat.

Mandi Walls: Definitely.

Scott McAllister: Everybody’s chipping in on everything, basically. And what’s great is, everyone I’ve met so far, which is basically everybody, has been amazing. And so it’s like… They’re just great people. As you get to know people… When everybody interviews, when I interviewed at PagerDuty… I’ll be perfectly honest. What was it? Four years ago, that I joined PagerDuty, I barely knew of PagerDuty. I knew of them because my previous company was a customer. I figured I would talk to them and see what they had to say. The more I kept talking to them, the people I met, I realized, I wanted to work with these people. I could learn from these people. And so when I had the offer to work at PagerDuty, I took it, because I knew I could learn from those people. And I could grow, and I could become a better employee, a better worker, a better developer advocate, understanding technology better, understanding how I could be a better speaker. All those things were things that were important to me at that time. And they were important to me, again, with ngrok. When ngrok approached me, I wanted to know… One of the things I look for is, can I work with these people? And can I learn from these people? Essentially, as I got to know the people, I got excited. Because I knew I could learn from the people here. And then, also, because I had experience from three years ago, four years ago on using ngrok, wrote that blog post four years ago. And I was like, this is a pretty rad train to jump on. So I was going to jump on that train. And so I enjoy being in a situation where… We’re all learning, everyone’s learning, everyone’s new. I was at an offsite when I first joined, it was my first week, actually. It was an offsite. And they had everybody stand up, who hadn’t been to a previous offsite.

Mandi Walls: Oh, wow. Okay.

Scott McAllister: And 90% of the room stood up.

Mandi Walls: Oh my gosh.

Scott McAllister: Or at least… Or more than half. And so it was a lot of people, a lot of new people. But it’s great, honestly. Just getting to know the different teams and understanding how we can help each other succeed at a thing is fun.

Mandi Walls: Cool. What are you most looking forward to, for your first year at ngrok?

Scott McAllister: I think I’m most looking forward to seeing how people can take the idea of connectivity as a service, ingress as a service, as we call it, and go directions that we weren’t anticipating. I love seeing cases of products where people decided that, “Hey, I like this idea, but I want to go this way with it.” So I want to see where folks take it.

Mandi Walls: Yeah. It’s nice to have a project that you’re working on, that inspires creativity and other people. And working on tools is a lot more like that. It’s a tool. You can build a whole bunch of things using a screwdriver. And if I build a screwdriver, I don’t know what you’re going to do with it. And that gets super interesting, to see what people end up doing.

Scott McAllister: Yeah. I love working in the developer space, where we talk about… I explained it the same way at PagerDuty as I do at ngrok. We’re essentially the ones selling the shovels to see what other people build with us, and build with our product, with our service, with our tool. And it’s fascinating to see the creativity of folks. That’s what the fun part about being in developer relations do. As a dev advocate, I always see us as teachers. We’re the ones going around, talking about various topics, whether it’s the product that we’re representing, or a service around the product that we’re representing. But when you’re there, when you’re talking to folks… And I love it more in person, because you can see it. You can see it in their face and say, “They just realized what this was,” or “They just saw the value of the thing that I’m talking about.” I talk about Terraform a lot. You know that.

Mandi Walls: Of course.

Scott McAllister: To some audiences, it’s a topic that’s been around for a while, and it’s been done. To other audiences, they’re brand new to it. We all have these things that we’re learning as we continue to progress. And no one knows all the things about all the things. I’ve said that on this podcast before. And so that’s why we all need to keep teaching each other and helping each other. Because my expertise is different than your expertise, which is different than someone else’s expertise. And so I love sharing that with folks. That’s what I love about being a developer advocate. And so it’s fun doing that with fun people. And I had fun people at PagerDuty, fun people at ngrok, and cool projects at both. And so it is just a good time all around.

Mandi Walls: Yeah. Are you missing out on Terraform?

Scott McAllister: I might be giving away the ending, but no, I’m actually going to be jumping in on their Terraform provider.

Mandi Walls: Oh no, you get pulled back in, man.

Scott McAllister: And the way they’re doing their Terraform provider is pretty cool. I’m going to keep those details on the down low for you.

Mandi Walls: Okay. All right.

Scott McAllister: But I hope to create some content around that. Because we use some different technologies for building out our SDKs, and building out the Terraform provider that do it automatically off of the API.

Mandi Walls: Oh, interesting. Okay.

Scott McAllister: Yeah. And so I’m still, actually, today… One of the things I was doing today was still building out my development environment with ngrok, and trying to understand the code base, and how I run it on my machine. And so you’d think with such a simple application… And it’s, essentially, a command line application that the code base wouldn’t be very big, but it’s pretty big.

Mandi Walls: Networking is wild. So yeah.

Scott McAllister: It is. So we’ll be, hopefully, seeing some things soon about the Terraform provider at ngrok, and some improvements, but also how we do things over there. Because I think it’s super fascinating. It’s stuff that I haven’t seen before. And so if it’s new to me, it’s got to be new to other people too.

Mandi Walls: Yeah. Wait for that. And maybe it can improve what we’re doing over here as well.

Scott McAllister: Yeah. I’m happy to share. I’d love to share with you and Jose, and anyone else who’s interested. So yeah, that would be a whole nother cool conversation to just swap ideas.

Mandi Walls: Absolutely.

Scott McAllister: We should swap ideas on air somewhere, and just be like, “This is what we’re doing. What are you doing?” Kind of thing. And just having everybody kind of watch us share ideas. That’d be kind of cool.

Mandi Walls: Yeah. Watch this space. We’ll put that together sometime soon. Absolutely.

Scott McAllister: Yeah.

Mandi Walls: It’ll be super fun. Sweet. So what else have you got going on? Are you going anywhere, doing any in-person stuff now ? In-person is really back.

Scott McAllister: In-person is back, back. My schedule’s pretty full, actually. I’ll be at damn Nexus, but I think that’s probably going to be before this releases, and then KubeCon in Amsterdam.

Mandi Walls: Oh, nice.

Scott McAllister: We’ll be out there, hopefully, talking about our ingress controller. Let’s see. Stir Trek. I’ll be at Stir Trek in Columbus. It’s a fun event for folks who are in the Columbus area. Stir Trek, I’d highly recommend it. From what I hear, I’ve never been, I’ve only heard stories. But it’s essentially at a movie theater where they have a conference during the day. And then, at night, after the conference, they let everybody watch a premiere of some movie that’s coming out.

Mandi Walls: That’s pretty wild. Okay.

Scott McAllister: Yeah. So that’s pretty cool. And then after that, I’ll be at J On The Beach in Malaga, Spain. So yeah, I’ve heard only good things about Malaga. Plus, you should go to their website and see what they did to my bio. These people are my people. They’re so my people. In my speaker bio, I list all the sports teams that I like. And so I listed my soccer teams that I like. And one of them is Borussia Dortmund, which is out of Germany. I like them because they like signing young American players. I didn’t think much of it, but they took my bio, and they scratched out Borussia Dortmund. And then, they put a note underneath my bio that says, “Note. As ardent supporters of Málaga CF, we cannot support anyone supporting Borussia Dortmund.” Didn’t they change the name of the team?

Mandi Walls: Yeah. They did. Instead of a “Borussia,” they have a “Robussia.”

Scott McAllister: Robussia Or something like that. [inaudible 00:22:59] Rubbish.

Mandi Walls: That’s amazing.

Scott McAllister: And I responded on Twitter. And I was like, these are absolutely by people. Now I have to wear a Dortmund shirt at the conference.

Mandi Walls: You do.

Scott McAllister: And they responded with, “Yeah, try it.”

Mandi Walls: Like you turned it inside out. It’s like wearing something naughty to school when you were a kid.

Scott McAllister: They’re going to be like, “No, sir, you can’t come in with that.”

Mandi Walls: “Sorry, your dad gave you that shirt that he picked up at a truck stop, but you cannot wear it to school.”

Scott McAllister: Exactly.

Mandi Walls: Absolutely. Oh my gosh. No, that’s absolutely their goal. We’ll put those in the show notes so folks know what we’re laughing about. But yeah, that is pretty amazing. And yeah, Malaga is delightful. We’ll say that-

Scott McAllister: I’ve heard.

Mandi Walls: … for sure. Yeah. Absolutely.

Scott McAllister: Yeah. I’m excited. It’ll be a good time.

Mandi Walls: Sweet. That’s awesome. Are there anything else you’d like to share with folks? If they’re interested, where can they find out more about ngrok, or any of that good stuff there?

Scott McAllister: Yeah. ngrok.com is where you find us on the internet. And then, we have a lot of various integrations. Honestly, how we tie into PagerDuty, we actually tie into PagerDuty.

Mandi Walls: That means you have to come on the Twitch stream and show that off at some point.

Scott McAllister: Right. So we actually have a… Because folks use us for webhooks and webhook validation, they use us for hook testing. We do webhook validation. We can verify that a webhook is coming from a service. Because webhooks, if you think about it, are basically just messages coming from anywhere. It’s basically saying… An application saying, “Okay, as long as you have my address, I think you’re coming from here.” And so people are starting to add things to their webhooks, headers, to say, “Okay. No, this really is coming from PagerDuty.” Or “This really is coming from GitHub.” And so ngrok has a variety of services that they have webhook verification for. PagerDuty is one of them, and GitHub, and others that I don’t remember. We’ll list those in the show notes as well, but essentially makes it so that… It makes your webhooks a lot more secure.

Mandi Walls: Absolutely. [inaudible 00:25:07].

Scott McAllister: It’s actually coming from them, rather than just a person in the middle, kind of thing.

Mandi Walls: Yeah. Interesting.

Scott McAllister: Yeah. That one’s super… That one’s something that works really well if we get on Twitch. We’ll definitely get on Twitch and show off some things, especially with PagerDuty, for sure. Y.

Mandi Walls: Yeah. Excellent. Looking forward to that. We’ll just keep the calendar full here, just keep it going. All right, dude. It’s been great to catch up with you. It’s been lonely without you. We are still hiring for folks out there. We have several open positions. We had to replace Scott with three people, basically. It’s how that’s going to work. We have positions open in a couple of places. You can check out pagerduty.com/careers there. We wish you all the best luck and success with your new job. And you’re always welcome back to talk more.

Scott McAllister: Thanks, Mandi. It was a pleasure and a joy to be on this show, to be a host with you, but also to be a guest. So thank you.

Mandi Walls: Awesome. Love to hear it. Thanks for coming back. All right, folks. That’s it for this week. We’ll wish everyone else an uneventful day. And we’ll talk to you again in a couple of weeks. That does it for another installment of Page It to The Limit. We’d like to thank our sponsor, PagerDuty, for making this podcast possible. Remember to subscribe to this podcast if you like what you’ve heard. You can find our show notes at pageittothelimit.com. And you can reach us on Twitter @pageit2thelimit, using the number two. Thank you so much for joining us. And remember, uneventful days are beautiful days.

Show Notes

Additional Resources

Guests

Scott McAllister

Scott McAllister

Scott McAllister is a Developer Advocate for ngrok. He has been building software in several industries for over a decade. Now he’s helping others learn about a wide range of web technologies and incident management principles. When he’s not coding, writing or speaking he enjoys long walks with his wife, skipping rocks with his kids, and is happy whenever Real Salt Lake, Seattle Sounders FC, Manchester City, St. Louis Cardinals, Seattle Mariners, Chicago Bulls, Seattle Storm, Seattle Seahawks, OL Reign FC, St. Louis Blues, Seattle Kraken, Barcelona, Fiorentina, Borussia Dortmund or Mainz 05 can manage a win.

Hosts

Mandi Walls

Mandi Walls (she/her)

Mandi Walls is a DevOps Advocate at PagerDuty. For PagerDuty, she helps organizations along their IT Modernization journey. Prior to PagerDuty, she worked at Chef Software and AOL. She is an international speaker on DevOps topics and the author of the whitepaper “Building A DevOps Culture”, published by O’Reilly.