109: Best of 2022
On today's show, Matt Cavender — the man who turns our incoherent babbling into meaningful thought — is gonna share a selection of his favorite clips from the past year (2022). Adam, Ben, Carol, and Tim are taking the week off to recover from our families and work off some of those food babies. But, fear not dear listeners, the team will be back next week to ring in 2023 - Working Code style. Here's hoping y'all had a lovely holiday and a happy new year!
Follow the show and be sure to join the discussion on Discord! Our website is workingcode.dev and we're @WorkingCodePod on Twitter and Instagram. New episodes drop weekly on Wednesday.
And, if you're feeling the love, support us on Patreon.
With audio editing and engineering by ZCross Media.
Spot an error? Send a pull request on GitHub.
[00:00:21] Ben: Here we go. and on today's show, Matt Cavender, the man who turns our incoherent babbling into meaningful thought is gonna share a selection of his favorite clips from the past year. Adam, Carol, Tim, and myself are taking the week off to recover from our families and work off some of those food babies, but fear not.
[00:00:37] Ben: Dear listeners, we'll be back next week to ring in 2023 Working code style. Here's hoping y'all had a lovely holiday and a happy new year. Enjoy the show.
[00:00:47] 060 - Technical Debt - Ben Wishes He Had A Test
[00:00:47] Ben: No. Happy to know that I sort of wish I had a test the other day.
[00:00:54] Carol: Oh,
[00:00:56] Ben: so okay. I,I will freely admit that in the past. I often talk about that. I don't have tests and most of the time it's fine. Quote, unquote fine. because I'm working in such a narrow part of the application. I see everything that I'm going to change and it's like, there's one path or two paths through this code that I needed to test manually.
[00:01:15] Ben: but the other day we were trying to update one of the, container, like the base image for one of our containers or Docker containers. And, I don't understand servers and I don't really understand containers. And I certainly don't understand how apt get works, which is like, it's like a package manager for Unix.
[00:01:33] Ben: Right. I think there's a bunch of them like yummy and advocate and a couple of others.
[00:01:37] Adam: Yeah. Different,different flavors of Linux have different package
[00:01:40] Ben: Gotcha. Okay. I don't understand how versions on those things work. I don't know if you can pin versions. I don't know if it's even clear how you can pin them or where you can see the list of versions. Anyway, for reasons that I still don't understand, we tried to upgrade, the base image and it changed one of the versions for one of our app, get installs from like 0.3 to like 3.7 and had completely broke every API that we were using.
[00:02:06] Ben: and it was just a part of the application that I didn't smoke test after changing the image. And, unfortunately I had deployed the update to production before I caught it. And thankfully we only got a handful of errors because again, it's in this sort of weird corner of the application, but I, I shook my head and said, I wish there was a test for this.
[00:02:28] Ben: That would have been nice.
[00:02:31] Adam: we're getting in, we're getting in
[00:02:33] Ben: So it, and it gets, it gets even more frustrating because the area of the application that broke, I actually did test. but I didn't realize that the type of file I was testing with actually had its own edge case, deepen the code. Basically it said the thing that's going to break, if you're testing was a JPEG, don't do this thing and it skips over it.
[00:02:53] Ben: And, and then, so it only started to break when people started to upload non JPEG images. And it just happened to me that I didn't test with that.
[00:02:59] Adam: Hmm.
[00:03:00] Ben: I blame it on code complexity, more than not having a test, but.
[00:03:05] Adam: so like I said, having no tests at all as a form of technical data or missing tests is technical debt. And I guess the question then is, when should you pay that off or does it make sense to write those tests? If you know that the code that you're going to be testing is going away soon.
[00:03:22] Adam: And for me, I think the answer is, it depends on how soon, and it depends on how critical. Of a part of the application is untested, right? If it's your payment collection stuff, it doesn't matter if you only have a week left. Like if it's going to affect your bottom line like that, then you should have confidence that it's not broken.
[00:03:42] Tim: I would say that if you don't have tests at all and you're like, where are you going to put your resources? Right. So the things going away. One to three years, maybe four years, maybe five years. Where's the best resources for that. And I don't know Adam, camera's going to hate me for this, but I don't know if test is really the best thing to go.
[00:03:59] Tim: Like we don't have any tests. Let's go build a bunch of tests. I don't know if that necessarily is going to be a best use of resources.
[00:04:06] Adam: I don't think that he would argue with that statement, given enough nuance. Right? Like I even, I agree with you, like, the. Nobody is going to agree. Oh, well, whatever. I can't speak in generalizations it's I don't think it is a smart thing to, stop the ship and start writing tests and do nothing but write tests.
[00:04:26] Tim: I mean, how do you make that to the C level? It's like, listen, we're going to write a whole bunch of tests to make sure that this thing that supposedly is going away very soon, w works well. but we're not going to add any new features. we'll only fix breaking bugs during that time.
[00:04:39] Tim: and it probably would take a lot longer than we think, and they won't make us any extra money.
[00:04:43] Tim: that is extremely hard sell.
[00:04:45] Adam: Exactly. Which is why I think that you need to couch it in. Okay. So the test that we're going to write are for the things that break in the middle of the night, for the things that collect money for the things that are gonna, that are gonna make us as a business or as a team, or, like you, my boss, that's gonna make you look bad because it broke.
[00:05:01] Adam: Those are the things I want to test.
[00:05:03] Carol: Right. You need to cover the things that are going to cost you, and that does make it to the C-level. And that does make sense. this is costing us face with our customer. This is costing us resources to keep fixing it and we keep introducing more problems. So I feel like if you're supporting this project as a, as like a stop gap, that if you're adding new features, you should be adding the test with it and fixing where the bugs happen to add a couple of tasks.
[00:05:26] Carol: You don't have to cover the whole system, but what you're touching could be easy,
[00:05:30] Tim: at the end of the day, what's the user experience, right? that's all, it really matters. the users are the one that's matters, not the coders don't
[00:05:36] Carol: We mean nothing.
[00:05:37] Tim: Yeah. We mean nothing.
[00:05:39] Tim: you know, we're building it for them. So if the users are having a bad experience, that has to be stopped at all costs.
[00:05:46] 062 - Note To Self - To Throw Or Not To Throw
[00:05:46] Adam: Note to self, to throw or not to throw an error. When a delete operation is requested for something that doesn't exist quietly, exit defer idempotency to a higher level in the call stack don't know,
[00:06:04] Carol: Love then.
[00:06:07] Adam: oh, this is going to be good. I like this
[00:06:09] Ben: so good.
[00:06:11] 062 - Note To Self - Sad Panda
[00:06:20] Carol: Love Ben.
[00:06:22] 062 - Note To Self - Deep Backlogs
[00:06:22] Carol: dear diary, I've already created like four different epics this week in Jera. I love the idea of creating a deep backlog and I lean into having to reprioritize things on the fly love then. So Ben, let's talk about your love for JIRA
[00:06:42] Adam: and how much you love the backlog.
[00:06:43] Carol: deed backlogs.
[00:06:46] Tim: deep backlogs
[00:06:48] Adam: D backlogs. We've been the Dell.
[00:06:51] Carol: Yes.
[00:06:52] Tim: own standalone podcast.
[00:06:54] 062 - Note To Self - Peeps Sure Do Love Let and Const
[00:06:54] Tim: Note to self. Sure. To love there. Let and const love. Ben
[00:07:09] Carol: let's have it. Come on
[00:07:11] Ben: Yeah, I am just VAR for life, baby.
[00:07:14] 065 - TDD In the Trenches with Scott Stroz - Getting Into TDD
[00:07:14] Adam: okay. So Scott, who are you and why do we have you on our podcast?
[00:07:18] Scott: My name is Scott Stroh's. I am a developer. I have dropped the language adjective from that particular title because I don't want to pigeonhole myself. and I think when you've done things, as long as I have, no matter what language you have, you actually pick up skills that you can use in any language.
[00:07:35] Scott: And it actually becomes easier to learn new languages as you go. currently I work for Booz Allen Hamilton, and I wanted to talk about a situation we had on a project that I'm on, where relying on unit tests actually saved us from missing a deadline.
[00:07:50] Ben: intriguing.
[00:07:51] Tim: So TDD and the.
[00:07:53] Ben: So this is science fiction. Okay. Hit it.
[00:07:57] Tim: Ben thinks this is fanfic. So let's,
[00:07:59] Scott: Well, hold on to be fair, Ben, there is a time I would've agreed with you, but this actually, it really did. It really did save us from missing a deadline that had already been pushed several times.
[00:08:10] Tim: before we get into the store here, talk to us about, so, on the Discord channel folks are just constantly haranguing been are actually, trying to get me in and add them to like, get Ben to like, buy into
[00:08:20] Tim: TDD. You are one who was kind of, I wouldn't say against it, but didn't really see the value of
[00:08:27] Tim: it.
[00:08:27] Tim: Didn't do it. And now you do it. Give us that journey before you give us the story.
[00:08:32] Scott: really comes down to the fact that I used to be. I been, I used to be like, he was like, oh, I've got a problem to solve. Let me just start writing code.
[00:08:38] Scott: I can just, you know,let me just solve that writing code. and tests were kind of like an afterthought. And honestly, I'm going to be honest.
[00:08:44] Scott: I still do slip into that every once in awhile where I'm like, I want to see if my idea is going to work before I test it. And then by the time I'm done, I'm like, oh, look, it works. Oh Now I've got another mic tests.
[00:08:57] Scott: and it just, for me, it's been situational on this particular project that I'm on. I've been on this project for three years and I have been a huge proponent of writing tests. We use test box for the ColdFusion code on the backend, and we use Jasmine for the, the front end tests. And there's been quite a few times where
[00:09:15] Scott: I'm a maniac. Every time I create a new branch, like off of our, like our, we have a dev branch where everything goes, we create feature branches off that every time I branch off of Devin do a feature branch. The first thing I do is I run all the tasks for the module on. And if any of them fail, then people get emails. and doing that has actually saved us. And it's gotten to the point where like, when I first started, I was like, yeah. Okay. I get the idea tests. That's great. But I've actually kind of become the person where I'm like, you gotta write the tests, you gotta make sure they work. And the one thing I realized on my particular team, and actually this is probably in a lot of different cases.
[00:09:52] Scott: Sometimes people don't know what to test or how to write the test to make sure that the code is doing what they expect it to do. And that, that last one is really hard. It's really hard to figure out, all right, I need to make sure that this is actually testing what you know, that the code is actually doing what I want it to do.
[00:10:13] Scott: And then you got to figure out how you're going to write the test for it because not only do you need to, in my mind, I'm thinking in every situation you need two tests, minimum, you need good test and a bed. So, and if you have an if statement now you need at least, or I should say for every like logical condition or something like that, you need a test.
[00:10:34] Scott: So if you have an if statement you need one for, Hey, you had that, it happens. And then it has, for one, it doesn't happen. If you have a switch statement, then you need one test for every case statement you have and then an extra one for when it doesn't match any of the case statements, if you don't have a default. and it's really hard. I think sometimes for people to start thinking like, how can I put these tests together to do that? Because they just think it's,
[00:10:54] Scott: it's a, they think it's a burden and it, and that
[00:10:56] Scott: there's no benefit. And I think that's probably the biggest thing is people need the need to see the benefit of it for themselves.
[00:11:04] Scott: And that's what happened to me, before it actually starts, drilling into your head, like this is a good thing, and it's something that we need to do.
[00:11:09] Tim: what's
[00:11:09] Tim: the benefit you saw?
[00:11:10] Scott: We actually had, there were changes that were made in some parts of shared files. So like we have some shared services on the front end, and those changes to those services failed in several other modules that would not probably would not have been picked up on because the modules were actually done and had, they were ready. They were like blessed and ready to go out to production with everything else. and some changes are made to these shared services, which broke stuff in those modules. And if we didn't change or if I didn't run those tests, we never would have realized until it went to production and everything went boom and blew up.
[00:11:48] Scott: So it's really helped actually. And as the applications gotten better, It's become even more important because now we have a lot of interconnectivity where there's a lot of different communication between the different modules and data sharing and stuff between the different modules. So it's,I'm a big fan now.
[00:12:05] Adam: And one of the things you were saying before was like, every conditional, every switch, those are places where you need tests. But I think that the reason people don't realize that is the case is that each of those things, like each of that condition, that if statement, represents two things that could happen and those things happen for a reason.
[00:12:22] Adam: So those are features. Each of those represents a feature path through the code, and that's what you need to be testing is your.
[00:12:30] Scott: Yep. Exactly.
[00:12:31] Ben: As someone who watches the testing conversation with the outside, most of the time. Hurdles for me in terms of wrapping my head around it is the granularity of the desks themselves. and I know you're talking about conditions and switch statements and having tests that map to those branches. but just to give this a concrete sense, like, let's say I'm in a checkout process and I'm going to purchase an item and I'm buying in.
[00:12:58] Ben: I checkout. So during that interaction, a bunch of stuff is actually happening. Like, an order is getting placed. Like maybe it has order items. Maybe an email is going out. Maybe inventory is being decremented somewhere. Maybe there's a log being created for something. If I wanted to create a test that was like, the purchase works in.
[00:13:19] Ben: Am I creating. a single test that tests all of that happens. Or do you have like a test that says like when purchasing happens, here's the test that says the inventory is affected. Then I have another test that says, and when purchasing is done, let me make sure emails get sent. I have no sense if there should be like 15 asserts inside of my test, or if that's a code smell
[00:13:39] Scott: It depends.
[00:13:41] Ben: classic.
[00:13:42] Adam: I didn't realize we were in finding a politician on the show here.
[00:13:46] Scott: if I may, the,the situation that I wanted to talk about at work, I have one function inside of a service that the application calls and then inside of that function, it makes a bunch of other calls to the same service that gets specific data that we're looking for a specific data point.
[00:14:03] Scott: So rather than having all the logic I needed in the one function, I broke it out into a bunch of different functions. Now, granted, there are a lot of asserts when I test that main function, but all I'm doing is I'm making sure, like I said, a spy on all the other functions that are called in that particular main. And I just make sure that those are actually called and that they're called with the data that I expect it to be passed. And then each of the functions that gets called has its own set of tests, depending on how complex the logic was in that particular case.
[00:14:35] Adam: Yeah. So if somebody is more familiar with the terminology, a spy, it sounds like it's pretty much the same thing as.
[00:14:41] Adam: the thing that's calling it. It looks and acts like it's the same thing, but it doesn't actually do that work.
[00:14:46] Scott: yes, but it's a little bit different in the fact that in Jasmine, you can have both mocks and spies
[00:14:52] Scott: and they do functional. Like you can actually spy a mock.
[00:14:55] Scott: So in, in terms of like, test box, if that, I think that's what, you're, what you might've been referring to. it's similar, but. Like, cause the spy, you can actually mock out an object and then spied different, functions on that.
[00:15:06] Scott: Or you can actually spy functions off of, a related service
[00:15:09] Adam: So aspire is just the ability to see that it was invoked. And these were the arguments.
[00:15:13] Scott: exactly. Yeah.
[00:15:15] Ben: And are you testing against a database, like an active database? are you mocking out your data layer? How does that work? That, that honestly, with testing that's the biggest hurdle for me is where does the data come from?
[00:15:26] Scott: for the client side tests. No. Cause the clients I test for only doing unit tests and we're only testing, the individual functions and we're not testing how they interact with each other. And most of that's because if you have good test coverage in the related services and the related methods on those services, then you don't need to test that you're getting back the right data because you already have the coverage elsewhere to handle that.
[00:15:45] Scott: for the tests that we run on the,the server side. Yes we do. We mock out the,the. Like we
[00:15:51] Scott: actually,
[00:15:51] Scott: for all the different test files we have, we actually build the database files, populated with test data and then destroy everything. When the tests are done,
[00:15:59] Ben: Gotcha.
[00:16:00] Tim: Yeah, I typically I'll build a Jason data file, like, just scripted out. It pulls it in from there rather than talking to an actual database.
[00:16:09] Adam: As an industry, we seem to be so well aligned. That testing is so important in general. but the, there seems to be a complete lack of teaching of how to test and how to test. Well, that seems like something somebody should create.
[00:16:24] Scott: I'm working on that. I actually submitted that to pick that exact topic to several conferences for the summer.
[00:16:30] Adam: nice.
[00:16:31] Adam: I thought that was totally unplanned. Uh,
[00:16:35] Tim: And
[00:16:36] Tim: it's funny. So I got, I'm on them, an advisory board for a local college. And this year they've asked me to come speak,
[00:16:43] Tim: to like their graduating class and like talk to them about opportunities in computer science and things like that. But I do want to talk to them about, cause I don't know what they're teaching in college.
[00:16:53] Tim: Right. my son he's about to graduate. He's
[00:16:55] Tim: going to be going to the same school I'm speaking at. actually and I don't know how well they teach, testing and if they don't, that's a big
[00:17:01] Tim: miss, because
[00:17:03] Tim: I know when I went to school, they taught me a lot of programming.
[00:17:05] Tim: There was no testing. Of course this was ancient days. I don't think testing existed back then, but I hope they do now because
[00:17:13] Ben: I learned no testing in school. That's for sure.
[00:17:16] Tim: you did.
[00:17:16] Ben: No, I did
[00:17:17] Tim: Oh, no you didn't. Yeah.
[00:17:19] 066 - Make Meetings Suck Less - This Is Sparta
[00:17:19] Ben: if I can tangent for two seconds,
[00:17:21] Tim: Sure.
[00:17:21] Adam: this is the Bendel tangent show. So
[00:17:26] Ben: thinking about the movie 300. I assume everyone here has seen 300,
[00:17:31] Carol: I have
[00:17:32] Ben: maybe not Carol. it's early Gerard Butler and I don't know if it's early Gerard, but it's drive by there from like 15 years.
[00:17:39] Adam: kind of like popularized his career.
[00:17:41] Ben: Yeah. and there's the scene at the end where, I mean, spoiler alerts,
[00:17:45] Carol: I'm covering my ears.
[00:17:46] Tim: It's 15 years, if you haven't seen it by now.
[00:17:49] Ben: that 300 Spartans are basically at the end of what they can do and kingly and I, this is Gerard Butler. I think it's Leonidas. he has to bow before the, I think that the Persians are the invading army, so he has to bow.
[00:18:03] Ben: So he takes his helmet off and he drops a shield And he, then he gets down on his knees and then he, some fighting starts with Sue and then he pops back up and the narrator comes on and says, like he had to remove his helmet because his helmet narrowed his vision and he needed to be able to see his enemy.
[00:18:19] Ben: And he had to drop a shield because the shield was heavy and it threw him off balance and he needed to be able to throw his spear very far. And,not to be overly dramatic, but like a little bit sometimes that's how I, sometimes that's how I think about, like testing and linting and stuff that like, there are these tools that are there to protect us, but sometimes like you have to drop that armor and you have to take off your helmet, you have to drop your shield in order to be able to be agile and to move quickly and to attack your enemies.
[00:18:47] Carol: And you die quickly.
[00:18:50] Tim: Yeah. So who won that battle? The Persians or the Spartans at Thermopylae?
[00:18:55] Ben: missing the point.
[00:18:56] Tim: No, no,no. You're missing the point.
[00:18:59] Adam: and Ben is your helmet and shield ever on or?
[00:19:04] Ben: I know where it is.
[00:19:07] Tim: I think we roasted him enough
[00:19:09] Adam: Okay.
[00:19:11] 066 - Make Meetings Suck Less - Goodbyes
[00:19:11] Adam: I sometimes play that role in my company, even though I'm not the top dog.
[00:19:14] Adam: but you know, like the it's very clear the meeting has ended and we're all just sitting there in silence for two or three minutes waiting for anybody to like pipe up with any last thoughts. And I'm just like, I guess we're done. And that's when like, oh yeah. Okay. So, and then people start disconnecting.
[00:19:29] Adam: So you have a good day.
[00:19:31] Tim: Beginnings and endings are hard. Right. So particularly it's like, all right, everybody's no one wants to be there. Are we done yet? Like, Yeah,
[00:19:38] Tim: It's like, everyone's dancing around it. Kind of saying goodbye without saying goodbye.
[00:19:42] Carol: Oh, no, we are really good at ending meetings at Clare capital. Like our team will immediately go, all right. Looks like everybody's getting some time back. Let's get off this thing. Like we want out of the meeting quickly. So it's bad because we all assume it's over with, and we start hitting in and someone's like, ah, and then we have to go to slack and say, did he ask a question or not ask a question?
[00:20:05] Carol: We all disconnected.
[00:20:06] Tim: Yeah. I mean that it's easier with your team, but w when it's with a customer,
[00:20:11] Tim: right. So there's a bit of politics there. my favorite thing to say is, well, it seems like we're done here. I'll give you back
[00:20:19] Tim: 10 minutes of your time here. And Tim has your time here and we'll, we'll wrap this up.
[00:20:24] Tim: All right. Take care. Bye bye. Collect done.
[00:20:27] Carol: Quickly end.
[00:20:28] Ben: Sometimes I get frustrated because it feels like the goodbye back and forth is like a four-part volley. You're like, all right. I guess I'll see you later. And then I say, okay, see you later. Okay. Have a great day. You have a great day. All right. Talk to you later
[00:20:42] Tim: Okay. Talk to you later. Okay. Good job. All
[00:20:45] Tim: right. Look forward to working with you.
[00:20:47] Carol: this isn't meeting really related, but it's goodbyes. So whenever I'm on a phone call with someone I'm like, okay, bye. And I immediately touch the red button on my phone. Like I don't wait. Cause I'm like, I'm assuming the conversation's done.
[00:21:01] Tim: She's brutal.
[00:21:02] Carol: call me back. People will be like, Hey, oh, one more thing.
[00:21:05] Carol: I'm like, no. We said goodbye. We agreed. This was done. Like, we're done no more
[00:21:09] Carol: conversation.
[00:21:10] Adam: was done.
[00:21:11] Carol: We're over this. But oddly enough, Steve is the exact same way. So it works out great because I never offend him by hanging up on him. So it's amazing.
[00:21:22] Ben: Yeah. Have you ever accidentally told someone you'd love them in a
[00:21:25] Ben: goodbye.
[00:21:26] Carol: Yes.
[00:21:27] Adam: Oh,
[00:21:28] Ben: All right. Talk to you later. Love you,
[00:21:31] Carol: Oh I just say that out
[00:21:33] Carol: of habit all the time.
[00:21:34] Tim: I've never done that, but someone. So I was talking to, she was like the secretary at work and she's like, all right. All right. Talk to you later. Bye. Love you. I'm like love you too. I'm like, she's like,
[00:21:46] Adam: that sounds like something.
[00:21:48] Tim: it just, it was a knee-jerk.
[00:21:50] Carol: Yeah,
[00:21:51] Tim: I mean, I care for you. I'm not in love with you, but,
[00:21:54] Carol: Well, just like it was her like accident. It was your accident setbacks.
[00:21:58] Tim: and she said, I love the fact that you said, I love you too. I'm like, okay. But don't take, don't read more into it. There was.
[00:22:06] 076 - Ben Needs A Minute - Love Languages
[00:22:06] Adam: All right, Ben, what grinds your gears?
[00:22:09] Carol: just take a minute and talk to us, buddy.
[00:22:12] Ben: yeah, so I feel like I've been trying to crush it hard lately at work. And, I made this joke. I thought it was last episode of the previous episode, but like if I crush it in the woods that no, one's there to see
[00:22:24] Adam: Yeah.
[00:22:24] Ben: I actually crushing it? Yeah. And so we have this, like showcase channel in slack where when people release product features, they'll make a little demo video and a little blurb about what it's doing and I'll drop it in this channel.
[00:22:37] Ben: And, and I do that too. And of course I'm the only one doing it from V6. Everyone else is doing it from the new platform. I'm on the legacy platform, V6. And, and it's just like, It's crickets. I'll make a little demo video. And I say like, here's the use case and I drop it in there and I write, this is how much a ARR annual recurring revenue is attached to all of the tickets that have been filed.
[00:23:00] Ben: And that's a super loose number. I mean, that's nothing that you could, but it's basically like all the customers who have filed tickets around this thing, this is the amount of money they are paying us, not for that ticket specifically, but this is the amount of money that customer's worth. so we'll say like, oh, this had a, a 500,000 or a million dollars of ARR attached to this one issue and I'm super excited about it.
[00:23:21] Ben: And then it's like, like maybe a few people maybe will give me like a thumbs up or a little like party parrot emoji, but no one even drops a comment and it's like, Hey, that's cool. Or, oh, awesome. To remove friction from our users lives. And it's really kind of demoralizing. and. But more than that, it's gotten me to think about it.
[00:23:42] Ben: I don't know if anyone's ever heard of the concept of the, of love languages. That there's a famous book called the five love languages. I can't remember what pretty much any of them are, but, uh, like, like, like one is gifts. Yeah.
[00:23:55] Ben: Touch
[00:23:55] Adam: No gifts is not, oh. Gifts with a T with a
[00:23:59] Ben: Oh
[00:23:59] Ben: yeah.
[00:24:00] Carol: Yes. Memes and guests are definitely a love language. You guys.
[00:24:15] Ben: Yeah. Oh, that's so good. That's so good.
[00:24:18] Adam: Yeah, I will. I have on occasion said that gifts with no tea is my love language.
[00:24:27] Ben: I was thinking about my love language and I'm definitely a compliments person. Gifts don't really mean anything to
[00:24:34] Adam: So that would be what words of affirmation.
[00:24:36] Carol: Where's the
[00:24:36] Ben: Yeah, yeah, yeah,yeah. Words of affirmation. And I think that's like, that's why this is so demoralizing for me is I just want someone to come in and say, Hey man, you did a good job way to go.
[00:24:49] Ben: and
[00:24:50] Carol: And that's not too much to ask for. It's.
[00:24:54] Ben: oh,
[00:24:55] 079 - Potluck 5 - What's Going On With MongoDB
[00:24:55] Ben: Is Mongo DB that this is like a stupid question maybe, but like, is Mongo DB still a hot technology? Are people loving on it?
[00:25:02] Ben: Do you know?
[00:25:03] Adam: Oh,
[00:25:04] Ben: the, this is, you're going to get us canceled. no. Cause it was so hot. It was so hot for a
[00:25:11] Ben: while. And then
[00:25:13] Ben: maybe it
[00:25:13] Ben: just moved into like now it's battle-tested I dunno.
[00:25:16] Adam: Yeah, I think there's a lot of people out there using it. I don't think that, I think that the hype curve it's kind of come down from that peak, that initial peak,and people are finding where it actually fits in is, a valuable use case.
[00:25:28] Adam: So I think your instinct or your read of the room here is about right. Like it's not as, it's not as hyped as it used to be. People are talking about it less. I think part of that is just because like, there's less to say, right? It's either you have been convinced and you're now using it, or you are probably never going to need it.
[00:25:50] Adam: And so there's, there's no need to continue repeating the same conference talks or whatever, over and over.
[00:25:58] Ben: Cause, cause it, it definitely felt for a while. I'd say for like a S a couple of years, at least that Mongo was just. At least in the vocal community was the default choice. Oh, I'm going to spin up a web application. Of course, I'm going to choose Mongo. I mean, even there was the mean stack M E a N, which I think was Mongo express, angular and node.
[00:26:23] Ben: Obviously that was a very angular focused, stack. But, I, it, again, like, it was just this default new application, of course I'm going to choose a document database, but I've always been a relational guy, so I don't, I was not necessarily on that bandwagon.
[00:26:37] Adam: Yeah. I think you're right. There's a, there's some correlation between what I feel like I have seen is that there's some correlation between people who don't have a whole lot of relational experience and people who. We're like leading the hype train on Mongo. not that they did anything wrong, but like, you are going to champion the thing that, you know, nine times out of 10.
[00:27:00] Ben: Yeah. Yeah. and just to be clear, here I am in no way hating on Mongo DB at all. I don't have very much experience with it. My, my lack of experience is just that a lack of experience. It's not a, it's not a lack of preference. I prefer what I know and what I know is MySQL.
[00:27:17] Adam: I just got a text message from Tim. It says Postgres.
[00:27:20] Ben: Oh, that's so good. Oh yeah.
[00:27:31] Adam: I didn't even think it was that good of
[00:27:33] Ben: we miss you. Well, it just tickled me because I know like, I don't know. It just didn't hit me. It hit me out of nowhere.
[00:27:43] 080 - Other Duties As Assigned - Nipple Cream Story
[00:27:43] Adam: let me throw this out there. I remember one from, if I'm not mistaken from our, origin stories of Bens that I want to throw out, and maybe we can use this as a springboard. you had to, if I'm not mistaken, for your boss, you had to go buy nipple cream.
[00:27:57] Ben: Yeah. Yeah, she was, she was pregnant and I guess this is a thing that happens. And, I was an intern, so not only was it, my first job, I was still quite young and immature. And the idea of walking into, first of all, walking into a maternity store in general was very awkward
[00:28:14] Tim: stores.
[00:28:15] Ben: Oh yeah.
[00:28:17] Ben: New York. They do at least.
[00:28:18] Tim: Oh, okay. All right.
[00:28:21] Ben: man.
[00:28:21] Adam: not just Costco or Publix, whatever you guys have.
[00:28:24] Tim: Dollar general.
[00:28:26] Ben: well, yeah, the, I had to go buy nipple cream and that was just, as a 19 year old kid, that was.
[00:28:35] Adam: Hey, you know what? There's probably a lot of 19 year old dudes who have had to buy nipple cream, a for running, but B also for, for their, partner who was, pregnant
[00:28:47] Ben: Partner. I could
[00:28:47] Tim: but not Ben. Ben was
[00:28:50] Ben: I was more, I'm very happy that I have now blossomed into a wonderful young man, and this would not be a problem
[00:28:57] Adam: Beautiful
[00:28:58] Tim: mortified. yes. He'd be like, yeah, I'm a avid jogger. I need some
[00:29:05] Adam: flower. I've tried. 'em all.
[00:29:06] Ben: when I was a very young kid. So my brothers are they're 10 years older than me. And when I was quite young, I went to visit one of them in, Philadelphia. He was going to a university of Pennsylvania and he took me to condom world in Philadelphia, which was immediately mortifying in and of itself.
[00:29:25] Ben: but then after we went to condom world, we then
[00:29:27] Tim: You guys really do have stores for everything up
[00:29:34] Ben: then. After we did that, we went to, it was like tower records. I think there was some big record store also kind of in that main drag. And so I'm this young, like I think I was like 10 or something. I'm just really young. And I'm walking around with this semi-transparent bag that has boxes of condoms in it. We have to, we go into. And my brother walked in ahead of me and then I'm walking and the security guards, like, sorry, you can't go in. You have to check your bag. And I'm mortified at the idea to go for this bag of condoms to this adult. So I had to yelled at my brother to come, basically save me and I ran outta the store and he had to come and take the bag and check it for me.
[00:30:16] Ben: But,
[00:30:17] Adam: That's
[00:30:17] Adam: hilarious.
[00:30:18] Ben: lots and
[00:30:18] Ben: lots of more
[00:30:19] Tim: I feel like we wandered an after show territory, but I gotta ask. I mean, were they for you or were you just buying them
[00:30:25] Ben: no. He got them
[00:30:26] Ben: for me as a joke, as a
[00:30:28] Tim: Oh, as a joke, right? Sure. A joke. Okay.
[00:30:31] 080 - Other Duties As Assigned - Ben's Hotline
[00:30:31] Ben: At one of my first jobs they had at one point said, oh, by the way, if you hear the phones ringing and the receptionist isn't getting to it, would you guys
[00:30:41] Ben: mind just picking up the phone? And, I somehow turned that in my mind into this like phone answering sport. And I got really addicted to answer the phone and it's like, I wouldn't barely even let a single ring go by.
[00:30:56] Ben: and I was like practicing my phone voice. And,
[00:30:59] Tim: Let's hear it. come on. Let's hear
[00:31:01] Ben: I was trying to be very sultry.
[00:31:02] Tim: Bring, bring, bring, bring, bring.
[00:31:04] Ben: good afternoon, go interactive. How am I help? And
[00:31:09] Adam: number or.
[00:31:13] Ben: and I was just like trying to get like, very sexy about it. And at one point I remember one day this, one of the account reps in our company, this, this woman called in and I answered the phone and she goes, Oh, I'm not sure how I feel about that.
[00:31:29] Tim: Hi, this
[00:31:31] Adam: What are you wearing?
[00:31:33] Ben: so at some point I, they, they asked me to not answer the phones as much
[00:31:38] Tim: is Ben
[00:31:39] Ben: for a while. It was dunno for a while. It was just a lot of fun. oh,
[00:31:43] Adam: Oh,
[00:31:44] 080 - Other Duties As Assigned - Printing Code
[00:31:44] Tim: That's so you just kicked off a memory that was deeply buried. I mean, this is, I guess this is kind of trauma for me. so we had, so my first real tech job, we had a co-founder who didn't last very long, but so one of my jobs for him was I would have to print out. So he was like from the mainframe era, right?
[00:32:06] Tim: So he, like, everything goes, he would have me every day, print out the current state of the code of the source code onto like the dot matrix, you know,the big, really wide green and white sheets.
[00:32:20] Tim: You know what I'm talking about? perforated sides.
[00:32:23] Adam: When you say the current state of the code, you mean just print out the application itself,
[00:32:26] Tim: the entire application. I would print it out every morning. Because he would go through it like a teacher and like, like he would like redline different things. Yeah. He would read. And I'm like, what are you doing? He's like, I'm just going, I'm reviewing the code. I'm like going through the code.
[00:32:44] Tim: I'm like, why don't you just pull up on your monitor? He goes, this is just how I do it.
[00:32:48] 083 - Alternate Timelines - Parks Department And The Caesars
[00:32:48] Ben: Well, I'll tell you. So I went to school for computer science and I think like the summer of my junior year, like between junior and senior year in college, I had this sort of. Moment of panic, where I thought that, being inside in an office was just gonna be absolutely terrible. and I had just been really starting to get into hiking and reading, like, bill, Bryson's a walk in the woods and looking at trail maps and stuff.
[00:33:17] Ben: and I had this idea that maybe what I should do with my life is become a parks department employee, and like maintain trails and just the yeah. Yeah. Like being outside all day and hiking through the woods and fixing up camp sites and helping people who are in trouble, it seems super attractive.
[00:33:35] Ben: and I, and for a brief moment, I mean, this is maybe like a two, three week period. I thought I had made a terrible mistake going to school for computer science, that passed. And I've since been,extremely happy, but, But there was a brief period where I really thought it would've been awesome to be in the parks department, communing with
[00:33:55] Tim: It's funny. So I'm so I'm thinking about my early life. I, yeah, after I made that pivot where I decided I didn't wanna be a nerd
[00:34:03] Ben: really.
[00:34:04] Tim: I had this, like, I, I was full nerd and then I was like, no, I don't wanna be a nerd anymore. went totally like creative type. So like when I moved to Brooklyn, 1990, I was in Brooklyn for four years and, had a band, I was trying to break through as a musician.
[00:34:18] Tim: I was a singer trying to get into acting and stuff. So yeah. Yeah. It was complete failure and I couldn't afford living there, so I eventually had to move back. but yeah, I mean, I guess that's kind of why I do the, the extra background work. Just kind like get that taste of what could have been.
[00:34:34] Adam: I could have been a contender. I just needed someone to gimme a break. You know,was your band called?
[00:34:40] Tim: my band, the Caesars.
[00:34:43] Adam: Okay. That's why
[00:34:44] Tim: yeah. That's why I failed. Yeah. Yeah, again, that history tie in. So yeah. But yeah, we had different bands. We, it, it was during the swing dance kind of phase. So it was kind of a slight, it wasn't a full big band and we couldn't afford that, but you know, it was kind of like the Harry con Jr kind of kind of stuff.
[00:35:03] Tim: So yep. not work at all.
[00:35:08] 084 - The Architectural Support Team with Jason Henriksen - Carol's Big Giant Triumph
[00:35:08] Carol: I've been out for like, you know,ever actually three weeks. Yeah. You hadn't know this
[00:35:13] Adam: We didn't
[00:35:13] Adam: notice.
[00:35:14] Tim: notice
[00:35:14] Carol: I kind of got married it
[00:35:17] Ben: Congratulations. Very
[00:35:19] Carol: is so great. I'm so happy. Our honeymoon was amazing. I needed some downtime. He needed a break from work. He works a crazy job and it's super stressful and just has a lot going on. So we needed to rest.
[00:35:32] Carol: So it was nice to just be in a hotel room and watch Netflix and go eat breakfast and watch more Netflix and then walk around on the beach and take a nap with no stress. It was just, it was the best I need the honeymoon more often or just vacation. I don't
[00:35:46] Carol: know.
[00:35:48] Ben: exciting.
[00:35:49] Tim: That's awesome. Yeah. I saw lots of
[00:35:52] Carol: Yeah, we did. And the wedding went good. So everything's great. Yay. So triumphs for me.
[00:35:58] 084 - The Architectural Support Team with Jason Henriksen - When Is An Architect Involved?
[00:35:58] Tim: let me ask then, since you are architecture support, which kind of surprised me, right? I have saw it as like what you said you don't do the sort of top down driven. Here's the architecture, everyone conform. how do you, or how do other people know when architecture support needs to get involved?
[00:36:15] Jason Henrikson: That's a great question. we come in towards the beginning of a project sometimes even before, we've decided if we're going to do a project or not. And sometimes we come in because something isn't quite going. Right. I've spent a lot of my career as a consultant and we used to have this kind of motto that nobody calls a consultant when everything smells like roses,
[00:36:35] Tim: for
[00:36:35] Tim: sure.
[00:36:36] Jason Henrikson: yeah.
[00:36:37] Jason Henrikson: There's some kind of, there's some kind of impedance, so there's some kind of a concern and then we'll come in and say, Hey guys, what are we doing? How is it going? Another thing that we do with our team is all of our architects. Spend half of their time embedded in a team.
[00:36:52] Carol: Oh, that's cool.
[00:36:53] Ben: That's
[00:36:54] Jason Henrikson: it's the only way to really know what's going on. So, like you said, with the support guy, he's the one that really sees what the customers are doing. If your architect isn't down in the weeds, helping do the coding, they only kind of know what's going on. And so that allows us to really have a good visibility.
[00:37:12] Jason Henrikson: So when the architect's on the team, I mean, are they just a contributor considered for that halftime? They're not like in charge, but if they do see something that they think is architectural
[00:37:21] Ben: nice.
[00:37:21] Tim: they raise a flag.
[00:37:23] Jason Henrikson: that's exactly right. we commit, we act as regular engineers. The only difference is that the architect has the court architect team to go back to and consult with and say, Hey, these guys are doing this and those guys are doing that. Oh really? Cuz these guys over here are doing a whole different thing.
[00:37:41] Jason Henrikson: can kind of build those bridges to get people to talk. And then generally the architects have a little bit more of a involvement with the management. big part of the architecture is helping to convince the upper management of the decisions that need to be made, you know, say, Hey, we've done this analysis.
[00:37:57] Jason Henrikson: We've written a write up we've broken it all down. And here's why we think this particular service is worth buying or that particular technology is worth avoiding. that make sense?
[00:38:08] Carol: It does. So like if the engineering team comes up with a solution and you go through it and you're like, yeah, that's cool. Like, you'll go to bat with like the executives and be like, Hey, like we've looked at this, we've looked at how it impacts the company. And we think this is a good decision. So
[00:38:22] Jason Henrikson: Exactly. Another thing the architects end up doing is something
[00:38:26] Tim: Interesting.
[00:38:26] Jason Henrikson: many engineers often hate to do, that's talking to people.
[00:38:32] Adam: Uh,
[00:38:33] Jason Henrikson: you
[00:38:33] Jason Henrikson: on this call. I mean, I think you guys are all past that, but there, there are a lot of
[00:38:37] Carol: code is
[00:38:38] Jason Henrikson: I'm even having a guy right now that I have to convince him that he wants to join the team because he's nervous about having to do the
[00:38:45] Carol: so
[00:38:46] Jason Henrikson: and the writeups that are a part of the job.
[00:38:48] Jason Henrikson: a lot of engineers would really rather not do that.
[00:38:53] Carol: pretty.
[00:38:56] Adam: I'm kind of struggling to get a concrete picture in my head of exactly what the job of architect is for that halftime, that you're not a, an individual contributor to the best of my understanding so far, it sounds like. the job is to, have a broad awareness of what's going on across the company so that you can see where people are kind of, reimplementing the same things and push them to talk to each other.
[00:39:20] Adam: Is there more to it than that?
[00:39:21] Jason Henrikson: Definitely. Although I'm glad you mentioned what you just said, because that is a really big part of it. It takes a lot of time to, to collect that information from the various teams to build them up to the point where they trust you to share that with you. But another big part of it. In fact, I have a presentation where we kind of say, what is the architecture team responsible for?
[00:39:41] Jason Henrikson: let me just bring it up. And I'll read you a couple of little bits off of it. I mean, we provide, Cross product ownership, especially of, the little pieces and services that aren't owned by anybody else.
[00:39:52] Carol: Oh,
[00:39:54] Jason Henrikson: you guys have all seen this, like here's a critical piece of business functionality.
[00:39:58] Jason Henrikson: Nobody remaining at the company has any idea how it works.
[00:40:01] Carol: yeah.
[00:40:02] Ben: Oh, too close, too close to
[00:40:04] Ben: home.
[00:40:05] Jason Henrikson: we had a thing where a customer exited and somebody had to be responsible for
[00:40:10] Ben: how big is the
[00:40:11] Jason Henrikson: of their data onto CDs and making certain that we kept none of it. got that. the metaphor I like to use is we are both the, a team and the janitorial staff. if nobody else can help we come in, if nobody else wants anything to do with it, come in.
[00:40:29] 086 - The Working Code Test - Ben's Rant on Linting
[00:40:29] Ben: let me draw one more thing here. and just because everybody has a different mindset and things are important to different people in different ways. So going back to this idea that having testers can make developers sloppy. it's a little bit to me when I hear people on various podcasts say that, oh, if you just use prettier or standard or something to that effect, then you don't have to worry about formatting your code.
[00:40:53] Ben: Like I'll just write garbage code on the screen. And I hit command S and the tool auto formats, the code for me. And I'm always like, wait, what? You're not thinking about the formatting of your code. Like. How do you do that? How do you not? And it'd be like writing pros without worrying about punctuation.
[00:41:11] Ben: Like you, as someone who thinks about writing, like, it wouldn't make sense. Like that's not a gesture that makes sense. Like it's mathematically impossible. and so that's why I get a little weary of having too much of a, of a safety net of a QA team. Cuz it's like, you just start to, it's like you turn off parts of your brain.
[00:41:31] Ben: And I don't mean like you're getting dumber. I just mean like it's like you're turning off parts of the algorithm that always used to be there. and I get very nervous about that.
[00:41:38] Adam: Well, yeah, I mean, again, no surprise to hear that you have concerns about ING, and four matters, but, I, and it's funny, cuz I used to have that exact same opinion. when I first saw and heard people talking about prettier, I was like, why? but I can just do that by hand, but, and I can't explain
[00:41:57] Adam: how
[00:41:58] Adam: I came to change.
[00:41:59] Ben: it's not even that you can do it by hand it's like my mindset is that I can't not do it. it's not like I'm opting in it's that in order to do it, I'd have to start opting out of that mentality. And I don't know how to, that feels more unnatural to me than worrying about formatting. let me draw an even crazier analogy. So, I have a big fear of physical violence. Like I have a big fear of getting attacked, by random people. And so over the years, I always, I play this game with myself where I see people do stuff that doesn't make sense to me. And I think to myself, What they're doing, doesn't make sense, like where on the scale of how likely they are to become violent, because their view of the world is so different than mine.
[00:42:40] Ben: and it's like super ridiculous things. Like you get into an elevator and then someone else gets into the elevator and you're in a closed space and they start whistling and you're like, whoa, that's crazy. And you're like, if you're willing to get into an elevator with someone else that you don't know and just start whistling, like how likely are you to then become violent?
[00:42:59] Ben: Because your view of the world is so skewed. And obviously that's like, a nonsensical jump, but like, it's a nuance scale.
[00:43:07] Adam: Like what if they have sunglasses?
[00:43:09] Ben: right. Yeah. Like you're inside and you have sunglasses on, come on, man. Like I'm like moments away from being attacked. but so when I think about people who don't think about the formatting of their code while they're writing it, I'm like, what else. What else are you not thinking about? Like what else in the world of software development's not important to you in a way that it is important to me? And like, how does that actually affect our ability to work together? So some of that linking is like a, I don't wanna say red flag is, that's like that's too.
[00:43:41] Ben: That's not really, it's not that extreme, but it's a, it's just like a moment where you're like, oh, this person sees the world in a way that is different than I see the world. And is that gonna become a point of friction for us? And it's a question, mark. So I forget how we got onto this
[00:44:00] Adam: Doesn't matter. It was. Do you have testers?
[00:44:14] 087 - Note To Self v0-2-0 - Overly General CSS Selectors
[00:44:14] Carol: Dear diary, overly general CSS selectors are the worst. The worst input type techs makes it much harder to override PS. I discovered sunglasses and they're amazing love then
[00:44:34] 087 - Note To Self v0-2-0 - 2015 Called, It Wants It's Build Script Back
[00:44:34] Adam: note to self. I wrote my first gulp JS plugin, 2015 called it wants its build script back.
[00:44:44] Ben: Yeah.
[00:44:45] 087 - Note To Self v0-2-0 - Sharpening My Blade
[00:44:45] Carol: Note to self. I spend a lot of time sharpening my blade, which I often think is a waste of time. However, upon reflection. I see that so much of what I glean in my experimentation, is such that I end up applying to work.
[00:45:01] Carol: So maybe it's not a waste of time hearts and kisses, Ben.
[00:45:09] 099 - Technical Debt Isn’t Always A Choice Or Is It - No Tests As Technical Debt
[00:45:09] Ben: I had an lol at work earlier today cuz someone, So at work we do these things called DA and I, and I can't even remember what a DACI stands
[00:45:17] Ben: for. It's like daci, it's a D D A C. It's a decision
[00:45:22] Carol: Yeah, it's a tree. So you basically, how you come up with a, an answer to a question,
[00:45:26] Ben: It's like we need to do this thing and here's options A, B, C, and D and here's the pros and cons and like the level of effort and the cost of doing all these things.
[00:45:35] Ben: And you figure out which one you're gonna do.
[00:45:37] Carol: it's kind of cool. Mm-hmm.
[00:45:40] Ben: it's interesting. so anyway, in the option, someone asked for my feedback, they're like, Hey, can you jump in and leave some feedback about option D? And it's talking about all the risks and then under all the mitigations, they're like, Oh, we'll mitigate the risk by having lots of unit tests and integration tests.
[00:45:56] Ben: And I was like,
[00:45:56] Adam: Uh, talking to the wrong
[00:46:00] Adam: guy.
[00:46:01] Carol: Yeah.
[00:46:02] Tim: Oh, Ben,
[00:46:03] Ben: Yeah, But you know, I mean that's, so, but it is a fascinating question as well because as I've said before, which Adam Cameron refuses to agree with ever, which is that, I'm the o
[00:46:16] Tim: he ever.
[00:46:17] Ben: I'm the only one who's ever gonna touch this code. And, and it just doesn't feel like Tess are, are a value add. And I'm not saying Tess are never a value add, I'm saying in this context, it's, it's me and then it's the trash bin.
[00:46:29] Ben: Like there is no, there is no one afterwards. So to me it's not technical debt, but to all onlookers. Perhaps it is.
[00:46:39] 099 - Technical Debt Isn’t Always A Choice Or Is It - YOLO, Yeeting and Sending It
[00:46:39] Ben: The other piece of technical debt, when I scraped the bottom of the barrel here, looking for things that I calculated a decision on was, doing a lot of on the fly SQL calculations. you know, like reading in hundreds of thousands of rows and
[00:46:54] Ben: arrogant.
[00:46:55] Carol: Yeah.
[00:46:55] Ben: Because you're like, I don't know if anyone's gonna use this.
[00:46:58] Ben: I'll counts and some sums and like, there's no really great indexes on this table, but whatever. Like, just, you know, grip it and rip it. Let's do this. And,
[00:47:06] Ben: uh, yeah. So some of That stuff really, Yeah. Yeah. Yeah. There's, there's been some queries that have taken database to a standstill.
[00:47:14] Tim: They don't age well. No.
[00:47:16] Ben: No.
[00:47:18] Adam: For some reason this week at work, I've found myself using the terms Yolo and ye
[00:47:23] Carol: You
[00:47:24] Adam: frequently.
[00:47:25] Ben: I don't know the second one. What was it? Ye
[00:47:28] Tim: ye
[00:47:29] Tim: throw something.
[00:47:30] Adam: Why? E e t? Ye
[00:47:33] Adam: it just like launch. It's just chuck
[00:47:35] Carol: Mm-hmm.
[00:47:36] Tim: Don't ye. It's the fetus.
[00:47:39] Adam: It's just, when you said grip it and rip it, that's probably the, the most analogous
[00:47:44] Ben: I like it.
[00:47:44] Adam: thing and I feel very old using the same, using, analogous and ye in the same sentence.
[00:47:51] Tim: Wow.
[00:47:53] Ben: Did anyone ever watch the Tosh Point? Oh, Daniel TA's, clip
[00:47:57] Adam: I've seen it never religiously
[00:47:58] Tim: Seen it.
[00:47:59] Ben: There's one, there's one guy he interviewed. It was this guy. He was gonna do like a jump with a, on a snow, on a snowmobile. Yeah. And I forget, he's like trying to figure out whether or not he is gonna make it. And he looks at the camera and goes, Y'all silly.
[00:48:13] Ben: I'm still gonna send it. And it's just like he's become my, my go-to mental model for anything
[00:48:20] Tim: I, I'm gonna have to Google that.
[00:48:21] Ben: that's the best.
[00:48:23] 098 - In Defense Of Working On The Legacy Platform - Legacy And The Legacy Platform
[00:48:23] Ben: I'll tell you, I, I know I've brought up the, the base camp guys a bunch of times. I'm a huge fan of theirs and, DHH said something in either, I think it was an interview, and he said, The cost of building a legacy is having a legacy platform. and. Something to that effect.
[00:48:41] Ben: And, and that kind of struck a chord to me. It's like, the way I interpret that is, in order to build your legacy, you have to not forget about the people who, who allowed you to build that legacy. and, and that's, and that's how I look at the legacy platform is I don't wanna forget about these customers.
[00:48:59] Ben: These are the customers that allowed us to build what we have today and, and they deserve to not be forgotten.
[00:49:07] Adam: Well.
[00:49:08] 100 - The Spicetacular - Intro
[00:49:08] Adam: Okay, here we go. It is show number 1 0 100 The Spectacular. And I regret everything. I quit
[00:49:19] Adam: Uh,
[00:49:20] Tim: guys.
[00:49:21] Adam: I can't
[00:49:21] Adam: believe it.
[00:49:22] Carol: it.
[00:49:22] Adam: Thanks for coming on this journey with us.
[00:49:24] Tim: All right. What's our topic tonight?
[00:49:26] Adam: So the topic for tonight is nothing. We're, we're done. Uh, great episode. Your heart matters. Thanks for coming.
[00:49:32] Tim: You can't get off that easy.
[00:49:36] Adam: Oh, it's this thing. We're gonna, we're gonna eat some spicy food here. We got a bunch of questions from listeners, and Tim is gonna empty this whole thing because he's our resident spice Lord. Um, so he won't be as perturbed by these things as the rest of us.
[00:49:52] Tim: And now, hey, I'm not saying I'm not gonna have moments where I have to take a minute, right? might have to take a
[00:49:58] Carol: I'm so excited.
[00:49:59] Tim: right? So you guys ready for ready to get going?
[00:50:03] Adam: Absolutely
[00:50:04] Carol: we say thank you to Sean? Didn't he send us some of
[00:50:06] Adam: he did and we
[00:50:07] Carol: awesome flavors?
[00:50:09] Tim: Yeah.
[00:50:09] Ben: you so
[00:50:10] Carol: Yeah. I love the bottles. I love the, My favorite was Carol. I love that I have my own sauce. I won't say that the rest of the guys also got their own sauce. I'm just gonna say there was definitely one named Carol and it looked kind of ginger like, so I really liked it.
[00:50:22] Carol: Yeah,
[00:50:23] Adam: I didn't even pick up
[00:50:24] Carol: orangey. It's very
[00:50:25] Carol: orangey.
[00:50:25] Adam: It is the
[00:50:26] Tim: yeah.
[00:50:27] Tim: It's, it will steal our soul. Yeah. No, thank you. Sean Oden, aka Papa Bear for, for sending these. Um, I have, I have not tasted them.
[00:50:36] Tim: I have not. I wanted to be surprised. He recommended that I do. Uh, but I'm not tasting. He gave us kind of the line, So he sent us six hot sauces.
[00:50:45] Tim: Three
[00:50:45] Tim: of them. He made himself, um, I think two, No, three. yeah,
[00:50:51] Adam: into the.
[00:50:52] Tim: three and three. I can math. Um, three of them are purchased, uh, the hotter ones. And then I have two sauces that I, one that I made. And the other is the, uh, dreaded de bomb. If you hipper
[00:51:06] Tim: watched.
[00:51:07] Adam: insanity
[00:51:08] Tim: Yeah. Beyond Insanity. If you ever watched Hot Ones on YouTube, uh, the Bomb is kind of the one that that really kind of sets the bar
[00:51:15] Tim: yeah.
[00:51:16] 100 - The Spicetacular - Sauce 6: Da Bomb
[00:51:16] Tim: De bomb de bomb's coming up. Ooh, I got lick my finger. I got a little bit of
[00:51:19] Carol: Boy. Oh boy.
[00:51:23] Adam: Technically, there's
[00:51:24] Adam: some in the bowl. I'm not looking forward to this one.
[00:51:29] Ben: What's the smell like?
[00:51:32] Adam: Does it smell like
[00:51:32] Adam: pain,
[00:51:33] Carol: gonna
[00:51:34] Carol: shake it.
[00:51:35] Ben: It has notes of death.
[00:51:38] Adam: and poop
[00:51:38] Carol: like it's gonna explode.
[00:51:40] Adam: and corn?
[00:51:41] Carol: has like a, uh, like a chili, like, um,
[00:51:45] Adam: Oh
[00:51:45] Adam: yeah, Like chili? powder.
[00:51:46] Carol: Yeah.
[00:51:47] Tim: Mm-hmm.
[00:51:48] Carol: powder
[00:51:48] Carol: kind of.
[00:51:49] Tim: You guys ready?
[00:51:52] Tim: 1,
[00:51:52] Adam: on there.
[00:51:52] Carol: Ooh, God.
[00:51:57] Tim: It tastes terrible. It really does taste awful.
[00:52:00] Ben: Oh.
[00:52:01] Carol: is.
[00:52:04] Tim: It is not a tasty sauce. It's like,
[00:52:09] Ben: Oh God. Oh, that's not fun. not fun.
[00:52:17] Adam: But it's fun to watch you
[00:52:22] Adam: al. It's a, it is a terrible sensation to be cracking up at somebody else's pain and also in pain.
[00:52:30] Tim: But
[00:52:31] Adam: Ow.
[00:52:31] Tim: is
[00:52:31] Ben: Oh
[00:52:32] Tim: only
[00:52:33] Tim: It only it's gonna get
[00:52:35] Adam: Oh.
[00:52:36] Tim: next minutes.
[00:52:36] Ben: Uh, yeah.
[00:52:40] Carol: I'm,
[00:52:42] Ben: Uh,
[00:52:43] Ben: yeah.
[00:52:45] Carol: Oh God. Oh, it's getting way worse.
[00:52:48] Carol: It's,
[00:52:49] Tim: it's gonna get worse.
[00:52:50] Ben: Uh
[00:52:50] Tim: The first bite is not the worst.
[00:52:52] Carol: Oh
[00:52:53] Carol: God.
[00:52:58] Adam: Try not to cough. Try not to cough. Oh
[00:53:00] Adam: my God.
[00:53:00] Ben: Ah. It
[00:53:06] Tim: I don't think I've ever heard Ben Curse this much.
[00:53:10] Adam: Ow.
[00:53:10] Ben: I
[00:53:10] Ben: think I'm,
[00:53:10] Carol: Okay, that's the second time I've spit
[00:53:12] Ben: Oh,
[00:53:12] Carol: out.
[00:53:14] Tim: Oh,
[00:53:14] Carol: Oh God, this is awful.
[00:53:17] Carol: Oh God.
[00:53:19] Carol: Whoa.
[00:53:22] Ben: I gotta
[00:53:23] Ben: Oh.
[00:53:26] Tim: To leave
[00:53:29] Tim: being had to leave.
[00:53:31] Ben: oh.
[00:53:32] Carol: Oh,
[00:53:36] Adam: Oh,
[00:53:37] Tim: So guys,
[00:53:38] Adam: who would choose to eat that?
[00:53:40] Ben: Uh
[00:53:40] Tim: what,
[00:53:41] Carol: oh.
[00:53:41] Tim: would you do if you
[00:53:42] Ben: uh.
[00:53:43] Tim: you wouldn't get in trouble for it?
[00:53:45] Ben: The ?
[00:53:47] Tim: What would you do if you knew you wouldn't get for it?
[00:53:51] Ben: Oh.
[00:53:52] Tim: kill me right now
[00:53:53] Adam: Uh, I would find the guy who, the guy would find the guy who created this sauce and I would in his pants,
[00:53:58] Ben: Oh,
[00:54:02] Carol: Oh, oh,
[00:54:09] Adam: Oh,
[00:54:09] Tim: Oh.
[00:54:10] Ben: uh
[00:54:11] Carol: oh,
[00:54:13] Tim: So after all that warning about not touching your eye, I had a paper towel on my finger, but
[00:54:19] Tim: that
[00:54:19] Adam: Oh,
[00:54:19] Tim: got through.
[00:54:20] Adam: oh, that sucks.
[00:54:25] Carol: oh yeah.
[00:54:26] Adam: So we just, we just, pepper sprayed ourselves in the mouth. Right.
[00:54:29] Tim: You buddy?
[00:54:32] Ben: I am very not. Okay.
[00:54:34] Carol: Oh,
[00:54:38] Ben: which one have you made this?
[00:54:41] Tim: No, this, so this is, is,
[00:54:44] Carol: God.
[00:54:44] Tim: this is a bot sauce called De
[00:54:46] Carol: Oh my God. This is
[00:54:48] Adam: Beyond Insanity.
[00:54:49] Tim: Beyond insanity.
[00:54:54] Ben: I'm, I'm done. This is ridiculous. This is not how people live.
[00:54:56] Carol: I can't eat you, Tim. I'm sorry.
[00:55:01] Tim: So
[00:55:02] Carol: I'll throw up. I'm
[00:55:03] Carol: sorry.
[00:55:05] 104 - Alexa Make A Podcast About AI - Ben's Triumph
[00:55:05] Ben: Yeah, and I'm gonna go with a triumph, I'm gonna call it a soft triumph cuz it's triumph laced with a little bit of sadness. But,I, I've decided that the current project that I'm working on, on the legacy platform, I'd like it to be the last project that I work on for the legacy platform. I'm. I'm tired of living on the edge and like never quite knowing when the legacy platform is gonna go away.
[00:55:27] Ben: And I'm tired of trying to fight against the current. I sort of just, I just wanna let go of all that baggage and, move over to the new platform and kind of be looking in the same direction with everybody else.
[00:55:41] Tim: Good for you.
[00:55:42] Carol: Wow.
[00:55:43] Tim: Wow.
[00:55:44] Ben: it's
[00:55:44] Tim: That's huge.
[00:55:46] Ben: you know, I am a little sad about that, but, I started having a one on.
[00:55:51] Ben: Meaning weekly with one of our director of engineering for the platform. And, she's the first person that I've really started opening up to in a, in like a reporting structure kind of way. And it sort of just, I, I don't think I realized quite how frustrated I was until I started telling someone how frustrated I was.
[00:56:11] Ben: And, it just, it opened up a whole lot of emotions and, and I don't know, I just sort of lost, I lost. The desire to fight, you know? And, and I sort of just wanna be on the same page with everybody else. hold on. I had one more thought in there. Give me one second.
[00:56:26] Carol: Okay, you got it.
[00:56:27] Ben: what the heck? I know I had like, something was bouncing around in my mind. Oh yeah. Oh yeah. So the other thing is that, we've been slowly migrating all of our enterprise customers off of the legacy platform, and we're basically done. There's. Four or five enterprise customers left on Legacy. And the thing about having the legacy, the thing about having the enterprise customers there is that that was my connection to the customers because Enterprise have support contracts and they talk to our customer facing team.
[00:56:57] Ben: And then I can talk to our customer facing team and get a sense of what our customers are liking, what they're not liking, where there's maybe some opportu. Now that it's just non-enterprise users on the legacy platform, there's, there's really no communication channel me. They, they don't even really file support tickets.
[00:57:14] Ben: Cause they don't, I don't even think, I don't even know if they can file support tickets.
[00:57:18] Tim: They're all,
[00:57:18] Carol: They've turned that off
[00:57:20] Ben: Yeah. Honestly, I'm, they might not be allowed to. So there's like, I think there's a public forum they can participate in. It's, it's, I'd like, there's no more connection between me and the customers, and it was really the customers that was driving me to wanna improve the legacy platform.
[00:57:36] Ben: And if I can't communicate with them, I feel like I'm really working in an echo chamber and, and I, and I got no one to talk to anymore. So, yeah, it's time to move on. Time to move on to the new platform.
[00:57:49] Carol: So when you said that this was gonna be your last project, I got emotional for you, like, and then when you kept talking, I got a little sweaty. Like this a lot, lot to take in all at once. Like it's been your baby for so long and it's been your life that. hear you've hit that point where you're okay moving and you're okay letting go and just seeing what the future holds, man, you got in my emotions tonight, Ben.
[00:58:18] Tim: I, I mean, he, he's had a relationship with this thing as long as you've had kids, Carol
[00:58:25] Ben: Well, you know what I, I want to go watch, there's a Netflix show, I think I mentioned it many, many, many episodes ago. There's a Netflix show called Seven Days Out, I think, and, or one Week Out, something like that. And it's, and it's a bunch of episodes. Each episode is completely separate one of them is about the Cassini satellite that they crashed.
[00:58:45] Ben: Saturn or Venus or something. And, it's, it's, it's a whole episode about things coming to an end and, and how emotional everybody gets. And I feel like I need to go and watch that, one more time just to like get all the cries out.
[00:58:59] Tim: Hey, if, you want something similar without rewatching, I just on Amazon Prime, I watched, goodnight. OPPI. It's about the, the opportunity probe, the rover that was on Mars that, you know, only supposed to be a 90 day and it lasted like 15 years, I think.
[00:59:15] Ben: Oh
[00:59:16] Tim: And like the relationship that this, it was pretty well done.
[00:59:18] Tim: They very. They very anthropomorphized. These, these, the robots that, that were on Mars, but just the whole relationship that these teams had with them, and I mean, they got at the end, I'm crying like, like Rover.
[00:59:34] Carol: actually, that's one of the few things I have watched, and I agree. At the end of it, I was bawling like a baby because you built this emotional connection with the products that you're working on and what you're delivering, and when you thought it was going to only survive a year and it gave you 15, you're like,
[00:59:50] Tim: Yeah.
[00:59:52] Carol: How do you let go?
[00:59:53] Ben: I
[00:59:53] Carol: do let go?
[00:59:54] Ben: I totally get it. Well, there's, in, in the episode I'm talking about, on Netflix, there's, they, you know, nasa, they calculate everything down to like the half second, practically, even despite the fact it's hundreds of thousands of miles away and they, as the satellite is crashing into the atmosphere, they have an estimate of when it'll stop being able to send back.
[01:00:16] Ben: And they hit that mark and then it continues to send back data for like another 30 seconds or 60 seconds. And I was like, oh my God, it's still the love
[01:00:24] Carol: ho, ho, ho.
[01:00:26] Ben: You go buddy. You go
[01:00:28] Tim: Yeah. That's cool. I'm proud of you though, a bit, I mean, it's, it's scary. It, it, it, but, you know, all things that are worth doing are scary at first.
[01:00:39] Ben: yeah. It'll be big. And I'm, and I'm sure I'll have a lot to say about it as, as time goes on. So.
[01:00:44] Tim: yeah. Well, what we'll have to recall are I work on a legacy platform sticker now.
[01:00:50] Tim: Oh wait,
[01:00:50] Carol: timing,
[01:00:51] Tim: oh wait, red Bubble. Laurie did that. Nevermind.
[01:00:54] Carol: as we're shut down.
[01:00:58] 104 - Alexa Make A Podcast About AI - Alexa Writes A Song About Postgres
[01:00:58] Tim: So do you guys, do you guys know that? So Alexa's coming up with a new feature that's that's coming out that they will, You can have Alexa tell you a bedtime story or just any sort of story. Yeah. And it will come up with story and sometimes little pictures and music and like different voices. And so you give it maybe a prompt or something, you know, tell me a story Alexa, about, you know, this
[01:01:20] Tim: And it just, and I'm just worried, you know what happens whenever you ask a story and it's like, don't give your kids nightmares for weeks. Cause it goes up with a scary
[01:01:29] Carol: The wrong one, right?
[01:01:31] Ben: Well, years ago, I mean, maybe like four years ago, five years ago, at work, I forget, we had some sort of meeting and there was like goody bags and everybody got some sort of a, an Alexa dot or something, some sort of, you know, like little round speaker thing you keep at home. And I turned it on. And me and the misses were sitting there and we were trying to figure out how it works and asking questions and, and it just like didn't understand a lot of the questions.
[01:01:59] Ben: And finally I was like, Alexa, why is my wife so hot? And it was like, I'm sorry, I don't understand that question. I was like, this thing's dumb. And I turned it off and I never turned it back on
[01:02:11] Tim: I'm sure it's gotten better. Let me give you another example. So I, I posted this on our Discord for, patrons. I said, write a limerick about a code monkey. And so here's a limerick, A code monkey with no degree works hard with great tenacity, though he's not a pro, he codes like he knows that his work will bring prosperity
[01:02:33] Ben: Oh my God, that's kind of great.
[01:02:34] Carol: great. That's actually amazing.
[01:02:37] Tim: And I also did one. the prompt was write a, a Bible song. A Bible song about PostgresSQL. It's pretty long, so I won't give you the whole thing. I'll just give you the, the, the first verse and the chorus. My heart will sing. Your praises oh Lord of PostgresSQL. For you have given us a powerful tool to store and query data with ease.
[01:02:57] Tim: It is a gift of such great magnitude. And here's the chorus, hallelujah. Praise the Lord of PostgresSQL. It is such a gift. It's a gift of such great grace for you have provided us a way to store and query data with ease,
[01:03:11] Ben: Oh my. Wait, so what? What is it? What's generating these things?
[01:03:15] Tim: That's the same thing. The, the beta, open ai.
[01:03:18] Tim: Yeah. Yeah.
[01:03:20] Ben: Well, now I gotta try it. That's, this is, this is just a lot of fun sounding
[01:03:24] Tim: It is pretty
[01:03:24] Carol: all so silly. So silly.
[01:03:27] 106 - A Cascading Cataclysmic Christmas - Asteroid Simulator
[01:03:27] Tim: this is this really quick. This just won't take long. So if you wanna see what would happen if a, asteroid hit your town, let's, uh,
[01:03:36] Adam: Hmm.
[01:03:37] Tim: neil.fun. Asteroid launcher. We'll put the link in the, the show notes so you can put in your address or your zip code. And for some reason it starts with New York, so I don't know what that
[01:03:47] Tim: has going on there, but, so you can select an implant.
[01:03:50] Adam: Oh, cool. You can choose your impact angle speed and the diameter and what type of asteroid it is.
[01:03:56] Tim: Mm-hmm. how big it is. Yep.
[01:03:58] Adam: I'm just a, a golden one. A gold asteroid.
[01:04:02] Tim: Ooh.
[01:04:02] Adam: gonna smush.
[01:04:03] Tim: Yeah. Mine's gonna be, carbon.
[01:04:05] Adam: Well, hang on. I'm, I'm definitely gonna blow up New Jersey, so they're, I'm not gonna use a gold one.
[01:04:12] Adam: We'll do a 66 degree angle.
[01:04:14] Tim: put,
[01:04:14] Tim: Macon.
[01:04:16] Adam: Boom. That's pretty.
[01:04:19] Adam: So I got a 15, 1,500 foot diameter carbon asteroid. I'm going at 38,000 miles an hour at 45 degree angle launch asteroid. It's gonna make a 3.2 mile wide crater. 13,000 people are gonna die. It's 1,586 feet deep. That's weak, buddy. I, I, I crushed your crater
[01:04:40] Tim: you crush your crater
[01:04:42] Adam: I killed an estimated 810,000 people. Crater is 0.65 miles deep.
[01:04:49] Tim: Ooh.
[01:04:50] Adam: 48 miles wide.
[01:04:52] Tim: Is that because it's gold?
[01:04:54] Adam: No, I was, I did an iron crater or
[01:04:56] Adam: iron
[01:04:56] Tim: okay. Iron.
[01:04:57] Adam: comet or whatever it was,
[01:04:59] Ben: That's pretty.
[01:05:00] Tim: this size happens once every 47,000 years and it'll make a fireball 5.1 mi 5.1 miles wide and kill an Es. Kill an estimated 133,000 people.
[01:05:14] Ben: Oh my goodness.
[01:05:15] Adam: I got a, the Fireball, so I hit New Jersey like Southern New Jersey, just kind of across the river from Philadelphia. and the Fireball stretches out to Columbus, Ohio, down to like Charlotte, North Carolina.
[01:05:30] Tim: Yeah, people 19 miles from the impact their clothes would catch on
[01:05:34] Ben: oh my God.
[01:05:35] Tim: And then the shockwave. So 56,000 people will die from the shockwave
[01:05:41] Adam: Oh my
[01:05:41] Tim: within 34 miles will collapse. Homes within 48 miles will collapse.
[01:05:46] Adam: And he won within 309 miles would likely receive lung damage.
[01:05:50] Tim: and then the wind, 92,000 people would die from the wind blast.
[01:05:53] Ben: Oh.
[01:05:55] Adam: I got 24.
[01:05:58] Tim: Whoa.
[01:05:58] Tim: Holy
[01:05:59] Adam: your asteroid is weak friend
[01:06:01] Tim: You're, wow. You've op
[01:06:04] Adam: we're doing asteroid tear now.
[01:06:07] Tim: Yeah. Goodness. That's scary. Yeah. So just a little fun if you know, you know, you're feeling cataclysmic and one
[01:06:15] Adam: Somebody gets on your nerves, you really wanna drop an asteroid on 'em, see how precise you can drop it on their head and, and,
[01:06:22] Adam: uh, only blow up their neighborhood
[01:06:24] Tim: out, ex-girlfriend out in San Francisco. Just, you know, see what happens.
[01:06:30] 076 - Ben Needs A Minute - Brought To You By Ben's CRM
[01:06:30] Adam: Well then this episode of Working Code is brought to you by Ben CRM. For that time, your friend did that thing that you want to remember now firstname.lastname@example.org. And listeners like you
[01:06:41] 080 - Other Duties As Assigned - Brought To You By Waffle Cones
[01:06:41] Adam: So this episode of Working Code was brought to you by all the waffle cones that were not good enough to sell that I made when I was working at C Y. So I just went ahead and ate them for you so that you didn't have to eat a crabby waffle cone and listeners like.
[01:06:55] 087 - Note To Self v0-2-0 - Brought To You By Flaky Tests
[01:06:55] Tim: have two now.
[01:06:56] Adam: This episode of Working Code is brought to you by flaky tests.
[01:06:59] Adam: Just like grandma used to make and listeners like you.
[01:07:04] 097 - Expectations Of Professional Software Engineers - Brought To You By Being An Adult
[01:07:04] Adam: All right. Well, this episode of Working Code is brought to you by being an adult person who uses a calendar and listeners like you.
next episode: 110: Measuring Impact At Work
prev episode: 108: 2022 Year In Review