434

February 23rd, 2022 × #distributed-tracing#debugging#performance#career#open-source

Ben Vinegar × Distributed Tracing and TypeScript Migrations

Ben Vinegar joins to discuss his work in web development and open source, distributed tracing, Sentry's evolution, remote work impacts and more.

or
Topic 0 00:11

Introducing guest Ben Vinegar

Wes Bos

Welcome to syntax. This is the podcast with the tastiest web development treats out there. Today, we have it's Not some tasty treats. We got some sour treats for you. We got Ben vinegar on.

Topic 1 00:24

Guest jokes about sponsor confusion

Guest 2

That's pretty awful. I was trying to think. I was like, should I do, like, a VICOM video joke? Or I knew I knew where I was going, and I was ready. I was you know, my my mind and body ready for it. So

Wes Bos

Ben is, works at, actually, one of our sponsors. We're not having rid. Because he's a sponsor we're having on because we're actually interested in what he has to say. He works at Century, and he's got all kinds of of rid Stuff that we could talk about. I've I've followed what Ben has been doing for for many, many years ago. You used to work at, like, what, FreshBooks. Right? Yeah. I was one of the, Single digit employees of FreshBooks, but that's a long, long time ago. That was probably Do the listeners know about FreshBooks? Hi. Yeah. We FreshBooks is

Topic 2 00:38

Wes and guest discuss guest's background

Guest 2

okay. He's joking. Okay. Sorry. I was like, yeah. They're one of our sponsors. Yeah. They're one of our sponsors. That's right. Oh, I'm sorry. I guess yeah. It's, rid. I saw that, actually. I saw that Century and FreshBooks were sponsors. Yeah. It's funny.

Wes Bos

Let's rid Let's talk about our sponsors real quick. We are sponsored by 3 awesome companies. First 1 is Content by Kentico. Second 1 is rid. Ash, Node, and third one is Sentry. We'll talk about all of them partway through the episode.

Wes Bos

Welcome, Ben. Thanks for coming on. Oh, thanks for having me. Rid. Absolutely. Do you want to give us a quick rundown of of who you are and what you do and what you're interested in? What is your path path look like? Because I've been, I don't know. I've been following your stuff for probably well over 10 years back before jQuery days. So it's kinda interesting to see all the stuff you've worked on. I have some books on my shelf that you've written and all that stuff. Okay. Sure. So,

Guest 2

I'll I'll try to make this slightly interesting.

Topic 3 02:03

Guest discusses graphics driver development background

Guest 2

I actually I actually began my professional career in graphics driver development. So, rid.

Guest 2

Oh. I did, like, a 16 month internship working for Seiko Epson of Japan.

Guest 2

Epson, what we think of as the printer company, is actually a

Wes Bos

rid Giant Japanese conglomerate that also sells watches and Yes. They yeah. They they co famous Those those companies are are always weird to me. Like, I rid. A Panasonic bike, and then you see, like, a Samsung excavator sometimes on the side of the road. You're like, these some of these companies are so bizarre. Yeah. Yeah. At At one point, I think they sold personal computers in Japan, like in the same way like Hewlett Packard would. Oh, yeah.

Topic 4 02:41

Discussion of Epson as a large conglomerate

Guest 2

And they had like an LCD controller business. And I I joined like a a development team working rid. Open GL ES implementation for some hardware Epson was putting together. So, so I did a lot of c, even assembly, rid. And was really like plotting pixels. K? It's how I think about it because we're all listen. We're still plotting pixels today. It's all the same stuff if you think about it. And then at some point, I saw like a, you know, it's I think I was still in college, and I saw Ajax. K? I saw, okay, like like an endless scroll this demo.

Topic 5 03:14

Guest got into web development after seeing Ajax demos

Guest 2

Rid Really blew my mind. That. Yeah.

Guest 2

Really blew my mind for what websites could be, and and I don't know. I I somehow pivoted, got into Ruby on Rails, I got a job at FreshBooks when I was pretty young, when they were pretty small.

Guest 2

And then I was working FreshBooks for a couple years. I had an opportunity to move to San Francisco, And I kind of pivoted and decided to be a JavaScript developer. K? You know, this is 2010 jQuery, and, rid You know, I was doing like full stack development of FreshBooks, singing PHP, MySQL, but I really enjoyed really enjoyed the front end. And, you know, I began in graphics driver development. I I really enjoyed the sort of visual medium.

Topic 6 03:53

Guest worked at Disqus on embedded commenting

Guest 2

So I went to San Francisco, positioned myself as a JavaScript developer, were to discuss for a little bit the Embedded commenting platform. And that's really where, you know, how do you get a web application? You put it on someone else's website. Mhmm. I thought that was really neat. Rid this this is really before pure JavaScript applications had really come about. Like, I think at 2010, it was still about, rid. You know, you're using jQuery to augment to PHP app. That's how I think about it. Like, even even Facebook was still pretty, You know, click a button, hard refresh, get to the next page.

Guest 2

Back then. So, rid. Worked there, worked on embedded comments, came out with this book, third party JavaScript, which is really just kinda taking all the things I've learned. And, rid That's where I met the founders of Sentry, because Sentry is an open source project that actually goes all the way back to 2008.

Topic 7 04:26

Discussion of evolution of web apps and SPAs

Guest 2

Wow. Yeah. It's actually just like a Django plug in back then, rid [SPEAKER DOCTOR. DAN SHANMUGARAJ:] And we can come back to that. But, so, you know, I joined CENTURY as employee number 4 in 2015.

Topic 8 04:41

Guest joined Sentry as 4th employee in 2015

Guest 2

I've rid Been with them this whole time, became vice president of engineering for, rid Like, 4 years, grew the engineering team, and and today, I've got a slightly different job kinda incubating new products and exploring

Scott Tolinski

new stuff that Sentry can do. And you guys have been doing a lot of new projects lately. Not to turn this into, like, Century ad hour here or something, but, like, Honestly, I one of the things that I'm impressed with that century is, like, how often I go to my dashboard and there's a new bubble telling me to check out something different, which You've got to appreciate in any long standing company at this point because so many of these products, they come out, they get either acquired, or they just kind of sit and stagnate as, You know what they were when they launched, but, that's never really been the case with you guys. So, definitely, it's like that you're you're on that that discovery.

Topic 9 05:08

Discussion of Sentry's ongoing innovation

Guest 2

It's interesting to hear that from the other side. Right? I think that maybe even inside of companies, you're probably like, we're stagnating, and you're and you're you're you're freaking out, rid. But maybe with good reason because that's sort of you know, that's how you get to this point where, you are building new things.

Topic 10 05:45

Guest discusses not stagnating as a company

Guest 2

That's great to hear, by the way.

Wes Bos

Yeah. Awesome. Yeah. We've we've been enjoying all the all the new features and rid. All the bugs that it's catching on our end, I often wonder, like, I wonder if the century team is has, like, a little chat room that just, like, laughs at, Oh, look at the look at Wes's platform. Look at how many bugs are on that thing. I would be lying if I'd if I if I had didn't have that same thought at some point, Wes. Like, These people are gonna find out that my code is bad.

Topic 11 06:27

Joking about Sentry team laughing at bugs

Guest 2

That definitely never happens.

Guest 2

But we do see your, like, public mentions when you're like, oh, I found this and I fixed a bug. And we all just get really we usually get just get really amped up when we see that, frankly. Oh, wicked. Yeah. I just, this morning, I just released a a huge pack of 10,000 packs of stickers. And

Wes Bos

this code has been running on my platform for a long time, rid. And I feel like I've got a pretty good handle on all my things that pop up, and there's nothing like a lot of traffic to find a whole rid bunch of weird edge case bugs that people have.

Topic 12 07:00

Distributed tracing helps debug errors across services

Guest 2

