Luke Stutters
Appearances
Ruby Rogues
Developing your development - RUBY 649
Yeah, it's pretty interesting. I guess you would just have to assume, okay, no one ever works alone. They're always pairing. So both people get credit or whatever.
Ruby Rogues
Developing your development - RUBY 649
Yeah. Back to the light bulb thing. I don't know how I would feel about having a little light bulb also measure my efficiency. So like if I'm typing a lot of code, do really good, then all the lights turn green. Then I start slowing down and things go to like an angry red. I just, I don't know how I would like that.
Ruby Rogues
Developing your development - RUBY 649
I say the word green and it just turns green. No, I'm joking. I have a screen deck in front of me. Yeah.
Ruby Rogues
Developing your development - RUBY 649
And I think with this whole past year in the pandemic, a lot of companies moving to a work from home, especially if you are on a computer a lot. And so now where your recreational area used to be is now also your work area. I found having a actual separate place where I do my work And where I do my relaxation is very important.
Ruby Rogues
Developing your development - RUBY 649
So I will never take my laptop out into the den and watch TV while I'm working. Because to me, then that's very distracting. Or when I'm supposed to be watching TV, I would be working. So I think having... If you're able, if you do have a living space where you can set aside even just a small corner...
Ruby Rogues
Developing your development - RUBY 649
to where when you sit there, you know that you are focusing on work, I think can also help keep you in a mental state that you don't always feel like you're working because you're not in that one place where you do your work. And I think that's mainly when you are talking about working for an employer, not just yourself, because you have a certain level of expectations there.
Ruby Rogues
Developing your development - RUBY 649
But having that separation of concern of relaxation and work area space, I think, needs to be a physical boundary if you have trouble with that.
Ruby Rogues
Developing your development - RUBY 649
It's funny because I'm just imagining a torque curve. So before we started the talk, we were talking about cars and performance and stuff. So I'm seeing it as a torque curve where the y-axis is the amount of time required to complete the pull request and the x-axis is the number of lines of code. If you've ever seen a torque curve, it will go up significantly
Ruby Rogues
Developing your development - RUBY 649
But then it kind of levels off and then it has a steep drop. So I think that's more realistic to the code reviews I've seen where it follows a certain amount of time increases as the number of lines increase. But you get to a point where the amount of time for really large pull requests, it's almost instantaneous. Yeah.
Ruby Rogues
Developing your development - RUBY 649
I know I mess with my kids like that all the time. I'll just walk up to my wife's van and say, Hey Siri, start the car. And in my pocket, I'm hitting like the auto start button on the remote or Hey Siri, open up the garage door. And I'm just hitting the garage door button on our remote. Our kids, you know, some of them, sometimes they believe it, but not often.
Ruby Rogues
Developing your development - RUBY 649
So I just have one pick. And the backstory for it is someone hit our mailbox and broke it. And it was an aluminum bracket that was holding the actual mailbox up. And it just kind of shattered in half. So what I ended up doing was making a trip to Home Depot and I got some aluminum solder stuff that I was going to try to solder it. But I thought, you know, I've never soldered aluminum before.
Ruby Rogues
Developing your development - RUBY 649
I don't know how well that's going to work. And so the alternative is to use an epoxy. So I got some JB Weld steel epoxy. And this stuff, I think the mailbox mount bracket is stronger than it was before. I tried breaking it off after I let it cure for a few days. And I can't even make any bends or anything to it. So...
Ruby Rogues
Developing your development - RUBY 649
JB Weld epoxy is amazing and it's really cheap for how much and you need and stuff so
Ruby Rogues
Developing your development - RUBY 649
I do have to push back a little bit because the number 24 slot is the real Slim Shady. I don't know how well my coding would go if I'm listening to that. I'm not saying Eminem's bad or anything, but that song in particular, I'm sorry, I don't have the full buy-in yet.
Ruby Rogues
Developing your development - RUBY 649
I've never tried or looked into this because I've never had the need to, but within Git or GitHub, whatever version control and methodology you're using, can you assign multiple authors to a single commit, which would then in turn maybe solve that issue?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
So the only, the only, yeah. One of the main reasons that I like Fry is actually this, but it's not because you just use show desk source, right? Right. But it's mostly because it's complicated to remember all the steps that you have to do, right. To grab the method as an object, then call, you know, source location or whatever, right.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
The other thing that's an issue here is that Pry actually does a reasonably good job now. It didn't used to, but it does a reasonably good job of showing me all the dynamic stuff that goes on when I prepend eight things, which is just going to cause problems anyway. But if I'm overriding my method a million times in weird, odd ways, things can get weird.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Yeah, I'm pretty sure I saw that in a Ruby Weekly, and I just have been slow to get around to looking at it. but I like pretty things. So I'm, we'll be checking it out.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
All right. So some sweet, uh, any other like things that are coming over so we can wrap up that part?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
That's the thing that comes with Ruby 3, right? Specifically?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Is that combined with the tracing stuff? So if I turn on tracing, right, and then it's giving me my whole back trace, am I also getting... whatever we call it, benchmarking, right? For each of those lines.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I was going to say, one thing that I saw that I thought was really nice in the article that kind of spawned this particular interview was that IRB is getting colors now. I don't have to hire something separate to get colors.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Nope. I'm part of the same crowd. Skipping from 2.6 to 3. Oh, there you go. Do you have anything specific for that? Go ahead. No, I believe it's turned on by default.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Yep. Because to be frank, the only good docs readers were all web browsers. And so whenever my internet goes out, I have to be like, oh, And then like go re-remember how to get my docs working locally again, like for the three hours that it's on.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Yeah, I stopped using Dash because I didn't like paying for it. I felt like my web browser version was better. This is kind of what I meant, but the web browser version is weak whenever my internet goes out.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
So you mentioned the banner thing that kind of started you down this road. Were there any... As in... As somebody who likes my console to look aesthetically pleasing, were there any things that you were just like, oh, yeah, now I do this all the time, customize my IRB shell, and everything is pink and green or something? I don't know. I'm sorry. I shouldn't say that.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I like aesthetically pleasing stuff and then immediately pick those two colors in conjunction. Yeah.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
It's possible. Real emoji? Probably not. I don't know. There's probably everything in the emoji space. What am I saying?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
It is pretty cool. It doesn't catch all the dynamically named stuff or the dynamic calls mostly. But yeah.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I mean, that's Ruby. Rails specific mostly. All those after commit things that you're doing. One of the things that I noticed in here was the switch from read line to re-line. So does that mean that we're dropping the read line dependency? Like, I guess I tried to look that up and I couldn't find an answer real fast. I don't happen to know if you...
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Does it does it increase my buffer for pasting now that you're talking about pasting in here?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Always had a problem with that when I'm like writing long scripts or something.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
It kind of sounds like IRB is giving you a lot of what you want already.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Yeah, I will. So I just recently replaced my grill. My grill of... over a decade um it just i replaced the grates a few times anyway i've tried to keep that thing alive because i had it was one of those like double-sided one half was gas one half was charcoal and i was very happy that i got it and i got it for like 200 bucks and
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
And so, you know, I got it like a decade ago and I'm like, oh, sweet. I'm ready to spend two hundred dollars on a grill and like like two hundred dollars will buy you like a little dinky thing that sits on the ground and you have to crouch down and use it. So I was like, oh, so I had to reevaluate a lot.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
And I went around and dug around and I was just pretty angry that everything that I wanted to buy was like six hundred bucks. But I eventually like found something that was pretty good and I've been using it for like two months now. So I've been pretty pleased with it.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I had to give up having one side charcoal and one side gas in order to get a good gas grill because apparently they just don't put those two together unless you're willing to spend, you know, a small fortune on it. But yeah, so I found like this nice gas grill that gave me like six burners and like didn't completely break the bank at 350 bucks. So I was pretty pleased with it.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I'll put a link to it or whatever. But it also wasn't a deal because like there was a different grill that I really wanted that was like the $400 price point. Only like my wife was like, well, you need to need to think over it for another night. And I was like, but I have been thinking about it for like a month now. And this, anyway, whatever the deal was gone by the next day.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
So this one is stuck around for a while. So at about that price point, so that seems like this is probably its natural price point. So yeah, anyway, got a sweet grill and it works pretty swimmingly for what it is. So, and now I just have to work on convincing my wife to let me buy a separate charcoal burner so that I can do charcoal stuff when it, when I have like more time or something. So.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Right. So I like that. That's that's my pick for this week or whatever. Been able. That's been very helpful because I my wife does not like Mexican food. And the number of things that I can cook that are not on a grill are pretty much all Mexican foods because that's that's how I grew up eating. So that's what I know to make.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
So, yeah, my wife very much appreciates that I can grill some stuff since we are dealing with baby things.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I just put the link in the show notes that we can add. Is that what you're talking about, Valentino?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
It's all about reducing that management time, right? Like, sure, getting it set up the first time is fine. The issue is like when you're going in there for the 20th time because, you know, Minecraft is updated and your kids want this cool new mod and you're like trying to decide what dependencies are going to be an issue or not.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
And you have to remember because the last time you logged in was six months ago and now you have to like read a million things and your entire Saturday is gone before you finally finish with the darn thing.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
About delegating the administration of it to someone else.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Unless you install Rails Pry and then you hook into Pry.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I don't know that it's torturing it. My understanding. So, you know, obviously if I'm wrong, let us know. But my understanding is that most of what Rails is doing with its shell is just loading a bunch of Rails files. You're just loading your environment.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Yeah. I mean, if you open an IRB shell, right, even if you open it in your Rails directory, you don't have all those files loaded. But if you open your Rails console, it's already just like if you're running a Rails server, preloaded everything and run the initializers and all that kind of stuff.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
So, all right. So I have this really sweet. So first of all, I've actually done the auditing thing, right? We did do it through an IRBRC or whatever. We did it differently or whatever. So that totally makes sense to me. But you guys implemented that through your IRBRC?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Okay. So we're just talking about extensions here to our environment. All right. Yep. No worries. No worries.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
But somebody's got to log in when all the systems go down. And it's Friday afternoon and everybody's trying to do some stuff. It just happens, you know?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
So we talked about some stuff that's coming over from Fry. I actually I'm like super interested because as a very heavy user of Fry, basically, since I discovered it. Like, I don't know. I don't even remember because I don't remember my life before Pride, to be frank. What are the awesome features?
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
I mean, okay. All right. There are times when I load up IRB, right? And it's primarily when either I'm writing like a Ruby script, right? So I don't have a Rails thing going on, right? And, you know, and I just want to load something up really fast.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
Or if I'm working on a very large Rails system that takes forever to load and I just want to test out something really fast, so then I just load up IRB, require one or two files, and do a thing and then exit, right? And in both of those instances, one of the first things that I often do is I type IRB and then I go require Pry. So I have not lived without Pry for a very long time.
Ruby Rogues
The Hidden Gems of Ruby - RUBY 651
So what are some of the cool features that we'll get over, if you know them?
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
How large is the Shopify code base? Because Shopify moved $41 billion of merchandise in 2018. $41 billion of B. How many dollars per line of code does that work out to?
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
I hate types. Sure. I hate them. Some people. I spent years trying to get away from them. The only reason I still program in Ruby is because it just doesn't happen. That's the kind of, it's why I like it. It's this freedom from types. So my question is, what's wrong with Ruby? Absolutely. What's wrong with Ruby? Because this is obviously not just a Shopify project.
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
This is something Stripe also looking at. So there must be some kind of common problem that led you both to say, we can improve our product. We can improve our developer experience. We can find problems sooner. We can have this kind of really kind of pickup and productivity by introducing this system on top of Stripe. Ruby, and it's a pretty clean system.
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
There's a link to a little, what do you call it, a sandbox? Yes. A playground where you can try it out. What I really like about it, as you said, is that you don't have to go through your whole code base and start typing in types for everything. If you've got something, a mistake that you keep making in a project, then you can just drop this in.
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
on that problem class, that problem method, and then no one will ever have an excuse for breaking it again. So it's a real hammer to kind of drop on that. But what's your opinion? I know you talked a lot about the developers and how they feel about introducing typing and what they got from it. This is something you must feel very passionately about, right? Where do you stand on Ruby and types?
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
So this is where it kind of seems to differ in terms of developer tool to running a test suite. This is not really the same as running a series of tests. This is something which you can use kind of almost kind of running continuing to black in the background in Visual Studio Code. Is that how you use it? Yes.
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
So obviously we're just coming out of the COVID-19 time. And I understand that Shopify has changed their working practices. What's it been like at Shopify over the last few months?
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
I got it from Wikipedia, so it's almost certainly wrong.
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
Well, to tie in with Ufuk's talk at Rails Conf 2020 Couch Edition, which talk is called Peeling Away the Layers of a Network Stack. It's a good talk. My pick is the evergreen TCP IP Illustrated, a big book of how networking works. If you want to learn how to perform hilarious office pranks like ARP poisoning,
Ruby Rogues
Sorbet with Ufuk Kayserilioglu - RUBY 664
If you want to get to grips with networking, this is a great book to really drill into detail. So there we go. TCPIP Illustrated, recommended to me many years ago by a man from Florida. And boy, was he right.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
When are you going to do an episode on that, Dave?
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
I've got a question for you, Kyle. It sounds like you've got a lot of data if you're running 30-minute migrations, and you've got a lot of developers, and you've got good testing, good infrastructure. What I've found is a lot of real...
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
memorable problems i've had is where you get something running and it feels like it's going to be fine but then it gets deployed to the master database and that's the point at which there's some bad data in there there's something in there from ages ago from a previous version and it absolutely sinks you and these days whenever i possibly can i just pull the entire production database out and test against that
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
Do you do that? Or is your database just so huge that you kind of throw it around? You can't do that, especially with a lot of developers.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
Yeah, I mean, you must be dealing with a lot of data. And I mean, I've worked with, you call it HIPAA data in the States, where it's kind of confidential data. And that hugely complicates testing data transfers because you have to either heavily anonymize or write your own tools, kind of replicate a few hundred thousand medical records.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
I recently learned how to use the LS command in Pry. And now I just live out of the LS Pry command. The Ruby API traffic's dropped off considerably. I find the dot methods to be quite noisy. This is very verbose if you're kind of trying to pick out which command it is. And I really like the Pry LS command.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
My documentation suffered for it, I must admit. Now my attitude is just, oh, they can just aless the class and see what's going on, man.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
Can I ask you about, can we turn back the clock and ask you about Rails 0? Oh, it's been a long, long time since I've worked on Rails 0. I can try to answer questions, but... So it sounds like you've been on a bit of a journey with scaling things up. What did you do before Rails 0?
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
That is the correct answer. There is no other system. I ask because we were talking about the N plus one queries. And my complaint is that Rails makes it too easy to do n plus one queries, because if you just kind of follow all the guides, that's what you get. If you kind of do a dot all to each, then you're going to be there for a while.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
And you start noticing that when you start getting into a few thousand objects. So you can be sitting there prototyping something and think, this is great. And then when people start using it, you drop it in. That's when you start hitting these gotchas. But I think people forget that. what the bad old days were before you had the Rails tooling.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
The amount of time it took when you had to write your own queries was really quite significant. And you mentioned enterprise Java. There's not a whole lot of object relation mapping going on in that. So it is a double-edged sword. When you're operating at the scale you do, what are the parts of Rails that start to bite?
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
What do you think of that DHH guy? He's a bit of a weirdo, isn't he? Don't answer that. Trust me. No, I love DHH. He did a book quite a few years ago called Rework, which was prophetic, really, in the current situation about working from home. He did a RailsConf keynote, I think it was, a couple of years ago. where he said that at Basecamp, they have never had a DBA.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
So they've never employed a person whose job it was to administer the database. This is something which Rails has just magically scaled up and the databases are scaled up. Are you in the same situation? Have you never employed a DBA for your very large Rails databases?
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
Yeah, I mean, the way DHH presented it, it was kind of this is a necessary evil mind was to have a database specialist. Instead, Rails enables developers to kind of handle this themselves and not just kind of blame the database man or woman. when the thing goes wrong. Surely as a company gets bigger, you have more specialised roles and not less specialised roles.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
It's a really quite interesting situation. I don't know what it means for the DBAs, but I think there's definitely more database work out there. But I think because Rails just makes it so easy to work with databases at scale, that you kind of tend to hit that stage much, much later on.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
Yeah. Listen to this. Listen to this. Can you hear that? I can't hear anything. That is the sound of me signing up for DriftingRuby.com, which is a quite excellent series of Railscasts, including the excellent From jQuery to ES6 episode. I am a notorious jQuery user, almost an unrepentant one. But Drifting Ruby has let me see the light, and I'm a newly reformed character.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
30 minutes is a, that's quite a migration.
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
I'm going to ask the obvious question now, which is, how do you make your system capable of asynchronous table migrations?
Ruby Rogues
Rails at Super Scale with Kyle d'Oliveira - RUBY 667
Shout out to Percona guys. I've done some, worked in a place where we had some Percona consultancy. They were really good, really delivered.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah, it also, and this is important, and sometimes I think people hear this and they're going to go, That sounds a little scary. But you want people to take chances sometimes, right? You want people to kind of take a shot at making things better. That opens it up to them to do that, right?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
It's, oh, well, you know, I tried this tweak on the Jenkins file or I tried this tweak on the Kubernetes setup or I tried this tweak on this other thing. And a lot of times those things pay off. But if you don't give people the freedom to go for it, a lot of times you're going to miss out on a lot of those benefits. And again, as long as they're not being reckless about it, right?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
So they're taking the steps, they're verifying it on their own system and things like that, then you benefit much, much more from people being willing to take a shot. So yeah, so with the blameless culture, I'm curious. So you get together and you start identifying what the issue is. So what does that look like then as far as figuring out what's going on?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Because you're not pointing fingers, but you are looking for the commit that made the problem, right?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah, but it does give you a little perspective too, right? Because usually in our post-mortems, we're talking about what went wrong with the system, not that somebody actually died because of this, right?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Well, some software it is. life supporting, you know, a lot of the medical equipment and stuff out there. But, you know, in this case, yeah, we all want to keep our jobs as well. So, I mean, it's not like we can just blow it off either. So, yeah.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
So I want to get back to the topic at hand, though, and talk a little bit about what kind of monitoring did you have before and what kind of monitoring you have now in order to catch this kind of thing.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah, that makes sense. Somebody typed this question in. It was one of the panelists. Did you get that answered? I don't know if it was Luke or Dave.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Oh, that's interesting. Yeah, I think a lot of the background check portals that I've seen, they're like the fully baked portal instead of being a background service that somebody else can integrate into their own app.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
I know, right? I want to know everybody's dirty secrets. Interesting. So, yeah, why don't you tell us a little bit about what went down with the app, right?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah, I've got, I think it's the bedtime settings in iOS. And yeah, I've just told it if it's a number in my contacts, then ring. And if it's not, then don't. So yeah, it'll go off, but it'll only go off if it's, yeah, if it's in my contacts. So yeah, then I just add whoever or whatever to my contacts and I'm set.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah, the iPhone has that feature too, where you can essentially tell it, don't ring unless the number's in my contacts.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Makes sense. All right, we're getting close to the end of our time. Are there any other stories or examples or lessons that you want to make sure somebody listening to this gets?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
All right. Well, one more thing before we go to picks, and that is if people want to get in contact with you, how do they find you on the internet?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Awesome. Yeah, we'll get links to those and we'll put them in the show notes. Let's go ahead and do some picks then. Dave, do you want to start us off with the picks?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Cool. How about you, Luke? What are your picks?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Awesome. All right, I'm going to throw out a couple of picks. The first one is I'm still working on this, so keep checking in. mostvaluable.dev and summit.mostvaluable.dev. I think I've mentioned it on the show before, but I'm talking to folks out there in the community. We've talked to a number of people that you've heard of that you know well, that you're excited to hear from.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
But yeah, I'm going to be interviewing them and asking them what they would do if they woke up tomorrow as a mid-level developer. and felt like they didn't quite know where to go from there. So a lot of folks, that's where they kind of end up, right? They get to junior or mid-level developer and then it's, okay, I'm proficient, now what? Yeah, there are a lot of options, a lot of ways you can go.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
I'm hoping to have people come talk about blogging, podcasting, speaking at conferences and all the other stuff. And then just how to stay current, how they keep up on what's going on out there. So I'm gonna pick that. I've been playing a game on my phone just when I have a minute And, you know, I want to sink a little bit of time into it. It's called Mushroom Wars 2. It's on the iPhone.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
I don't know if it's on the Android phone. Yeah, liking that. And then, yeah, I'm also putting on a podcasting summit. So if you're interested in that, you can go to podcasts.com. podcast growth summit.co and we'll have all the information up there. If you listen to the freelancer show, um, the first interview I did was with Petra Manos. She's from, she's in Australia.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
So I was talking to her in the evening here in the morning there, which is always fun with all the time zone stuff. But she talked about basically how to measure your growth and then how to use Google's tools, not just to measure your growth, but then to figure out where to double down on it and get more traffic. So, um, It was awesome.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
I'm talking to a bunch of other people that I've known for years and years in the podcasting space. And I'm super excited about it too. And I should probably throw out one more pick. So I'm going to throw out Gmailius. That's G-M-E-L-I-U-S. And what it is, is it's a tool. It's a CRM, but it also has like scheduling. So like schedule once or what's the other one? Calendly. It allows you to set up
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Now, you're here from Checkr. You gave a talk at RailsConf about how you broke stuff or somebody broke stuff. Do you want to just kind of give us a quick intro to who you are and what you do? And then we'll dive in and talk about what broke and how you figured it out?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
series of emails it'll it'll do automatic follow-up for you and stuff like that and so it just does a whole bunch of email automation but it runs out of your email account your gmail account that's the big nice thing about it is that you don't get downgraded by send grid or something if your emails aren't landing and so that's another thing that i'm just really digging so i'm going to shout out about that paul what are your picks
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Awesome. I'll have to check that out. Sounds like a decent episode too, whether we just go through some of those and pick our favorites or whether we get whoever compiled it on. Thanks for coming, Paul. This was really helpful. And I think some folks are probably going to either encounter this and go...
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah, I wish we were doing that because the last time we ran into something like this, it was painful. Or some folks hopefully will be proactive and go out there and set things up so that they're watching things and communicating about the way that they handle issues and the way that they avoid them in the first place.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
All right, we'll go ahead and wrap this up and we will be back next week. Till next time, Max out, everybody.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah. So people that aren't aware, PII is an acronym for Personally Identifiable Information. and is usually protected by law.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Gotcha. So I'm curious, as you work through this, what did you add to your workflow to make sure that this doesn't happen again? Because I mean, some of it's going to be technical, right? It's testing or, you know, maybe you set up a staging environment or something like that. And some of it is going to be, hey, when this kind of alert comes up, do this thing, right?
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Because it sounded like you did have some early indication that this happened.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Hey, everybody, and welcome to another episode of the Ruby Rogues podcast. This week on our panel, we have Luke Stutters. Hello. We have Dave Kimura. Hey, everyone. I'm Charles Maxwood from devchat.tv. Quick shout out about mostvaluable.dev. Go check it out. We have a special guest this week, and that is Paul Zeich.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Code drama.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
at the company. Very cool. I actually have a Checkr t-shirt in my closet that I never wear. It's Checkr for those that are listening and not reading it. Yeah. So why don't you kind of tee us up for this as far as, yeah, what happened? What broke? Yeah. Give us a preliminary timeline and explain what Checkr does and why that matters.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Yeah, one thing I just want to add is that I like the blameless culture just from the sense of unless somebody is either malicious, which I have never, ever, ever encountered, or is chronically reckless, which I've also never encountered, right? Everybody is usually trying to pull along in the same way.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
You know, if somebody has that issue, you identify it pretty fast and you usually are able to counter it before it becomes a real problem. But yeah, just to put that together, then, you know, yeah, the rest of it, it's, hey, look, we're on the same team. We're all trying to get the same place. So let's talk about how we can do this better so that doesn't happen again.
Ruby Rogues
The Sounds of Silence: Lessons From an API Outage with Paul Zaich - RUBY 652
Because next time it might be me, right? That misses a critical step. And I don't want you all fingering me either. I mean, I want to learn from it, but I, you know, we don't want people... walking around in fear. Instead, if somebody screws up, we want them to come forward and say, hey, I might have messed this up before it becomes an issue next time.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Yeah, makes sense. I'm not sure if I understand it, but so you're saying there's kind of two separate things going on here. Firstly, you're moving to a completely new technology. So you're taking a large part of the app out. You're putting it in a microservice. It's not very micro if you're doing, what, 700,000 things a day. That's not a microservice. This is a macro, micro, or medcro.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
And the second thing you're doing is you're actually changing the whole interface. So you're saying you're going from – you previously had a rescue batch job And now he's saying, no, no, no, we're not going to do batching. We're going to do it all immediately.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Yeah, I've worked with loads of people who've made those mistakes. Obviously, I've never made them myself, but oh, my words.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
If you or your loved ones are affected by the removal of jQuery from Bootstrap, why not check out the excellent course from devchat.tv, You Don't Know JavaScript Yet 30-Day Challenge, available with the link in the episode show notes. Were we scheduled for advertisement there? It just came out of nowhere. Just trying to keep the ship afloat, man. Come on.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
No, we have to do jQuery now because this is really affecting me. I mean, this is terrible news. I literally can't write JavaScript without putting a dollar sign in front of everything.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
You just need to assign something to the dollar sign, that's all. One of the reasons I started using Vue was because it has a little dollar sign in front of a data structure. And that kind of really makes me feel at home. Plus, you know, it feels like money. You know, when I type the dollar sign in, I feel like, yeah, this is going to make me a millionaire. I'm sorry, Luke.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Oh, yeah. Yeah. What do you think?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Try it and understand it.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
It's a big plug episode. Everyone quickly plug their thing. Do you know what? Actually, Dave, I have already checked that out and I still don't understand it. So I need to check it out again. It's definitely me. I tell you what the problem is, right? I've been leaning on jQuery for so long and I'm talking about 10 years, right? And it's not just that.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
I've got my whole arsenal of weird front-end stuff that I can pull in. And replacing that big, long list of handy widgets I know will solve this problem is what I'm lacking. So, yeah, basic GOM stuff, fine. You know, ES6 and all the way. But if I want to do something weird... If I want to do something fancy, the whole point of stimulus is it doesn't have weird fancy stuff. It's clean.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Oh, it's the guy with the face tattoo.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
yeah bald head yep that's the guy yeah all right all right i'm a huge anime watcher too that's a that's a dangerous gap in my knowledge yes so anyway it's like you go into the state just oh jesse you were you were saying you go into the state when when the the first and it and unfortunately for me maybe it's because of my age or whatever but
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
I find that people talk about this flow state, and I was not a believer for a while until I got something really hard to work on. And it's those problems where you're at the kind of limit of what you can do when you're thinking, can I actually write this? That is when I find you get these kind of periods of intense concentration.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
And obviously, you don't want to be, you know, at the edge of your ability all the time. You want to kind of line up the nice, easy jobs or things tend to go disastrously wrong. But one thing I have found is that, you know, when you're doing these really hard problems and you're like, can we do it? You know, is it possible? You always have to come back and redo it.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Once you prove that it's possible, then you have to hit it again, and then you come up to the one. So all of the stuff I've done in a kind of state of intense concentration tends to get thrown away. But it moves you forward down the road.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
It breaks my heart every time. Every time I have a git commit with kind of more lines removed than added. Oh, man.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Right? I know some people like to take the code out and they're like, oh, I go knocked out, you know, loads of that repeated code. I just think, why couldn't I get it right the first time?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
That is very, very sensible advice. Very sensible advice. And by that standard, I've got amazing at coding over the years. The context is a big mistake. Now, just to be clear, this big mistake has had a happy ending. So this isn't the kind of big mistake I got fired. This is big mistake. We pulled through it and it all worked out. Am I right?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Speaking of interviews, I see a smooth transition there. Speaking of interviews, I understand that you have a project which you call Mina Swan interviewing. I have no idea what Mina Swan sounds like. I see a lot of people saying it in the Ruby community, but it's one of these weird in-jokes I think they have in the Ruby community.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Yeah, what a best thing about Ruby's community. It's a really great language and it's a really strong community, really great events, even though obviously the events this year have been a bit difficult. So how are you carrying that culture, that tradition over into the interviewing process? What's your gambit?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
That is certainly not the current approach to coding interviews. I've been hearing recently more people talking about how to make coding interviews harder. If you go on something like Hacker News, you know, they discuss which
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
framework they need to insert under the fingernails of potential applicants and i hear if you go to facebook now and apply for a job then they uh you have to bring along your phd in computer science they uh then burn it in front of you mix it into old coffee and make you drink it as part of the interview process so it's really i think it's really something that the tech community needs we have been doing a few episodes about trying to make community more inclusive trying to bring in people trying to keep people in
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
And that sounds like a really great idea for a talk. You know, why don't we be nicer to people, try and get the most out of them during interviews instead of subjecting them to torture?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
I would. My first pick is a version of Windows 10. A bit of a strange thing to pick on a reverse Pogfiles, but this is called Windows 10 Ameliorated Edition. I found it featured on a popular YouTube channel not long ago.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
And this is a version of Windows 10 called a spyware taken out, which also incredibly boosts the responsivity and performance because it's not doing any async network calls back home in the background, if you know what I mean. This is the first operating system I've ever found where to download it, I had to get a BitTorrent link from a Telegram channel.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
So if you want some excitement in your operating systems, check out Windows 10 Ameliorated Edition.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
It's got quite a big section on legality on the website. Okay. The website does make it clear that you do need to have a Windows 10 license in order to legally use the Windows 10 Ameliorated Edition. But, I mean, come on. BitTorrent link through a Telegram channel? Wow. That's quite a... Anyway, it's quite chubby. It's a cool little project. There's lots in the FAQ about their rationale behind it.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
And it does fly when it runs. It's really quick.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Yeah, I mean, you could call it Windows 10 lobotomized. I mean, there's barely anything there at all. But it's a lot of fun. It flies doing nothing.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Can you do that again, Dave? Just so everyone can see on the podcast?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
I got to say that is quite striking. Is that the same company that did the shortcut bar?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Yeah, that's a pretty cool thing as well.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
This was awesome. Really interesting.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Hold on a second. Hold on a second, Jesse, because the slide I'm looking at says big mistakes. It doesn't say small mistakes. It says big mistakes. So let's just keep this in mind before we reveal what this technology is, what a big mistake was.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
So this is kind of like a functional programming thing?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
Ooh, dear. That's a dangerous recipe. I must add that I don't think about it is available in the UK at the moment. Is it available in Canada?
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
In my defense, this looks like the perfect storm for me because you've both got the kind of strong financial components. So if you get it wrong, you lose money. And if you get it wrong, then people will have wasted their time going to the shop. You know, in Britain, it's so small. I can walk to the shop. You know, sometimes I just open the window and shout at them and tell them what I want.
Ruby Rogues
Exploring Tech Choices and Team Dynamics with Jesse Spivak - RUBY 669
But, you know, I know when I was living in the States and people maybe drive for two hours to go to Walmart. So this is quite a problem you've got there.