I I think our attitude is and and probably you agree, is just like, listen. Code is messy. There is no there is no, like I mean, if there's someone out there who's who's not producing any bugs, who's just figured it out, You know? I don't know. They're probably selling, like, $10,000 training seminar somewhere, and it's not actually true. Like, I, rid. I I just think that we're all making mistakes all the time, and that's just part and parcel of what it means to be a software developer. So, you know, rid This is the universal experience. I don't I don't think that anyone would would make fun of your your account if they saw it because it just looks like every everybody else's.

Wes Bos

True.

Wes Bos

Rid. Yeah. Cool. Well, man, we have a huge list of things we talk about today, but I think the first Thing I want to talk about is you've been publishing these blog posts about distributed tracing for full stack developers. And what does that even mean? Because I think about I think about my my century that I've got run-in here. And this is not necessarily just specific to century, but specific to just rid. Tracing where things happen.

Wes Bos

You've got your back end, your front end, but there's a lot of, like, in between. So you want to give us a rundown of of what is distributed tracing? It's tricky.

Topic 13 08:16

Guest explains distributed tracing

Guest 2

Love it. You know, we live in a more complicated web development world than we did before. Right? Even going back to my example of, say, FreshBooks, which is a, you know, is a monolithic PHP app and had some JavaScript. Right? Maybe you could say there were sort of 2 services in there, a front end and a back end. I I wouldn't even go that far, frankly. Like, really just a monolith Publishing web you know, publishing, you know, handling requests, running PHP, dropping JavaScript on the page.

Guest 2

Yeah. You know, and in that paradigm, in that monolithic paradigm that a lot of us, if you've been doing this for a while, are at least familiar with, You know, if an error happens or a, a page is slow, it's not too hard to figure that out. We you know, You could you could use a product like Sentry. There's other products as well.

Guest 2

You could have been, you know, just looking at your error log. You could figure it out. Rid But now things have gotten really complicated. Okay? It's Mhmm. And you talk about new technology all the time.

Topic 14 09:22

Discussion of microservices and increased complexity

Guest 2

Rid. Your, you know, modern web stack today could be, you know, maybe you still have a monolith, but then you've got some microservices.

Guest 2

Maybe some of those are running on serverless.

Guest 2

Maybe now today, maybe some of them are on CloudFlare Workers running on the running on the edge. Right? So you've got Serverless even performing, you know, in different places, maybe even on different platforms.

Guest 2

Yeah. So, you know, when When you have a bug, who's what's responsible? What's happening? Like, when you just see a 500 exception rid. On the on your browser client, right, something wrong happened.

Guest 2

It could be like who knows? There could be a whole bunch of different services where That error manifested.

Guest 2

K? And so distributed tracing aims to solve this problem, and I think it kind of emerges rid Because of this kind of confluence of multiple server paradigms, serverless, etcetera, like just wrapping it together rid is is hard. And tracing is not too tricky. It's really more about just sorta connecting the dots. So when you rid Kick off a request and you initiate some work on some service, you sort of propagate these unique identifiers with your request to downstream services that just sort of Say, hey.

Topic 15 10:41

Tracing connects errors across services

Guest 2

Yes. You're another service. You've got your own thing that you're doing, but this is part of a sort of a connected whole. And Mhmm. By linking these IDs, you can kinda just sort of trace them back to sort of 1 big gob of stuff.

Guest 2

It helps a lot, right, because if you have an error in a downstream service, you can sort of connect the dots using these unique identifiers to be like, This is the end user that was impacted.

Guest 2

I see that it actually affected this upstream service, like, you know, an exception on this service caused a 500 here, which cascaded rid to this loading spinner for the user.

Topic 16 11:17

Tracing also helps debug performance issues

Guest 2

That's the gist of it. It's not even, I think, too crazy, You know? Yeah. When I think about it, I'm like, why did why why is this even a new thing? It seems reasonable. Mhmm. You know? Why haven't we had this for a while? Yeah. I mean, it's it is interesting because, like,

Scott Tolinski

as you mentioned, things are not essentially as transparent as As they were before in the past too, you you wrote some code. You loaded a single JavaScript file. That file was clearly at fault, but now we We have source maps. We have, who knows what library like, thousands and thousands of libraries that are called from other libraries, and And who who really is at fault is is the always the the key problem is is where is this issue originating from? So, yeah. Anything anything that could put those puzzle pieces together, I suppose.

Topic 17 12:08

Some tracing tools were enterprise focused before

Guest 2

I think that, you know, we we also opened this from, like, the full stack view of this. Right? Yeah. Some of these tools have existed for a while. Sometimes they're like enterprise tools, rid And they were like DevOps tools. You know? Like, you're a sysadmin. You're a DevOps person. You're looking at this rid Network topology, the service map, and, like, this is a tool for me, me with my puppet master fingers, you know, controlling the the giant server rid infrastructure of some company. Okay? So those products have have existed. And one of the I think one of the first sort of rid. Quote unquote consumer versions of this is Amazon X-ray, I think.

Topic 18 12:50

AWS X-Ray as a consumer tracing tool

Guest 2

Like, if you're using services like, Amazon has something, which is if you're using mobile services, they have some basic kind of,

Wes Bos

You know, connecting the dots. Yeah. Do you know more about this, Wes? No. No. Sorry. I'm just just agreeing with you. I'm taking a look at it. I've never never heard of this, the Amazon X-ray before. I'm not a big AWS

Guest 2

of it. And that's part of it. You hadn't heard of it. And if you look at it, say, it's pretty low level. K? You rid. You know, because it was sort of a tool for, like, almost just like another segment of developer. Right?

Scott Tolinski

Yeah.

Guest 2

But also so so not only do we have this kind of services rise, we also have this, like, rise of front end developers and full stack developers that I think have, like, an increasing responsibility over these services. Rid. Right?

Topic 19 13:32

Rise of full stack developers using cloud services

Wes Bos

Like, you guys talk about it. You guys talk about workers. You guys talk about these these new technologies. Right? Yeah. It's it's unreal. The past, like, Couple years. Oh, all of a sudden, Next. Js gives us API routes and, oops, I'm a back end dev all of a sudden. Like, that's We're seeing a lot of people being like, oh, I'm not I don't know if I'm a front end or back end. Am I full stack? It's like, I kinda just write the code, rid. And it runs where it needs to run. And before you know it, oh, I'm I'm back end or maybe even operations. Right? Yeah. The Tooling has evolved to such a degree and simplified that, you know, we're all comfortable using these things. I I say I. Like, I'm I'm roped into this too. Like, I'm not somebody who is going in and, like, configuring Nginx and doing a whole bunch of wacky

Guest 2

Sysadmin DevOps things.

Guest 2

I really like serverless. I like calling, You know, calling a URL and some magic computation happens that I've set up.

Topic 20 14:30

Tools help full stack developers

Guest 2

Yes. So, like, you take all these things together and that I guess, you know, this is my own, like, advocacy that these are these are helpful tools.

Guest 2

These are helpful tools rid For the modern, you know, full stack landscape.

Wes Bos

That's another interesting thing you have here, I wanna I wanna get into this, is that, like, poor rid is not necessarily an error. Like, your if your website is slow or, like, you got a rid. Forever.

Wes Bos

It just, like, never resolves or or whatever reason or times out, or just in general, the website just doesn't feel good or sort of rots over time. I talk about that a lot. Right. Like where your website's nice when it goes out. But over the years, things get slower and Nothing is necessarily throwing a flag for that. So does distributed tracing also help in that of just like Tracking down, like, a poor user experiences.

Topic 21 14:59

Tracing can help debug slowness without errors

Guest 2

Yeah. I I think this is incredibly important for front end developers too. Right? Because, rid Typically, I mean, we I mean, think about this. We obsess over file size. We obsess over things like, you know, time to first time to bite, Largest Contentful Paint, some of the things that we have control over. But the reality is, oftentimes, like, we're still waiting on a server response. Is usually the crux of a slow experience. Would you agree

Topic 22 15:53

Tracing lets you test closer to user experience

Wes Bos

with that? Yeah. Yeah. Absolutely. Yeah. K. So,

Guest 2

You know, tracing also lets you tracing is just sort of like, oh, an error happens in the service, and you can trace that to an experience. But it it can be used to augment really anything like, APM tools, performance monitoring tools. So I can take a look at this slow end user experience, rid. And I can trace through you know, because this again, it's really just IDs augmenting telemetry that sort of helps you rid Connect the dots. And so modern, you know, modern performance monitoring tools will basically show you A a sort of topology of your request that's like, okay. Here's the front end experience.

Guest 2

Here's an here's a fetch request that hits a server.

Tracing links frontend latency to backend services

Guest 2

That seems to be taking a while to hear to to hear back from. Oh, because it turns out that that server is in turn calling some other service.

Guest 2

And, rid You know, the version of this that we're probably most familiar with is a database. Right? Yeah. So, you know, because that's a long query.

Guest 2

Rid But maybe it's service, service, service, then a database. Right?

Wes Bos

Yeah.

Topic 24 17:02

Tracing helps pinpoint performance problems

Guest 2

And, you know, these tools really help you Connect the dots in a way where you're like, well, here's my problem. Right? My problem is right over here. And me as a software developer, I mean, I can keep going and trying to shave file rid file size off of my dependencies, but it might actually just be more meaningful if I roll up my sleeves and figure out how I can optimize this sort of, like, server endpoint for my users. Yeah. That and that that kind of, like, makes me think of

Wes Bos

we have this shift of testing rid. More towards, like, integration testing of, like, act as close to the user experience as possible.

Wes Bos

Whereas in years past, it was more like rid. Unit testing and testing that function that runs. And and this kind of feels like the same way as, like, you're you should be tracking and tracing it rid. As the user experiences it and not necessarily, like, bytes and and whatnot at the end of the day. Right? Does that make any sense? Rid I like this. It's the unit test versus

Guest 2

the integration test Yeah. Is true. Right? Yeah. You can't just look you know, You can't you know, if you just hey. I've done this. Mock all the server end points.

Guest 2

Right? Right? You know, write a bunch of of tests that rid Fire up your components, but you're not really you're not testing the full system. Right? And I might even look at that and call that an integration test because it wasn't, like, You know? It wasn't me sort of testing just a a function or a method on a class. Pure function. In and out. Yeah. Yeah.

Topic 25 18:31

Integration testing versus unit testing discussion

Guest 2

Yeah. I I yeah. And I should I should also add on this. Like, these these tracing capabilities are finding their way into commodity tools and products. Right? Sentry is one of them. Rid. There there are others.

Guest 2

I I think Elastic does this too. Wanna talk about another open source, option here. I feel the need to rid Totally. Gentleman's doing this. You know, it's a it's a trend. People should look into it. Yeah. Yeah. Absolutely. And it's actually amazing that you can

Wes Bos

just sign up for something, and throw it on your site and actually be able to get this access. This feels like something that used to be, rid. Like, you had to, like, have a call with people and you have to fill out vendor forms and all that. Rid. I remember those days, and, like, that's just not something that

Guest 2

anyone's really interested in doing or or has budget to to do that type of thing. If you need to have a phone call, you rid Probably can't afford it. Yeah. Yeah. You know what? Because we thought I know you you've talked about Cloudflare on your show, and I'm I'm a big fan of some of the things I do. Cloudflare is, like, a version of that for CDNs. Rid. Mhmm. Right? Oh, yeah.

Topic 26 19:21

Century sponsor ad read #1

Scott Tolinski

Right. Does everything for you. Everything for you. Yeah.

Scott Tolinski

Rid. Should take a quick second here to talk about one of our sponsors, which is content by Connecticut West. Do you want to talk about content by Connecticut?

Wes Bos

Yes. Content by Kentico is, it's it's a headless CMS that you can use for building your website. It's both for marketers and For developers, it's kind of funny. You go to their website. It's Content with AKAI, and they have links just both for marketing team as well as developers. And I think that's good when they think about both of those people that are going to be using a rid. Product at the end of the day. One of their clients is, Scott just pointed this out, Cadbury egg.

Topic 27 20:02

Contentful sponsor ad read

Wes Bos

Delicious.

Wes Bos

Rid. I would absolutely love to use it.

Wes Bos

No, it's really cool. I love any CMS that puts code On their sales page. Right? Like, this is not like, sometimes you go to these websites, and it's just a whole bunch of salesy topic. And, like, come on. Like, Show me actually what it looks like. So they've got examples in React, Angular, Vue, Net, PHP, Swift, Android, Java, you name it. So all you have to do is rid. Hook up to their API. You can pull in all the data into literally any framework that you're using. Awesome UI. Really, really good. So check it out at content.aiforward/syntax.

Wes Bos

That's k0ntent.aiforward/syntax.

Wes Bos

You can spin up A brand new project on that URL. Thank you, Content by QuintaGo for sponsoring.

Wes Bos

I have a question about the Cloudflare integration. Not sure how much you know about that, but when Cloudflare Workers runs on its own rid Custom JavaScript. Right? Like, it's not Node, and it's not, like, browser. Right? They've they've cooked up their own. Do you know anything more about that?

Topic 28 21:25

Discussion of Sentry on Cloudflare Workers

Guest 2

V eight isolates.

Guest 2

Rid. I have a cursory understanding, and I can I can tell you that part of because it is a different environment, like, we can't actually Instrument that environment the same way that we can node or the browser?

Wes Bos

Oh, yeah. And it I do you know did you have me a hand in getting century working on Cloudflare Workers. Like, was it you have to do anything special? Because we talked about Cloudflare Workers in a couple of episodes ago. We were saying, like, yeah, it's like rid It's its own thing, and there's a whole there's there's trade offs, and there's huge benefits to it as well.

Guest 2

We have a dialogue with them. I actually think they did most of it. Rid Oh, wow. Because they are Sentry open source users, like self hosted users. So, you know, they they wrote their own.

Guest 2

There was an example up there in their sort of, library of things.

Guest 2

That's but Don't quote me on that. That's just like, what what I recall.

Wes Bos

That's really cool. So I guess, like so they use Sentry over at Cloudflare as well to track their own? I believe so. They've got some open source,

Guest 2

contributions, and they've got, a fork or something floating around. So Yeah. Like to point to this as evidence.

Topic 29 22:30

Cloudflare also uses Sentry

Wes Bos

Rid. That's cool. And maybe maybe that's my my next question is, like like, why why does Century just give away their entire Business model for free. Like, if you don't know, like, you can pay for Century. They sponsor this podcast. It's a successful business, but you can also just host it yourself, and It's entirely open source. Like, how does that work when a business is entirely open source?

Guest 2

That is a big topic.

Guest 2

Rid. Yeah. There's a lot of businesses with different open source business models.

Guest 2

Rid. I think the easy answer is that, 1, Sentry began as an open source project. So, you know, there it is. The decision was made When that project emerged and sort of, people started using it. And the origin of the business is that people basically approached, rid. The founder of Century, David Kramer, and they were like, hey, this is cool. I use it. I like it.

Topic 30 23:08

Discussion of Sentry as open source business model

Guest 2

I don't really wanna run and maintain and upgrade and to back it up and to like, can I just pay you? That's the Yeah. Mhmm. That's the story.

Guest 2

And I think version 1, like, rid You you had to actually pay for it on the Heroku store. I I I never went through this purchasing flow. It may or may not still exist today, but, you know, you couldn't actually

Scott Tolinski

Go and have a subscription through Century itself. Like, it was sort of like an add on in a Like a Heroku add on. Whole Heroku add on thing was definitely a weird time. Right? Because it's like creating an account connecting services, but it I always felt like it was just a little too little too, like, where great. Where is this account living? You know, who Yeah. Yeah.

Wes Bos

I always thought that was a little weird. I remember that with MongoDB as well Yeah. Where it's just like, I'm making a database. Host. That's not you, but It's it's through you, but it's not you. You know? Yeah. Yeah. That's a bit odd. I never used Heroku back in the day because I just, like,

Topic 31 24:11

Sentry began as open source project

Guest 2

I could just imagine the, like, the pricing slider we were talking about. Like, the pricing slider's great. Oh, like, seems expensive. Maybe it's 1 mode. Very expensive. Yeah. Yeah. Especially

Scott Tolinski

rid of when you compare it to any of the VPS providers.

Wes Bos

Yeah.

Wes Bos

Definitely.

Wes Bos

It's funny. People always talk about how amazing some of these things are. And then rid I look over at my $5 a month Linode or DigitalOcean or something like that. It's like, oh, yeah. That's that's pretty good. I I saw something on Hacker News the other day that was, Like, 30¢ a month hosting. Like, that's where we are right now. Yeah. No way. Really? That's amazing. That's amazing.

Scott Tolinski

Yeah.

Guest 2

It's being commoditized to such a degree that that we're getting it down to pennies. I actually think that's great.

Scott Tolinski

As long as someone else is managing my SSL certificates, I don't I will I will I will pay a premium just so I don't have to deal with SSL, but, yeah, I will take I will take g posting as well. Man, I remember I very rid. Clearly remember the Hacker News article when Digital Ocean launched.

Topic 32 25:23

Discussion of self-hosted vs Sentry-hosted tradeoffs

Wes Bos

It said $5 a month SSD hosting. And that was like, what? Like, they're rid. They're putting SSDs in their servers,

Scott Tolinski

and it's only $5 a month, like, unreal. Also kind of a time where people were, like, really rid. Trying to jump off the Media Temple ship. They had been acquired by GoDaddy, and everyone was like, what are we gonna do? Yeah. Yeah. Media Temple. This is just it's throwback.

Scott Tolinski

Yeah. Yeah. Yeah.

Guest 2

There's

Wes Bos

there it's crazy that Media Temple is still around. You haven't heard Any like, they sponsored a conference I was at a couple years ago, and I was like, oh, yeah. Media Temple. And, like, I feel like people that are on Media Temple are are gonna be on there for life because they're not rid. I have one of those. I got a blue I got a blue host server that has tons tons of stuff on it. Right. And I have no idea. And I probably We will never cancel that because, like, the day that I canceled that is like my rid. Family has websites on it, and I don't even know. There's older backed up stuff on it. That's why people love those media temple servers. It's probably because people just buy them and pay for them forever.

Guest 2

I mean, is that the point? I mean, I had dream host. Pick your pick your host. Mhmm.

Guest 2

You know, because you shell into it, and you're like, What do I even have here? And you just did a math.

Topic 33 26:35

Prefer paying over maintaining old self-hosted apps

Guest 2

What is this? What are these I IP addresses here? Let's go through each one. Yeah. Mhmm. Yeah. You do the math, and you're like, I think I'll just Paying $5 a month rather than.

Guest 2

Yeah.

Scott Tolinski

It's so true.

Wes Bos

I'm I'm I'm going through that right now. I'm on I'm I'm on DigitalOcean, like $5 a month, and I have a huge let's encrypt setup and like all these config files with Apache and stuff like that. And I'm I'm trying to move over to App Platform, which is just like it automates all of that. And I would just like,

Guest 2

I know way too much about Apache or not Apache rid EngineX. And configs and all that stuff. So I think listen. I'm gonna segue back. I'm gonna use this to segue back to Sentry because it's very relevant. Right? So, yeah, I mentioned the origin is an open source business. K? Definitely true. That's what sets the stage, and and, I think that is a big part of Century's popularity today. Because it's just, You know, a lot of shops just set it up. It was helpful. You know? Easy to easy to get going.

Guest 2

And, also, essentially, for a long time, You sort of like really commodity, open source technology people were comfortable running. Rid Postgres.

Topic 34 27:48

Sentry uses more complex technologies now

Guest 2

It's Postgres and Redis for a very long time. Yeah. So much so that, like, impacted our road map. We would think about rid. We wanted to keep that true for a very long time, which caused us to get really creative about what rid Product features we could use because there's sort of an inherent, like, scale limitation when you're using some of those technologies. Today, it's more complicated.

Guest 2

Rid At some point, we crossed the line, which is like, we wanna keep innovating. Okay? Scott, you mentioned this, like coming up with new features. So, You know, we adopted some new technologies like Kafka, and ClickHouse, which if you're not familiar with it, it's an open source Column store database worth looking into.

Topic 35 28:32

Sentry uses Kafka and ClickHouse

Guest 2

It was spun out of Yandex, Couple years ago, it's it's something that they built to, run their own sort of version of Google Analytics. K? It is a click house. That makes sense? Yeah. Oh, okay. It's a columnar

Scott Tolinski

columnar columnar, man, that is a hard word. Columnar, oh, well, rid AP, database management system for real time analytics using SQL. Yeah. So

Guest 2

there's that. So, rid So listen. I don't know how to run that software. Okay? And and the reality is that Sentry has become more more rid I mean, it was always complicated, I would say, to run at scale, but it has become inherently more complicated. We do provide a Docker container. Like, I think we make it rid. Pretty easy to get going if you wanna do that.

Topic 36 29:21

Running Sentry yourself requires maintenance

Guest 2

I fired up more you know, our developer environment very recently, Yeah. Just a couple weeks ago from scratch, didn't take me very long to get it running, maybe an hour.

Guest 2

So it's not it it it's relatively easy to get started. But, you know, If you start using it in a serious way, okay, what you gotta maintain multiple database technologies. You gotta back it up. You gotta secure it. You gotta apply patches.

Guest 2

Yeah. I'm tired. You know? Yeah. And you're tired. We're all tired. And hands. Yes.

Guest 2

Rid you know, we don't you know, Century starts at, like, $30 a month, so it's not like a a a pricey product here. Might also reflect the fact that it is self hosted. Right? Rid. Just as I might, I don't wanna go into DreamHouse and, like, figure out, you know, oh, I'm running an 8 year old version of Ruby. Let me upgrade that so I can, rid Yeah. You know? Publish my Jekyll website again.

Guest 2

I'd rather just, rid Yeah. Like, just gonna pay the money. Like, frankly, it's it's worth it to me, and I think that that's more or less it's the same reason why, You know, a lot of use a lot of cloud providers today. Right? There are open source serverless platforms that you can run and rid Do everything yourself. K? You can run it on bare metal and and run out to the data center and do it that way if you wanted to. Right? Rid. So I think it's just like it's just really an evolution of the evolving cloud paradigm. Right?

Topic 37 30:18

Prefer paying than debugging old platforms

Scott Tolinski

That's what I think. Yeah. And, also, you know, you don't really wanna spend time debugging your exception handling software. It's like, I don't need an exception handling software to handle My exceptions for my out of date exception handling software.

Scott Tolinski

Yeah. Yeah. Just

Wes Bos

not something I need to deal with. I have the same thing with, like, smart home stuff in my house. Anytime I talk about it, people are always like, why are you not, like, hosting rid. This in inside, like, you could throw it on a Raspberry Pi. And I was like, I am not spending my evenings debugging my doorbell because, like, I am rid. I'm tired. We're all tired. You know? We're all tired. We're all tired. I don't have time for that. Take my $5 a month. I'm gonna I'm gonna sit on the couch in the evening rid. Instead of SSH ing into a Raspberry Pi and flashing something with the and and, like, also, like, you you don't want to disrupt The business or, in my case, I wanna disrupt the family of, like, why are the light switches not working? Mhmm. And it's like, well, I'm, I'm working on it. Right? Like, you just want it to work So you can focus on, like, the actual business at hand. Mhmm. It's like the increased industrialization

Guest 2

of our, rid. You know, industry. And, you know, oftentimes in a business, like the most the biggest way that you can produce value is by solving the business rid Right? Right? Build the business logic, build the workflows, build the product that people wanna use, and not to get down in the dirt on the muck. Like, you know, a 1000000 analogies for this.

Topic 38 32:24

Better to focus on business than infrastructure

Scott Tolinski

I'm just repeating myself. That's fine. I I had a good transition here about being so tired, and we're all very tired. So, why Let's hear it. Yeah. Why not why not, This is start a blog because you're so tired. But which software are you gonna pick? Where are you gonna host it? What are you gonna do with that? How are you gonna set it all up? Which static site server? Are you gonna pick this static site generator? Okay. I picked this one now. This other one's popular, so I guess I need to start it over.

Scott Tolinski

No. You should start your blog on Hashnode because Hashnode, gives you a lot of really awesome options for starting that blog of yours because Not only is this a third party platform that allows you to have a blog in mere seconds, you also get to own all of your content. It backs it up into your own Git repo.

Scott Tolinski

As in, if you're writing all these blog posts, you don't have to worry about these living in someone else's CMS. It's impossible to export.

Scott Tolinski

Rid. You have them just straight up in GitHub in markdown files, and this platform is based on Next. Js, so it feels very comfortable to use. Not only that, brings you all the tools that you you might wanna have with this thing, a free SSL certificate.

Scott Tolinski

You can write in an in a GUI instead of having to Code up a blog post and a markdown file in your own site. And it even lets you use your own URL so you can collect all of that awesome Google sitemap stuff Where everyone is linking to your blog post, and it's linking directly to your own URL. So if you want to try it out, head on over to Hashnode dot com. Sign up for your own free blog today. Yeah. That's right. Free. Free to get started, free to use, and, you can even get your stuff picked up in their explore tab and, All sorts of awesome things. So check it out. Really awesome, blogging platform that, again, you get to own your content yourself, which is Such a huge thing that we always talk about over here. So thanks so much for Hashno for sponsoring.

Wes Bos

My question is about I always like to hear what the rid. Stack is of huge things, and I don't know if you can rattle off the entire stack because it sounds like you're you're saying things I don't even know what they are, like ClickHouse.

Wes Bos

Rid but, like, what was it initially built on, and, like, what is it what does it run on now? Are you using serverless? Do you use Sentry in Sentry?

Guest 2

Rid How does that work? So there's a bunch of questions for you there. Okay. I'll start with Stack, and then I'll I'll come back to that other part.

Topic 39 34:38

Guest discusses Sentry's tech stack evolution

Guest 2

So Century began as a Django plug in, and and Django had a a plug in Architecture, I was not you know, at this point in time, like, I wouldn't call myself a Python developer at all. I I was doing PHP, so I can only speak too much to it. But I did use Rails, and I think Rails had Something analogous to that. Yeah.

Topic 40 35:05

Sentry began as Django plugin in 2008-09

Guest 2

And the 1st version of Sentry literally just effectively just create a fingerprint on a stack trace. Rid Oh, so Django itself actually had something built in, which is when you had an exception, email me.

Guest 2

And you had to provide, you know, the rid MTP server and the credentials, and nobody email you. And as the story goes, David Kramer is the founder. You know, his his inbox got flooded one day, you know, And with the same error happening, he was building something. I think it went viral or something, so he just got inundated with the same

Scott Tolinski

rid. It's like this isn't this is not how I want this flow to go.

Guest 2

Yeah. But it was still rid Somewhat innovative. Like, I don't think Rails had that. This was maybe 2008. So 2008, 2009. So he built something that's sort of like very, rid The commit is still there, by the way. This is the same repository. So you could go to the very 1st commit and take a look at it, But it more or less just sort of create a fingerprint of similar exceptions and then added a table in Postgres administered to Django and just sort of, you know, rid Incremented counts and emailed you if something was new.

Topic 41 36:11

Original Sentry aggregated exceptions

Guest 2

K? Which is not too different from how it operates today, the same fundamental pieces of it.

Guest 2

So, you know, that was a pure Django plug in. Right? So to you whether it's Postgres or MySQL, I think that was probably all abstracted at the ORM. Right? Like, there was no infrastructure for centuries, just pure code built on top of the built on top of the framework.

Topic 42 36:34

Sentry stayed simple to remain on Postgres/Redis initially

Guest 2

Rid You know, it's gone through a bunch of evolutions, so I don't wanna you know, I could sit here and talk it for the next 20 minutes, but I'll just go to how it is today.

Guest 2

Yeah. It's still primarily Django.

Guest 2

Not quite the latest version, but Some relatively modern version.

Guest 2

We did convert actually the front end. The front end is React. I know you you talk a lot about, rid. React is out there.

Topic 43 37:01

Frontend rebuilt in React in 2015

Guest 2

Interestingly, though, and this was right when I joined, we rebuilt the UI in React in 2015, which I wanna say was rid Relatively I don't know if it's early. Yeah. Little. Yeah. Yeah. Yeah. That was early. Yeah.

Guest 2

And, it uses like a flux pattern, but uses reflux, which is sort of rid not a super maintained library today. Still use it though.

Guest 2

We converted everything to TypeScript a year or 2 ago, which is pretty neat. Oh, yeah.

Guest 2

Rid so actually, I I do encourage people to look at Sentry as, like, you know, it's a it's a open source app, and it's a it's a React and TypeScript app. I think there's, like, a 100,000 lines of of React and TypeScript. Like, if you're ever looking for examples Holy smokes.

Topic 44 37:34

Converted to TypeScript 1-2 years ago

Guest 2

You know, there's not a lot like that.

Guest 2

Rid Another one, by the way, is WordPress's client front end called Calypso. They rewrote rid. That a few years ago, and that's open source. And I look you know, I used to look there for inspiration. So, you know, if you're ever if you're working in a company and you're like, how do people do this? I I I do that all the time. Go to see what what the the highly used real world apps are using in open source. It's amazing. Yeah. Yeah. Rid. It's probably a lot messier than you think, which is okay. It'll probably make you feel better. K?

Topic 45 38:23

Discussion of fully converting Sentry frontend to TypeScript

Wes Bos

I remember it was rid. Less than a year ago, there was a blog post on the Century blog about how they converted the entire front end to TypeScript, which is, rid Like, a 100,000 lines of code being converted to TypeScript. So I would highly recommend, you give that rid. A read over because, like, I'm looking at converting my platform to TypeScript right now, and it is a small fraction of that. And I've I kinda just sitting there and been, like like, where do I even start with this? You know? And, like, I can't imagine.

Wes Bos

Like, what was that like, rid. The big big mover. You can obviously read through the entire blog post of how you did it. But, like, were you part of that that process?

Topic 46 39:04

Internal process for coordinated changes

Guest 2

So Sentry has like, organizationally, it's about a 100 engineers today, the company.

Guest 2

We're kinda divided into in. Mission based teams like, hey. You're working on the performance product. You're working on the ARRIS product, or you're working to, really make sure Sentry is great with the JavaScripts, rid different JavaScript environments. Node.

Guest 2

Right? So we're kinda split up into different groups like that.

Guest 2

And inevitably, organizations are like, well, who's coordinating? Rid You know, how do all the front end developers get together and and make any sense of what they're they're doing when they're on different teams? So we have, like, We have an internal kinda steering committee. This is in the blog post, I think, that is, you know, loosely modeled off of the Node TSC, which is, you know, You come with a proposal.

Guest 2

I wanna make these changes.

Topic 47 39:50

No major refactors during TypeScript conversion

Guest 2

That could be as simple as, hey.

Guest 2

Rid I hate these VAR statements. Can we switch all these to cons? Like, that was an an early example of something that gets debated in this in this group.

Guest 2

Rid. And then, you know, switching everything to TypeScript also kinda as a proposal gets sort of presented. Here's why. Here's the problems we're trying to solve. Right? I think my role in that is really I mean, I was a vice president of engineering at the time. So it was more kind of like, hey, how do we not spend forever doing this? And rid. 2, I'm really nervous about big kinda migrations that get to, like, a half finished state because we got bored with it. Rid. Yeah.

Guest 2

I don't know if people can can resonate with that. But Oh, yeah. Definitely.

Topic 48 40:35

Took 1.5 years to convert 100k lines to TypeScript

Guest 2

Especially with, like, a huge code base. And, You know, you'd only code mod so much of it, because if you think about it, like, the types, you gotta know. You gotta you gotta sort of examine and understand, and make some declarations.

Guest 2

So we actually had a rule. I guess this is a a rule I was pretty adamant about, which is no major refactoring till we complete this.

Guest 2

Mhmm.

Guest 2

K. Like, no other second thing. So a good example is Okay. I mentioned, we had, we still have this older flex library, which I don't Think is very maintained. If that's not true, I'm sorry.

Guest 2

Reflux maintainers, I I not trying to So any Discord here, and that's been something that people have talked about internally. Like, hey, can we use Reflux? Can we use rid MobX, we, you know, we talk about this stuff, and it's more like put a pin on that. We have to finish this other thing first.

Guest 2

Yeah.

Guest 2

You know, and it took us, I think, almost a year and a half door to door, so to speak, to complete that project, 100,000 lines of code.

Guest 2

Wow. And it takes it takes some rigor, I guess, is what I think what I'm saying, right, to to undertake that, but, that was our experience. I think it helped, and, you know, I enjoyed the code base today. Rid. Yeah. We did a similar I mean, we converted all of ours to

Topic 49 41:45

Guest says Sentry codebase is open source example

Scott Tolinski

TypeScript at some point, and that was such a such just a burden to get that done. But you do. You put a pin in it. You you you say this is this is all we're going to be doing until it's done. We're done. And then Now it's probably a lot a lot better to work in, and and I I resisted it for a long time just in general just because you never know what's going to be the winner. You don't wanna convert everything to TypeScript if I don't even what were some of the other options? Flow? Is that one of them? Mhmm. Yep. Yep. If Flow it flows out there, whatever.

Scott Tolinski

But making so it's a huge bet, and and making that huge bet is is such a big thing. But, man, having a typed code base at this point feels very nice. Right? You could probably go from you could probably code mod Flow to TypeScript, though, as an example. Like, it's sort of the Yeah. The intent the intent capturing the intent is the hardest part. Yeah. Scared me so much for some reason.

Scott Tolinski

Rid. Even getting to examine all the files, I don't know what it is about it, like modifying that, making things trigger something inside of me. There were other articles going on around at the time when we

Topic 50 42:55

Big transition to TypeScript

Guest 2

rid We were taking this on, and I don't wanna name companies, but it's like, I wanna cite these articles in case you wanna look them up. Like, I feel like Airbnb could have been one Where, like, there had been, like, 5 year efforts to convert these code bases, very sort of, Like, let's do it casually as we go, and and you'd you know, they have the graph of, like, you know, One line is number of JavaScript files at a time. The other one is TypeScript files at a time. And just the idea of, like, a 5 year oddest And it wasn't and not being finished really,

Wes Bos

seemed bad. Wow. Yeah. Yeah. I don't know if I if I could do that. I just had to I would have to just, like, sit down, lock myself in the room. I bet I could do mine in a week. Mine's not my it's probably not as big as

Topic 51 43:39

Partial conversions can take a long time

Guest 2

as any of these things, but still, like, hokey. It is it is tough as an organization. Right? Like, I would say that in those first and and probably your experience is similar. Like, in that 1st 3 to 6 months, like, felt like a rid. Log, you know? Still learning TypeScript, not as comfortable. Everything feels like it takes 2 to 3 more time. Make you bad choices. In your way. Fix those choices. Rid. Yeah. Secure errors. Yep.

Guest 2

And so, I under like, there's still the TypeScript drama On Twitter today, there's still sort of a it doesn't feel closed.

Guest 2

And I I totally understand that because I I remember that period, but I I I would say today when when everything's there and everything auto completes, you could jump to whatever file, especially in a big code base. Self documenting.

Scott Tolinski

It complains when you build.

Topic 52 44:34

TypeScript benefits after full conversion

Scott Tolinski

Yeah.

Scott Tolinski

Yep.

Wes Bos

I have just a very Question. I'm not sure if this will this will pan out, but I'm I'm gonna go for it. But do you have any weird stories about trying to run JavaScript on other people's websites. I have enough trouble trying to run JavaScript on my own website, but much of your career has been between rid. And Century, I get not all of Century runs on people's, but, like, the JavaScript often runs in environments that are controlled by other people. And And I I very I remember I think I remember you talking to Darcy about, I think this was you, is, like, how do you get A clean dom with no filtered, global methods or anything like that. And I remember being like, how would you ever do that? And the answer was that you You make an iframe, and you grab the the window out of that. But, have you did you ever run upon any, like, weird head scratchers Of running JavaScript in someone else's. There's an effort to sort of standardize a a function that is something like get original built ins

Guest 2

That gives you clean sort of, like, unaltered versions of sort of, like, rid Browser built in. So if, you know, if you're interested in the end the easy answer to that question, perhaps in a few years, there will be a sort of API in the browser that you can use.

Topic 53 45:42

Browsers may provide clean JS environment function

Guest 2

There's thought of some other random wacky ones.

Guest 2

Rid. This was actually one of my interview questions for Disqus was a sort of weird JavaScript trivia that was this question.

Wes Bos

Okay? Rid

Topic 54 46:13

Guest was asked weird JS trivia in an interview

Guest 2

and and this is in the prologue to my book.

Wes Bos

Oh, really? Okay. This little story.

Guest 2

I'm laughing now because I'm like, wow. What a what a piece of random trivia to ask someone.

Guest 2

Just

Scott Tolinski

just throwing people.

Guest 2

Yeah. But it was that question, which is if you have an altered if you have an altered sort of, like, built in method, you know, like and an example by this for listeners could be, like, get elements by tag name.

Guest 2

Right? Technically speaking, you you bring in some third party JavaScript. Nothing's stopping that JavaScript from going in, changing that method, You know, putting a wrapper around it and and doing something with it.

Guest 2

And I got asked that question in an interview, And I I didn't know the answer. So I actually, in the middle of the interview, opened up my developer console and started playing around.

Guest 2

And rid. One solution I discovered in the middle of that interview is that if you actually called delete on a property, it turns out at least at the time, this was This was 2010, but Safari Safari was the only browser that would actually exhibit this. It would actually return the original property.

Guest 2

I built it.

Guest 2

So this is a sort of, like, really fringe, like, not standardized browser behavior thing. Yeah.

Guest 2

And the interviewer didn't know that answer either. So I I was just dorking around and came up with it.

Topic 55 47:30

Guest discovered deleting properties can restore originals

Guest 2

So there's more than just the Iframe. The Iframe's the easiest way today.

Guest 2

Rid You know, in that era, you gotta remember that there are even just libraries that, like Scriptaculous or Prototype JS. Do you remember those?

Topic 56 47:41

Now iframes provide clean JS environment

Wes Bos

Yeah. Yeah.

Guest 2

Prototype JS literally just sort of Alter every all the built ins.

Wes Bos

Yeah. Like, it would it would it would take the like, for example, we never had Dot contains or dot includes on an array, but prototype just added it. And then

Topic 57 48:09

Old libraries like PrototypeJS altered native objects

Guest 2

down the road when we did get it, it was a bit of an issue because they weren't weren't the same thing. Right? Yes. It took a lot of the ideas from Ruby on Rails and some of the things that kind of made Ruby on Rails fun. Like, yeah. Oh, wow. All these kind of, like, natural language Methods on objects to do things. Right? Like, has a. Right? Array has a. And and some of those methods now exist.

Guest 2

Right? Rid Is there a dot has now? I think there is.

Scott Tolinski

There's

Wes Bos

yeah. Dot has is on a set. On set, has dot has.

Wes Bos

Includes is on an array, and the set has a has.

Scott Tolinski

I I think includes is, like, a ES 2015 thing. I don't think it was, rid. Yeah. Original. No. And it the reason why it's not dot contains is because of prototype JS. I'm on this website for, like, the first time in a 1000000000 years. Right? Right now, I'm on prototype. It's hit me. I mean, it it feels like a relic in, Trapped in Amber. It's amazing. It was a whirlwind

Topic 58 49:03

Altering native browser APIs was common before

Guest 2

rid. Modifying, you know, the sort of, like, built in browser APIs was pretty normal.

Guest 2

Yeah. And so in that landscape, we found a bunch of Yeah, prototype was always a pain in the ass, but some people would just like randomly alter built ins. I remember 1 website that was causing us endless grief. This was some publisher's website.

Guest 2

Rid I couldn't tell. You could you could have been, like, could have been, like, an MLB or an IGN. Disqus was, like, on a lot of big media properties at the time. Rid Yeah. And and they had a custom array push implementation, array dot prototype dot push. And And a rate of prototype to push is not, like, a new method. Okay? So they're not actually creating a new one.

Topic 59 49:21

Example of library breaking Array.prototype.push

Guest 2

And I think this is an example of where people get tripped up.

Guest 2

I don't know why they did it.

Guest 2

It was a perfectly fine array prototype dot push In a sense of, like, if you used it in a standard way, k, push it push push an item, it goes on to the array. Right? But what you may not know is that I think ArrayOp prototype push actually can take up to n arguments.

Guest 2

Okay? Yeah. Multiple.

Guest 2

Rid. Yes.

Guest 2

And so their implementation never counted for this.

Guest 2

Right? And, you know, we just had code. You just had you know? Rid You you generally operate on the idea that you can use,

Scott Tolinski

Yeah. Yeah. You can use the language.

Guest 2

You can use the language as it exists. Yeah. Yeah. Rid thing things that have been around as long as push. Yeah. And it's pretty yeah. It's pretty it was a a pretty stressful thing to develop on because you would sort of deploy this Application on, you know, some company's website, and then you'd have to go and have a conversation, which is like, rid. You are you are breaking the contract,

Topic 60 50:49

Hard to get others to fix their code breaking yours

Scott Tolinski

you know? Yeah. You are breaking a

Guest 2

a rule here. But they would look at you and be like, well, Your stuff is broken. Right? And so you have to Yeah. Your software doesn't run on our site. Mhmm. And then in a big organization, you're like, well, who's who is even responsible for injecting this rid Weird JavaScript code that's floating around somewhere.

Guest 2

Oftentimes, it's minified. Right? So you gotta figure that out.

Guest 2

And that's actually why I discussed And you're the you know, at some point, did a big rewrite and put everything in an Iframe.

Topic 61 51:14

Disqus moved to iframes to isolate environment

Guest 2

And, I was a big proponent of that because I was just Bring it back full circle. I was tired. Yeah. I, Yeah. Love it.

Scott Tolinski

That's that's definitely the theme. Wow.

Topic 62 51:24

Guest was tired of dealing with others' environments

Scott Tolinski

That's a good story. Yeah. If you're tired, a great service that you can have to be a little bit more tired. It's something like Century. Let me tell you. I was tired this weekend, because I had a lot of bugs coming in, the century, and it's not century's fault. It was my fault.

Scott Tolinski

I pushed an update on Friday, and it caused some bugs in my application. And I was not prepared for the emails that I was going to receive, And so I had to wake up early on Saturday and code my my butt off to, fix this deploy that I shouldn't have done on a Friday at 4.

Scott Tolinski

That is the I was also breaking the contract there. I was breaking the contract by deploying it Friday at 4.

Scott Tolinski

It it was actually It was easy to solve once I had the information sitting there in front of me, which is really what Sentry does so well. And Sentry allows you rid to see all of the errors and exceptions happening, taking place on your application. How many times, how many users, who they're affecting, when it was introduced, just all that and more. It's one of those services that, again, once you hit a thing like this and and you wake up and you get some, regression alerts or you get some errors, have increased alerts or whatever you have set up With your century, you'll be very thankful that you had it because I was able to at least get on to this while people were emailing me. Sure. People were emailing me, but I was able to get on it rid. Before too many people started emailing me, and it wasn't Monday. And I'm like, oh, shoot. I had something happen on this weekend. So, rid. Thank you to Century for saving my bacon this weekend in a real real life code emergency I had to jump on. So thank you to Century for sponsoring this podcast.

Scott Tolinski

And, if you want to sign up and try out Century, you just head on over to century dot I owe you use the coupon code at tasty treat. It's all lowercase, all one word, and you'll get 2 months for free. Thank you so much rid. 1st century for sponsoring. How has that been? That is great. I've never had a

Topic 63 53:05

Sentry sponsor ad read #2

Wes Bos

sponsor on the podcast where they also sponsor it. So there you go. And also one that's as applicable as me using it all weekend. So yeah. No kidding.

Wes Bos

That's what we like so much about this podcast is All of our sponsors are things that we actually use and can talk about so freely.

Wes Bos

All right.

Wes Bos

Let's get into the next section of this podcast, which is rid. Sick picks. This is where we pick things that are sick.

Wes Bos

We could be literally anything. Could be an app. Could be a rid. A piece of food, could be a hot sauce, could be a vacuum, you name it. Ben, did you come prepared today with a sick pick? I did not come prepared. So can I go last? I'm just gonna I mean, think about it. Yeah, sure. I got a really good one, and, I am going to stick pick. I've been sick picking a bunch of hot sauces lately, and I'm going to pick something that is hot sauce adjacent.

Topic 64 54:13

Wes' sick pick - kimchi seasoning powder

Wes Bos

And it is a kimchi seasoning mix. And this is not This is not seasoning that makes kimchi. This is like a shaker that tastes like kimchi that you could put on anything. It's called the rid. Seoul sisters Korean kimchi powder seasoning, and you can you can put the stuff on anything. I've been putting it on. It's spicy and umami. And I've been putting it on popcorn and grilled chicken breasts and chicken thighs and on vegetables and literally anything you want. It tastes rid. Awesome on everything. I was very happy. I did I had to send it to my sister in the States because, all good things in Canada are unavailable.

Wes Bos

Rid. So I had to send them off to to my sister and smuggle it across the border. But if you are in the states, you can get access to it. I'll link it up in the show notes.

Scott Tolinski

Sick. Nice one, Wes.

Scott Tolinski

I'm going to sick pick a podcast that I sick pick before, but they have a new season out. This podcast is called Last Seen. And, Wes, you might actually like season 1 of this because it's like, oh, an episode on the Gardner Art Art Museum heist that you seem to like that Netflix documentary on. Yes. So the the 1st season is all on that. But, like, the 2nd season, they're doing not heists, but it's, like, things that have gone missing. So there's, like, 3 episodes about various things. Some of them are heist related, but not necessarily explicitly.

Topic 65 55:34

Scott's sick pick - 'Last Seen' podcast

Scott Tolinski

And so it's Like, here here are some things that have gone missing, and we're going to investigate where they are or talk to the people who know the most about them. They also did, like, a a nice little side episode on the, rid. The Amber Room, which I'm super fascinated by. I don't know if you're familiar with the Amber Room. It was like a big decorative room that was made entirely out of amber decorations. It was super fragile. And World War 2 happened and, the Germans tried to steal it from the Russians. And who knows where it ended up? Right? Where did this thing go? So a lot of, like, really fun mystery type of deals, but, like, with a history twist on it. So something I'm very interested in. Last scene, really neat really nice podcast.

Guest 2

So I'm coming in with some yeah. Well, that you know, since we're talking about hot sauces and and podcasts, rid I'm I'm gonna I'm gonna, like, hat tip, a podcast that I've appeared on that is not a development podcast, that is a film podcast. And because you said, last scene, this is called it made me think of it. It's called worst scene best scene.

Wes Bos

Oh.

Topic 66 56:38

Guest's sick pick - 'Worst Scene Best Scene' podcast

Scott Tolinski

I didn't know this.

Guest 2

You know, it's a small film podcast By some San Francisco filmmakers slash, you know, part time or former stand up comedian slash tech workers.

Guest 2

And they the the contrivance the contrivance of the podcast is they hear a good movie and take a bad movie, and they compare rid The worst scene in the good movie to the best scene in the bad movie, and then, you know, what was better.

Guest 2

Hang on. It's just like a like a fun Reason to just talk about movies. I love, you know, I love movies. Love talking about movies. Like yeah. I list a lot of movie podcasts like blank check.

Scott Tolinski

Rid. Do you find any female with a blank check? That's a good one too. I've heard it cited, but I haven't listened to it. Yeah. It's it's really just, rid. It's a it's about directors who, you know, amassed great success and have been given a blank check. Yeah. So, You know, their Verhoeven series is really great, or sometimes they get into, like, like, 10 movies about a director I kind of don't care about.

Scott Tolinski

But when it's a director that I do care about, with the Singleton films, they do a fast and furious and stuff like that. I mean, though, that that can be a lot of fun. So, Yeah. I like blank check. I'll I'll give this best scene where scene check. Yeah. How did how did this get made? Also great, but that's a pretty popular one. Totally. Yeah.

Scott Tolinski

A lot of fun. The or I was there too was really good. Do you ever get into I was there too.

Scott Tolinski

It's a they interview Actors who were also in great films. So you're you're deep in in wow movie podcast. I am. I went to to, like, media school. So, Yeah. I'm deep into it, but I was there too. It's like interviewing the guy who played Jar Jar Binks or interviewing this actor who is also in The Godfather. There. But nobody thinks of, you know, just to give what their experiences were like as not the main character in some giant filled property.

Wes Bos

Yeah.

Wes Bos

Rid.

Wes Bos

Wow.

Topic 67 58:39

Discussion of movie podcast recommendations

Wes Bos

Scott.

Wes Bos

That's probably the one thing that Scott and I have the least amount in common of rid He's watching movies. Like, Scott probably subscribes to more movie podcasts than I have watched movies. Yeah. I do. I do subscribe rid. A lot of film podcasts there. I I do love all the I'm really bummed that that heist podcast stopped. Oh, super like that. Are kinda goofy to me. You know? Oh, they're Oh, man. Those guys are from Hamilton, so maybe that's why I like them. Too Canadian for me. Yeah. Too Canadian. Yeah. Yeah. Yeah. Ben, you're from Canada too. Right? Rid Oh, yeah. I guess I dropped back in Canada now? Yeah. I mean, I guess I dropped that I moved to San Francisco, but I yeah. I did move back to, Toronto in the last year. Rid. Yeah. Alright on. It actually, one one more thing I wanna ask you about is that you mentioned, Ontario hiring and like, software hiring has changed. What what do you mean by that?

Guest 2

Just

Wes Bos

coming in after the hot picks. Yeah. We're back. We're we're back into the podcast.

Wes Bos

We can go for as long as we want. It's our podcast.

Topic 68 59:37

Remote work has changed hiring landscape in Canada

Guest 2

Listen, the pandemic, caused a lot of rid Upheaval and movement and certainly, like, there's a I think everyone's very aware of the sort of remote working upheaval. Right? Everybody had to do it, but there is also, where have people been remote working from has has changed a lot too.

Guest 2

It's not just that people moved to the country, it's that people moved countries. You know, I'm I can name, you know, 4 or 5 other people who made a similar trip, US to Canada, People from, you know, whether it's GitHub or people at MGM or people at Google, you know, a lot of people Companies are set up to employ in Canada that maybe they weren't. You know, you actually gotta go and set stuff up if you want as a as an employee, you wanna have benefits, you wanna, have payroll. Right? And so there's a there's a lot more, yeah, just a lot more software companies and various software companies rid. In Ontario, in Canada, and I think it's great. Yeah. Absolutely. I you can definitely tell.

Wes Bos

You should see my Twitter DMs of how many People are moving to Hamilton now because they are working remotely.

Topic 69 01:00:55

Increase in remote workers moving to Canada

Wes Bos

You can definitely see it in the house prices.

Guest 2

Yeah.

Guest 2

I'm not gonna touch that one. That's it. But it's probably Yeah.

Wes Bos

It's probably it's probably best. Yeah. That's a economics podcast.

Guest 2

Yeah. But I think the really cool thing This is that when we emerge from this, like, yeah, Ontario is gonna be a very different landscape for technology companies. You know? Totally. Totally. At the very beginning of this, I was like, hey. Your listeners know about FreshBooks? And I think that's because I you know, if you're in Ontario and you're in you're in tech, like FreshBooks is a pretty big kinda rid kinda outfit, you know, because there just wasn't a lot of startups here.

Guest 2

You know, Shopify, obviously, huge one.

Guest 2

FreshBooks, PagerDuty to a degree was is is sort of a Toronto San Francisco thing. Yeah. It's not like a huge list, And I think that's changing dramatically. Just a lot of satellite out outfits opening up, you know, the the talent landscape. And this also means that other peep you know, people are gonna rid Start new companies. Start new startups here. You know? Yeah. Yeah. It's true. So, yeah, I'm just kinda hyped for it all.

Wes Bos

Oh, Canada. Awesome. Thanks for putting your 2¢ in there. Let's move to the next section, which is shameless plugs. This is where we plug anything that we want shamelessly. I'll shamelessly plug all of my courses at westboss.comforward/courses.

Topic 70 01:02:05

Prediction of growth of tech companies in Ontario

Wes Bos

Use coupon code syntax for $10 off. You can learn Beginner JavaScript or Master Gatsby or, React for beginners, you name it.

Scott Tolinski

Yes. I will shamelessly plug level up tutorials.com, where you can learn all about the latest and greatest in new front end languages and stuff.

Scott Tolinski

In fact, we just had a new course from the very talented and very exciting Amy Dunne, who does a course on Keystone JS, which is a a platform for building node apps. And let me tell you, Amy is just one of those types of teachers where her her teaching style is, High energy in the best kind of way where it's it's very the type of engaging person where you wanna listen to. And I I really just I really enjoy listening to Amy talk. So, give her course a try. It's called Keystone JS on level up tutorials.com.

Wes Bos

You can sign up to become a pro and rid. Save 25% if you sign up for the year. Thank you, for myself for that one. Alright. Thank you so much, Ben, for coming on. That was really fun. Really interesting to talk to you about all of those topics. Appreciate it, and,

Guest 2

yep. Thanks again. Yeah. Thanks, Ben. I had fun. Thanks so much. Alright. Peace.

Scott Tolinski

Peace.

Topic 71 01:03:29

Shameless plugs

Scott Tolinski

Rid Head on over to syntax.fm for a full archive of all of our shows.

Scott Tolinski

And don't forget to subscribe in your podcast player Or drop a review if you like this show.

Wes Bos

Rid.

Share

Play / pause the audio
Minimize / expand the player
Mute / unmute the audio
Seek backward 30 seconds
Seek forward 30 seconds
Increase playback rate
Decrease playback rate
Show / hide this window