Podcast appearances and mentions of aaron patterson

  • 43PODCASTS
  • 83EPISODES
  • 54mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Apr 15, 2025LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about aaron patterson

Latest podcast episodes about aaron patterson

Know Thy Shelf
EP 81: Get to the Root

Know Thy Shelf

Play Episode Listen Later Apr 15, 2025 37:46


In this episode, Dr. Walter speaks to emcee, motivational speaker and father, Aaron Patterson. We discuss his clothing line, Break the Cycle, moving to Atlanta from Massachusetts, Hip-Hop, the Church and much more!

Transformation Ground Control
CRM Trends in the Market, Introducing The Executive Mastermind, AI vs ERP

Transformation Ground Control

Play Episode Listen Later Apr 9, 2025 130:47


The Transformation Ground Control podcast covers a number of topics important to digital and business transformation. This episode covers the following topics and interviews:   CRM Trends in the Market, Q&A (Darian Chwialkowski, Third Stage Consulting) Executive Mastermind, Inside the Minds of Digital Transformation Experts (Greg Benton, Aaron Patterson, Scott Janke, Khalid Morris, Third Stage Consulting) AI vs ERP (Khalid Morris, Third Stage Consulting)   We also cover a number of other relevant topics related to digital and business transformation throughout the show.  

Dirt - An Audio Drama
Ch. 27 Now Is Not the Time to Blow It All Up (S4 E6)

Dirt - An Audio Drama

Play Episode Listen Later Mar 28, 2025 39:50


"You're almost at the end of this. You need to stay in control." This is the sixth of 11 episodes (released monthly) in Season 4 that will totally wrap up the series. For the very best audio experience, please listen with headphones. Featuring Megan Morales as Antonia, Ken Kaiyala as Aimo, Ali Sooudi as RA Hastings, Aaron Patterson as Carl, Jessi Brown as Mel, and Kristopher Kaiyala as Joseph. For the latest updates, please follow @dirtaudiodrama on Instagram and @dirtaudiodrama.bsky.social on Blue Sky. For episode transcripts, press kit, background information, and a free sticker: https://www.dirtaudiodrama.com. Dirt - An Audio Drama is a proud member of the Fable & Folly Network. Thank you for listening. Please share with friends and family! © STUDIO5705 LLC. All rights reserved. Learn more about your ad choices. Visit megaphone.fm/adchoices

Breaking Change
v29 - Super Switch

Breaking Change

Play Episode Listen Later Jan 19, 2025 185:16


In this episode: Justin goes to a birthday party, drives a Tesla, and configures your BIOS. The compliments department is, as always, available at podcast@searls.co. Have some URLs: This is the combination air fryer / grill I bought Microsoft dropped support for non-SecureBoot PC updates last month Aaron's puns, ranked Nobody Cares Things we learned about LLMs in 2024 Judge ends man's 11-year quest to dig up landfill and recover $765M in bitcoin The Consensus on Havana Syndrome Is Cracking (News+) Meta kills diversity programs, claiming DEI has become “too charged” Google kills JavaScript-free searches Sonos still seems kinda fucked 5090s seem kind of like a scam The official Elder Scrolls: Oblivion remake leaked Switch 2 was unveiled Guy with 200bpm heart rate complains his watch isn't working (before admitting his heart isn't working) The Diplomat Conclave Severance Season 2 is out Marvel Rivals is a hit (with the Thirstlords) Indiana Jones and the Great Circle P.T. A Short Hike Transcript: [00:00:29] Well, good morning, everyone. If it's evening, where you are, well, it's not here. So that's just what you get. You get a good morning. You can save it for later, put it in your pocket, and then the next time the sun comes up, you can just remember, ah, yes, someone did wish me a good morning today. [00:00:48] You are currently, your ears are residing inside of Breaking Change, which is an audio production. Not to be confused with Breaking Bad, certainly not Breaking Good, just broken. [00:01:03] You know, now that officially, officially or unofficially, TikTok is down. It's unreachable in the U.S. Aaron has reported, our Seattle correspondent, for the broadcast, that even over his VPN, he can't get to TikTok. [00:01:24] His arms are itchy. He's scratching. He, ah, I hope, wherever you are, I hope that you and your loved ones and your teenagers are okay. [00:01:33] But yeah, anyway, now the TikTok is down. Maybe some of you are here, because you've got nothing else to do, and you need something to fill that void. So thank you for joining. [00:01:45] Something that I've been meaning to do at the beginning of this, of the show, for the last, well, seven versions, has been to kindly ask that you go into your podcast player of choice, and you rate and review the show. [00:02:02] I would prefer five stars on a five-star scale, but if it was a ten-star scale, you know, ten stars would be better. [00:02:10] Thumbs up, or whatever. Write a little review explaining why the fuck somebody would want to listen to an explicit language, you know, tech-adjacent programmer-ish gaming movie, whatever the fuck this is. [00:02:23] Dialogue, uh, because, uh, I have found that breaking change is a really hard pitch, you know, when, when, when, when explaining to people, it's like, oh, this is me talking, just like drive-time AM radio used to be, except instead of talking about a bunch of politically charged propaganda, uh, we're just hanging out, uh, and instead of having a commute, you know, you're walking a dog, or you're doing the dishes. [00:02:50] Although, I guess, you know, maybe you listen on a commute. [00:02:53] I, I, I've heard, I've heard from, from listeners on road trips, listening to entire episodes all in one stretch, and that's something else. [00:03:03] Uh, I have not heard from a lot of commuters, so if you listen to this while you're commuting, shout out at podcast at searles.co, uh, you know, if you're driving, don't, don't try to rate and review, you know, in a distracted fashion. [00:03:16] But, but next time you think of it, you know, you, you, you slam that five-star button. [00:03:20] You know what, it's, it's, I got a lot of subversive elements, you know, in my cadre of people, because I am a total piece of shit, and I attract, I attract the good and the bad, everyone in between. [00:03:32] But some of us, you know, we, we, we appreciate a good troll. [00:03:35] There is no better way to stick it to the man and, and confuse the hell out of people than for all of you to go and give this five stars in, in, in iTunes and, in your podcast player. [00:03:46] And then have a whole bunch of people, you know, have it surface in the algorithm for others. [00:03:51] And then they listen to this, and then they're like, what, what, what the fuck is going on to my ears right now? [00:03:55] Uh, I am very confused. [00:03:57] And if that's you, hell, you know what? [00:03:59] Oh, shoot. [00:03:59] But I'm, I'm speaking from the past. [00:04:01] Maybe this is the, the future where this is a lot of five-star reviews and some, some, some rando outside of Argentina is, is, is getting this put into their feed for them. [00:04:11] And now they're like, four minutes have passed. [00:04:14] What am I doing with my life? [00:04:15] Well, hello. [00:04:16] You are also welcome. [00:04:17] Good morning to you as well. [00:04:18] Uh, by the time you're listening to this, you know, I'm recording Sunday morning. [00:04:24] First thing, uh, I know from experience that it can be hard to pretend to work during a Trump inauguration. [00:04:33] So, uh, I figured that instead of pretending to work, you could be here with me instead if you're listening on Monday. [00:04:41] And if you're, if you're fortunate enough to have Monday off, um, you know, I guess one difference between the, uh, uh, the previous Trump inauguration. [00:04:51] And this one is that the, you know, inclusivity backlash against the Trump admin, you know, that has now recently receded. [00:05:02] If you're to believe the Bezos and billionaire class, uh, uh, has resulted in way, way more people who don't work at post offices getting MLK junior day off. [00:05:13] So I suppose many of us are not working on Monday, but regardless, this is a version 29 of the program titled super switch. [00:05:24] Which, you know, depending on the audience, I think a lot of, you know, probably what I mean by that. [00:05:29] We'll, we'll talk about it later. [00:05:30] Uh, in life news, it feels like it's been a way more than two weeks since I talked to y'all. [00:05:37] Uh, uh, uh, when you live in a theme park, there's just a lot going on. [00:05:42] People coming and going stuff to do, uh, uh, stimulation overload. [00:05:49] That's why I sound so just, you know, demure downbeat chill here is because I am exhausted permanently all the time. [00:06:02] Cause every time I leave the house, I am, I am just overstimulated. [00:06:05] Uh, last night we went to a birthday party of a friend, uh, in the, uh, Orlando proper part of Orlando, [00:06:12] whereas we live in theme park, Orlando. [00:06:14] So we had to, uh, drive over the, uh, the treacherous terrain known as I four, the deadliest stretch of highway in the United States in terms of, uh, only in terms of the number of people who die on it. [00:06:26] And the party was, uh, it was funny cause our, our friends, uh, they're building a house on this beautiful lake, huge property. [00:06:34] It's, it's absolutely gorgeous. [00:06:36] It's going to, the house is a custom build. [00:06:39] And a couple of years ago, uh, the one who's, whose birthday ended up being said, you know, we're going to have my 45th birthday party here at the house. [00:06:47] After it opens the water slide, you're going to DJs. [00:06:50] We're going to have, it's going to be a big blowout fest. [00:06:52] It's going to be awesome. [00:06:53] And then his husband was like, you know, it's, it's not going to be ready yet. [00:06:57] Don't get your hopes up. [00:06:58] And, uh, uh, sure enough, uh, both things came to pass. [00:07:04] The house is nowhere near ready. [00:07:05] It is an active construction site. [00:07:07] And they trolled us hard. [00:07:08] They said, Hey, come to this hotel. [00:07:09] We're going to have, you know, uh, uh, free valet or whatever. [00:07:12] And then like, like we go into like a normal kind of like typical ballroom thing and you get a cocktail. [00:07:19] And then these construction workers show up and they, they, they, they heard us into buses. [00:07:24] Uh, and so people are in their cocktail attire, you know, Becky wore, uh, I don't know if you'd call them heels, [00:07:32] but elevated shoes for, for first time in a while, more of a flats person, which I respect. [00:07:39] Cause I'm also a flats person and, uh, we all get into the bus and everyone's dressed up. [00:07:44] And then, uh, they, they, they drive us to, uh, the active construction site. [00:07:47] That is our friend's house. [00:07:49] And, uh, they had, uh, the events planners and everyone like, like actually just decorate the shit out of, you know, what, what is a lot of concrete block first floor of most homes around here is concrete. [00:08:01] And so the bones of the house are up and they just decorated it with kind of construction paraphernalia, orange cones. [00:08:07] All of the staff had, uh, you know, orange vests on, uh, we were all given hard hats. [00:08:11] Uh, the theming was truly on point. [00:08:15] Weather was perfect. [00:08:16] Uh, and, uh, you know, it was a big raucous affair, raucous raucous, you know what I mean? [00:08:23] So that was great. [00:08:24] Uh, we didn't even stay out that late, but I feel like I got hit by a truck, uh, this morning. [00:08:29] Uh, I, I kept it to a two drink maximum, which is my new go-to rule of thumb. [00:08:34] Uh, uh, cause I always end up barely regretting the third from a, from a, an ability to sleep perspective. [00:08:43] Afterwards, uh, other life stuff, you know, like the logistics following the death of my father. [00:08:48] First of all, thank you very much for many of you wrote in to express sympathies, uh, probably don't, don't need to put them all in the mailbag. [00:08:55] Cause that after a certain point, it started reads like, you know, reading birthday cards on air, uh, in terms of they all, you know, not to diminish anyone's, uh, extension of grief, uh, or, or, or sharing their own stories. [00:09:08] But there's a certain, you know, beginning, middle and end format to, to, to, to, to, no one knows what the fuck to say. [00:09:15] I don't know what to thank you. [00:09:18] Um, but yeah, like I know just sort of like finances and, and forensics front of trying to figure out how to tease out all the complexities of his life that he never really told anyone about and didn't certainly didn't document, uh, that the work continues still trying to help my mom consolidate her situation. [00:09:36] It's been, you know, just a lot of very procedural. [00:09:42] All right, find all the stuff, organize the stuff, come up with a to-do list, figure out how to like approach this, make all the phone calls that you need to make to all these institutions to, to, to, to, to iron it out and to, to continue fact finding or to, to, to give, you know, furnish whatever documentation they need. [00:09:57] And, and, and because it's been so, uh, I guess transactional wrote, like not to say it's colored my perception of dad or anything, you know, one way or another. [00:10:11] Uh, but it's definitely, when I look back on this era of my life, of course, his passing is going to stand out in sharp relief, but like, that was like a week of stuff. [00:10:21] And then the rest of it is going to be like three months of stuff. [00:10:25] Uh, and so I wonder how that's going to affect how I, how I, how I look back on it. [00:10:28] But one of the things I noticed is a lot of different service providers, uh, like banks, for example, that have, uh, uh, you know, bills coming up, you know, you got a credit card bill and let's say it's due. [00:10:45] Uh, I, I don't know why I'm blanking, but January 25th and then January 18th comes around and it says, Hey, you have a statement due January 25th. [00:10:54] Or you got an upcoming bill or you, your bill is ready to be paid. [00:10:58] And when I get an email like that, so I just got one from dad or, you know, for dad's account from us bank. [00:11:05] And I was like, shit. [00:11:07] Cause I know he didn't have auto pay set up in a lot of places. [00:11:09] Uh, and like, do I have that login? [00:11:12] Like, you know, do I have to coordinate with mom to get the SMS thing? [00:11:15] Like I get into it. [00:11:16] And then sure enough, like, cause I thought I'd set up auto pay. [00:11:19] I even had a to-do list that said, set up auto pay for this. [00:11:21] And, uh, auto pay was set up. [00:11:23] It was just emailing me unnecessarily anyway. [00:11:25] You know, if you're going to have a recurring payment or an auto payment set up, it, you know, it's, it's okay to notify the customer that there's another bill coming, but it would be really sweet. [00:11:36] If like auto pay is enabled, just so you know, you're going to, you're set to auto pay this on X and X date, uh, because if you got, you know, as many cards as some people have, uh, it can get kind of exhausting to, to just worry about, uh, well, I hope that's, that's all set up. [00:11:53] So it's, uh, things like that are just like random nonsense stressors and the amount of context switching, because you're constantly getting emails and calls from different, from all corners. [00:12:03] I normally screen my calls really aggressively, but you know, this month I've got a pretty much [00:12:08] answer it no matter who's calling, which is not my favorite. [00:12:10] And I've, I've found myself falling into something that I never thought I would do. [00:12:17] Uh, maybe it's cause I turned 40 this week, but I'm, uh, I've always associated this with like [00:12:24] an old, a generational thing. [00:12:26] When somebody asks me a yes, no question, I've started saying yes or no. [00:12:31] Like the literal word, yes. [00:12:33] And that might sound mundane to you, but in my family growing up, the word, yes, always felt [00:12:41] violent because everyone always had more to say, or they had a compulsion to soften it, you know, [00:12:49] like, yeah, sounds a lot, um, neutral, accepting, open, soft. [00:12:58] Then yes, there's a certain like hardness to yes. [00:13:01] You ask a yes, no question. [00:13:02] The person says, yes, it feels like there's a period at the end of that. [00:13:05] And when you say, yeah, or okay, or all right, or, you know, you give some sort of like, you know, [00:13:11] like an invitation to either continue with a follow-up question or, you know, be, be open to maybe a retort or something. [00:13:20] And so I had a colleague once who is, you know, the previous generation who is my superior. [00:13:25] And, uh, his name was Daryl. [00:13:28] Daryl's a lovely person. [00:13:29] But every time I asked Daryl a question and I was asking him a lot of questions because I didn't know shit about fuck. [00:13:34] And he knew a lot of things about everything he would, he would answer every yes, no question with just the word yes or the word no. [00:13:43] And it felt so stifling and cruel and like, you know, like, why is he shutting me down like this? [00:13:51] Even though he's literally answering in the affirmative, there's something about the word yes. [00:13:55] When unadorned with any sort of softeners or explanation or exposition or, or, or, or, or justification or, or invitation to, to, to follow up that feel there's the finality of it feels just rude, even though it is very literally fine. [00:14:12] So I caught myself doing that and I guess I've become a yes man. [00:14:16] Other life stuff. [00:14:22] Our ninja, we have a, uh, we seem to have like every ninja kitchen appliance, um, just in some sort of rotation around, uh, you know, our, our kitchen and it feels to me like every modern home that every year, the, there's like a, a counter surface inflation where the counters keep getting bigger. [00:14:44] The kitchen islands keep getting bigger. [00:14:46] And then the, almost a, um, sort of like how a, a gas will expand to fill its container. [00:14:54] Like ninja appliances will continue getting invented to fill all available counter space in every home. [00:14:59] Uh, and the reason that ninjas been so successful is that unlike Hamilton beach and Cuisinart and stuff like their, their products are actually pretty good and do what they say on the tin. [00:15:09] But we had a, uh, one of the air fryer units that can also, you know, pretend to be a grill, even though like all that's really happening is a hairdryer is blowing downward onto your food and any sort of heating element underneath is indirect. [00:15:20] Uh, we had one of those and, you know, it just kind of got grody and gross from lots of oil and, and repeat washings and, you know, food stuck to the basket. [00:15:31] And it was, it was, it was no longer, you know, how sometimes you use one of these appliances, you don't clean it as intentionally or as frequently as maybe the instruction manual tells you to. [00:15:42] And eventually your food starts tasting like, you know, the bottom of the, uh, the, the, the, the, the deep fryer at, at McDonald's, like, just like that oil tarry kind of like, you know, afterglow. [00:15:55] Which makes, it takes, it really takes the shine off of, uh, whatever the omega threes that you're trying to get out of your fishes. [00:16:00] Uh, so, so we, we bought a new one and what I really wanted out of a new one was one with like multiple heating elements. [00:16:08] Like where, where there was an actual grill that could sear stuff and cook from the bottom up, but also a convection oven that could crisp it up and, and, and, and sort of dehumidify. [00:16:18] And amazingly, Ninja does sell this product. [00:16:22] Uh, it was called, uh, see if I can link to it. [00:16:25] The Ninja convection plus grill. [00:16:27] Oh no, that wasn't it. [00:16:28] It's, it's got a name. [00:16:29] Uh, something, something, grid IG 651. [00:16:35] Okay. [00:16:35] There you go. [00:16:35] I'll put a link in the show notes. [00:16:37] Uh, so the IG 651, whatever, it's got like a barbecue griddle on it. [00:16:41] It seems, it seems nice. [00:16:43] Uh, and it does exactly that. [00:16:46] It's got like a big wide surface element. [00:16:48] You can, you, you plug it in. [00:16:49] It's a very complicated, unnecessarily. [00:16:51] So a complicated thing where it's, it looks like you kind of take a George Foreman style griddle. [00:16:55] It's angled forward, meaning like it's got, you know, uh, I said griddle at just like the slabby kind of, of, of metal slats, slats, you know, where you, you put the burger on it. [00:17:07] And then it's like, you know, remember the George Foreman marketing? [00:17:10] I'm sure you do like, you know, like it's like at the, like, like the, the squeezing iconography to, to indicate like the fat is coming out and then that will make this healthier, even though the fat is often the best part. [00:17:20] Uh, so it's, it's got that it plugs into some like electrical, you know, electrode input thing with two little donguses. [00:17:28] I don't know why I'm even trying to explain this. [00:17:30] It's fine. [00:17:30] And you plug that in, you can wash it separately, but you can put a griddle on top that kind of maps to it. [00:17:36] So it'll pick up that heat. [00:17:37] And that is a flat surface, which can be nice. [00:17:40] If you're, if you're maybe, you know, toasting a sandwich or something. [00:17:46] And yeah, the thing about it, the thing about that search was that trying to answer the question of what heating elements are in this smart cooking appliance proved to be extremely difficult. [00:18:00] You go to the Amazon listing, you go to the product page. [00:18:03] I read up on every single Ninja product that does this. [00:18:06] I started looking at other products that do this. [00:18:09] I started looking at things that ran themselves as smart ovens that, you know, advertise having, uh, multiple heating elements, you know, like the June oven did this. [00:18:16] I think that's out of business now. [00:18:18] Tovala did this. [00:18:18] I think that's going out of business now where they would have, you know, like, um, maybe a microwave element plus a steam cooking element, or maybe they'd have a convection fan inside and also, um, an induction plate underneath. [00:18:31] And none of them have really taken off in the U S unfortunately, uh, such that. [00:18:39] It is a product category that the consumers are educated about, like what they're getting into in Japan. [00:18:45] There's a product called health. [00:18:46] You know, like literally like health EO, but THs are hard and it's got like the basic models have four or five different ways to heat your food. [00:18:56] And then like, it's really smart in that you, you punch in a code, like a recipe code, and it'll just do everything cradle to grave for you with the advanced sensors that it has. [00:19:04] And kind of move between whatever combination at whatever point in the cooking process, all of those heating elements need to be arranged. [00:19:11] And so things come out almost better than a human could do them because they never have to be removed from this hermetically sealed environment, you know, for people's hands to come in and, and, and adjust how the thing is being heated. [00:19:26] Because in Japan, that product has been so successful that the two or three different tiers of that product, not only are they all good, but like, no one needs to be explained what's there. [00:19:36] Like the, the, the, the, it could just be like the higher level of literacy and, and, and education generally in Japan. [00:19:42] But in general, like, it's just, it's really straightforward. [00:19:46] And here, it seems to be that like people just want a device that they can throw food in. [00:19:52] And then as long as they're picking off a menu and it has words like grill, they will feel good about it. [00:19:58] And no one's going to ask, where's the heat coming from? [00:20:01] How is this getting cooked? [00:20:02] Which now that I say it, of course, like Americans don't give a fuck how the thing gets accomplished or without it gets accomplished well, typically, uh, just that, uh, you know, they know what box to put the food in and then the button to hit, which is, you know, a little bit condescending, but, you know, y'all have earned it in my opinion. [00:20:20] Uh, so yeah, we got it. [00:20:22] It works. [00:20:22] Uh, uh, as far as I know, I turned it on the preheating started. [00:20:26] We have not yet, you know, broken the seal and actually cooked with it yet, but I'm glad, I'm glad to have that because I think, I think, I think. [00:20:32] Shit will turn out better, especially salmon, which is increasingly the number one thing that we were using our air fryer for, which was an inefficient, uh, use case. [00:20:40] Speaking of the parks being really busy, uh, and, and life here being overstimulating on Friday, I found myself really testing the fences on this new being 40 year old thing. [00:20:55] I, uh, got up at 5am with Becky. [00:20:59] We had a special event at Disney's Hollywood studios that started at six. [00:21:03] We got there. [00:21:04] There were other people there. [00:21:05] We went to bed early, you know, to, to, to, to be able to, to do this and not be super groggy and miserable, had a great time. [00:21:13] And then we had some friends coming into the park just about an hour after that, that, that event wrapped. [00:21:18] And so we went and visited with them for a little bit. [00:21:20] Then we came home and tried to recover some sort of a productive day by then it was noon. [00:21:25] Uh, and then that evening, cause the same friends that they had their big day, I wanted to debrief with, uh, uh, my buddy before he, uh, John, his name is John. [00:21:35] He is a listener of the program. [00:21:38] So hi, John. [00:21:38] Hello. [00:21:40] Uh, when to do debrief with him. [00:21:43] So we went over to a bar called trader Sam's, which is a grog grotto. [00:21:47] It's in the Polynesian resort hotel. [00:21:49] And it's one of my favorite bars because it's got like a lot of like little imagineering knickknacks and stage elements that, that have since become very common at Tiki bars. [00:21:58] But we got in there, we spent a couple hours and then pretty soon I realized, Oh fuck, it's midnight. [00:22:03] And I've literally been Disney it up to some extent, uh, since 6am. [00:22:10] And so, you know, I actually, I got a second wind in there, but I ultimately didn't get, get to bed until like two. [00:22:16] Uh, so that was a, it was a big day. [00:22:19] I feel like I did all right. [00:22:20] Uh, from an energy level perspective, I think I, I was the person that I needed to be in all of the interactions I had that day. [00:22:28] And that's probably the most I can say. [00:22:29] Uh, I'm simultaneously finding that my body is falling apart. [00:22:33] My, my, uh, left hip is pretty grumpy. [00:22:38] Uh, it's just some sort of like a constant dull discomfort, uh, feels like a dislocated shoulder, but no matter how much PT I do, [00:22:46] I, I, I seem to never fully, fully beat it. [00:22:49] Um, I need a smart, the smart oven equivalent for, for, uh, you know, muscle therapies that people do. [00:23:00] It's like, Oh, you can get some of the, it'll, it'll apply the icy hot and also, you know, drill you with a Theragun and also massage you and also use the, you know, resistant bands exercises to strengthen it. [00:23:09] Uh, just all simultaneously. [00:23:10] Cause it's like this round robin of, of attempts I've had to, to restore this fucking hip. [00:23:17] Uh, it has been great. [00:23:19] So that's been a constant thing. [00:23:21] New things are like my right knee now hurts like hell. [00:23:23] My left, my left heel, just the skin started cracking from how dry it's been here. [00:23:28] And of course it's still way more humid here than the rest of the nation, but apparently my skin is so used to the humidity, uh, that I just woke up one morning and it hurt to walk because all my skin was exposed because all my skin and my foot had cracked. [00:23:40] You know, like what the hell's going on? [00:23:42] So, uh, if you're, uh, approaching 40 and you're worried about it, good. [00:23:48] I don't know that I recommend it so far, uh, but I'm still here, still kicking. [00:23:53] Uh, uh, well, I, so far I almost didn't make it to be honest. [00:23:59] Uh, you know, well, I, if I'm going to talk about this next topic, uh, it's something that's come up in the show before. [00:24:09] And so I think that technically makes it follow up. [00:24:11] So let me hit this button right here. [00:24:13] Yeah. [00:24:20] So speaking of dying right before you turn 40, I, I'd mentioned that I four interstate four that runs east, west in, uh, through bisecting Orlando. [00:24:37] It's, uh, known to be, and I fact checked this against GPT cause I knew I'd probably end up talking about it. [00:24:45] Deadliest stretch of highway in the U S and you know, I'm a, I'm an experienced driver insofar as I've been driving for 24 years. [00:24:54] I don't like love it. [00:24:56] I'm not a car guy. [00:24:57] Uh, I, I feel like I drive fine, relatively safely, probably more on the conservative side. [00:25:05] Overall. [00:25:06] I do speed from time to time, but you know, as long as if you're in America and you're speeding, as long as you use the phrase flow of traffic, uh, you can do whatever you want. [00:25:17] And the problem is that when you live in theme park Orlando and you need literally anything that is not entertainment and hospitality related, uh, like for example, you know, I, I, and this is what puts this into the followup bucket of content. [00:25:35] Uh, I've been talking on and off about having, uh, struggling with snoring. [00:25:38] You know, I've been, uh, uh, doing that thing that a lot of middle-aged husbands start doing and deciding to interrupt their spouse's sleep by, by, by suddenly picking up this cool new habit. [00:25:49] That is just making wheezing sounds all night long. [00:25:53] And mine's really inconsistent. [00:25:56] It's clearly triggered by something. [00:25:57] Couldn't really tell what, you know, is it diet or whatever. [00:26:00] It's like clearly like none of the symptoms of apnea. [00:26:03] So that's probably not it. [00:26:04] Given that I feel fully rested after like four hours and I've never feeling short of breath. [00:26:08] Uh, you know, the new Apple watch has an apnea detection and it seems to not be detecting any apnea. [00:26:16] So I finally got a sleep study ordered and the doctor who is a very nice lady, she, you know, she's just like the reality of insurance right now is, uh, I will put in a request for an in, in a let in lab sleep study. [00:26:33] So we can watch you because the alternative is an at home sleep study. [00:26:36] And based on everything you're saying, there is a 0.0% chance that that at home sleep study is going to find anything. [00:26:44] Uh, and then I was like, well, then let's just do the in lab. [00:26:46] Like you're saying, well, she's like, oh, the insurance will surely deny based on what you're saying, uh, an in lab sleep study. [00:26:53] Uh, you have to do, you have to go through the motions of this at home sleep study first, and then it has to show nothing. [00:27:00] And then I can put in a script again for the in lab. [00:27:04] Uh, and, and then the prior authorization will go through and then you'll be able to do that. [00:27:09] And so I have to kind of do this performative nothing operation, just nothing like procedure, operation procedure. [00:27:18] It's over, you know, like diagnostic, you know, just to check some boxes and money is changing hands invisibly to me at every step. [00:27:27] Of course, for the most part, thanks, thanks to having health insurance. [00:27:30] So I, I, I schedule this and it's an at home sleep study. [00:27:36] Like there are services that mail these units, you know, they could ship it. [00:27:40] I could, I don't know, find a courier or something, but nope, this one, I have to drive to the other fucking side of Orlando, which is, you know, it's 20 miles, but it's like a 45 minute hour long adventure. [00:27:49] And I have to calling them the rules of the game were that I had to, uh, drive there Sunday night to pick it up, come back Tuesday night to drop it off. [00:28:00] And they, because of sleep study locations, this is like an actual, you know, testing center. [00:28:07] Uh, they literally open at 6 30 PM in the evening. [00:28:10] Uh, you know, so that's when their shift starts. [00:28:13] So I had to get there at 6 30. [00:28:15] So that means like, I'm basically fighting through rush hour into town and then pick it up and now I'm coming back home and now it's like eight. [00:28:22] So I guess I'll just eat dinner by myself or whatever. [00:28:25] Uh, and it's not like in a part of town where it's like, Hey, we can go downtown and like make a date, make a night date night out of it and go to like a fun restaurant. [00:28:33] It's like, this is a, I don't know what I, I have many times in this program suggested you should move to Orlando. [00:28:41] Orlando's great. [00:28:41] I love life in Orlando, but like whenever I leave the bubble of like theme park party time, Orlando, where everything's just really, really nice and customer service is incredible. [00:28:50] And the food's really great. [00:28:52] And, and it's just a party. [00:28:53] Uh, and I go to like real Florida. [00:28:56] I'm like, Oh yeah, I need to stop recommending people move to Orlando. [00:28:59] Cause this is like the median experience. [00:29:01] And I wouldn't, I would not, I can't do this for an hour. [00:29:05] I don't know how I would possibly live here. [00:29:07] No offense to Orlando, but I, uh, I went and I picked it up. [00:29:12] I drove my car there on Sunday night and traffic was pretty bad, but it's always pretty bad. [00:29:18] I had numerous cases of people jumping in front of the car on the way onto the highway. [00:29:23] Once I was on the highway, I get into the new express lanes, which do make things easier. [00:29:27] You pay a toll and you get, uh, you know, expedited traffic. [00:29:30] Um, and somebody had pulled over into the shoulder. [00:29:34] And as soon as he pulls over, he just whips open his, his driver's side door off of the shoulder. [00:29:41] And now the door is in my lane. [00:29:43] And there's of course, somebody on my left causing me to, uh, flip out and have to slam the brakes to, to the point of like, you know, bad enough that smoke is happening. [00:29:53] Right. [00:29:53] Like you can smell the burnt tire because this dude is just like, I'm on the highway. [00:29:57] I can open my door. [00:29:58] I'm a, I'm a big man. [00:29:59] I'm driving a truck. [00:30:00] So I chose not to blow his door off. [00:30:05] Uh, then on the way home, it was one of those ordeals where, uh, it's a, a sign said congestion, like eight, four miles ahead. [00:30:16] I was like, oh, four miles. [00:30:17] Okay. [00:30:17] Maybe I'll find an opportunity to take, get off the highway or I'll get onto the express lane and try to avoid it. [00:30:21] And, uh, Apple maps was saying I should turn right at the Kia center, which is like where the Orlando magic play. [00:30:27] And then take three more rights and then get back on the highway. [00:30:30] And I was like extremely convinced that this was just some sort of, you know, Apple maps fuckery. [00:30:36] Uh, and, and the nav and the computer being wrong because it often is, I was like, I'm going to stay on the highway. [00:30:42] I'm a smart guy and the instant that I passed that exit that it wanted me to take, everything became a parking lot and, and such a parking lot that it became road ragey pretty quickly with people driving and shoulders and honking and trying to edge each other out and motorcycles going between lanes. [00:30:58] And, and, and there's just a, you know, there's probably a metric that you could use for any civilization called like, uh, TTMM time to Mad Max. [00:31:10] And Florida has a very low TTMM, you know, it doesn't take long at all for every man for himself, uh, instincts to seemingly kick in. [00:31:22] So I, I did the rerouting and now, now the phone is telling me, all right, well, you know, literally it's so demoralizing. [00:31:32] You see the ETA to your home arrival move literally 40 minutes immediately because I chose not to take it's very wonky prescription of three right turns. [00:31:42] And now I realized in hindsight, the reason it wanted me to do that is there's a direct entrance onto the express lane. [00:31:47] And so not only did the ETA go up, not only do I have the regret that I didn't listen to the computer for, for telling me to do a stupid thing, but I also now am shamed by the insult on wounds here. [00:31:58] The left of me, the express lanes are wide open and there's just like five cars just having a great time going 80 miles an hour to get to where they want. [00:32:05] And everybody else is left in just this, this, this, this absolutely falling down style, uh, traffic jam, uh, or just after dark. [00:32:17] I did get home, I, I took a side street and it was one of those ordeals where you, you know, you take the side street, go up a couple of blocks, you go, you know, uh, turn left, kind of go, I don't know, maybe a half mile just past wherever, whatever accident was causing the congestion. [00:32:34] Then you get back on the highway. [00:32:34] And the problem was, of course, we all have automated navigation systems. [00:32:41] They all reroute us. [00:32:42] And so that was immediately backed up there that it was three traffic lights of people in the left lane, trying to, to turn onto that third traffic light. [00:32:52] And I, it would have been another 20 minutes just waiting for those light changes. [00:32:56] And so I just, you know, fortunately I had a brain and I was like, all right, I'm going to just blow past this and go in the right lane and drive forward three, three intersections and then do a U-turn turn right. [00:33:08] And then I, I successfully beat the rush and I got home and I, it merely only wasted 20 minutes of my time, but here, this story has already wasted five minutes of your time. [00:33:16] So it was death defying because even once off the highway, virtually none of those drivers had ever been on those side streets or in that neighborhood before. [00:33:27] And they were all driving like it and they were all driving like it and it was dark and there were not adequate streetlights. [00:33:31] So, uh, you know, it's not just that like Florida drivers are bad, but like you are surrounded by a certain number of frazzled dads who just picked up rental cards, cars from MCO, who are trying to get to their Disney hotel, who just had a flight delay, whose kids are screaming. [00:33:48] And nobody's happy like that is the default and that is the best case energy because like, you know, that's before you consider the, the, the capital F capital M Florida men and the tweakers and everyone else that just kind of contributes to this diverse fabric of society that we live in. [00:34:08] So, uh, that was a bad experience. [00:34:12] I, I did get home, you know, I am still with us, but by the time I got home, I was, I was so fried. [00:34:18] Like I, I, I, I, I didn't want to hang out. [00:34:22] I didn't want to talk to Becky. [00:34:22] Just wanted to like pour a whiskey and collapse. [00:34:25] Uh, the stress level is so high. [00:34:28] Like, and you can, I looked at my watch, right. [00:34:30] And I was looking at like the heart rate history and I was like, you know, I was white knuckling it. [00:34:34] Um, and that's, and that's partly on me, right? [00:34:36] Like I just, I don't, I don't like that kind of driving. [00:34:39] I don't like that stress. [00:34:39] Two days later, when I had to drop this device off, uh, the device itself was terrible, by the way, it was probably less sophisticated than my Apple watch and probably reading like less accurate, uh, heart rate. [00:34:57] And, and even the, the modern Apple watch like does track breathing. [00:35:00] That's how it does a sleep apnea thing, uh, uh, through the magic of gyroscopes. [00:35:05] And, uh, this device is a piece of shit and I'm sure somehow the rental fee for, for a one-time use was $1,500 to my insure. [00:35:12] Uh, and I'm sure it found nothing. [00:35:15] I can totally, like, I don't know how it would find anything. [00:35:17] Uh, it looked like it was built out of, you know, Teddy Ruxpin era, you know, technology in the mid eighties with, with the, the quality of the, the, the straps and the plastic. [00:35:29] I could just, but when I had to, when it, when time came to drop it off, I really did not want to repeat that experience on a weeknight when you, you know, traffic would be even worse. [00:35:41] And so I, I humbly asked my brother who has a Tesla, I said, Hey, uh, there's another follow-up item. [00:35:48] We, we, we, we picked it up together just in October. [00:35:51] I think, uh, I said, Hey man, like, can I swing by or you swing by drop off your Tesla? [00:35:59] He did some stuff to do at our house anyway. [00:36:01] And he's got the full self-driving like, like, uh, they keep renewing a 30 day trial for him. [00:36:09] And, uh, you know, full self-driving isn't, it is, uh, the car will drive itself. [00:36:14] You don't have to touch the wheel. [00:36:16] It, it, it, it, it's very conservative. [00:36:18] It has three modes, chill, uh, normal and hurried or hurry. [00:36:23] I've never tried hurry. [00:36:24] I don't need to try hurry. [00:36:26] I just stick on chill because at the end of the day, as long as I get to where I'm going, [00:36:29] I sort of don't care. [00:36:30] I'm not in a big rush. [00:36:32] Uh, I have the luxury of not needing to be anywhere in any particular pace. [00:36:37] As long as I leave on time, you know, I'm, and I'm going to get there by the time I promise [00:36:41] the chill is good with me and the, you have to supervise it. [00:36:48] And it was the case when the full self-driving crap and Tesla's first hit that people were, [00:36:55] you know, at first it was just like pressure testing the steering column. [00:36:58] And so people would like use like, uh, uh, weights, like, like weighted wristbands and [00:37:04] stuff to like make it trick the steering column into thinking that somebody was holding onto [00:37:08] the wheel. [00:37:08] Uh, and now they have cameras that look at you like inside the cabin and that, that camera [00:37:15] is using some amount of intelligence to determine that you're distracted or not. [00:37:19] So if you are looking a lot at the central, uh, tablet, it'll bark at you and say, Hey, pay [00:37:23] attention to the road. [00:37:25] If you're looking at your phone, it'll do the same. [00:37:26] If you're looking at a watch, you know, like I've had it even like when I'm talking to the [00:37:30] watch and looking forward, have it bark at me. [00:37:31] And as soon, as soon as it does it, it makes a beep and then it gets increasingly aggressive [00:37:36] and beeps louder. [00:37:37] You impressively. [00:37:39] I say this because like, you know, I'm sure that the reason it's like this is because Tesla [00:37:43] is trying to minimize it's like legal liability for accidents caused by its system. [00:37:47] If, if, if, if you ignore its beeps three times in a day, uh, you, you get a strike, the system [00:37:56] will disengage and you will be forced to manually drive your car like a plebeian for the rest [00:38:01] of the day. [00:38:01] At least that's how Jeremy explained it to me. [00:38:03] If you get five strikes, I want to say it is, um, you're just exited from your, you're ejected [00:38:12] from the full self-driving program. [00:38:14] And I am impressed not only that it's as aggressive as it is, like, you know, if you got to look [00:38:22] at the screen for something, you've got to adjust it. [00:38:23] You basically have seven or eight seconds to, you know, fix the mirrors or whatever it is [00:38:28] before you got to be looking at the road again. [00:38:29] I'm also like finding myself that when I'm driving his vehicle, I actually am significantly less [00:38:36] distracted than in my own Ford escape, which has car play. [00:38:39] And I typically don't touch the phone itself, but I, um, you know, I tune out a little bit [00:38:44] or, uh, you know, might look at something or might be tapping away at the, uh, you know, [00:38:49] the eye messages and, and, and, and whatnot seemingly longer in those cases than like what the Tesla [00:38:55] would let me get away with. [00:38:56] So I'm paying more attention to the road because the computer is telling me to, or forcing me [00:39:01] to, and I am also doing less of the driving. [00:39:05] So, you know, my foot's off the pedal, my foot, my hands are off the steering. [00:39:08] And when they say supervised, it's actually like the right word, like it is doing the [00:39:14] driving, but like the, it feels almost like a pilot co-pilot thing where I, your head's [00:39:22] on a swivel. [00:39:23] Like I can look to the left and I can look to the right and I have far greater situational [00:39:27] awareness as the car is driving. [00:39:28] Now, granted a lot of these like semi-autonomous and, and adaptive, you know, uh, uh, uh, assistance [00:39:35] in cars will for most people lull them into a false sense of security and result in further [00:39:44] driver inattentiveness and unsafety, right? [00:39:46] Like people will, you'll train them out of the vigilance that you need at all times when [00:39:52] you're the one driving a vehicle or being driven in a vehicle. [00:39:55] However, like the particular, and maybe it's just cause I'm kind of coming in and chapter [00:40:00] four of this particular saga of full self-driving and robo taxis will be here in six months as [00:40:05] Elon Musk. [00:40:06] And of course they're not there, but it seems like at least the way that I've experienced [00:40:13] full self-driving when I've used it, it seems to me like I feel a thousand times safer because [00:40:21] the combination of the car, mostly doing the right thing, mostly making the conservative [00:40:25] choice, absolute worst case. [00:40:27] It haunt, it blares at you and you need to take over, uh, combined with my own hypervigilance [00:40:35] of not, you know, I constitutionally do not trust computers and you know, Jeremy doesn't [00:40:41] either. [00:40:42] And so when we're driving these things, we're looking around all the time where we're, we're, [00:40:45] we're sort of, because we have a curiosity and how the technology works, like trying to think [00:40:49] about how is it thinking through this? [00:40:51] Like, like we have a lot of, for example, um, automated gated communities where like the, [00:40:56] the gates will open and closed when you're, when you're entering and exiting. [00:41:00] It's like, we, we look at the little like computer screens, like how does it, how does it, what [00:41:04] does it think is in front of it right now? [00:41:05] It sees that there's an obstruction. [00:41:07] Uh, and if it opens too slowly, is it thinking it's a permanent obstruction or is it going to [00:41:11] wait and then proceed after the thing opens automatically? [00:41:14] Like there's a lot of little moments like that, where it's actually kind of interesting [00:41:17] to see how, you know, how the car reacts and then it gets a software update and then how [00:41:22] the car reacts after that. [00:41:23] And then additionally, there's the typical ebb and flow of software updates generally where [00:41:28] there's regressions, right? [00:41:29] Like there was a version of this, uh, system that, that the ability, like it used to blow [00:41:35] past this one particular speed bump, uh, uh, near our neighborhood, uh, because it didn't [00:41:41] have sufficient paint on the road to indicate that it was a speed bump. [00:41:45] And then there was a software update and then it perfectly negotiated all four speed bumps [00:41:49] just right in a row every single time. [00:41:52] And then there was another update and now it blows past the third speed bump again. [00:41:56] And so, uh, I think that people who are technology enthusiasts who maybe follow this stuff and [00:42:05] understand how, what software is, how it works, that updates are not a pure linear, you know, [00:42:11] march of progress, I think the idea that there would be regressions in software releases or [00:42:18] even, uh, non-determinism in how the, how the computer car operates, that's totally natural [00:42:24] to me. [00:42:24] And I expect it now. [00:42:25] I, I grown at it and I think like, this is, this is probably a bad idea in aggregate and [00:42:31] at a population level. [00:42:33] I suspect that the average driver would be confused by that the same way that like the [00:42:38] average person is terrified of updating their phone or their computer because they associate [00:42:43] software updates with, uh, uh, you know, newness and unawareness and, and, and, and, and, and all [00:42:51] the things that they finally had working, no longer working. [00:42:54] And when they, but when you talk about the, the march of progress and technology, they sort [00:43:00] of have a, what it is, is whenever anything goes wrong with technology, if you're not, if [00:43:08] you're not primed to know that it's burning you is, it seems like people mostly blame themselves [00:43:13] instead of blaming the technology. [00:43:15] And if that's your, if that's the way you use your phone or your computer, uh, you [00:43:21] know, when, when the car makes a mistake, you might not realize it as a car making mistake [00:43:26] and you might not have the hypervigilance. [00:43:27] That's like, you know, a more adversarial, like, like, I feel like I'm constantly spot checking [00:43:31] it. [00:43:31] And I, and while I am surprisingly impressed with how well it's been negotiating everything [00:43:37] that we've thrown at it so far, it's made one or two mistakes and I've, I've, I've, [00:43:41] I've, I've dealt with it, but on net, like it's driving waste. [00:43:45] Way more safely than I am way. [00:43:47] And it's, it's taught me a few things. [00:43:49] It's like, Oh yeah. [00:43:49] Like whenever I do this at an intersection, like that's really dumb. [00:43:52] Like it's doing this way better. [00:43:53] Uh, I can't think of a specific example, but like, I'm pretty impressed. [00:43:58] And so I thought, well, I'll ask Jeremy to borrow the car because I've got this natural [00:44:03] experiment now, same time of day, uh, same location. [00:44:07] So I already know how to get there. [00:44:08] It's a, it's a little bit goofy, but like, because I was just there, I'm not going to feel [00:44:12] like I'm learning how to get, get there and also learning how to use this. [00:44:15] Auto driving system simultaneously. [00:44:17] And, uh, holy shit. [00:44:20] Like, yes, I had people jump out in front of the car. [00:44:23] It was even worse this time at the particular intersection before you get to the, to, to [00:44:27] I four and the car like saw them out of its blind spot while it was turning, right. [00:44:32] It saw them on the left camera and breaks perfectly. [00:44:37] Uh, and I, uh, my first reaction was like, I would not have caught that. [00:44:40] I probably would have cut it real close. [00:44:44] Uh, almost hitting these people. [00:44:45] Uh, you get onto the highway and then this is why I emphasize like I four is like the deadliest [00:44:51] highway in America because it's, it is, it is not like driving on the highway, wherever [00:44:59] the fuck you live like anywhere I was ever in Michigan or Ohio or anywhere else in the [00:45:04] U S or certainly anywhere I've driven in Japan. [00:45:06] Those are the only places I suppose I've driven or Canada. [00:45:09] Like, yes, sometimes it's a little stressful driving on the highway. [00:45:12] Like that's not what this is. [00:45:14] This is, you have to practice extreme defensive driving. [00:45:18] And if you actually want to get where you're going, you also have to practice offensive [00:45:21] driving. [00:45:21] Uh, so having, uh, you know, nine cameras and nine directions is just necessary for basic [00:45:28] like assurance of survival. [00:45:31] Like when I'm on I four, I, I feel constantly under threat. [00:45:35] Uh, and something happens every time. [00:45:39] So we get on the highway and that stuff does happen. [00:45:42] Uh, you know, the car on its own decided to take the express lanes by itself, which was [00:45:46] incredible, but like people were like, I was trying to merge into a lane. [00:45:50] And then as, as the things, well, it was trying to merge into a lane. [00:45:53] And as it was changing lanes, somebody who didn't even have a blinker on starts edging in [00:45:58] and the car knows I'm going to back off. [00:45:59] Uh, there was another case of somebody swerving into our lane, like very close to the car and [00:46:05] the car, you know, defensively, you know, switch to the right lane, which was wide open [00:46:11] to prevent the risk that like, you know, it might have to break. [00:46:14] Suddenly there wasn't enough distance between the cars. [00:46:16] And that was stuff that like, I only was actually even able to piece together. [00:46:19] What the fuck was it doing after the fact? [00:46:20] Like looking at the map and looking around me, it's just, it went great. [00:46:28] Got there, dropped the shit off, turned around, you know, the parking is wonderful too, because [00:46:34] it'll back into every parking spot. [00:46:36] You just tap the screen. [00:46:37] Like it'll see the parking spots. [00:46:38] You just tap which one you want and just, it handles it for you. [00:46:40] It parks way better than I park. [00:46:42] I don't know, man. [00:46:43] And on the ride home, not only, you know, everything around me felt like it was on fire and chaos, [00:46:50] but because I had a buddy who was doing the driving and I could just kind of be, you know, [00:46:54] patrolling and looking around, I actually got a, a low heart rate notification on my watch, [00:47:00] which I get, I get them frequently. [00:47:01] Cause I have a low resting heart rate, but like it would say, Hey, your, your heart rate's [00:47:05] been under 40 beats per minute for the last 10 minutes. [00:47:08] And, uh, which I, if that's not you, that's like, if that's not typical for you, that might [00:47:14] sound scary, but like, no, my, my resting heart rate when I'm actually like de-stressed and, [00:47:17] and just chill is like typically like 38. [00:47:20] So the fact that I could be on I4 with a heart rate under 40 feeling completely safe more than [00:47:27] anything, it's not about going fast or whatever. [00:47:29] It's like feeling like I've got a team of two that are dedicated to getting me home safely, [00:47:32] me and this computer. [00:47:34] Uh, it was a revelatory experience now that look, I realized it's a complicated situation [00:47:44] because Elon is a big old bucket of assholes and the politics of it are all fucked. [00:47:50] Uh, you know, the right time to buy a Tesla was, was when, uh, everyone agreed that, that [00:47:54] they were cool and EVs were good and the planet deserves saving. [00:47:57] Uh, but yeah, I got, I totally saw where, where my brother was coming from and all of his friends [00:48:03] who, who, who, who are similar technologists who, who have these things and who are, you [00:48:07] know, who got on board in the very recent hardware three or hardware four era of Tesla. [00:48:12] Um, particularly with like the, the, the entry level models that are higher volume and therefore [00:48:17] kind of more, uh, consistently produced, you know, the cyber truck, for example, more, most [00:48:26] expensive, but lowest volume and has the most problems. [00:48:29] The model Y at this point is pretty boring and dull, but like, you know, if, if you, if [00:48:34] you are like me and just kind of think of cars, the modern day car is just a tablet with wheels. [00:48:40] This is a, you know, and I, yes, I had, I had low expectations. [00:48:46] I had a high level of suspicion, but it went great. [00:48:48] And, uh, uh, I, I, I successfully dropped off my snoring thing. [00:48:55] I can't wait to get the results. [00:48:57] That'll tell me that, uh, you know, nothing happened. [00:48:59] Another bit of follow-up. [00:49:01] I think I'd mentioned that I, uh, I had used rocket money. [00:49:05] So, you know, it used to be called true bill and then quick and loans bought it. [00:49:08] And, uh, the, as quick and loan started branding itself as rocket and having this rocket suite [00:49:13] of products, rocket money became, it's, you know, a consumer entree into upselling it to [00:49:18] other products and rocket monies, you know, promises. [00:49:21] It's going to help you, uh, visualize all your subscriptions and even negotiate a tiny, tiny [00:49:27] sliver of those subscriptions. [00:49:28] And the one that I yielded to it was my spectrum account. [00:49:32] So my ISP had, had gradually been charging me more and more to the point where it was [00:49:36] like $145 after tax every month for the same internet program. [00:49:39] That was like a hundred dollars when I moved here. [00:49:41] And I was very skeptical when rocket money said, Hey, we just saved you $893 a year, uh, by, [00:49:48] by lowering your monthly bill to 70 bucks. [00:49:50] And they sent me a new modem as well. [00:49:53] And I was like, I don't need a new modem. [00:49:55] It's the, it's, it's the model number. [00:49:56] It looks almost identical. [00:49:57] And I, I was actually at UPS returning that modem. [00:50:01] And I just thought to myself, what if this modem is somehow better? [00:50:04] Cause I had not been super blown away by the performance of my current one. [00:50:09] And so I, I went to the trouble of unplugging the old one, plugging in the new one, setting [00:50:13] it up, calling to activate and it, my, my connection now is rock solid. [00:50:19] So, so just by doing this price hack thing, I now have a modem that works way better. [00:50:23] I was able to activate it myself without having some tech come over here. [00:50:25] So that's a, that's a win, but the statements were still showing up $140. [00:50:29] And I was really skeptical that like this would materialize, but sure enough, this week I got [00:50:35] a statement for $70. [00:50:36] Uh, and I guess that means I owe rocket money 35% of whatever it saved me. [00:50:42] And I don't know how that's, I don't know how that's paid or when that works. [00:50:45] I'll figure it out. [00:50:47] But if you're, if you're willing to, basically I would recommend rocket money to anyone who [00:50:52] is currently paying sticker price for whatever utilities, it's probably mostly ISPs and cell [00:51:00] phone bills. [00:51:01] If you're paying for like a normal plan that is still available and you're paying top dollar, [00:51:06] uh, call them, give it a try. [00:51:08] But if you're like, you know, like I am with T-Mobile grandfathered in on some 12 year old [00:51:13] plan that has been replaced five times. [00:51:15] And there's no like, like the most likely case then is it's going to put me on the latest plan [00:51:19] and sign me up for all of the new throttling and four ADP video and the shit that you don't [00:51:24] want, uh, in terms of limitations. [00:51:26] So check out rocket money. [00:51:30] I, I, I was extremely skeptical and now this is, this is a rocket money ad. [00:51:34] Uh, although it is unpaid. [00:51:36] If you want to be a sponsor of the program podcast at seerls.co, uh, another followup item. [00:51:47] I, let me tell you what it took to connect. [00:51:53] My Xbox controller to my, to my gaming PC. [00:51:58] So, uh, I have an Xbox series elite to whatever you call it. [00:52:04] A nice, the fancy Xbox controller that costs like $170. [00:52:07] And I like this controller. [00:52:09] It's got the little paddles in the back. [00:52:11] It's got, you know, a nicer grip, uh, interchangeable thumb sticks and D pad and stuff. [00:52:16] It's a very nice product, but it's, it's, you know, talk about low volume things that [00:52:21] aren't as reliable. [00:52:21] It has a lot of reliability issues and my right bumper button, like next to the right [00:52:27] shoulder, it had been like very, very, um, it would miss like 70% of the clicks. [00:52:36] And because the right bumper isn't the most important button in the world. [00:52:39] Like it just meant like, uh, I guess I'm just not the kind of guy to throw grenades or whatever [00:52:43] the right bumper is typically assigned to, I got a replacement relative, like a, a, a cheap [00:52:50] replacement through Microsoft support channel. [00:52:52] I think they charged me $70. [00:52:53] They didn't require me to ship back the old one. [00:52:55] Uh, the replacement came and I plugged it into the computer to start set up and pairing. [00:53:00] And the Xbox accessories app was like, this is too out of date to be able to configure your [00:53:06] controller, which was weird because windows update, which I checked frequently had said [00:53:10] that I was up to date, but there was a little message at the bottom saying, uh, windows is [00:53:16] up to date. [00:53:16] Important security updates have not been applied. [00:53:19] Make sure that your computer is turned on, which is weird because if I'm manually updating [00:53:22] and nothing's saying that it's like, where are these secret security updates that aren't [00:53:26] happening? [00:53:26] And when I dug into my actual windows version, it said I was on 21 H two. [00:53:32] So the naming scheme for these major windows releases seems to be the, the two digit year [00:53:39] followed by H one for first half of the year and H two for second half of the year, which [00:53:44] is, um, real dumb. [00:53:47] I'm going to say just a dumb way to name things, you know, numbers are good. [00:53:52] You know, I, I, I get it now why it's named that. [00:53:56] But 21 was, uh, if you, if you decode the version several, several numbers ago, it was [00:54:02] three, at least it was at least two H one ago. [00:54:05] And why was I on such an old version? [00:54:10] It turns out I'll share like a, an article from, from just December, the, the windows 11 [00:54:16] required computers to have secure boot enabled using the trusted platform module or TPM equivalent [00:54:22] encryption. [00:54:23] And that's to certify or to be able to attest that like the, the operating system has not [00:54:28] been tampered with and so forth. [00:54:29] And then this has all sorts of like DMCA, DR, DRM, um, uh, and, uh, HDCP, all this sort [00:54:36] of a content encryption, copyright protection, uh, ostensibly it's quote unquote security. [00:54:41] And it, and it's the, like making sure from a malware perspective that the veracity of [00:54:45] the system files are all in place and so forth. [00:54:47] But like a lot of nerds were not on board because they want to rip blue waves or whatever it is. [00:54:51] And this might make it marginally more difficult, but gaming motherboards were like the last ones [00:54:57] to the party to support secure boot. [00:54:59] And even though I built my gaming PC, well, after windows 11 launched the BIOS that it [00:55:04] shipped with did not support secure boot. [00:55:06] Um, it didn't support, uh, I don't think like booting from UEFI drives correctly either. [00:55:13] So I'd set it up just like a normal basic fucking computer and it worked for however long it [00:55:18] worked. [00:55:18] But apparently in December, Microsoft was just like, and you get no more updates at all. [00:55:22] No more security updates, no more, nothing, which is why I started getting that message. [00:55:25] Uh, if you want to be on the latest and greatest version of windows 11, you must have secure boot. [00:55:30] Problem now is like, it's been several years. [00:55:34] And so figuring out what kind of motherboard I even have, I'm too lazy to like open the case [00:55:38] up and look at it. [00:55:39] And so I, I found the particular model number in my Amazon orders. [00:55:42] So step one, you know, I figured out what was happening. [00:55:45] I guess step, step zero is I get this new controller and I immediately regret it. [00:55:49] Uh, step two, figure out what's happening. [00:55:52] Step three, check my Amazon orders, identify the motherboard. [00:55:55] Uh, step four, I went to the motherboard website. [00:55:58] I find that there, a BIOS update is available and it's, it adds the secure boot functionality [00:56:03] because apparently the encryption software hardware is on the device, which is great. [00:56:07] So I download the BIOS and then I start flashing it. [00:56:12] Uh, not, you know, not that kind of, get your head out of the gutter. [00:56:15] I, it, it requires, uh, you know, identifying there's a, there's a particular USB port on [00:56:23] the back of the, of the motherboard. [00:56:25] That is the only one that can flash the BIOS and you have to look for it. [00:56:30] This is like M dash flash on it. [00:56:31] So you put it in there, you know, you restart, you, uh, boot into the BIOS and I, uh, got [00:56:39] it to update that, that part was actually pretty easy. [00:56:41] Then you go into the, the BIOS and it, you know, I don't know what BIOS stands for. [00:56:45] So if you're not like a PC person, this might not make sense, but you, you, the, the, it's, [00:56:49] it's the little bit of software that runs before the computer really starts. [00:56:52] And you can typically get there by hitting a key like F12 or delete. [00:56:55] And it's, you know, if you weren't raised on windows, uh, it's, it's, it's a weird [00:56:59] under, underbelly that sometimes you have to go into. [00:57:02] It's got a lot of arcane settings. [00:57:04] None of them make any sense. [00:57:05] It's a lot of acronyms that aren't explained, even though modern BIOS systems typically have [00:57:09] tooltips, it'll be like, what is, you know, what is MDR? [00:57:12] And it's like this, this option determines whether you have MDR turned on and off. [00:57:16] And there's like room for two more paragraphs to just maybe spell out what the fuck MDR is. [00:57:20] Uh, I turned on the secure boot, figure that out. [00:57:25] Uh, chat GPT is wonderful for stuff like this. [00:57:27] Like it gave me step-by-step directions because like, there's probably 800 forum, forum posts, [00:57:31] like detailing the same thing. [00:57:33] Uh, after reboot, nothing worked and like the computer would not boot. [00:57:39] I turned on secure boot, which required turning on UEFI, which is like a related technology of [00:57:44] like a more modern boot system for computers. [00:57:46] And it turns out it's because that my drive partition map is master boot record MBR, which [00:57:51] is like from the DOS era. [00:57:53] And that was the default when I set it up in 21 or 2020. [00:57:56]

The Rails Changelog
025: Rails, Compilers & Profilers with Aaron Patterson

The Rails Changelog

Play Episode Listen Later Jul 18, 2024 49:32


As you'd expect, any conversation with Aaron inevitably involves Ruby, Rails, compilers, and profiling. In this episode, we delve into all these topics. Enjoy!

Fraternity Foodie Podcast by Greek University
Aaron Patterson: How do we discover the leader that is inside of all of us?

Fraternity Foodie Podcast by Greek University

Play Episode Listen Later Apr 11, 2024 28:52


Aaron Patterson has overcome years of roadblocks and failures so he leads vulnerably with his scars first, he's been a youth mentor for over eight years and comes from the music industry so he has a knack for storytelling and connecting with students past the surface. His presentations challenge students to be more because they're made for more. Leaving them inspired and ready to break free from any negative cycle stopping them from having a brighter future. We're living in a day and age where young people are struggling mentally and suffering in silence, people are feeling hopeless and discouraged every day they wake up. That's why Aaron strives to empower each student to harness the power of their pain, transform it into purpose, and thereby create a brighter and better future for themselves and the community. In episode 446 of the Fraternity Foodie Podcast, we find out how we can prevent students from dimming their light just to fit in with the crowd, what made Aaron decide to get sober, how to transform pain in your life into your life's purpose, how we can shift away from alcohol/drugs on college campuses, how to improve retention in your organization, how we can discover the leader that is inside all of us, what are some tips to improve your GPA, and how we can adopt a positive mindset. Enjoy!

Giant Robots Smashing Into Other Giant Robots
484: Ruby On Rails: The Podcast with Brittany Martin

Giant Robots Smashing Into Other Giant Robots

Play Episode Listen Later Jul 20, 2023 50:30


Introducing thoughtbot's ongoing maintenance service. Need reliable support and maintenance for your software? Look no further. Our expert team handles upgrades, bug fixes, UI adjustments, and new feature development. And the best part? Our maintenance packages start at just 5k per month for companies of all sizes. From Ruby on Rails to Node, React, and, yes, even PHP, we've got you covered. Trust thoughtbot for top-notch support and optimized performance. To receive a custom quote, contact sales@thoughtbot.com. -- Brittany Martin is an Engineering Manager at Shogun, where she manages a team of Ruby and React engineers and is the Co-host of The Ruby on Rails Podcast. Victoria and Will talk to Brittany about the multitude of stuff she's interested in, including Roller Derby, and gives the story of how she found herself co-hosting the show. She says knowing what your brand is and what listeners should expect from listening to you is super important, and she gives her opinion on what it means to be in the Ruby on Rails Community. Shogun (https://getshogun.com) The Ruby on Rails Podcast (https://www.therubyonrailspodcast.com/) Follow Brittany Martin on LinkedIn (https://www.linkedin.com/in/brittanyjmartin1/) or Twitter (https://twitter.com/BrittJMartin), or visit her website (https://brittanymartin.dev/). Follow thoughtbot on Twitter (https://twitter.com/thoughtbot) or LinkedIn (https://www.linkedin.com/company/150727/). Become a Sponsor (https://thoughtbot.com/sponsorship) of Giant Robots! Transcript: VICTORIA: This is the Giant Robots Smashing Into Other Giant Robots Podcast, where we explore the design, development, and business of great products. I'm your host, Victoria Guido. WILL: And I'm your other host, Will Larry. And with us today is Brittany Martin, an Engineering Manager at Shogun, where she manages a team of Ruby and React engineers. She is the Co-host of The Ruby on Rails Podcast, almost five years running. And she plays roller derby for Steel City Roller Derby under the pseudonym, catch this, Merge Conflict. She is based in Pittsburgh, Pennsylvania. Brittany, thank you for joining us. BRITTANY: I am so thrilled to be on here. I have been listening to Giant Robots for years. So it's an absolute honor to be on the show today. VICTORIA: Yes, thank you so much for joining us. And I met you at RailsConf this year. And, at the time, you had a boot on your foot. So, I have to ask you, are you healed? Are you recovered? Are you walking around again? BRITTANY: This is such a good question. When I was between jobs in March, I was, you know, having these two weeks, I had a whole list of things that I was going to be doing. You know, I was going to train, like, running and whatnot. And I had roller derby practice that first week, and I broke my ankle. And, you know, going into it, I had no idea what a blocker it was going to be. I was like, oh, this is minor. It'll just take a couple of weeks to heal. No, it's been a long process. But I can gleefully tell the listeners that I am out of the boot. I am walking. I am hopefully getting into a sports program next week that will train me up to get back into CrossFit, running, and skating. Though the really funny part is that I currently have another injury which is golfer's elbow. [laughs] WILL: Oh, wow. BRITTANY: Yeah. So I have that from overusing my arms. So I'm a little bit of a mess, but, you know, getting myself back together physically so I can get back on my skates. WILL: So I know it's called golfer's elbow. But did you actually hurt it doing golf, or was it another sport you were playing? BRITTANY: It's so funny that you ask that, Will, because whenever people ask me how I broke my ankle, I can be glamorous and be like, "Oh, it was roller derby." WILL: [laughs] BRITTANY: Like, it's a sexy injury, you know. I have a friend who just broke their ankle because they were dancing down the stairs and broke it, not as glamorous of a story, right? WILL: [laughs] BRITTANY: Golfer's elbow. I literally have no idea how this happened. I've never golfed a day in my life. So [laughter] it's my non-glamorous injury at this point. WILL: Yeah, that's my background, sports medicine. BRITTANY: Oh, great. WILL: So it's interesting. Yeah, golfer's elbow, and I'm like, it's usually not golf that does it. So...[laughs] BRITTANY: Yeah. So I said something to my PT. I was like, "Am I the first person to ever get golfer's elbow from, like, you know, fixing another injury?" And she's like, "Yes. Yes, you are." [laughs] And I was like, oh. [laughter] I really was expecting to get some reassurance that it wasn't me. But hey, what are you going to do? WILL: There you go. BRITTANY: I love the fact that you do love my roller derby name. As you can imagine, it is a beacon for finding the other programmers out on the track because they find it very funny. Nobody else finds it funny whatsoever. And people call me Merge for short, and some people think it's Marge. And I just allow it at this point. [laughter] My number is 200, and its status code okay. When you hit me, I get up okay until, apparently, I break my ankle. So...[laughter] WILL: I love it. Because if you're a programmer, you're like, oh, she means business. BRITTANY: Exactly. WILL: Because merge conflicts...yeah, never fun. BRITTANY: Exactly. VICTORIA: I love that. I love finding other people who work in tech in other random activities. Like, I've recruited people from the climbing gym. [laughs] I'm like, oh, we're climbing together, and, oh, you're an engineer. That's interesting. [laughs] So it's great to, like, be with your community in different settings, so... And you're just so involved in the Ruby on Rails Community. And I'm curious what really got you started into podcasting. BRITTANY: Yeah, that's a really good question. So I'm a former product manager former MBA. So I didn't know how to code. I moved out to San Francisco because I thought that's what everyone did. If you wanted to be in tech, you moved out to San Francisco, and so I did that. And I realized very quickly that it was going to be hard for me to be a product manager without knowing how to code. And so I went to a bootcamp at night, and I became a Ruby on Rails developer. So I wish I had, like, just a really cool story for why I chose Rails. It's literally the framework that was being taught by the bootcamp. WILL: [laughs] BRITTANY: But I'm so glad that it was because I love this community so much. But, you know, when I moved out to San Francisco, I just had my current partner at the time and my dog. I didn't have any friends. And so it was really the perfect time to learn how to code just because I was really able to focus. And I ended up having a lot of long walks at night, like, getting to the train, getting to the bus, and that's really when I got into listening to podcasts. I'm not a huge music person, which is kind of weird. I really...I deeply love podcasts. And so I just kind of glommed on to a bunch of podcasts like Giant Robots, CodeNewbie, Bike Shed. I figured if I listened to all the things that I wanted to be, like, osmosis would just happen, and I would just start learning the things because I was actively learning about how to code. And I thought just listening to those concepts would really help. And really what ended up happening is those people that I was listening to, like, to me, they became celebrities to me. Like, I don't care about regular celebrities. [laughter] I care about people within these communities that I care so much about. And so, you know, a couple of years into that, I was still very much devoted to listening to podcasts. I trained for my first marathon listening to podcasts. And I was listening to The Ruby on Rails Podcast, and, at the time, Kyle Daigle had taken over the show. And he had decided, in order to spice things up on the show, he was going to bring co-hosts on that he was going to rotate through. So, every couple of weeks, you would come on as a co-host, and you would drive the conversation with things that were going on in your life. And, at the time, you know, there wasn't a lot of women, female representation in podcasts. I felt that I was doing interesting things. I was working at a non-profit doing ticketing for the Broadway Symphony and opera, like, in Rails. So I felt like I was always working in Rails, and I thought I could provide some useful insight. So I reached out to Kyle. I must have been very ambitious that day because I reached out and I said, "Hey, how about bringing me on as a co-host?" And he said, "Yeah, absolutely. Like, that would be great." And so I came on as one of the regular co-hosts on The Ruby on Rails Podcast, which I should have been flying high, right? Like, this is exactly what I wanted. I got to become like one of my own celebrities, right? Well, Kyle got really busy. At the time, I believe it's when Microsoft was acquiring GitHub. And Kyle still works at GitHub today. Kyle is amazing. He's their COO now. But the podcast kind of went dormant for a couple of months. It was my big opportunity. I really loved, you know, being on a podcast. I had done a couple of episodes. So I reached out to Kyle and said, "Hey, is there any chance you would give me the podcast?" And he said, "Absolutely." And he signed over everything to me, [laughter] which was really scary because I was taking over a podcast that had been around, at that time, it had been around for at least ten years, hundreds of episodes deep. It was on its own network. It was on the 5by5 Network at the time. So it had sponsors and expectations. And so, really, I had to learn everything from the get-go. Like, I made up my own episode plans. I made up my own questions, like, how to do ad reads, how to edit, how to upload to the hosting platform like; that was entirely on me. And, you know, we can talk more about how the podcast has evolved over those years. But yeah, long story now made short, that is how I got my start in podcasting. WILL: That's actually really amazing that that's how it got started and everything. Let's go back to when you first started. What was your feelings like? You say it was a lot to take on. Can you dig deeper in that and tell us more about that? Because I think I felt the same way. I think we've been doing this for about a year now. It's scary, let's be honest. It's scary jumping on a podcast and sharing who you are and what you're doing. So, can you tell us more about that? BRITTANY: Absolutely. I think one thing is just knowing what is your brand and, you know, what listeners should expect from listening to you because this is a podcast that had been around for ten years. You know, it had changed formats several times. It was an interview-style podcast at one point. At one point, it was a bunch of co-hosts that would just meet every week to talk out what was going on. And so I really needed to take a moment and kind of look over the metrics of the episodes. Like, I have that marketing background. I have that product background. So I wanted to know, like, what's actually working? Like, what do listeners want to listen to? And I also, like, kind of pored through all the reviews of the podcast. I'm like, did people even notice that this podcast went offline? Like, what's the current ecosystem? How many podcasts are out there in the Ruby and Rails space? And so what I started doing is I wanted to create, like, a safe environment in order to start the podcast over again. So what I did is I did interview-style podcasts with my friends, people that would tolerate me, you know, making mistakes, knowing that I was probably...I am a terrible editor. And so bringing those people on to have just genuine conversations with. And then really just tried to pick up the listenership of the podcast because I'm basically waving my arms saying, "Hey, folks. Like, The Ruby on Rails Podcast is back. I'm here as your host. And, like, we are here to stay. Like, I want this to be a mainstay in the community." VICTORIA: That's great. So you started to apply those concepts from your product background. And I'm curious what you found in how the business of the podcast really works. BRITTANY: Yeah, I learned a lot, and we can talk about the transition. So, when I came on to the 5by5 Ruby on Rails Podcast, at the time, this was back in 2018. The podcast was being managed by 5by5, which is, like, a long-standing podcast network. They're still around, but they're much smaller than they used to be. So, like, all of the sponsorship and the episode management was being handled by them. And so I didn't have a lot of insight into that part of the podcast. What I did have insight into is, like, what content is performing well? And what is the audience reaction to what we're putting out there? Like, how is the listenership coming back and whatnot? Now, one thing that did happen over the course of me managing The Ruby on Rails Podcast is we decided to take the podcast independent at one point, you know, 5by5 was starting to wind down. And so, back in 2021, I reached out to 5by5 and said, "Hey, I genuinely really love this podcast. I want to be able to take it to a different platform, you know, have it go independent. But it's really important to me that I'm able to hold on to the current subscribers that I have." I think we all know that, like, if you rebrand something and it's a totally different RSS feed, it's really hard to get people to move over, especially if they're using something that makes podcast listening really easy like Apple Podcasts, you know, you subscribe. You get new episodes, and you just hit play. And so they were extremely willing to work with me. And so, we ended up taking the podcast independent. 5by5 created the hosting platform Fireside. And so we moved the podcast over to Fireside, and that was, like, a very seamless transition. But it was a moment in time where, you know, I was kind of questioning. We're no longer 5by5. It was the 5by5 Ruby on Rails Podcast. What do we call it? And so I genuinely had that moment where I was like, I could be really clever with the name. But then I stepped back, and I was like, no, everyone already refers to it as The Ruby on Rails Podcast. I'm just going to go with it. And so I think that ended up being a good decision. We did change the logo of the show. We kept the same feed. And we had, like, the first episode on the new...we're not even on a network now; we're independent. The first episode of, like, the V2 of The Ruby on Rails Podcast is really what we called it. We just kind of explained the whole move. And I'm just deeply grateful all of our listeners just kind of followed along. And I will say the biggest boon to us moving is that we did get a professional editor. And so, like, the quality of the episodes went up, which is the best money that you can spend. Get yourself a professional editor. I cannot stress that enough. Or you get really good at it yourself. But I know my own skills, and it was never going to be that way. And so we took it independent. And I also decided to do a format change as well because it was a lot to do years of a podcast by myself. It was a lot. So I'm really glad Victoria and Will that you have each other. I think it's really great to have co-hosts. So I ended up moving the podcast. I now have a producing partner, and that's Mirror Placement. They do recruiting for Ruby on Rails, and they are wonderful partners. But I also have three co-hosts that rotate through. I have Brian Mariani, who's a recruiter and founder of Mirror Placement. I have Jemma Issroff, who works on Ruby at Shopify. And I have Nick Schwaderer, who works on Rails infrastructure at Shopify. And that's been great because I rotate through those co-hosts. And I always have fresh content from them. But I also do the interview-style episodes as well, which Victoria was on recently. VICTORIA: Yes. I agree 100%. Having a co-host like Will makes it so much more fun. And I cannot appreciate our editor Mandy Moore enough. And I agree on that advice. And I actually would add when people ask me if they should start a podcast, recommend having at least one other person [laughs] who you want to talk with about that topic for every week. But I wonder, if someone's thinking about starting a podcast, what would you have them consider as to whether or not it's worth it for them? BRITTANY: I recently joined the podcasting subreddit on Reddit just because I was interested to see what kind of questions there were out there. Because when I got into podcasting, I was, like, oh, you just need to have a microphone and a way to record, and you just put it out there, and people are going to listen. It feels very much...like, you remember when, you know, the iPhone came out, and the App Store was empty? And then any app that you made was, like, amazing. Everybody would download it because there was nothing to download. We're now getting to a point with podcasts; there's just a lot out there. My first bit of advice is, something that I said earlier, is make sure that you have an identity around your podcasts. Like, make sure that you are targeting a niche. It's fine if there are other people doing it, but do something that is uniquely you and do something that brings you joy. I really love talking to people in the Ruby on Rails Community. I have a special affinity for people who have never been on a podcast before. It's a lot of work. So it's definitely worth it. I've gotten to meet a lot of my programming heroes because of it. And there are times where I've been very tempted to take a break and be able to step away from it. But, as of right now, it has been a good experience. And what I often say whenever I open up my conference talks is the Ruby on Rails Community is my community contribution because I'm not someone who regularly contributes to open source. And so this is kind of, like, how I give back, and I get to meet a lot of amazing people. Mid-Roll Ad: VICTORIA: Introducing thoughtbot's ongoing maintenance service. Need reliable support and maintenance for your software? Look no further. Our expert team handles upgrades, bug fixes, UI adjustments, and new feature development. And the best part? Our maintenance packages start at just 5k per month for companies of all sizes. From Ruby on Rails to Node, React, and, yes, even PHP, we've got you covered. Trust thoughtbot for top-notch support and optimized performance. To receive a custom quote, contact sales@thoughtbot.com. VICTORIA: And with me here, I have Richard Newman, who's the Development Director on our Boost Team, to talk to me a little bit more about what maintenance actually looks like once you've built your software application, right? RICHARD: Hi, Victoria. VICTORIA: Hi, Richard. You have experience building applications. I wonder if you could describe to a founder who's considering to build an application, like, what should they consider for their long-term maintenance? RICHARD: Well, like you said earlier, part of what you're going for with that long-term maintenance is making sure the health of your project, of your application, is always there. And you don't want to be surprised as you're continuing to work with your users and so forth. And so a number of things that we pay attention to in maintenance are we're paying attention to keeping the application secure, providing security updates. We want to make sure that the ecosystem, basically, all of the tools and third-party services that are tied to your application, we're responding to those sorts of changes as we go along. And then part of it is, occasionally, you're going to find some smaller issues or bugs or so forth as your user group continues to grow or as needs continue to change. You want to be able to respond to those quickly as well. And so a lot of what goes into maintenance is making sure that you're paying attention and you're ahead of those things before they surprise you. VICTORIA: Because what can happen? Like, what are the consequences if you don't do that ongoing maintenance? RICHARD: Well, the security updates those happen across gems and in the platform sort of tools that are there. And so, if you're not keeping those up to date, your exposure, your vulnerability to being hacked, or having a bad actor come into your application start growing on you if you're not doing the maintenance. The other ones that can come up is there's new interfaces that these third-party services...they may be updating their APIs. They may be updating how you're supposed to work with their tool. And so those can occasionally break if you're not paying attention to what's going on or you're suddenly surprised by an upgrade that you have to make. And then, finally, there's this long-term sort of code change that just builds up over time if you're not keeping it refactored for the changes that are upcoming in a language or the gems that you work with. And then, suddenly, after a while, it suddenly gets to the point where you have a lot of work that you might have to do to rehabilitate the application to take on some of the newer features that are being released. And so that makes it that much more difficult, that much more friction about being able to deliver updates for your users or to be able to respond to changes that are happening out there in your application. VICTORIA: Right. So, if you don't have that ongoing maintenance, you could run into a situation where suddenly, you need to make a very large investment and fixing whatever is broken. RICHARD: Absolutely. It's going to be very tough to plan for if you weren't keeping up all the way along and, yes, absolutely ends up being much slower if you have to remediate it. VICTORIA: That makes sense. I wonder if you have any examples of a project you've walked into and said, "Wow, I wish we had been doing a little bit more maintenance." [laughs] And maybe you can share some details. RICHARD: Yeah. We had a fairly large application that involved a number of clinic services. So we had an application that users were going in every day and counting on our fast response. And, over time, we've got surprised by a database upgrade that had to happen. Basically, the database was going to be changed by our third-party hosting service, and that hadn't been tested. There hadn't been procedures in place when we discovered this need. And there was a very hard date that that change had to be done or else the entire application was going to go down. And it came at a very inconvenient time, at the end of the year around Christmas, that we had to respond to all of that. And had we been in front of it and just updated it every quarter and staying current with it, it wouldn't have been nearly the lift that it turned out to be. We were facing a pretty hard deadline [laughs] there to keep things going. It was very, very stressful and disruptive for the team and potentially for the clinics. VICTORIA: Right. And it always happens around a big holiday or something like that, right? When it all comes to a head. [laughter] RICHARD: Absolutely. You want to be in control of the timeframe and not have the timeframe be in control of you. VICTORIA: Right. And if you have a team like thoughtbot supporting you, you can go on your vacation with a little bit more knowledge that if something breaks, there's someone there who can respond and fix things, and you don't have to interrupt your very valuable time off. So... RICHARD: [chuckles] Absolutely. VICTORIA: Yeah. Well, thank you so much, Richard, for joining me today. I appreciate you coming here to talk with us. And we'll talk to you again soon. RICHARD: Yeah, it was a pleasure. Thank you. WILL: I have a question around your listeners. I just want to take a second and just thank everyone who listens to the podcast. We really appreciate you so much, so just thank you, thank you, thank you. Because if you don't have listeners, you don't have a podcast, like you said a second ago. And you went through so many changes. What's been your biggest win, and how do you continue winning with your listeners? And how do you engage with them? BRITTANY: This is a fun answer because, actually, thoughtbot comes into play there. They did not pay me to say this. But one thing that The Bike Shed used to do is they used to go to RailsConf and RubyConf, and they would record episodes during the conference with various Ruby heroes in the community. This is going back to me seeing these people as celebrities. I just thought that was, like, the coolest thing. And, at the time, I couldn't afford to go to conferences like that. So being able to listen to those podcasts and get to hear that kind of content was really important to me. And so, you know, eventually, that stopped being a thing at RubyConf and RailsConf. And two years ago, I reached out and said, "Hey, I really love those kinds of sessions. Is there any way that I could take the lead on bringing those sessions back?" And we did. So it took in the form of a podcast panel at these different conferences where we would bring in different podcasts in the community. And we would have a panel. We would answer listener questions. It was genuinely a lot of fun. So that is a proud moment for me. But it's a proud moment for me because it gave me the opportunity to reach out to podcasts in the community and say, "Hey, we're not competing here. We're friends. I want to record content with you. Like, please be part of my podcast community." And we have never been tighter. So, like, we guest on each other's podcasts. We promote each other's podcasts on like Mastodon and Twitter. And it is just the most lovely thing ever because now we say things like, oh, yeah, like, this podcast, like, that's our, like, sister podcast, or that's our brother podcast. Like, it's so cool that we, you know, rising tide raises all ships. That's exactly what's happening here in the Ruby podcast community. VICTORIA: I like that familial sense within the different Ruby on Rails podcasts, and maybe even Giant Robots is a part of that. Like, are we a cousin or an uncle? [laughter] Who knows? But I was actually there when you recorded the episode live at RailsConf in Atlanta this year. Was that your favorite moment at RailsConf, or was it something else? BRITTANY: Yeah, I would say that was my favorite moment at RailsConf. No matter how many times I meet Aaron Patterson, I am always, like, deeply intimidated by just how funny and intelligent he is. So having that excuse of reaching out to him and saying like, "Hey, will you please be on this podcast panel?" was so fun. I deeply adore Irina Nazarova, and so having her on the panel as well was fun. And then just doing the wildcard of having the audience, like, vote in who was going to be the third panel was truly a risky move, Victoria. [laughs] But it ended up paying off, and it ended up generating some really fun content for us. VICTORIA: That's awesome. And I'm curious, you know, to talk a little bit more about the Ruby on Rails Community. And what do you see is the biggest challenge that it's facing right now? BRITTANY: Oh, I have so many opinions on this. What a great question. [laughs] So I recently put together a talk proposal. It's currently waitlisted at a conference, but it is a talk that I very much want to give. But one project that I would really like to work on is...between, I would say, 2013 and 2015, Ruby on Rails was definitely the number one framework that was being taught in bootcamps. And I'm really curious about what happened to all those people. I'm one of them. I learned Ruby on Rails in 2014. I still believe that I'm in the Ruby on Rails Community, not only for the podcast, but I'm an engineering manager for a company that writes Rails. So I believe I'm very much in the community. I'm so curious. Those people had so much potential of being seniors, principals, staff engineers, founders, engineering managers, architects. What happened to them? And did they stay in our community? And then my second part of that is, what does it mean to be in the Ruby on Rails Community? Like, can you just listen to podcasts and be in the community? Do you need to actively write Ruby? I just find that whole thing very interesting. We're very obsessed with bringing new programmers into the Rails community, which I think is important. But what about the people who we taught Rails and left us? Like, is there an opportunity to bring them back? WILL: It's funny you say that because I wasn't in that year range. I was a little later, like, 2017. And I learned Ruby on Rails, and then I went to JavaScript, you know, React, React Native, but I'm slowly inching back towards Ruby on Rails. My current project, I'm actually able to do some Ruby on Rails. And I'm really excited about it because, like you, that was my first language style that I learned, and I still love it. It is weird, but you always love your first language; I do, at least. So it's interesting that you said that because, yeah, I can say, for me, I'm slowly coming back towards it. BRITTANY: Well, welcome back, Will. We're excited to have you. I know that Node was such a heavy hitter when it came out, and it made a lot of sense. Like, we're going to teach you JavaScript on the front end. Oh, hey, we're going to also teach you JavaScript on the back end. You know, from the business side, I'm so curious whether or not Rails is still, like, one of the top three solutions in order to get an MVP off the ground. I don't have my thumb on that, so I'm very curious whether or not that's true or not. VICTORIA: We certainly still tend to default to it at thoughtbot and to get MVPs off the ground. And we're still building a bunch of products every year with it. [laughs] So, Ruby on Rails and React together, especially if you're trying to iterate very quickly and test your assumptions about what you're building, I think that it's still a really fast and high-performing framework to use. And it's interesting because there's a coding school in San Diego, Codecademy, which is really heavily involved, [chuckles] of course, in the Ruby on Rails Community, and they still teach it in their bootcamp. And one of the reasons they said to me was because it's one of the frameworks that gives you that holistic view of how everything works. [laughs] Like, if you're new to tech, new to programming, in general, it's a very easy entry point to understanding. And I think that, of itself, when you're talking, like, the long-term viability of a framework, being able to hire people who can step in and understand what's going on in your codebase, that framework gives you a higher chance of that. [laughs] You know, that might point to your long-term success, too. BRITTANY: Now, that's a really good point. Going back to the podcast as well, I think one thing that is not very well solved is just being able to make it sustainable as well because there are only so many sponsors out there. And it's really hard to prove ROI from sponsoring a podcast, right? Like, you can put links in the show notes. And you can hope people click on them and they convert. And you can be able to say, "Hey, this podcast is the reason." But I've seen a lot of people start podcasts, and they think, well, if I put a bunch of episodes out and some people listen, then sponsors are going to knock down my door. I'm very lucky that I've had some long-term sponsors that have been able to keep the show sustainable. And I love seeing podcasts that come out of companies, you know, like thoughtbot, where you are being sustained by the company that, you know, is producing it. It's really hard to justify a podcast as a business unless you are already a major celebrity already, right? VICTORIA: Yeah, we certainly don't do it for the money it makes us directly off the podcast. We do not. [laughter] BRITTANY: We do not. VICTORIA: Yeah, I agree with that. And yeah, and even it's interesting as an advertising vehicle or marketing for your company. It can be great because, like, I feel with Giant Robots, we have so many listeners, like, loyal listeners over the years that we have this, like, direct way of communicating with a community that we care about. [laughs] But if you don't have...trying to, like, create that market and create that group of people from the ground up can be really tough. [laughs] And it takes a lot of time, a lot of investment, and a lot of effort, especially if you can't afford a professional editor. [laughs] BRITTANY: Agreed. There's just some cost that I believe, like, the longer I do this, that are just, like, non-negotiable. There are some things that you can definitely have as optional. You know, for me, like, you have to have a good microphone. You have to have a professional editor. I pay for, like, my calendar scheduling software because I want to make that really, like, slick for my guests. Like, I used to...oh, I used to do the emails back and forth of, like, I'm available at Thursday at 2:00 or Friday at 3:00. Like, would one of these work for you? No. [laughs] It's just...that's a rotten experience. For us, we do send, like, a thank you gift after being on the show, which has been, like, a nice add with having a producing partner that will back me on that. And I try to get to as many conferences as possible because I think it's a great vehicle to promote the podcast, but those end up all being optional. And all those things they do cost money. VICTORIA: They do. And it's funny, like, yeah, getting out to the conferences, it's still the number one way to grow things is by meeting people in person [laughs], like, being real and human. BRITTANY: Shocking, right? [laughs] VICTORIA: Yeah. And I'm just kind of curious, like, in terms of how you picture what success means for your podcast. Like, what does that look like in the next six months or even, like, five years of hosting this podcast for you? BRITTANY: Ooh, this is, like, the existential crisis question because I've been doing it for nearly five years. And I think the question is always going to be, you know, like, how long do I want to keep hosting the podcast? I will say the podcast is a positive influence on me in terms of making sure that I stay connected to people, that I keep writing code on the side so that way, I know what I'm talking about. I have this whole imposter thing of, like, what if someone finds out I'm not a Ruby on Rails developer day to day and that I'm, like, actually thinking about business problems; I was, like, an engineering manager? You know, I'm going to get found out, and people are going to unsubscribe. But in all seriousness, I think the success for this podcast is that it can go on without me. It's been around for that long already. And eventually, like, I want to have a succession plan where someones, I will say, like, multiple co-hosts to be able to take it over from there. It'll be rough to watch because, like, I really enjoy, you know, my current era because I feel like the podcast has gone through different eras. I really do enjoy it. But, at some point, it's just not going to make sense in terms of my professional goals. Do you feel the same? VICTORIA: Yes. But we're only a year in. So I feel like I'm still...[laughter] I feel like I'm still new to hosting. And I'm like, oh, I've already recorded, like, 30 episodes or something. [laughs] There's been a lot of change. And we're always thinking about, like, how do we make it better? What do we do? And trying to figure out how do we really get the most out of it for ourselves. But I feel the same way that it's just one of the more fun things that I do at thoughtbot [laughs]. And it gives me that chance to reach out to people and start conversations that I otherwise would not have had. So I really appreciate it. I don't know what you think, Will. WILL: No, I totally agree with you. I love meeting new people. And I love meeting the diverse group of people that we have on the podcast. I love that just, like, how did you get here? Like, what makes you keep at it? Like, you've been at it for five years. What makes you keep at it? Just those questions like that I really love. For me personally, I think that I'm still in the growing phase of podcast hosting. Like, I can get better at this. I can get better at that. What else can I get better at? So I think that's where I'm at in this phase. But, like Victoria said, that's only a year in. It's a different story when you're five years in. BRITTANY: [laughs] It is. And one thing that I will do to make it more sustainable is, you know, like when you're running, you can either be sprinting, or you can be doing, like, a long endurance race. So with the podcast, I will book a bunch of podcasts in one week and say, this is my week to be recording. Like, I'm going to be very heads down on the podcast. I have other things going on in my life, but I'm like, this is a podcast week for me. And so I will record a bunch of episodes. And that essentially gives me a couple of weeks where I can essentially take a break from the podcast. But guess what, listeners? Like, you're still getting new episodes. So you have no idea that I'm secretly taking a break. And I think that has also been a huge help. Odd fact is that the five years that I've been hosting The Ruby on Rails Podcast, I am only missing from one episode. And the reason for that is that when I broke my ankle, [laughs] I called my co-host and was like, "Hey, I'm going into surgery tomorrow. We have this great episode being recorded tomorrow. I need you to take it." [laughs] And so that is the one episode that I am missing from, but I think it was a good lesson for me to know that I can step away and good content can still happen. WILL: That's amazing. That's a pretty good record. [laughs] BRITTANY: Or it might be obsessive, Will. I don't know. [laughter] WILL: Let me ask you this, what does success look like for you personally - roller derby, your full-time job? What does success look like for you in those areas in six months or a couple of years? BRITTANY: Oh, that's a really great question. So I had stepped away from roller derby during the pandemic. And so I absolutely love fitness. I do CrossFit. I have a peloton. I have my own little home gym that I built during the pandemic that I absolutely adore. So, you know, success for me is continuing to invest in that self-care. I want to keep skating just because I'm that person. Everyone came to me, and they're like, "Oh, you broke your ankle. I bet you won't go back to a roller derby." And I was like, oh, you think I won't? You think I won't go back? [laughs] So I'm headed back, but I'm going to be very careful about it. Because I've seen that, you know, your body can break, and you need to give yourself some rest. But to answer, overall, like, I am an engineering manager now, and, you know, my goal is to eventually to get to that director level. And, in some ways, like, I can justify the podcast just because I do get the excuse to talk to people that have the job that I eventually want to have in my career. And so it helps in that regard as well. VICTORIA: I think that's great, and I agree. That's also why I started getting involved in my community a lot, maybe 5 or 10 years ago. I was just like, here's opportunities to show my leadership and see how connected I am with other leaders. [laughs] It helps in that way. And on blading, I actually bought rollerblades recently just to go around the neighborhood. BRITTANY: Yeesssss! VICTORIA: And I got heckled by a woman [laughs] who said...I think she was being sincere, but she was like, "Bend your knees, and it's going to be okay." [laughter] Like, "Wear wrist guards next time." [laughter] I was like, maybe just my face was very try-hard in that moment. Because I have a lot of respect for people who can roller derby and get around on skates that fast. [laughs] BRITTANY: Well, you know what's really funny? (I haven't even talked about this on my own podcast.) is that you know, I'm involved in the Roller Derby League. Obviously, I can't skate right now. And so I needed to find a committee so that I was able to still, you know, provide value to the league. And so, for some reason, I decided that skater resources would be a good idea. So I'm essentially one of the people who is, you know, human resources within the Roller Derby League. And so when there are disputes or questions, or people have hurt feelings, like, they're coming to me, which is, you know, really funny because I do some of that as an engineering manager. So, like, to your point, Victoria, like, you know, I can do growth because they're way more extreme through roller derby, as you can imagine. And, in some ways, it ends up being good practice. VICTORIA: Yes, that does sound like practice for higher-level management decisions, [laughs] so get ready. You're going to have issues and problems, and you're the one to solve it. So... BRITTANY: Yeah. It's not like their problems don't matter. But, in some ways, it's almost like playing with monopoly money because, like, you know, you're not dealing with somebody's, like, livelihood. You're dealing with a sport that they do for fun. Like, trust me, no one is being paid to play roller derby. [laughs] It's a very expensive sport. There's a lot of equipment involved. And, Victoria, yes, you want to wear wristguards. [laughter] VICTORIA: Yes. I learned my lesson. BRITTANY: You write code. You want to wear wrist guards. [laughter] VICTORIA: Right. And yeah, it's funny about things like that. Like, it's still very meaningful to people. Like, when I used to coach kids' climbing competitions, it's, like, the same thing. Like, it's rock climbing, everybody, but some people take it very seriously. [laughs] There's a lot of feelings involved. But, at the end of the day, it's nice to have that practice outside of the pressure of it being someone's livelihood and all of those details. BRITTANY: Agreed. VICTORIA: Well, let me ask you this question. It's one of our favorite ones. But if you could go back in time and give advice to your younger self, what would you say? And maybe it's at the beginning of the podcast or some other inflection point in your career. BRITTANY: That is...oh, what a gift because hindsight is 20/20, isn't it? When I was going through school, I ended up getting a marketing degree because I really enjoyed business. I really liked, you know, the mechanics behind marketing. But, at the time, I had taken a couple of computer classes, and this was back in 2006. And, you know, I thought about double majoring in computer science and marketing. And someone gave me the terrible advice that computer programming was going to go away [laughs], and so it would be a waste of time to get that double degree in computer science. And so, you know, I'm very much a second career developer. Like I noted earlier, you know, I was a PM. I was a non-technical product manager before I learned how to code, and so I learned how to code in my 30s. So I wish I could go back and get into programming way earlier. It would have changed the entire trajectory of my life. But part of me always wants to live out, like, that Black Mirror, like, what it would have been like if I had learned to code so much earlier. Would I have found Ruby? Maybe not. WILL: I totally agree with that because the same story. I remember growing up, and I had a cousin that lived next door. He used to program, and I was just, like, he was a celebrity because I was like, whoa, look what he's doing, and how can you do that? And then I went off to college. Well, I grew up in a small town, so we didn't really have many computer programs. I went to a college, and they said, "Hey, we have this one computer course you can either take it or test out." I was like; I'm not taking it; test out. I want to save that money. And I didn't realize how much I'll love computers and programming until later in life, late 20s, early 30s. And I wish I could have started early, so I totally agree with you about that. VICTORIA: Like, I wish I would have time now to learn how to code. [laughs] Like, I still need to learn it. No, I think that...oh, would I advise? I don't know. You know what's funny? A recent guest said that if that had happened, they still wouldn't have believed themselves [laughs], right? Like, would you really believe someone telling you what to do? Like, you know, you try to make the best decision that you can at the time. BRITTANY: I think it's fun to look back and see all the little things that happened that got you to where you are. So, like, two of, like, crucial things that happened for me. I was in school to become a genetic counselor, and I hated it. And so I had gotten an internship, and, like, that internship changed everything because it was like a day in the life as a genetic counselor, and I really did not like it at all. And so, I ended up dropping all my classes and moving into the business school. And so that was one thing that happened. And then the second thing is, you know, I was working at a cowboy restaurant. [laughs] It was ridiculous. And I was getting ready to graduate school and just absolutely terrified about not having a job. I ended up getting this table of this company that was, like, having a business meeting, and we ended up chatting, and they were so wonderful. And they left me their business card, and, like, that ended up being my first job. It's just the little micro-decisions that you make that, like, change your entire trajectory, which is really so cool. So you end up not really regretting anything, but you always just kind of look back and reflect, and you're like, what if I had given that table away? Or what if I hadn't been ambitious and, like, tried to get that internship? So just everything's an opportunity, right? WILL: Yeah, I totally, totally agree with that. So you do roller derby, CrossFit, marathons, coding, your podcast. So you do a lot of self-care, which I don't think, especially in the tech world, we do enough self-care. I know I don't. I am horrible at it, trying to get better. What's your wind in your sails for that? Like, how do you keep going? Like, how do you stay disciplined with that? BRITTANY: I think, for me, I feel better when I move my body. I make better decisions. I am more patient. I need to work out earlier in the day. Like, I am a morning person, and so it makes me feel good. And so then I go into work in a good mood. And I deal with people day to day, right? Like, I manage ten developers. And so it's also something that I can use to connect with my team as well. A lot of them also like to do physical things, and so that works out nicely. In terms of nutrition, I definitely could be better. But I will say my partner and I take turns meal prepping our lunches. We both work from home. And so being able to, like, in between meetings run over and grab a box of actually good food to be able to eat lunch. We do, like, a meal service at night as well. I don't know, like, you need to look out for you. Because while the belief is that other people are also looking out, nobody's going to look out for you like you are. And so you have to prioritize self-care and just making sure that you're getting those moments. And I agree with you, Will; sometimes, I'm absolutely terrible at setting up those processes so that way you don't fall through. VICTORIA: I think there's a book that makes me think of it called, like, The Subtle Art of Not Giving a F*ck. [laughs] BRITTANY: Yes. VICTORIA: Yeah. BRITTANY: Yes. VICTORIA: Yep. And I think that's part of it, too. Like, there's a lot of pressure to be so high-performing and to do all the things for your family, and for your work and your personal life. But, at the end of the day, it's also okay to just sit around and do nothing [laughs] and, like, relax. BRITTANY: Yeah, I've watched a lot of Drag Race, a lot. [laughs] VICTORIA: Oh, awesome. Yes. What's your favorite season? BRITTANY: Oh, season six, I would say. Season six is just so good. Are you watching All-Stars? VICTORIA: I'm not right now. I'm actually...I usually binge-watch it at random times. So I'm not really caught up. But I have met a few of them at drag shows. I think I've met Milk. Is that [inaudible 44:27] BRITTANY: Oh, wow. What a queen to have met. VICTORIA: I know. BRITTANY: That's amazing. [laughs] VICTORIA: That was actually a very funny story. I'll tell you another time. [laughs] But yes. BRITTANY: But honestly, like, Drag Race actually relates to engineering management for me because, you know, at my last job, I had two developers that I was struggling to connect with. And I realized that after stand-up, they were staying behind to talk about Drag Race, and I wanted to connect with them. And I was like, oh, I'll check out a couple of episodes and became so deeply addicted [laughs] that, like, I surpassed them in how much I loved it. So, like, it is a fun, like, I've always thought about giving a conference talk where, like, each report that I have, like, one crazy thing that they do...well, not crazy but, like, one, you know, passion that they have and, like, trying it just to have something to relate to. Though I will say, I did manage somebody who really liked to jump out of planes, and that is just not in the cards for me. VICTORIA: I love that too. I like when someone is really passionate about something. I'm like, okay, I'll give it a chance, at least once, you know. But I have some friends right now who are into freediving, and I'm not convinced [laughs] that I want to go try to hold my breath underwater. BRITTANY: What in the world is freediving? VICTORIA: It's diving underwater without oxygen. BRITTANY: No. VICTORIA: Yeah. Yeah. BRITTANY: That's a big nope for me. VICTORIA: And, like, hunting fish. So, like, they catch tuna and stuff. They're down there pew-pew and making sushi when they get back. BRITTANY: Well, that actually sounds wonderful. But -- VICTORIA: Yeah, I'm like, I will eat this. I will eat [laughs] whatever you catch. BRITTANY: Yes, that's fair. VICTORIA: Yeah. Like, I'm into the results but not...I might try some of the, like... a lot of it is, like, training your breath and being able to hold your breath and to stay calm because that's really the biggest problem. [laughs] I do rock climbing. I think that's enough. Like, that's -- WILL: [laughs] BRITTANY: That's pretty badass. VICTORIA: Yeah. [laughs] WILL: Yes. BRITTANY: That is a very cool sport. VICTORIA: Yeah. And, actually, you're mentioning how it was, like, you worked at a cowboy restaurant, and that was how you got your first connection to your job. And, like, I would go up to, like, my college climbing wall and be, like, I'm a rock climber; you should hire me. And [laughs] through that connection, I got my first referral to my first job in DC. And so, basically, my whole life revolves around it. [laughs] Nothing would happen without these little connections that you make. I'm curious, Will, if you had a pivot point like that you can tell us about. WILL: It was probably getting to tech because it was more of a hobby, and sometimes it's still a big hobby for me. So I will say either getting into tech or working out. So I try to work out with friends. So I used to play football. Everything was a group workout. So after football, it was very hard for me to work out because it was always a group workout. So after many, many years of finally realizing that, I try to work out in groups, with friends, and stuff like that. So that's probably the biggest thing for me is, like, working out in a group and having someone to hold me accountable. BRITTANY: I love that. That's one reason...so I used to be a fitness instructor. I should reveal that as well. I used to be a BODYPUMP instructor. And the reason for that is just, like, again, I thought people that were fitness instructors were just, like, celebrities and absolute badasses. And so, I used to only go to group fitness class as well because I needed that accountability. And so, yeah, there's definitely days I wake up where I absolutely do not want to do anything. But having that accountability, it's just really awesome, and really, it makes sure that you follow through. VICTORIA: That makes sense how you've practiced your voice and why your podcasting voice is so strong [laughter] because you're a fitness instructor. That's what is starting to add up for me. [laughter] BRITTANY: You know what? The biggest challenge of being a fitness instructor is that they would send me the routines, and I would have to memorize them. And being able to memorize like, oh, I'm going to squat on the fourth count. And I'm going to do a clean and press on the eighth count. Oh my God, is that an algorithm -- WILL: Yes. BRITTANY: You know, for a pro...and I was like, is there any way that I could somehow automate? Like, part of me wanted to game it. I'm like, how do I game this so I don't have to spend so much time trying to memorize it? I mean, it was truly, truly challenging. And it was probably, like, the best brain teaser that I could have been doing because you're essentially putting on a live performance while working out. And everyone needs to be able to follow you and feel encouraged by you. It was just...it was a wild time. WILL: [laughs] VICTORIA: That sounds very demanding. Well, coming up to the end of our time here, is there anything else you would like to promote today? BRITTANY: Ooh, no. We're currently not hiring at my job. Normally, that is something that I would promote. I would say if you are interested in checking out my podcast, it is The Ruby on Rails Podcast. We have plenty of things on there that are not Rails-specific. We've had conversations about, like, what's it like to get stock options at a company? What does the recruiting landscape currently look like? And then we also have, like, deep topics about, like, what's currently being merged into Ruby Core? So, really, we have a wide variety of topics. So, if you find my voice somewhat pleasant, come on over; we'd be happy to have you. And, of course, you can listen to Victoria's episode, that will be linked up in the show notes. But this was such a pleasure. It was great spending time with you both, Will and Victoria. WILL: Yeah, it was great. Loved chatting with you. VICTORIA: Yes, thank you so much for joining. This was super fun. You can subscribe to the show and find notes along with a complete transcript for this episode at giantrobots.fm. WILL: If you have any questions or comments, email us at hosts@giantrobots.fm. And you could find me on Twitter @will23larry. VICTORIA: And you can find me on Twitter @victori_ousg. This podcast is brought to you by thoughtbot and produced and edited by Mandy Moore. Thanks for listening. See you next time. ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com. Special Guest: Brittany Martin.

WNHH Community Radio
Behind the Brand with Prestige & EZ BlueZ: Attention Rebellion

WNHH Community Radio

Play Episode Listen Later Jul 14, 2023 54:02


Attention Rebellion is an alt-rock outfit from Hartford, Connecticut featuring catchy riffs, groovy beats, and hard-hitting original music. Veterans of the CT, New York City, Austin, Philadeliphia, and Seattle music scenes, the band joined forces in late 2022 with a common goal: to create compelling, original rock music with an emphasis on quality songwriting and high-energy live performances. The band is led by the soulful, fiery vocals and infectious melodies of Paris Robberstad. Guitarists Geoff Peters and Jeff Oddo bring together many different styles that result in a tasty rock blend. Aaron Patterson lays down the anchor with his funky, inventive bass lines. Drummer Adam Believeau's reggae-influenced beats provide the perfect backbeat for the band's eclectic sound. With two singles released so far, and an EP on the way, Attention Rebellion shares a fresh energy and collective desire to break new ground.

Giant Robots Smashing Into Other Giant Robots
482: Evil Martians with Irina Nazarova

Giant Robots Smashing Into Other Giant Robots

Play Episode Listen Later Jul 6, 2023 33:46


Irina Nazarova is CEO of Evil Martians, a product development consultancy that works with startups and established businesses while creating open-source products and services. Victoria talks to Irina about getting a sense of what people are interested in learning about or what kind of problems they have, how consulting and product development complement each other, and of course, the question on everyone's minds: Is Evil Martians really evil?

Remote Ruby
Ruby 3.3 Preview 1 & The Mystery Of The 3 Inch Round Button

Remote Ruby

Play Episode Listen Later May 26, 2023 38:27


On this episode of Remote Ruby, Jason, Chris, and Andrew begin by sharing their thoughts on some shows they're watching such as “White House Plumbers,” “Curb Your Enthusiasm,” and “Seinfeld.” The conversation then shifts towards the exciting release of Ruby 3.3 Preview 1, which focuses on performance improvements for YJIT and the introduction of compiler RJIT. They dive into the challenges of implementing autosaving and error display forms using Turbo and Hotwire in Rails. Then, the conversation takes a turn towards serverless function, with Andrew sharing his experiences using Vercel, and a discussion on Hatchbox and Fly for hosting applications, and the appeal of PlanetScale for databases. Go ahead and press download now to hear more! [00:00:20] The guys discuss a few shows they're watching.   [00:05:10] Chris announces the exciting release of Ruby 3.3 Preview 1, which introduces performance improvements for YJIT, and introduces the RJIT.  [00:07:11] Jason brings up an interview with Aaron Patterson that Justin Searls did at Ruby Kaigi 2023 where he talked about two people working on different parsers which could benefit alternative Ruby implementations.[00:09:38] A conversation came up somewhere about Laravel being a feature-rich framework, while Ruby is considered a better language.[00:10:59] Jason brings up the challenge of implementing autosaving and displaying errors in a form using Turbo and Hotwire in Rails. Chris mentions morphdom as a solution which can help with preserving focus during form updates.[00:16:23] Chris talks about autosaving features as a standard in modern web applications, and the need for built-in solutions within Rails is emphasized to simplify the implementation process.[00:22:00] Andrew shares his frustrations with implementing autosaving and validations.[00:25:55] Andrew explains what he was doing with functions in Vercel.[00:28:00] Jason brings up talking to Crunchy Data at RailsConf and the appeal of Planet Scale for databases. [00:30:40] Hatchbox and Fly for hosting applications is discussed and plans for upgrading Ubuntu versions and Hatchbox features.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterWhite House Plumbers (HBO MAX)Curb Your Enthusiasm (HBO MAX)Seinfeld (Netflix)Ruby Kaigi 2023-Aaron Patterson Interview (YouTube)morphdom-GitHubRemote Ruby Podcast-Episode 178: José Valim, creator of Elixir and former Rails core contributorVercelCrunchy DataPlanetScaleHatchboxFlyUbuntuBuild and Learn Podcast by CJ Avilla and Colin LoretzRuby Radar TwitterRuby for All Podcast

Ruby for All
RailsConf 2023: Recapping What You Missed

Ruby for All

Play Episode Listen Later May 11, 2023 27:21


On this episode of Ruby for All, Andrew attended RailsConf 2023 and talks about his experience at it, how he focused on socializing with friends and co-workers, and attended fewer talks than before. There were some great talks he heard and keynotes he really enjoyed, especially Aaron Patterson, who proposed the idea of Rails shipping its own LSP for Ruby and Rails. Also, a highlight was that this conference had a greater focus on early career developers, offering headshots and resume reviews, which was super cool.   Next year's conference will be in Detroit, and RubyConf 2023 is coming up in November in San Diego, so Julie and Andrew are both excited to attend this one and Andrew will have stickers in case you missed out. Hit download to hear more cool stuff!  [00:02:16] Andrew kicks things off telling us about RailsConf and seeing his crew.[00:04:25] Andrew mentions he attended fewer talks than before and focuses on the social aspect of meeting his friends and expresses his interest in learning more about asset management in Rails. [00:05:58] Julie asks Andrew about Sprockets, and he explains. [00:07:54] He talks about the sponsor exhibit hall at RailsConf, and talking to people from Crunchy Data, a Postgres service, and the RubyMine people from Jet Brains, which he wants to start using again. He mentions the RubyMine IDE and its features. [00:11:48] Andrew highlights Eileen Uchitelle and Aaron Patterson's keynotes, with Aaron Patterson proposing the idea of Rails shipping its own Language Server Protocol (LSP) for Ruby and Rails.[00:13:38] Andrew also enjoyed attending talks by his co-worker Vincent and Drew Bragg, which was a ton of fun.[00:15:16] Did Andrew go to any cool events? He hung out with some people for dinner, but was having major social anxiety, which caused him to stick by his friend Jason.[00:19:12] This year's RailsConf had more focus on early career developers, and he spent more time with them.  Also, Andrew met a lot of people who listen to the podcast. [00:23:26] Julie liked that the conference was focused on early career devs and wishes there was a regional conference that was geared solely to early career devs. [00:24:11] Next year RailsConf is in Detroit, and Andrew and Julie are looking forward to going to RubyConf 2023 in San Diego which will be Nov 13-15.[00:24:54] Yes, Andrew did pass out stickers at the conference, and many people asked for more. He also thanks all the sponsors that made it a success. Panelists:Andrew MasonJulie J.Sponsors:HoneybadgerGoRailsLinks:Andrew Mason TwitterAndrew Mason WebsiteJulie J. TwitterJulie J. WebsiteSprockets RailsShopify-Ruby LSP RailsCrunchy DataJet Brains-RubyMineRuby Conferences 

Ruby on Rails Podcast
Episode 469: Railsconf 2023: A Ruby Community Podcast Live!

Ruby on Rails Podcast

Play Episode Listen Later May 10, 2023 37:22


Listen to Brittany Martin (The Ruby on Rails Podcast), Jason Charnes (Remote Ruby) and Paul Bahr (Peachtree Sound) as they interview guests from the community on a live podcast at Railsconf 2023 in Atlanta, GA. Guest #1: Aaron Patterson, Senior Staff Engineer at Shopify (https://twitter.com/tenderlove) Guest #2: Irina Nazarova, CEO of Evil Martians (https://twitter.com/inazarova) Guest #3: Voted on by the community in an online poll: Justin Searls, Meta Programmer at Test Double (https://twitter.com/searls?lang=en) Guest #4: Voted on by the community live at this session: Britni Alexander, Senior Software Engineer (https://twitter.com/TwitniTheGirl) Our Vanna White of Guest Selection: Danielle Greaves, Lead Web Developer, Pittsburgh Cultural Trust (https://twitter.com/danigirl329) Show Notes: A Ruby Community Podcast Live! | Railsconf 2023 (https://railsconf2023.sessionize.com/session/471526) Peachtree Sound (https://www.peachtreesound.com/meet-paul) Substitute Teacher - Key & Peele - YouTube (https://www.youtube.com/watch?v=Dd7FixvoKBw) Keynote - Aaron Patterson | Railsconf 2023 (https://railsconf2023.sessionize.com/session/471439) Rails as a piece of birthday cake | Railsconf 2023 (https://railsconf2023.sessionize.com/session/452834) Evil Martians (https://evilmartians.com/) N.E.A.T. (Not Everything's About Technology) (https://testdouble.com/neat) Justin's Field Report from RubyKaiji (https://testdouble.com/field) Hire Britni! | LinkedIn (https://www.linkedin.com/in/britnia) Sponsored By: Honeybadger (https://www.honeybadger.io/) You won't know if Honeybadger will really save you time and trouble until you see how it works in your own toolchain. With two lines of code and five minutes, you can see for yourself. Honeybadger automatically hooks into popular web frameworks, job systems, authentication libraries, and front-end JavaScript. Get started today in as little as 5 minutes at Honeybadger.io (https://www.honeybadger.io/) with plans starting at free!

Remote Ruby
Optimizing Ruby JIT Compilers with Takashi Kokubun

Remote Ruby

Play Episode Listen Later Apr 14, 2023 47:05


On this episode of Remote Ruby, Jason and Andrew are here, and they are thrilled to have with them, Takashi Kokubun, a Staff Developer at Shopify. He's here to talk about JIT (just-in-time) compilers in Ruby and why we would want to use one in Ruby. We'll hear about his work on YJIT and RJIT, the differences between YJIT and MJIT, and how the primary focus is to make YJIT the best JIT compiler for real-world Ruby apps. There's a conversation about the use of Rust in JIT compiler development for Ruby, and Takashi shares some benefits to using Rust, as well some challenges. Also, there's some exciting upcoming improvements in YJIT, we find out why HAML is Takashi's preferred template language, and he tells us about Hamlit, the template engine he authored and maintains. Hit download to hear much more! [00:01:54] Since Takashi worked on the original MJIT, he tells us what a JIT compiler is and why we would want to use one in Ruby.[00:06:41] Takashi talks about working on the original MJIT (Ruby 2.6). [00:11:15] Jason wonders what kind of performance gains Takashi saw on average in Ruby 2.6 using MJIT in production. He explains that it was designed to optimize specific benchmarks such as Optcarrot but was not efficient for general purpose applications like Rails. [00:12:49] We find out why MJIT was slower on Rails which has to do with it using a sync compiler. [00:14:41] What kind of improvements were there in running Optcarrot with MJIT?[00:16:41] Takashi shares why he joined in Shopify and what he did with YJIT.[00:20:34] We hear some differences that YJIT has taken from MJIT. For example, YJIT is a JIT compiler that generates machine code directly, making it more efficient and faster than MJIT, which uses a C compiler. Also, he explains the architecture being very different between MJIT and YJIT. [00:24:52] We learn some performance benefits using YJIT.[00:26:19] Let's listen to Takashi talk about his work on RJIT, and he touches on John Hawthorn and Aaron Patterson's compilers, hawthjit and TenderJit. [00:31:23] Takashi talks about the primary focus to make YJIT the best JIT compiler for real world Ruby apps. [00:34:20] Takashi shares his mixed feelings with Rust, as well as the challenges. [00:39:29] There's some exciting improvements coming up in the JIT world! [00:42:33] Andrew wonders if ERB gets any benefit to the stuff happening in YJIT.[00:43:14] HAML is Takashi's preferred template language, and he tells us about a HAML package he authored and maintains called, Hamlit. [00:44:42] Takashi maintains many libraries, he works on YJIT at Shopify, and writes assembly code.  How does he have time for all this? [00:45:46] Find out where you can follow Takashi online.Panelists:Jason CharnesAndrew MasonGuest:Takashi KokubunSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason TwitterTakashi Kokubun TwitterTakashi Kokubun GitHubOptcarrot yjit-benchTenderJIThawthjitHamlitRuby Radar TwitterRuby for All Podcast

The Changelog
News: Self-hosting in 2023, no more Alpine Linux, type constraints in 65 lines of SQL, Initial V, Minimal Gallery, the legacy of Visual Basic, tracking fake GitHub stars & Mastodon's 10M

The Changelog

Play Episode Listen Later Mar 20, 2023 4:34 Transcription Available


Michal Warda on self-hosting in 2023, Martin Heinz will never use Alpine Linux again, Oliver Rice at Supabase creates type constraints in Postgres with just 65 lines of SQL, Aaron Patterson converted a BMW shifter into a Bluetooth keyboard that can control Vim, Piet Terheyden has been curating beautiful & functional websites daily since 2013, Ryan Lucas put together a history of Visual Basic, turns out it's easy for an open source project to buy fake GitHub stars & Mastodon hit 10 million accounts.

Changelog News
Self-hosting in 2023, no more Alpine Linux, type constraints in 65 lines of SQL, Initial V, Minimal Gallery, the legacy of Visual Basic, tracking fake GitHub stars & Mastodon's 10M

Changelog News

Play Episode Listen Later Mar 20, 2023 4:34 Transcription Available


Michal Warda on self-hosting in 2023, Martin Heinz will never use Alpine Linux again, Oliver Rice at Supabase creates type constraints in Postgres with just 65 lines of SQL, Aaron Patterson converted a BMW shifter into a Bluetooth keyboard that can control Vim, Piet Terheyden has been curating beautiful & functional websites daily since 2013, Ryan Lucas put together a history of Visual Basic, turns out it's easy for an open source project to buy fake GitHub stars & Mastodon hit 10 million accounts.

Changelog Master Feed
Self-hosting in 2023, no more Alpine Linux, type constraints in 65 lines of SQL, Initial V, Minimal Gallery, the legacy of Visual Basic, tracking fake GitHub stars & Mastodon's 10M (Changelog News #36)

Changelog Master Feed

Play Episode Listen Later Mar 20, 2023 4:34 Transcription Available


Michal Warda on self-hosting in 2023, Martin Heinz will never use Alpine Linux again, Oliver Rice at Supabase creates type constraints in Postgres with just 65 lines of SQL, Aaron Patterson converted a BMW shifter into a Bluetooth keyboard that can control Vim, Piet Terheyden has been curating beautiful & functional websites daily since 2013, Ryan Lucas put together a history of Visual Basic, turns out it's easy for an open source project to buy fake GitHub stars & Mastodon hit 10 million accounts.

IdeaDrop Podcast
Failing, Drinking non-Alcoholic Beer, and Navigating through Pain with special guest Aaron Patterson

IdeaDrop Podcast

Play Episode Listen Later Dec 19, 2022 77:31


In this episode we have special guest Aaron Patterson with us. Aaron has had his hands in many things in the business world. We will discuss the successes and the failures, the pain that comes with it and stories of how they have navigated through it, Dustin and Kendall will present Aaron with some business ideas, they will crack open so cold non-alcoholic beers and give their thoughts on the future of them, and much more.If you enjoyed this episode, be sure to check out the rest at the following links!https://www.ideadroppodcast.comhttps://podcasts.apple.com/us/podcast/ideadrop-podcast/id1620230538?i=1000589893569https://open.spotify.com/show/4y8adcLGwKbeHPnfzHtOkr?si=551e56a7ea0446a4Executable frameworks to help you become 10X more consistent in setting up and building outbound and inbound funnels that directly contribute to pipeline development. They Got Acquired They Got Acquired is the first to build an independent database of online business acquisitions between $100K-$50M

Dirt - An Audio Drama
Ch. 14 That's Not What I Expected You to Say

Dirt - An Audio Drama

Play Episode Listen Later Dec 15, 2022 49:30


Wherever you are, I hope you don't take this personally.   Featuring Megan Morales and Antonia, Genie Leslie as Kim, Aaron Patterson as Carl, Sheryl Tamayose as Megan Kimura, Jessi Brown as Mel, Brittany Carroll as Detective Peterson, Kent Atwood as The Stereo Repair Shop Guy, Jeff Hostetter as Dave, Katrina Hostetter as Mindy, Tiarra La as Kathy, Rick Hutter as The Guy Dressed Up as Abraham Lincoln, Terry Bender as Lois, Colton Dunn as Gary, Kristen Bridge as Brenda, Cameron Kennerly as Desmond, Ken Kaiyala as Aimo, Sara Kaiyala and Shawn Noyes as Voices in the Crowd, and Kristopher Kaiyala as Joseph.   For the best audio experience, please listen with headphones. Discuss the show on the Alien Ghost Robot Discord! (Look for Dirt's channel in the navigation): https://discord.gg/qzqtceaFYW   Follow Dirt on Twitter: @dirtaudiodrama.   For episode transcripts, press kit, background information, and a free sticker: https://www.dirtaudiodrama.com. Dirt - An Audio Drama is part of the Fable & Folly Network. Thank you for listening. Please share Dirt with friends and family! © STUDIO5705 LLC Learn more about your ad choices. Visit megaphone.fm/adchoices

Ruby for All
How to Open Source with Richard Schneeman

Ruby for All

Play Episode Listen Later Nov 24, 2022 28:53


Timestamps[0:40] Andrew just finished giving his BridgetownConf 2022 talk[0:55] Richard introduces himself and talks about a feature he added that will be coming out in Ruby 3.2[2:20] Andrew asks Julie if she was ever obsessed like him about getting a commit into Rails, which launches into a discussion with Richard about contributing to Rails and how he paired with Aaron Patterson.[5:20] Richard shares how he got started contributing to Rails on a regular basis, which led to creation of CodeTriage.[9:00] Andrew shares how he began contributing to open source through baby steps by replying to issues in some of the libraries and tools he used.[9:53] Julie mentions that getting to know the types of issues that come into projects you want to contribute to can be a big help and Richard adds some more reasons why this is very helpful for new contributors.[11:30] Richard explains how to make micro contributions like hearting an issue or commenting on them. [12:50] Richard discusses how contributing to open source is harder than most people make it seem to juniors, which led to why he wrote How to Open Source.[14:30] Julie discusses her first open source contribution with Ruby for Good and how we often forget the complexity of things we do every day for newcomers. She also recommends letting the maintainer know if the instructions for setting up the project are missing or incorrect. [17:24] Richard recommends having folks take notes of their own experience and how experienced devs sidestep issues instead of providing feedback to the maintainer.[19:23] Andrew asks what the prerequisites are for folks interested in How to Open Source.[22:30] Richard talks about showing up early to projects and it generates some discussion around making sure that you are making valuable contributions, respecting the the maintainers time, and Hacktoberfest.[27:22] Andrew asks Richard about 24 Pull Requests and where folks can follow him online.LinksAndrew's BridgetownConf TalkCodeTriageHow to Open Source: Learn the secrets of successful contributorsRuby for GoodHacktoberfest24 Pull RequestsRichard's WebsiteRichard on Twitter

Remote Ruby
You Gotta Risk It For The Brisket

Remote Ruby

Play Episode Listen Later Sep 23, 2022 43:43


[00:00:15] What is this cursed idea thing Andrew did with Storybook?[00:05:31] Andrew mentioned using MDX format and he tells us what it is, Chris brings up the PHP days and components, and Andrew talks about architecture. [00:10:51] Being a visual person, Andrew explains another thing he really likes about Storybook.[00:17:29] Jason talks about finding his Zen using Tailwind in a project.  [00:20:25] Chis wonders if Jason runs into issues with having to undo some of the stuff, and Jason explains how he's been using more CSS and a problem he ran into.  [00:24:02] CSS Variables are discussed and why they're awesome, and Andrew tells us about the fallback for CSS Variables.  [00:24:37] There's a discussion about using JIT and PurgeCSS, an amazing tool. [00:27:41] Chris tells us about using a template from Bootstrap for the Rails Hackathon homepage.[00:30:17] The guys discuss using React Components, Bootstrap, and using Tailwind over Bootstrap.  [00:33:57] Jason talks about Inertia, which is a library for Laravel and Rails. [00:34:37] Find out what Jason is doing with View Components and Job Boardly, that he hopes will get Andrew's acceptance.[00:36:29] Andrew explains why he's obsessed with component architecture, and Chris tells us about his first real serious project he did with the Python recreation of the apt package manager. [00:38:55] Chris announces Tender Love (a.k.a. Aaron Patterson) mentioned he's going to cut a new release of Rails, and he talks about Rails Hackathon coming up.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Jason Charnes TwitterChris Oliver TwitterAndrew Mason Twitter10 Best Tech Podcasts in 2022 (as Chosen by the Rails Community)-Planet ArgonRemote Ruby Podcast-Episode 165: GitHub Codespaces & Docker with Benjamin Wood (Recommended episode from Planet Argon)StorybookMDXPurgeCSSBootstrapRails HackathonRemote Ruby Podcast-Episode 139: Learning in Public, Alpine & InertiaRemote Ruby Podcast-Episode 66: Joined by Jonathan Reinink, Creator of Inertia.jsAaron Patterson TwitterRuby Radar NewsletterRuby Radar Twitter

The Bike Shed
341: Fundamentals and Weird Stuff

The Bike Shed

Play Episode Listen Later Jun 7, 2022 35:27


Steph and Chris are recording together! Like, in the same room, physically together. Chris talks about slowly evolving the architecture in an app they're working on and settling on directory structure. Steph's still working on migrating unit tests over to RSpec. They answer a listener question: "As senior-level developers, how do you set goals to ensure that you keep growing?" This episode is brought to you by BuildPulse (https://buildpulse.io/bikeshed). Start your 14-day free trial of BuildPulse today. Faking External Services In Tests With Adapters (https://thoughtbot.com/blog/faking-external-services-in-tests-with-adapters) Testing Third-Party Interactions (https://thoughtbot.com/blog/testing-third-party-interactions) Jen Dary - On Future Goals (https://www.beplucky.com/on-future-goals/) Charity Majors - The Engineer Manager Pedulum (https://charity.wtf/2017/05/11/the-engineer-manager-pendulum/) Charity Majors Bike Shed Episode (https://www.bikeshed.fm/302) Become a Sponsor (https://thoughtbot.com/sponsorship) of The Bike Shed! Transcript: STEPH: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Steph Viccari. CHRIS: And I'm Chris Toomey. STEPH: And together, we're here to share a bit of what we've learned along the way. So, hey, Chris, what's new in your world? CHRIS: What is new in my world? Actually, this episode feels different. There's something different about it. I can't quite put my finger on it. I think it may be that we're actually physically in the same room recording for the first time in two years and a little bit more, which is wild. STEPH: I can't believe it's been that long. I feel like it wasn't that long ago that we were in The Bike Shed...oh, I said The Bike Shed studio. I'm being very biased. Our recording studio [laughs] is the more proper description for it. Yeah, two and a half years. And we tried to make this happen a couple of months ago when I was visiting Boston, and then it just didn't work out. But today, we made it. CHRIS: Today, we made it. Here we are. So hopefully, the audio sounds great, and we get all that more richness in conversation because of the physical in-person manner. We're trying it out. It'll be fun. But let's see, to the normal tech talk and nonsense, what's new in my world? So we've been slowly evolving the architecture in the app that we're working on. And we settled on something that I kind of like, so I wanted to talk about it, directory structure, probably the most interesting topic in the world. I think there's some good stuff in here. So we have the normal stuff. There are app models, app controllers, all those; those make sense. We have app jobs which right now, I would say, is in a state of flux. We're in the sad place where some things are application records, and some things are Sidekiq workers. We have made the decision to consolidate everything onto Sidekiq workers, which is just strictly more powerful as to the direction we're going to go. But for right now, I'm not super happy with the state of app jobs, but whatever, we have that. But the things that I like so we have app commands; I've talked about app commands before. Those are command objects. They use dry-rb do notation, and they allow us to sequence a bunch of things that all may fail, and we can process them all in a much more reasonable way. It's been really interesting exploring that, building on it, introducing it to new developers who haven't worked in that mode before. And everyone who's come into the project has both picked it up very quickly and enjoyed it, and found it to be a nice expressive mode. So app commands very happy with that. App queries is another one that we have. We've talked about this before, query objects. I know we're a big fan. [laughs] I got a golf clap across the room here, which I could see live in person. It was amazing. I could feel the wind wafting across the room from the golf clap. [chuckles] But yeah, query objects, they're fantastic. They take a relation, they return a relation, but they allow us to build more complex queries outside of our models. The new one, here we go. So this stuff would all normally fall into app services, which services don't mean anything. So we do not have an app services directory in our application. But the new one that we have is app clients. So these are all of our HTTP clients wrapping external third parties that we're interacting with. But with each of them, we've taken a particular structure, a particular approach. So for each of them, we're using the adapter pattern. There's a blog post on the Giant Robots blog that I can point to that sort of speaks to the adapter pattern that we're using here. But basically, in production mode, there is an HTTP backend that actually makes the real requests and does all that stuff. And in test mode, there is a test backend for each of these clients that allows us to build up a pretty representative fake, and so we're faking it up before the HTTP layer. But we found that that's a good trade-off for us. And then we can say, like, if this fake backend gets a request to /users, then we can respond in whatever way that we want. And overall, we found that pattern to be really fantastic. We've been very happy with it. So it's one more thing. All of them were just gathering in-app models. And so it was only very recently that we said no, no, these deserve their own name. They are a pattern. We've repeated this pattern a bunch. We like this pattern. We want to even embrace this pattern more, so long live app clients. STEPH: I love it. I love app clients. It's been a while since I've been on a project that had that directory. But there was a greenfield project that I was working on. I think it might have been I was working with Boston.rb and working on giving them a new site or something like that and introduced app clients. And what you just said is perfect in terms of you've identified a pattern, and then you captured that and gave it its own directory to say, "Hey, this is our pattern. We've established it, and we really like it." That sounds awesome. It's also really nice as someone who's new to a codebase; if I jump in and if I look at app clients, I can immediately see what are the third parties that we're working with? And that feels really nice. So yeah, that sounds great. I'm into it. CHRIS: Yeah, I think it really was the question of like, is this a pattern we want to embrace and highlight within the codebase, or is this sort of a duplication but irrelevant like not really that important? And we decided no, this is a thing that matters. We currently have 17 of these clients, so 17 different third-party external things that we're integrating with. So for someone who doesn't really like service-oriented architecture, I do seem to have found myself in a place. But here we are, you know, we do what we have to with what we're given. But yes, 17 and growing our app clients. STEPH: That is a lot. [laughs] My eyes widened a bit when you said 17. I'm curious because you highlighted that app services that's not really a thing. Like, it doesn't mean anything. It doesn't have the same meaning of the app queries directory or app commands or app clients where it's like, this is a pattern we've identified, and named, and want to propagate. For app services, I agree; it's that junk drawer. But I guess in some ways...well, I'm going to say something, and then I'm going to decide how I feel about it. That feels useful because then, if you have something but you haven't established a pattern for it, you need a place for it to go. It still needs to live somewhere. And you don't necessarily want to put it in app models. So I'm curious, where do you put stuff that doesn't have an established pattern yet? CHRIS: It's a good question. I think it's probably app models is our current answer. Like, these are things that model stuff. And I'm a big believer in the it doesn't need to be an application record-backed object to go on app models. But slowly, we've been taking stuff out. I think it'd be very common for what we talk about as query objects to just be methods in the respective application record. So the user record, as a great example, has all of these methods for doing any sort of query that you might want to do. And I'm a fan of extracting that out into this very specific place called app queries. Commands are now another thing that I think very typically would fall into the app services place. Jobs naming that is something different. Clients we've got serializers is another one that we have at the top level, so those are four. We use Blueprinter within the app. And again, it's sort of weird. We don't really have an API. We're using Inertia. So we are still serializing to JSON across the boundary. And we found it was useful to encapsulate that. And so we have serializers as a directory, but they just do that. We do have policies. We're using Pundit for authorization, so that's another one that we have. But yeah, I think the junk drawerness probably most goes to app models. But at this point, more and more, I feel like we have a place to put things. It's relatively clear should this be in a controller, or should this be in a query object, or should this be in a command? I think I'm finding a place of happiness that, frankly, I've been searching for for a long time. You could say my whole life I've been searching for this contented state of I think I know where stuff goes in the app, mostly, most of the time. I'm just going to say this, and now that you've asked the excellent question of like, yeah, but no, where are you hiding some stuff? I'm going to open up models. Next week I'm going to be like, oh, I forgot about all of that nonsense. But the things that we have defined I'm very happy with. STEPH: That feels really fair for app models. Because like you said, I agree that it doesn't need to be ActiveRecord-backed to go on app models. And so, if it needs to live somewhere, do you add a junk drawer, or do you just create app models and reuse that? And I think it makes a lot of sense to repurpose app models or to let things slide in there until you can extract them and let them live there until there's a pattern that you see. CHRIS: We do. There's one more that I find hilarious, which is app lib, which my understanding...I remember at one point having one of those afternoons where I'm just like, I thought stuff works, but stuff doesn't seem to work. I thought lib was a directory in Rails apps. And it was like, oh no, now we autoload only under the app. So you should put lib under app. And I was just like, okay, whatever. So we have app lib with very little in it. [laughs] But that isn't so much a junk drawer as it is stuff that's like, this doesn't feel specific to us. This goes somewhere else. This could be extracted from the app. But I just find it funny that we have an app lib. It just seems wrong. STEPH: That feels like one of those directories that I've just accepted. Like, it's everywhere. It's like in all the apps that I work in. And so I've become very accustomed to it, and I haven't given it the same thoughtfulness that I think you have. I'm just like, yeah, it's another place to look. It's another place to go find some stuff. And then if I'm adding to it, yeah, I don't think I've been as thoughtful about it. But that makes sense that it's kind of silly that we have it, and that becomes like the junk drawer. If you're not careful with it, that's where you stick things. CHRIS: I appreciate you're describing my point of view as thoughtfulness. I feel like I may actually be burdened with historical knowledge here because I worked on Rails apps long, long ago when lib didn't go in-app, and now it does. And I'm like, wait a minute, but like, no, no, it's fine. These are the libraries within your app. I can tell that story. So, again, thank you for saying that I was being thoughtful. I think I was just being persnickety, and get off my lawn is probably where I was at. STEPH: Oh, full persnicketiness. Ooh, that's tough to say. [laughs] CHRIS: But yeah, I just wanted to share that little summary, particularly the app clients is an interesting one. And again, I'll share the adapter pattern blog post because I think it's worked really well for us. And it's allowed us to slowly build up a more robust test suite. And so now our feature specs do a very good job of simulating the reality of the world while also dealing with the fact that we have these 17 external situations that we have to interact with. And so, how do you balance that VCR versus other things? We've talked about this a bunch of times on different episodes. But app clients has worked great with the adapter pattern, so once more, rounding out our organizational approach. But yeah, that's what's up in my world. What's up in your world? STEPH: So I have a small update to give. But before I do, you just made me think of something in regards to that article that talks about the adapter pattern. And there's also another article that's by Joël Quenneville that's testing third-party interactions. And he made me reflect on a time where I was giving the RSpec course, and we were talking about different ways to test third-party interactions. And there are a couple of different ways that are mentioned in this article. There are stub methods on adapter, stub HTTP request, stub request to fake adapter, and stub HTTP request to fake service. All that sounds like a lot. But if you read through the article, then it gives an example of each one. But I've found it really helpful that if you're in a space that you still don't feel great about testing third-party interactions and you're not sure which approach to take; if you work with one API and apply all four different strategies, it really helps cement how to work through that process and the different benefits of each approach and the trade-offs. And we did that during the RSpec course, and I found it really helpful just from the teacher perspective to go through each one. And there were some great questions and discussions that came out of it. So I wanted to put that plug out there in the world that if you're struggling testing third-party interactions, we'll include a link to this article. But I think that's a really solid way to build a great foundation of, like, I know how to test a third-party app. Let me choose which strategy that I want to use. Circling back to what's going on in my world, I am still working on migrating unit tests over to RSpec. It's a thing. It's part of the work that I do. [laughs] I can't say it's particularly enjoyable, but it will have a positive payoff. And along that journey, I've learned some things or rediscovered some things. One of them is read expectations very carefully. So when I was migrating a test over to RSpec, I read it as where we expected a record to exist. The test was actually testing that a record did not exist. And so I probably spent an hour understanding, going through the code being like, why isn't this record getting created like I expect it to? And I finally went back, and I took a break, and I went back. And I was like, oh, crap, I read the expectation wrong. So read expectations very carefully. The other one...this one's not learned, but it is reinforced. Mystery Guests are awful. So as I've been porting over the behavior over to RSpec, the other tests are using fixtures, and I'm moving that over to use factorybot instead. And at first, I was trying to be minimal with the data that I was bringing over. That failed pretty spectacularly. So I have learned now that I have to go and copy everything that's in the fixtures, and then I move it over to factorybot. And it's painful, but at least then I'm doing that thing that we talked about before where I'm trying to load as little context as possible for each test. But then once I do have a green test, I'm going back through it, and I'm like, okay, we probably don't care about when you were created. We probably don't care when you're updated because every field is set for every single record. So I am going back and then playing a game of if I remove this line, does the test still pass? And if I remove that line, does the test still pass? And so far, that has been painful, but it does have the benefit of then I'm removing some of the setup. So Mystery Guests are very painful. I've also discovered that custom error messages can be tricky because I brought over some tests. And some of these, I'm realizing, are more user error than anything else. Anywho, I added one of the custom error messages that you can add, and I added it over to RSpec. But I had written an incorrect, invalid statement in RSpec where I was looking...I was expecting for a record to exist. But I was using the find by instead of where. So you can call exist on the ActiveRecord relation but not on the actual record that gets returned. But I had the custom error message that was popping up and saying, "Oh, your record wasn't found," and I just kept getting that. So I was then diving through the code to understand again why my record wasn't found. And once I removed that custom error message, I realized that it was actually because of how I'd written the RSpec assertion that was wrong because then RSpec gave me a wonderful message that was like, hey, you're trying to call exist on this record, and you can't do that. Instead, you need to call it on a relation. So I've also learned don't bring over custom error messages until you have a green test, and even then, consider if it's helpful because, frankly, the custom error message wasn't that helpful. It was very similar to what RSpec was going to tell us in general. So there was really no need to add that custom step to it. For the final bit that I've learned or the hurdle that I've been facing is that migrating tests descriptions are hard unless they map over. So RSpec has the context and then a description for it that goes with the test. Test::Unit has methods like method names instead. So it may be something like test redemption codes, and then it runs through the code. Well, as I'm trying to migrate that knowledge over to RSpec, it's not clear to me what we're testing. Okay, we're testing redemption codes. What about them? Should they pass? Should they fail? Should they change? What are they redeeming? There's very little context. So a lot of my tests are copying that method name, so I know which tests I'm focused on, and I'm bringing over. And then in the description, it's like, Steph needs help adding a test description, and then I'm pushing that up and then going to the team for help. So they can help me look through to understand, like, what is it that this test is doing? What's important about this domain? What sort of terminology should I include? And that has been working, but I didn't see that coming as part of this whole migrating stuff over. I really thought this might be a little bit more of a copypasta job. And I have learned some trickery is afoot. And it's been more complicated than I thought it was going to be. CHRIS: Well, at a minimum, I can say thank you for sharing all of your hard-learned lessons throughout this process. This does sound arduous, but hopefully, at the end of it, there will be a lot of value and a cleaned-up test suite and all of those sorts of things. But yeah, it's been an adventure you've been on. So on behalf of the people who you are sharing all of these things with, thank you. STEPH: Well, thank you. Yeah, I'm hoping this is very niche knowledge that there aren't many people in the world that are doing this exact work that this happens to be what this team needs. So yeah, it's been an adventure. I've certainly learned some things from it, and I still have more to go. So not there yet, but I'm also excited for when we can actually then delete this portion of the build process. And then also, I think, get rid of fixtures because I didn't think about that from the beginning either. But now that I'm realizing that's how those tests are working, I suspect we'll be able to delete those. And that'll be really nice because now we also have another single source of truth in factory_bot as to how valid records are being built. Mid-Roll Ad: Flaky tests take the joy out of programming. You push up some code, wait for the tests to run, and the build fails because of a test that has nothing to do with your change. So you click rebuild, and you wait. Again. And you hope you're lucky enough to get a passing build this time. Flaky tests slow everyone down, break your flow and make things downright miserable. In a perfect world, tests would only break if there's a legitimate problem that would impact production. They'd fail immediately and consistently, not intermittently. But the world's not perfect, and flaky tests will happen, and you don't have time to fix them all today. So how do you know where to start? BuildPulse automatically detects and tracks your team's flaky tests. Better still, it pinpoints the ones that are disrupting your team the most. With this list of top offenders, you'll know exactly where to focus your effort for maximum impact on making your builds more stable. In fact, the team at Codecademy was able to identify their flakiest tests with BuildPulse in just a few days. By focusing on those tests first, they reduced their flaky builds by more than 68% in less than a month! And you can do the same because BuildPulse integrates with the tools you're already using. It supports all the major CI systems, including CircleCI, GitHub Actions, Jenkins, and others. And it analyzes test results for all popular test frameworks and programming languages, like RSpec, Jest, Go, pytest, PHPUnit, and more. So stop letting flaky tests slow you down. Start your 14-day free trial of BuildPulse today. To learn more, visit buildpulse.io/ bikeshed. That's buildpulse.io/bikeshed. Pivoting just a bit, there's a listener question that I'm really excited for us to dive into. And this listener question comes from Joël Quenneville. Hey, Joël. All right, so Joël writes in, "As senior-level developers, how do you set goals to ensure that you keep growing? How do you know what are high-value areas for you to improve? How do you stay sharp? Do you just keep adding new languages to your tool belt? Do you pull back and try to dig into more theoretical concepts? Do you feel like you have enough tech skills and pivot to other things like communication or management skills? At the start of a dev career, there's an overwhelming list of things that it feels like you need to know all at once. Eventually, there comes a point where you no longer feel like you're drowning under the list of things that you need to learn. You're at least moderately competent in all the core concepts. So what's next?" This is a big, fun, scary question. I really like this question. Thank you, Joël, for sending it in because I think there's so much here that can be discussed. I can kick us off with a few thoughts. I want to first highlight one of the things that...or one of the things that resonates with me from this question is how Joël describes going through and reaching senior status how it can really feel like working through a backlog of features. So as a developer, I want to understand this particular framework, or as a developer, I want to be able to write clear and fast tests, or as a developer, I want to contribute to an open-source project. But now that that backlog is empty, you're wondering what's next on your roadmap, which is where I think that sort of big, fun scariness comes into play. So the first idea is to take a moment and embrace that success. You have probably worked really hard to get where you're at in your career. And there's nothing wrong with taking a pause and enjoying the view and just being appreciative of the fact that you are able to get your work done quickly or that you feel very confident in the work that you're doing. Growth is often very important to our careers, but I also think it's important to recognize when you've achieved certain growth and then, if you want to, just enjoy that and pause. And you're not constantly pushing yourself to the next level. I think that is a totally reasonable and healthy thing to do. The second thing that comes to mind is that you're on a Choose Your Own Adventure mode now, so you get to...I would encourage folks, once you've reached this stage, to reflect on where you're at and consider what is your dream? What are your aspirations? Maybe they're related to tech; maybe they're not. And consider where is it that you want to go next? And then, what are the concrete steps that will help you achieve those goals? So there's a really great article by Jen Dary, who's a career coach and owner of Plucky Manager Training, that describes this process. And there's a really great blog post that I'll be sure to include a link to in the show notes. But she has a couple of great questions that will then help you identify, like, what are my goals? Some of those questions are, "If I could do anything and money wasn't an object, I'd spend my time doing dot dot dot." And that doesn't necessarily mean sitting on a beach with your toes in the sand all day. I mean, it could, but then that probably just means you need a vacation. So take the vacation. And then, once you start to get bored, where does your mind start to wander? What are the things that you want to do? Where are you interested in spending your time? And then, once you have an idea of how you'd like to spend your time, you can consider what actions you could take next that will point you in that direction. There's also the benefit that by this point, you probably have an idea of the type of things that you like to do and where you like to spend your time. And so you can figure out which areas of expertise you want to invest in. So do you like more greenfield projects? Do you like architecture discussions? Do you like giving talks? Do you like teaching? Or maybe you're interested in management. I think there's also a more concrete approach that you can take that. You can just talk to your managers in your team and say, "Hey, what big, hard problems are you looking to solve? And then, you can get some inspiration from them and see if their problems align with your interests. Maybe it's not even your own team, but you can talk to other companies and see what other problems industries are trying to solve. That might be an area that then spurs some curiosity or some interest. And then, where do you feel underutilized? So with your current day-to-day, are there areas where you feel that you wish you had more responsibilities or more opportunities, but you feel like you don't have access to those opportunities? Maybe that's an area to explore as well. This feels like a wonderful coaching question in terms of you have done it; congratulations. You've reached a really great spot in your career. And so now you're figuring out that big next step. This is going to be highly customized to each person to then figuring out what it is that's going to help you feel fulfilled over the next five years, ten years, however long you want to project out. Those are some of my thoughts. How about you? What do you think? CHRIS: Well, first, those are some great thoughts. I appreciate that I get to follow them now. It's going to be a hard act to follow. But yeah, I think Joël has asked a fantastic question. And coming from Joël, I know how intentional and thoughtful a learner, and sharer, and teacher and all of these things are. So it's all the more sort of framed in that for me knowing Joël personally. I think to start, the kernel of the question is as senior developers, that's the like...or senior level developers is the way Joël phrased it, but it treats it as sort of this discrete moment in time, which I think there's maybe even something to unpack. And I think we've probably talked about this in previous episodes, but like, what does that even mean? And I think part of the story here is going from reactive where it's like, I don't know how anything works. I know a little bit. I can code some. And every day, I'm presented with new problems that I just don't understand. And I'm trying to build up that base of knowledge. Slowly, you know, you start, and it's like 95% of the time you feel like that. And slowly, the dial switches over, and maybe it's only 25% of the time you feel like that. Somewhere along that spectrum is the line of senior developer. I don't actually know where it is, but it's somewhere in there. And so I think it's that space where you can move from reactive learning things as necessitated by the work that's coming at you to I want to proactively choose the things that I want to be learning to try and expand the stuff that I know, and the ways that I can think about the work without being in direct response to a piece of work coming at me. So with that in mind, what do you do with this proactive space? And I think the way Joël frames the question, again, to what I know of Joël, he's such an intentional person. And I wouldn't be surprised if Joël is very purposeful and thinks about this and has approached it as a specific thing that he's doing. I have certainly been in more of “I'll figure it out when I get there.” I'll explore. Or actually, probably the most pointed thing that I did was I joined a consultancy. And that was a very purposeful choice early on in my career because I'm like, I think I know a little bit. I don't think I know a lot. I would like to know a lot. That seems fun. So what do I think is the best way to do that? My guess, and it turned out to be very much true, is if I join a consultancy, I'm going to see a bunch of different projects, different types of technologies, organizations, communication structure, stuff that works, stuff that doesn't work. And to be honest, I actually thought I would try out the consultancy thing for a little while, like a year or two, and then go on to my next adventure. Spoiler alert: I stayed for seven years. It was one of the best periods of my professional life. And I found it to be a much deeper well than I expected it to be. But for anyone that's looking for, like, how can I structure my career in a way that will just automatically provide the sort of novelty and space to grow? I would highly recommend a consultancy like thoughtbot. I wonder if they're hiring. STEPH: Well, yes, we are hiring. That was a perfect plug that I wasn't expecting for that to come. But yes, thoughtbot is totally hiring. We'll include a link in the show notes to all the jobs. [laughs] CHRIS: Sounds fantastic. But very sincerely, that was the best choice that I could have made and was a way to flip the situation around such that I don't have to be thinking about what I want to be learning. The learning will come to me. But even within that, I still tried to be intentional from time to time. And I would say, again, I don't have a holistic theory of how to improve. I just have some stuff that's kind of worked out well. One thing is focusing on fundamentals wherever I can, or a different way to put it is giving myself permission to spend a little bit more time whenever my work brushes up against what I would consider fundamentals. So things that are in that space are like SQL. Every time I'm working on something, I'm like, ah, I could use like a CROSS JOIN here, but I don't know what that is. Maybe I'll spend an extra 30 minutes Googling around and trying to figure out what a CROSS JOIN is. Is that a thing? Is a CROSS JOIN a real thing? I may be making it up. [laughs] A window function, I know that those are real. Maybe I'll learn what a window function is. I think a CROSS JOIN is a real thing. A LEFT OUTER JOIN that's a cool thing. And so, each time I've had that, SQL has been something that expanding my knowledge; I've continually felt like that was a good investment. Or fundamentals of HTTP, that's another one that really has served me well. With Ruby being the primary language that I program in, deeply understanding the language and the fundamentals and the semantics of it that's another place that has been a good investment. But by contrast, I would say I probably haven't gone as deep on the frameworks that I work with. So Rails is maybe a little bit different just because, like many people, I came to Ruby through Rails, and I've learned a lot of Rails. But like in JavaScript, I've worked with many different JavaScript frameworks. And I have been a little more intentional with how much time I invest into furthering my skills in them because I've seen them change and evolve enough times. And if anything, I'm trying to look for ones that are like, what if it's less about the framework and more about JavaScript and web fundamentals underneath? Thus, I've found myself in Svelte land. But I think it's that choice of trying to anchor to fundamentals wherever possible. And then I would say the other thing that's been really beneficial for me is what can I do that's wildly outside the stuff that I already know? And so probably the most pointed example I have of this is learning Elm. So I previously spent most of my career working in Ruby and JavaScript, so primarily object-oriented languages without a strong type system. And then, I was able to go over and experience this whole different paradigm way of working, way of structuring programs, feedback loop. There was so much about it that was really, really interesting. And even though I don't get to work in Elm, frankly, as much as I would want at this point or really at all, it informs everything that I do moving forward. And I think that falls out of the fact that it was so different than what I was doing. So if I were to do that again, probably the next type of language I would learn is Lisp because those are like, well, that's a whole other category of thing that I've heard about. People say some fun stuff about them, but I don't really know. So it's that fundamentals and weird stuff is how I would describe it. And by weird, I mean outside of the core base of knowledge that I have. STEPH: I love that categorization, and I'll stick with it, fundamentals and weird stuff, to stretch and grow and find some other areas. I also really like your framing, the reactive versus proactive. I think that's a really nice way to put it because so much of your career is you are just learning what your company needs you to learn, or you're learning what you need to keep progressing and to feel more competent with the types of features or the work that you're handling. And I think that's why Jen Dary's blog post resonates with me so much because it's probably...up until now, a lot of someone's career, maybe not Joël's particularly, but I know probably for my career, a lot of it has been reactive in terms of what are the things that I need to learn? And so then once you reach that point of like, okay, I feel competent and reasonably good at all the things that I needed to know, where do I want to go next? And rather than focus on necessarily the plans that are laid out in front of me, I can then go wide and think about what are some of the bigger things that I want to tackle? What are the things that are meaningful to me? Because then I can now push forward to this bigger goal versus achieving a particular salary band or title or things like that. But I can focus on something else that I really want to contribute to. And there do seem to be two common paths. So once you reach that level, either you typically go into management, or you become that more like principal and then onward and upward, whatever is after principal. I don't even know what's after that, [laughs] but the titles that come after principal. So there's management, and then I've seen the other very strong contributors, so Aaron Patterson comes to mind. And I feel like those people then typically will migrate to places where they get to contribute to a language or to a framework. And I think it comes down to the idea of impact because both of those provide a greater impact. So if you go into management, you can influence and affect a team of individuals, and you can increase the value created by that team. Then you've likely exceeded the value that you would have created as your own individual contributor. Or, if you contribute to a language or a framework, then your technical decisions impact a larger community. So I think that would be another good thing to reflect on is what type of impact am I looking for? What type of communities do I want to have a positive impact on? And that may spur some inspiration around where you want to go next, the things that you want to focus on. CHRIS: Yeah, I think one of the things we're picking up in that that Joël mentioned in his question is the idea of there is the individual contributor path. But then there's also the management path, which is the typical sort of that's the progression. And I think, for one, naming that the individual contributor path and the idea of going to principal dev and those sorts of outcomes is a fantastic path in and of itself. I think often it's like, well, you know, you go along for a certain amount of time, and then you become a manager. It's like, those are actually distinctly different things. And people have different levels of interest and aptitude in them, and I think recognizing that is critically important. And so, not expecting that management just comes after individual contributor is an important thing. The other thing I'll say is Charity Majors, who we had on the podcast a bit back, has a wonderful blog post about the pendulum swing called The Engineer/Manager Pendulum. And so in it, she talks about folks that have taken an exploration over into manager land and then come back to the individual contributor path or vice versa sort of being able to move between them, treating them as two potentially parallel career tracks but ones that we can move between. And her assertion is that often folks that are particularly strong have spent some time in both camps because then you gain this empathy, this understanding of what's the whole picture? How are we doing all of this? How do we think about communication, et cetera? So, again, to name it, like, I think it's totally fine to stay on one of those tracks to really know which of those tracks speaks to you or to even move between them a little bit and to explore it and to find out what's true. So we'll include a link to that in the show notes. And we'll also include a link to the previous episode a while back when we had Charity on. But yeah, those I think are some critical thoughts as well because those are different areas that we can grow as developers and expand on our impact within the team. And so, we want to make sure we have those options on the table as well. STEPH: Absolutely. I love where teams will support individuals to feel comfortable shifting between experiences like that because it does make you a more well-rounded contributor to that product team, not just as an engineer, but then you will also understand what everybody else is working on and be able to have more meaningful conversations with them about the company goals and then the type of work that's being done. So yeah, I love it. If you're in a place that you can maybe fail a little bit, hopefully not in a too painful way, but you can take a risk and say, "Hey, I want to try something and see if I like it," then I think that's wonderful. And take the risk and see how it goes. And just know that you have an exit strategy should you decide that you don't like that work or that type of work isn't for you. But at least now you know a little bit more about yourself. Overall, I want to respond directly to something that Joël highlighted around how do you know what are high-value areas for you to improve? And I think there are two definitions there because you can either let the people around you and your team define that high value for you, and maybe that really resonates with you, and it's something that you enjoy. And so you can go to your manager and say, "Hey, what are some high-value areas where I can make an impact for the team?" Or it could be very personal. And what are the high-value areas for you? Maybe there's a particular industry that you want to work on. Maybe you want to hit the public speaking circuit. And so you define more intrinsically what are those high-value areas for you? And I think that's a good place to start collecting feedback and start looking at what's high value for you personally and then what's high value to the company and see if there's any overlap there. With that, I think we've covered a good variety of things to explore and then highlighted some of the different ways that you and I have also considered this question. I think it's a fabulous question. Also, I think it's one, even if you're not at that senior level, to ask this question. Like, go ahead and start asking it early and often and revisit your answers and see how they change. I think that would be a really powerful habit to establish early in your career and then could help guide you along, and then you can reflect on some of your earlier choices. So, Joël, thank you so much for that question. STEPH: On that note, shall we wrap up? CHRIS: Let's wrap up. The show notes for this episode can be found at bikeshed.fm. STEPH: This show is produced and edited by Mandy Moore. CHRIS: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review on iTunes, as it really helps other folks find the show. STEPH: If you have any feedback for this or any of our other episodes, you can reach us at @_bikeshed or reach me on Twitter @SViccari. CHRIS: And I'm @christoomey. STEPH: Or you can reach us at hosts@bikeshed.fm via email. CHRIS: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeee!!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

K!D Casper Podcast
Koinonia with the K!D featuring Aaron Patterson #BreakTheCycleGear #Podcasper #BLM

K!D Casper Podcast

Play Episode Listen Later Apr 6, 2022 73:25


Casper is interviewing Father, Husband a fellow Christian Rapper, clothing designer. Aaron Patterson! Casper intends to get to know AP better. Talking about nurturing your blackness as as a disciple of Christ in America, The inspiration behind “Break The Cycle Gear” what is his favorite kicks, Tacos and what's nexts for him. Welcome to the K!D Casper #podcast On Tetelestai inc Where The unwelcome are welcome The Black Sheep are family And Love is The First Commandment What do we got if we don't Got Love? Our goal is to have a dialogue about music, movies, books, Having dialogue about current events, Trending Topics, and seeking nuance. I'm K!D Casper for those that don't know I'm A Fulltime creative Christian #Raptivist Rapper Activist #MrleadWithlove I produce, record my own music, entrepreneur, Clothing apparel owner and a Woke Pro-Black Nerdy Theologian. Ca$happ: $MrLeadWithLove Venmo: @Mr_LeadWithLove https://beacons.ai/mr.leadwithlove

concretegrowthproject's podcast

This 2-minute audio drama was co-written by CGP Podcast Collaborative writer Aaron Patterson. This is a sweet little reflection on LOVE! This podcast was founded on the pursuit of love and also uplifts its beauty! So take a quick listen. This one is for our hopeless romantics out there! All voiceover and vocal acting provided by: The House of Genesis Music Produced by: Tone Jonez

Honest 2 God Podcast
"FULL LINE UP, HOLD THE CHOPS" - Episode 68 Featuring Aaron Patterson

Honest 2 God Podcast

Play Episode Listen Later Feb 7, 2022 82:18


The squad is back with special guest Aaron Patterson! This week we start the show off catching up with AP, his clothing brand, music and family (4:00). Christian hip hop is corny? And how it's changed from what it used to be (7:00). Speaking of Christian Hip hop, we discuss the recent situation surrounding rapper/ producer Gawvi being dropped from reach records for allegedly sending unsolicited “d*** pics” while still being married (18:15). Which leads into a deeper conversation on marriage and divorce among Christians and how we can avoid these types of situations (39:50). Rate the bars (59:30) Plus who is the best current active rapper? And more! Follow us on ALL socials @honest2godpod

Collaborative Craft
Just in Time: Hands-On Learning with Aaron Patterson

Collaborative Craft

Play Episode Listen Later Feb 1, 2022 48:44


“In my small way, hopefully I can help push society forward somewhat, in an as accessible way as possible. So you don't have to reinvent this particular wheel; you've got some kind of base you can build on. That's why I like to do stuff in public.“Aaron Patterson is a stalwart of the Ruby community and current Senior Staff Engineer at Shopify. His latest project is TenderJIT and in this episode, he talks with Jerome and Thomas about how his hands-on learning approach created the path that led to writing a JIT compiler in Ruby. In a playful conversation, the three cover a variety of other topics including the connection between cheese-making and hardware development and how finding the “print” for your project is a shortcut to feedback loops. (01:52) - All about TenderJIT(04:37) - Is Ruby compiled?(06:50) - It's like ERB for machine code(10:28) - Hands-on learning(13:55) - Pandemic hobbies(18:22) - Hardware development for cheesemaking(22:48) - From Java to Ruby(26:58) - The importance of asking why(32:55) - Figuring out project feedback loops(34:32) - Understanding multiple coding languages(36:13) - To type-check or not(44:05) - Investing time in commodity technologiesAaron Patterson, or Tenderlove as he is known on the internet, is a Senior Staff Engineer at Shopify. His primary focus is on Ruby and has been writing and maintaining gems, speaking at conferences and spreading Ruby's gospel for over a decade. Keep up with Aaron by following him on Twitter at @tenderlove and visit his blog at https://tenderlovemaking.com/.Thomas Countz is a Senior Software Crafter at 8th Light where he works with a variety of ambitious teams on a variety of ambitious projects. A true curious nerd at heart, Thomas digs into everything from robotics and cider making to bouldering and Shakespeare's comedies. To hear even more about Thomas, you can follow him on Twitter at @thomascountz and visit his blog at https://thomascountz.com.Jerome Goodrich is an adoring husband, new dog dad, and all-around curious explorer. Through his work as a Principal Software Crafter at 8th Light, Jerome leads amazing software teams to design and develop thoughtful solutions to complex problems. He loves pairing strenuous hikes with deep conversations and is always trying to see things clearly and with an open heart. Jerome lives much of his life off of the internet, but he occasionally writes on his website: https://jeromegoodrich.com. 8th Light partners with businesses and community groups to craft software that unlocks human potential and makes the world a better place. We're passionate about designing for people, inspiring through education, and empowering the future. With teams spread across the globe—including Chicago, London, Los Angeles, New York, Austin, and Madison—we're always eager to hear about ambitious new projects. Learn more about our team and reach out at https://8thlight.com.If you'd like to receive new episodes as they're published, please subscribe to Collaborative Craft in Apple Podcasts, Google Podcasts,

Dirt - An Audio Drama
Ch. 12 You Sure You Want to Do It This Way?

Dirt - An Audio Drama

Play Episode Listen Later Dec 7, 2021 33:58


All in a day's work around here.   Dirt - An Audio Drama is a production of STUDIO5705 and is written, directed, and produced by Kristopher Kaiyala. Ch. 12 features Jessi Brown as Mel, Aaron Patterson as Carl, Kassi McCluskie as the Uber Driver, Tony Ferreira as Detective Hawkins, Brittany Carroll as Detective Peterson, Nicole Michels McDonagh as Angela, Yvonne Eiseman as Ingrid, and Kristopher Kaiyala as Joseph.   For the best audio experience, please listen with headphones.   Follow Dirt on Twitter: @dirtaudiodrama.   For episode transcripts, press kit, background information, and a free sticker: https://www.dirtaudiodrama.com. Dirt - An Audio Drama is part of the Fable & Folly Network. Thank you for listening. Please share Dirt with friends and family! Learn more about your ad choices. Visit megaphone.fm/adchoices

Dirt - An Audio Drama
Ch. 8 I Saw the Look on Your Face

Dirt - An Audio Drama

Play Episode Listen Later Nov 9, 2021 41:28


So tell me, what kind of stuff are you into?   Dirt - An Audio Drama is a production of STUDIO5705 and is written, directed, and produced by Kristopher Kaiyala. Ch. 8 features Genie Leslie as Kim, Aaron Patterson as Carl, Megan Morales as Antonia, Jessi Brown as Mel, and Kristopher Kaiyala as Joseph. It also features the woodworking sounds of Ken Kaiyala and the violin playing of Arvo Kaiyala.   For the best audio experience, please listen with headphones.   Follow Dirt on Twitter: @dirtaudiodrama.   For episode transcripts, press kit, background information, and a free sticker: https://www.dirtaudiodrama.com. Dirt - An Audio Drama is part of the Fable & Folly Network. Thank you for listening. Please share Dirt with friends and family! Learn more about your ad choices. Visit megaphone.fm/adchoices

Dirt - An Audio Drama
Ch. 7 What Are You Wanted For?

Dirt - An Audio Drama

Play Episode Listen Later Nov 2, 2021 36:04


Looks to me like you're trying to hide.   Dirt - An Audio Drama is a production of STUDIO5705 and is written, directed, and produced by Kristopher Kaiyala. Ch. 7 features Jessi Brown as Mel, Katherine Meers Hurteau as Carla, Megan Morales as Antonia, Aaron Patterson as Carl, J. Louis Reid as Bernie, and Kristopher Kaiyala as Joseph.   For the best audio experience, please listen with headphones.   Follow Dirt on Twitter: @dirtaudiodrama.   For episode transcripts, press kit, background information, and a free sticker: https://www.dirtaudiodrama.com.   Dirt - An Audio Drama is part of the Fable & Folly Network. Thank you for listening. Please share Dirt with friends and family! Learn more about your ad choices. Visit megaphone.fm/adchoices

Tuesday Table Talk
Break The Cycle

Tuesday Table Talk

Play Episode Listen Later Oct 27, 2021 81:54


In this episode I'm joined by a good friend of mine Aaron Patterson, creator of Break The Cycle Gear, & we're chopping it up about faith, family, & fashion

Remote Ruby
Yuh-Jit - Optimizing JIT compiler built inside CRuby

Remote Ruby

Play Episode Listen Later Oct 15, 2021 41:10


[00:04:42] We find out if the guys done any stuff with Rails 7 yet and Chris tells us what's been going on with it. [00:09:44] Chris asks the guys if they are using an encryption library, and Jason talks about using Lockbox and Symmetric Encryption. [00:14:08] Chris tells us more about progressive encryption in Rails 7. [00:15:11] The guys chat about Ruby 3.1 and the new project from Shopify getting merged into Ruby called YJIT, which is an open source JIT compiler for CRuby.[00:18:43] The conversation turns to TenderJIT and Jason brings up a Tweet from tenderlove about it. There is a livestream Aaron Patterson did with hexdevs that he did about it this stuff.[00:22:23] Jason talks about using a tenderlove gem called “dnssd.” [00:26:40] Andrew tells us about an app called Rubyist 1.0, where you can write your own Scripts, system commands, and write your own widgets and stuff with Ruby to automatically trigger lights. [00:31:18] Andrew announces they are giving out free RubyConf tickets on Ruby Radar. [00:34:54] Chris shares some nostalgia when he was in high school learning to code and how the calculator keyboard was the worst. [00:37:08] The guys chat about DragonRuby, Amir Rajan who works on DragonRuby, and Matthew McKinney who made a Tetris game with DragonRuby.Panelists:Jason CharnesChris OliverAndrew MasonSponsor:HoneybadgerLinks:Ruby Radar NewsletterRuby Radar TwitterYJIT- Building a new JIT Compiler inside CRuby with Maxime Chevalier-Boisvert (YouTube)hexdevs-TenderJIT: A JIT compiler for Ruby with Aaron Patterson (tenderlove)TenderJIT-GitHubdnssd gem-GitHubRubyist 1.0 AppAmir Rajan Twitter (DragonRuby)Matthew McKinney Twitter (DragonRuby)

Fresh Leftovers Radio Show
Aaron Patterson | College Days Marriage Music The State of CHH Music

Fresh Leftovers Radio Show

Play Episode Listen Later Aug 18, 2021 106:18


God speaks!Aaron tell us a story about what God told him and how he was convicted! Also, Is anyone checking for CHH? stay tune to find out our opinions!!!

Greater Than Code
228: Career Snarkiness – Words Hold Weight with Corey Quinn

Greater Than Code

Play Episode Listen Later Mar 31, 2021 68:50


02:21 - Corey’s Superpower: Reading 3,400 WPM * Increasing Reading Speed 05:35 - Keeping Up w/ AWS * Last Week in AWS (https://www.lastweekinaws.com/) * AWS Morning Brief (https://www.lastweekinaws.com/podcast/aws-morning-brief/) * Screaming in the Cloud (https://www.lastweekinaws.com/podcast/screaming-in-the-cloud/) 08:45 - Delivering Corey Quinn – Personal Evolution * Speaking Truth to Power (Kindly, but Snarkily) * Privilege * Sonia Gupta and Corey Quinn - Embarrassingly Large Numbers: Salary Negotiation for Humans (https://www.youtube.com/watch?v=jK6yrvsSaFs&list=PLK3MtoG6xjv_eLXKEVKG_uuYCZWqKfAaa&index=101) * Holding Yourself Accountable * Defensiveness * This Cloud Computing Billing Expert Is Very Funny. Seriously. (https://www.nytimes.com/2021/02/17/technology/corey-quinn-amazon-aws.html) (NYT Article) * Intentionality 25:51 - Career Snarkiness * @SimpsonsOps (https://twitter.com/SimpsonsOps) * @killedbygoogle (https://twitter.com/killedbygoogle) 28:05 - Approaching and Handling D&I as a Business Owner * Discussing Salary Compensation 43:44 - Making and Delivering Jokes 45:08 - The Prospect of Being a Public Figure 50:03 - Recognizing Your Own Failure Mode * The Art of Delegation 54:32 - Approachability * Admitting Mistakes * What’s the point? Reflections: Rein: Systems derive their purpose from how they relate to larger systems. Tim: Iterating on oneself to become a better person. Becoming a human optimized. Arty: Holding yourself accountable. Taking responsibility for how other people see you in a public context. Mando: There’s a power in not hiding who you are. Apologizing for not letting people know what’s going on. Corey: Words are loud. Words are heavy. Words carry weight. Words carry impact. There is a balance. This episode was brought to you by @therubyrep (https://twitter.com/therubyrep) of DevReps, LLC (http://www.devreps.com/). To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode (https://www.patreon.com/greaterthancode) To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps (https://www.paypal.me/devreps). You will also get an invitation to our Slack community this way as well. Transcript: PRE-ROLL: Whether you're working on a personal project or managing enterprise infrastructure, you deserve simple, affordable, and accessible cloud computing solutions that allow you to take your project to the next level. Simplify your cloud infrastructure with Linode's Linux virtual machines and develop, deploy, and scale your modern applications faster and easier. Get started on Linode today with $100 in free credit for listeners of Greater Than Code. You can find all the details at linode.com/greaterthancode. Linode has 11 global data centers and provides 24/7/365 human support with no tiers or hand-offs regardless of your plan size. In addition to shared and dedicated compute instances, you can use your $100 in credit on S3-compatible object storage, Managed Kubernetes, and more. Visit linode.com/greaterthancode and click on the "Create Free Account" button to get started. ARTY: Hi, everyone. Welcome to Episode 228 of Greater Than Code. I am Artemis Starr and I am here with my fabulous co-host, Mando Escamilla. MANDO: Thank you, Artemis. I'm delighted to be here with my good friend, Rein Henrichs. REIN: Thanks, Mando and I'm here with my friend and brand-new co-host, Tim Banks. TIM: Thanks, Rein. I am Tim Banks and I am delighted to have our guest for this show, Corey Quinn. COREY: Thank you. It's an absolute pleasure to be here to once again, indulge my ongoing love affair with the sound of my own voice. TIM: Just so everyone knows, Corey is the Chief Cloud Economist at The Duckbill Group, where he specializes in helping companies improve their AWS bills by making them smaller and somewhat less horrifying. He also hosts the Screaming in the Cloud and AWS Morning Brief podcasts; and curates Last Week in AWS, a weekly newsletter summarizing the latest in AWS news, blogs, and tools, sprinkled with snark and thoughtful analysis in roughly equal measure. COREY: I would agree that that is a fair characterization of what I do. Excellent work. Thank you. MANDO: Corey, we like to start off every podcast with asking our guests kind of the same question and that question is what do you consider your superpower to be and how did you get it? COREY: I would consider my superpower to be the fact that as tested and certified by some random site on the internet, I read 3,400 words a minute and the way that I got there was growing up, most people have friends, I had books because of the wonderful thing that happens in my world namely, having a personality that is pretty obvious to anyone who's spoken for more than 30 seconds. In my early phases of my life, this didn't resonate super well so I turned to escapism in the form of reading. Later in life, this turned into something of a superpower when you're trying to do something like, I don't know, read every release that comes out of AWS in a given afternoon. MANDO: Yeah, that'll do it. [laughs] REIN: There are so many. MANDO: I went to a private elementary school for a year and one of the less weird things that they had us do was do speed reading training. They had this little cylinder and you would feed in a piece of paper and the cylinder had room for, I don't know, 8 to 10 lines of the paper and it would scroll automatically at a certain rate and you would read the story and then take a test afterwards and then as you pass the tests, they would both speed up the cylinder and then also shrink the amount you could see at one time to point where it got to just reading line by line and this thing's scrolling superfast. It was really weird and really struck my competitive juices like, I really wanted to show the teachers that I could read as fast as possible. So that's the one thing from that weird private school that I went to that I think has had any sort of payoff in my adult life. COREY: There are a bunch of tools and techniques that people can use to increase reading speed, and I've never done any of them. I don't know how I do it, I just do it. It's easy to sit here and think that, “Oh, I'm going to read super quickly. That's a superpower. That's something I can use and leverage, too,” and then what? The skill, or the talent is necessary, but not sufficient the way that I do things and you have to refine it and apply it in different ways. Sitting here and doing it as a spectacle or sport on a conference panel or something and look at how fast I can consume information, not much of a party trick. Using that and applying it to something that for, in my case, distilling vast quantities information down in an understandable and meaningful way, that was the outcome. It was never about just “being smart,” which is how I often hear other folks talking about various superpowers. “Oh, I have a natural innate intelligence.” Great, what do you do with it? How do you apply that? That's the thing that often gets overlooked; at least by folks in a somewhat early stage of the development that they're dealing with professionally. REIN: So let me ask, you do the Last Week in AWS podcast, why do you give a shit about that stuff? COREY: Functionally, what I do and what I started doing when I started The Duckbill Group, it was understanding the AWS bill so that I can reduce it. Sure, it's easy to do that from a pure numerical analysis perspective and figure out oh, what reservations, or commitments you can use. But a lot of it required insight into what the application was doing because the worst consultants in the world are the ones that walk in, look around, have no idea what they're looking at, and then start telling you that you screwed everything up. That's not helpful, it's not compelling, and it's the sign of a terrifically awful consultant, in most cases. I see something that looks like it's ridiculous, my first question is: great, can you help me understand this? I don't tend to, by default, assume the person I'm talking to is a moron and similarly, I had to understand the various economic impacts of different capabilities, features, and services. They're changing all the time. I had to keep up with this stuff so I shoved a bunch of things into my RSS feed and I was tracking this because there was nowhere else to do it. That got me 80% of the way there to being able to share this with the rest of the world. I figured, ah, I can make other people do my work for me. I figured I would launch a newsletter, run it for a few weeks, someone would chime in, “Well, why don't you just read, insert other thing here?” and then great. I can turn off the newsletter. I found the thing that does this for me and I can focus on other things. Instead, 550 people signed up for the first issue and it's been growing ever since and it turns out that thing that people should read to solve this problem is the thing that I built. It still surprises me and the reason I care about it all is because my customers need to know these are the things, but they don't want to read all of it. They don't want to know all of these things. They want to solve their problem. REIN: It seems relatively easy for a consultant to go in and say, cut here, trim there, and then you'll get 20, 50% off of your AWS bill. But isn't the thing that you want for the people who will be there long after you're gone to be able to make better decisions about their own spend? COREY: One of the nuanced areas of what I do is this idea that, “Oh, I'm going to come in and lower your bill,” That virtually always happens, but that's not the actual goal. The goal is to inform the business so that they can make decisions around managing spend, managing capability, and managing risk. In some cases, we suggest spending more on certain areas such as, “Huh, you claim that that thing is an incredibly critical to your business set of data and you're not backing it up anywhere. Perhaps, you should consider doing that.” It's the idea of doing the right thing, not the cheap thing. It's we don't ever charge for example, by percentage of savings, or percentage of bill, it's flat rate only because once that's done and we agree on what that rate is, there's no other conflict of interest. I'm not trying to rack up savings to claim a percentage of it. I have no partnerships with any vendor in the space, so I'm not getting a kickback if I say, “Oh, use this tool or that tool or that service.” Instead, it purely reduces me down to, “This is what I would do if I were in your position, take it or leave it.” TIM: So I think Corey, it's fair to say that people recognize your expertise, both in optimizing of costs and optimizing the practice. Writing good tools, adopting best practices, having sound resilient architectures, and saving money. But it's also fair to say that that's not why people follow you. You have a voice and a particular way of analyzing things that appeals to people. Snark has its place and it's very well-placed in your commentary, but what it mostly involves is true insight. So can you give me the story behind what really empowered you and made you comfortable in delivering your full Corey Quinn to people in an industry where maybe people aren't really supposed to be their whole selves? COREY: My entire career, I had a core competency that I was always the absolute best in the room at, across the board and no one could step to me as far as being good at that thing and that thing was getting myself fired because of the things that I said. My entire career, every boss, every mentor, every teacher, every family member, every vague acquaintance that I pass on the street has given me the same advice: “Your sense of humor/personality is going to hold you back in your career.” When I started this place, I was so tired and beaten down from hearing that, that I figured that either everyone I've ever spoken to is right and I'm wrong, or I'm right and they're all wrong. And with the confidence born of being a mediocre white man in tech, I figured let's try it and see. Because worst-case, if the whole thing blows up in my face, well, I can go back to using my maiden name professionally. I can effectively shove the Corey Quinn identity as it is down the memory hole and I can go back to being an unhappy employee somewhere else. It started to resonate and it took on a life of its own and for the first time in my entire career, I don't feel like I have to hide who and what I am and that is a powerful thing. TIM: So one of the things that I think people appreciate, especially in your very active and humorous Twitter feed, is saying the things that everyone is thinking about the Giants. You speak truth to power, but you do so in a manner that does not insult nor mischaracterize the people who make the technology, who make the decisions. Can you talk to us a little bit about how being kind while still being somewhat snarky guides – what's your thought processes and how does that guide your commentary? COREY: You say this like it's a done deal, but it's very much not. Earlier, the week that we're having this recording, I wound up doing a snarky, sarcastic rebuttal of the profile of me that appeared in the New York Times in the voice of AWS. I made some snarky offhanded comments that implied basically that AWS marketing was crap and I heard from several people inside that team that, that they thought that hurt them and to be very direct, I got that wrong. If people are hearing what I have to say and feeling bad about themselves, about their work, then I've gone in a wrong direction. It's a very fine line to walk, given who and what I am, but when people see what I have to say and hear it and they walk away hurt, I failed. I don't always get it right, clearly. All I can strive to do is be better and not make the same mistake twice. It's a constant process of evolution and learning. And to be very direct, I am incredibly grateful by people feeling that they have the psychological safety to reach out to me and say, “That hurt my feelings.” MANDO: One thing that I've seen you do, Corey, as an accessory to that is be on the lookout for people who maybe don't feel that same kind of psychological security, but also feel some, or have some negative impact, or connotation with what you said. I've seen this a couple of times. I saw it once this week, when you were talking about – you had a Twitter thread talking about how to find a job in tech, how to negotiate salaries and stuff like that. And then there was a Slack group that we're both involved in and someone made a comment saying that they felt put out a little bit by the tone of what you had said and I personally found it impressive and a little bit inspirin, the way that you responded to that individual. Would you mind building on that a little bit, why you think that's so important and then how you address and maybe manage those kinds of situations? COREY: Sure. Privilege is a funny thing because we all swim in it in various ways, no matter who you are or what you do, there are elements of privilege that are inherent to you based upon aspects of your life and to you. That's not something that you're generally aware of in a conscious sense. Instead, it's very much a part of the background of your own lived experience and it's difficult, at times, to put yourself in the shoes of people who have different stories. The natural response, in some cases, when being told about privilege is to push back, “Excuse me, nothing was handed to me. I had to work and build this thing and sure, maybe that's true on some level, but you did not have to deal with a headwinds against you that a lot of other people did.” And there is an element of, “Well, I was born on third base. I didn't hit a triple.” Yes, that's true. It absolutely is. But you still got to go from third base to home on some level. It's easier than someone who's starting off on home and having to round all of the bases and there's still work that has to be put in. But it's important to understand that this is an important thing and a lot of people struggle with it because our society is inherently unjust. There is no way around that. The differences is that I'm not sitting here when I have these conversations, talking about how I wish the world was, or how it should be. I'm one of those people that sees the world as it is, or as I assume, as I interpret it to be, and I speak from a position of this is how I function in the environment in which I find myself. Now, some aspects of what I do, do not apply to people who don't look like I do. I generally go out of my way to avoid airing those things. I don't want to build a conference talk on how to handle job interviews for white guys, because that's awful. It's about getting interesting perspectives on this one. I did that actual talk, or something close to it back in 2016, or so and when I realized what I'd built, I was horrified and didn't give it again for a couple of years and then I gave it as a keynote at devopsdays Charlotte. I did that with my co-speaker, Sonia Gupta, who she and I sat there and gave the talk called Embarrassingly Large Numbers: Salary Negotiation for Humans. Her background is as an attorney. She also doesn't look like I do. And it became a much more equitable talk, it became a much more universal talk, it was better in every respect, and it remains one of the talks I'm proudest of giving. It's a matter of when you realize that you have done something that inadvertently causes harm, or perpetuate some of the inequality that is rampant around us, it's incumbent on you, if you want to continue to be a good person, even if nowhere else other than you're in your own mind, to correct the misbehavior, say, “I'm sorry about that,” and then this is the key part, strive not to do it again. We're all works in progress. TIM: I think that notion of us all being a works in progress rings more true than I think most people like to admit. We constantly iterate on ourselves as we should be doing to find our mistakes, correct them, and then implement those corrections as we go forward. The thing that I think most people miss is the fact that they have to admit the fact that they did something wrong in the first place, especially in the form of public opinion. In a very public place like Twitter, Corey, you have done really well at that and I think there's a lot of wisdom that people can gain just by watching how you say, “Hey, this was not right,” or “I can do better,” and holding yourself accountable when especially other people hold themselves accountable. How do you think that we can promote this type of behavior in our culture and in our industry? COREY: Okay. Let me tell you a dark secret then because I don't want people to get an unrealistic expectation of who I am, or what I do. When I get it wrong, very often someone will either say something on Twitter or DM me with a, “This isn't a great take,” and every time like clockwork, my immediate response is to get defensive because no one likes being called out. What I learned I going by through the process is when I feel that flash of defensiveness: shut up. I do not respond. I step back for a minute. I go for a walk. I think. I wait for that reaction to subside and then really think about the feedback that I'm given from a place that is not in the moment, fraught with emotion. There are times that I can do that in seconds. There are times it takes me days. Usually, what happens is I realize that they have a point. Very occasionally, I disagree with what they're saying either because I didn't communicate clearly, or they misunderstood, or on some level, past a certain point, it is so far below even the level of rising to microaggression that it's one of those. Yeah, I have a bit of a hard time accepting that feedback where easy example of this is, I wound up having a gag recently called AWS Hambone, where they had some line art drawings in some of the AWS stuff that was put out, and I wound up having an event called AWS Hambone. Twitter Safety blocks someone who tweeted the phrase at one point, it was, “What is this?” Someone said, “Ah. Well, on Urban Dictionary, if you look up the word Hambone and scroll down a few things,” and of course, it's something horrific. There's always something horrific for three quarters of the words in the English language and at that point, you're so far into the weeds that I don't know that I necessarily would agree with that in that sense, but it's also not going to be a recurring gag that I use all the time. When I named my company, The Duckbill Group, and slapped a platypus up on as our mascot, I spent a week researching is there anything problematic on any aspect of the platypus and every bit of research I could do was no and here we are and no one has ever told me, the platypus is problematic. At this stage, that offer has expired. Please don't email me. But it's about doing your best to make these things right when you get it wrong, taking people's advice seriously and again, I don't do this in a vacuum. I have a number of people whose insight I trust and with whom I have a sense of psychological safety that I can reach out to and ask them, “Is this too far afield or not?” I want to be very clear, the majority of those people that I reach out to look an awful lot like me, because I'm not asking folks who are not overrepresented to do additional on paid free labor. REIN: I’d really liked to dig in a little bit more deeply to the part where you said you get defensive and then you take a moment because that seems like the key to me and it also seems like something that's really, really hard in the moment to do. Virginia Satir says that the problem isn't the problem, how we cope as the problem and that these emotions come unbidden to our consciousness, and then we get to decide, we have an opportunity to decide what we do with them. So what I'm hearing you say is you make a conscious effort to decide what to do. You feel defensive. You don't have control over that. What you have control over is what you do with it and so, my question is how do you create the space for yourself to cope? COREY: It helps tremendously in that the most common form that I use for my aggressive shitposting, hot takes, et cetera, et cetera, but also testing new things out is Twitter. There is no SLA around responses on Twitter. I don't need to respond within 30 seconds or so. Right now, we're having a conversation, if I stop for 2 minutes to really think something through, you're going to wonder if the call dropped. Twitter doesn't have that problem and from where I sit, it's a place of, I don't believe that I can control my own emotions to the point where I don't that defensive flare, but that's on me. That's something I need to think through. I don't wind up turning aside and kicking the dog, or punching a hole in the wall. I sit there because it never feels great, but it's where growth comes from. If you've doubled down on being wrong when people whose lived experience are actively telling you that what you're saying or doing causes harm, I don't believe that you are being the kind of person that in your heart of hearts, you wish you were. Now, some people want to be shitheads and that's fine. Good for you. I don't want to be around you. REIN: I want to make it possible to say your real yeses and your real nos. COREY: Yes, absolutely. Punch up. It's hilarious. I mean, I'm a hell of a cyber bully to a company that's worth $1.6 trillion, the last time I checked. If they can't take it on the chin, they need to deal with it. But there are individual people who work there and they don't deserve getting dragged. As I mentioned previously and repeatedly, the single exception to this is of course, Oracle co-founder, Larry Ellison. Because even if someone's garbage, they have friends and family who love and care for them and Larry Ellison is an asshole who does not. Nobody likes Larry Ellison and the best part of that is I got a lot of pushback and a lot of feedback on that article in the New York Times and the one thing that I thought was notable is not a single person defended Larry, or said that I was wrong because I'm right. He's an who has no friends QED, but everyone else, off the table. REIN: You're obviously very intentional about this. So what do you do intentionally to stay on the right side of that line? COREY: The honest and easy way is I talk to people. I fall into the trap personally of forgetting people behind things. To my worldview, a big company is one that has 200 people and when I don't know anyone on a service team at AWS who is involved in building a project, or launching a service, I just view it as this thing, this enormous behemoth thing and then I make fun of it. As soon as I talked to someone who was involved with that it's, “Oh crap, I need to understand who these people are.” Honestly, one of the reasons I've been so rough on Amazon Marketing is that no one in that group talks to me. It's basically a void so it becomes almost a punchline and then I have to be reminded from time to time that there are people there. That's an area I get it wrong in. Now on some level, the Amazon corporate posture is if we ignore Corey, he'll probably go away, which is absolutely the wrong direction to go in. It's akin to, “Well, if we kidnap the bear cubs, then may be that grizzly will let me pet her.” It doesn't work. [laughter] It's like smacking an alligator over the snout with a rock in the hopes it'll make him friendlier. Don't do that. I guess, I'm saying I crave attention. Well, roll with it. REIN: I think you compared yourself to an alligator. COREY: Oh, absolutely. TIM: Oh, that sounded deliberate. [overtalk] REIN: It’s fair. TIM: Alligators, to my recollection, do not have bills, correct? COREY: No, no. Those are reserved for generally ducks, geese, and platypuses. TIM: Is it platypus or platypi? COREY: Platypi is a myth. It's platypoes, if you want to go down that particular Latin root. TIM: I don't know if there's a witty monotremes joke in general so, I'll just let that go. COREY: Exactly. There are, but you have to look for them. That's why my mascot is an extreme monotreme. REIN: I like that you explicitly tried to avoid being [inaudible] platypus. COREY: There is always that aspect of things. REIN: All right, so I can tell you that platypus is actually extremely racist! [laughs] COREY: Exactly. No, no. The platypus for the mascot that we have is not racist. Well, insofar as other than the [inaudible], we are all racist to some extent, which is problematic but it is a thing to say in some quarters, but let's be a little more intentional of how we say it. The platypus isn't a bigot. The platypus isn't even usually angry most of the time. The platypus is just disappointed in all of us, because realistically, we could be doing better than we are. REIN: Do you have any advice for any of our listeners who might want to make a career out of being snarky? COREY: Quite honestly, don't do it. I'm serious. They're either a number of folks who try it periodically because they see what I'm doing, or they reach out to me and ask for advice and the advice is the same: don't do it. The reason is that with almost anything else that you're trying to do, the failure mode is just, okay, no one cares. It doesn't make a splash. It doesn't work. Okay, great. The problem with being snarky is the failure mode isn't obscurity, it's being an asshole and that failure mode is potentially very damaging. To that extent, when I see various parody accounts on Twitter, the novelty accounts that are doing snarky, or sarcastic things, I generally don't engage for a while. I want to get a read on them. Two of the parody accounts that absolutely nail it are, what is it? @SimpsonsOps is the parody account there. MANDO: Oh god, that’s fantastic. COREY: And @killedbygoogle. Both are phenomenal. They get it. I talk with the people behind those accounts regularly and I learn from them. There are times, I get it wrong and they correct me and very occasionally, I will give feedback to them when I think they've gone in a different direction and we all sort of make each other better for it as a result. But most folks do it. It doesn't end super well. There's an Andy Jassy parody account and has been for years and it's just mean. It's just mean, I'm sorry. One of the most distressing things I ever heard, that got to me through the grapevine. was that some exec at AWS was convinced for a little while that it was me and that hurt because to be very honest, I don't operate like that. I'm not here crapping on people individually, with a remarkably small subset of exceptions to that and those exceptions universally have something in common and that is that they punched down, they drive good people away, and they're small people in positions of inflated importance. Think the corporate equivalent of a number of senators that I'm sure already leaped to mind when I say that. TIM: So Corey, I'd like to ask—we talked about how you handle things on Twitter, we talked about your personal evolution—now as a business owner in the tech industry, a small business owner, B2B, not a large trillion-dollar company yet. But how are you approaching in handling diversity inclusion, especially around hiring and retention and salary equity in your own company? Q: Fair question and no one has ever asked me that, if you can believe that. The answer is that in order to build and hire diverse teams, it takes effort. The easiest thing in the world to do is to reach out to the people you know from your background. Well, that's not generally hugely diverse because regardless of what we look like, you're generally encountering them in the same types of environments, doing the same kinds of things, and you basically wind up accidentally hiring half your fraternity or whatnot for those who went to college and that's a bit of a challenge. So you have to be intentional about it, for one. You have to be prepared to expand your hiring pool. Do things that don't necessarily come naturally. There are folks who specialize in diversity, equity, and inclusion who have tremendous advice on how to do this, pay them for it. Advice is worth what you pay for it and have them assist and then from there, it's do your best. Have a way to measure what you're trying to achieve and whether you get there or not. As far as salary goes, that's relatively straightforward for us because we publish the ranges when we put the job position up and the ranges are relatively narrow and we stick to them. We are very transparent internally with what our structure is and how we approach these things and to be very direct, the delta between the highest and lowest paid employee is smaller than people would expect. MANDO: I've got a question about salary ranges. I have a hard time understanding what good reasons a company might have for not making their pay scales and salary ranges transparent, at least within the company. I've worked at several places where if you're lucky, your manager may know what the salary ranges are, but as an individual contributor, you're not supposed to find out and I have a hard time coming up. Are there any good reasons why, other than exploitation? COREY: There are a bunch of bad reasons, but not many good ones, but here's one that we can try on for size. If you and I have the same job and we work at the same company and I discover that you make $20,000 more than I do, there are a few different ways that I can react. I can get angry at the company, which is not generally constructive in that context. I can ask what I would need to do to get to a similar level of compensation. If I want to be nosy, I can start digging into well, why do you get more? And there are a bunch of answers to that. Maybe you've been doing this for a longer and a better experience. Maybe you have a skillset that was challenging. Maybe it's competitive bid situation. Maybe it's an accident of fate. Maybe you asked for it and I didn't. But there is a very common mode where now that I know that you're making $20,000 more than I am, I'm going to be a shit heel to you. I am going to hold it against you personally, because I'm envious and jealous and instead of asking how I can get up to your level, my immediate response is how to drag you down to mine. That can be a subtle and pernicious thing and if I look like I do and you don't, then that manifests in a whole bunch of other ways that are reinforced by systemic biases and as a result, it winds up impacting some of the folks that that transparency would be designed to help. That is one expression of a good reason. Is that outweighed otherwise? I don't know. I really don't. We speak in generalities and total budget. We don't disclose individual's compensation internally because that is not – MANDO: True. COREY: Again, it's a weird thing if I tell your coworker how much you make and then they're mad at you. Same type of problem. We strive very hard not to have that culture and I don't believe that we do, but I'm not willing to risk someone's psychological safety on that. MANDO: Yeah, no, I get that. I think in my experience, it's been a little more, I can't find out what the top and bottom band is for this role, unless I have people working for me in those roles and that's where, at least for me, it makes it difficult to understand why that's the case. It's hard to talk to people who you're managing about moving in different directions, moving possibly to other areas of the company, or even up and down the ladder without being able to say, “Here are the numbers that you could be looking at.” COREY: I'm also coming at this from a different/possibly privileged position where we do not offer equity in The Duckbill Group. The way we're structured, it doesn't support that. We're a services company that does not have anything approaching an exit strategy. I'm not looking sell the company to the very types of companies I energetically and enthusiastically insult. So we're not offering the brass ring of equity because there's no expectation of ever turn into anything. Instead, we offer cash comp and we have a bonus structure that is tied to what the company does. It becomes very easy for you to look at what we're doing and if you're toying with a role here, we have those conversations and figure out what your compensation is going to look like. Is it comparable to Netflix pay? Of course not. They pay top of market and tend to, but that's okay. We also don't have you on edge every day, wondering if you're about to get fired. So there are benefits to the way we approach things. There are drawbacks as well. Again, it's different people want different things and that's okay. At a company that has a significant equity component to compensation, that usually is removed entirely from transparency in compensation, unless you're a named executive. How many shares have you been granted? Are there options? What was the strike price? How is the vesting work? Did you come aboard as part of an acquihire? In which case, there was a very distinct compensation structure, that was almost certainly set up for you, that does not apply to other people. Do you have a particular rare skillset that was incredibly valuable? Let's be direct here, is your cousin the CEO of a target customer and having you there has that nice, quiet benefit that no one is ever going to dare whisper out loud? There are a whole bunch of reasons that compensation will vary, that companies don't necessarily want to explain to each other. When I worked at an agency consultancy, they would periodically have a consultant/engineer who would discover one day that the company was billing it out for roughly twice what they were being paid, which is a fairly standard and reasonable structure given the overhead cost, and they would be incensed by this because well, sales and marketing, how hard could that be? I should just go direct and wind up making all that extra margin myself. It is never that simple. If you can do it, good luck. It's a near certainty you can't because no one can, not at any step and that's scale. There is the lack of maturity that is understood, or not understood by folks you're dealing with and especially as you grow beyond a certain size, you can't expect everyone you're talking to in your company that you hire, or potentially hiring to come in with that level of maturity. So it's far easier just to avoid the topic altogether and then of course, there's a nefarious thing if we want to see how much we can rip people off. I have a hard time accepting that as being a genuine reaction, because for example, from a company perspective, the difference of a $10,000 or $20,000 to make someone happy versus angry, your payroll costs at a certain point of scale is never going to notice or feel that you don't want to waste money. But if that's all it takes to make someone happy, why wouldn't you spend it? MANDO: Has anyone here worked at a place where payroll numbers accidentally got sent out to the entire company, or is that just me? TIM: I have not worked at a place like that, but I wish that had happened. MANDO: It happened to me super early on in my career. I've been doing this professionally for maybe 2, or 3 years and it was a small little dev shop here in Austin and it was, you had your classic accidental reply all situation from whoever's in charge of keeping the books and the next day, like 8 people out of the 30 who worked there just walked out. It was kind of bad and ugly, yeah. COREY: One of the things that I find the most interesting about that type of story is that when those things come out and half the company is in flames over it, this was preventable. When we started The Duckbill Group, we did the exact same thing. We have always operated in such a way that if our internal documents and chats and everything else were to become public, there would be some missing context we'd have to fill in, but there's no one that would, or at least no one who has understanding of the relevant issues would look at this and say, “Well, that's just not fair, or just.” That even goes down to our pricing structure with our clients. Like we don't disclose what our margins are on certain things, but if they were to see that they would look at that, understand the value of that process of how we got to those price points and say, “Yes, that is fair.” That has always been our objective and it's one of those if you act as if it's going to be made public, it turns out that no one can really hold things over anymore, which is interesting because given the nature of what we do with AWS bills, confidentiality is super important. It's critical because some of our largest customers do not let us admit to anyone that they are in fact, our customers and I get that; there's a strong sensitivity around that. Other customers are, “Yeah, by all means, please talk about us all you want. Put us on the website.” I mean, the New York Times mentioned that Epic Games, Ticketmaster, and The Washington Post were customers of ours. Yes, we have logo rights. We are very clear in whether or not we're allowed to talk about folks publicly. It's great. We love our customers, but what are the tricks to getting there incidentally is if you don't respect a company's business, you probably shouldn't do business with them. We're not sitting here making massive value judgements about various companies that we look at. But when it's one of those, you make landmines, not so much. Whereas, I noticed, I was like, “Okay, you’re ad tech, do I love it? Not usually, but I also understand how the world works. It's fine. Don't worry about it.” Unless, you're into truly egregious territory, there's never one of those, “Do we work with them or don't we work with them?” The “Do we work with them or don't we work with them?” question honestly distills down to, “Can we actually help them get to where they need to go/think they need to go and is it the right thing for them?” If the answer that's no, then all we're going to do is have an unhappy customer story out there in the world. We don't want that. It's not that hard to act ethically, as it turns out. REIN: There is an interesting contrast between Corey, your story about salary disclosure and Mando's, which is you made the point of that it could be in your employee's best interest to not disclose. I don't think you're lying, but I bet if you had asked Mando's company's executives, they could have very well may have given the exact same story. The thing that, I think is difficult is when you have to trust in the benevolence of capitalists to figure this thing out. COREY: Absolutely and from my perspective, again, I have this position that I'm coming from, which is, I assume good faith. From my position, if our salary compensation numbers were to be exposed internally, the external is a whole separate thing. Because honestly, if there's a certain implicit expectation of privacy, if you work at my company and suddenly without warning you, I tell the world how much you're being paid. That's not necessarily a situation you would be thrilled to find yourself in. So let's remove that from the table entirely. When we speak internally about what you're making, I have always operated with the expectation that you will exercise, in the US, your federally protected to discuss your compensation with your coworkers, because not discussing your compensation with your coworkers only really helps those capitalists, as you put it, who run companies themselves. If I want to exploit people, yes. Step one, make sure that they're all scared to talk about how much they're making with each other. That doesn't align with anything I ever want to see myself doing. So from my perspective, why would I not disclose salary information? The only reason I can think of that would really matter is that, does it make it harder either first, most importantly, for my employees to operate as they want to operate and two, does it do any harm to my business in any meaningful way and that is a nuanced and challenging thing to figure out. I don't know the answer is the short response to it. I don't think there'd be anything necessarily good that would accelerate my business if we're suddenly talking about compensation numbers publicly. I don't know that necessarily anything bad would happen either, but it's not the story that I want people telling about the company. We're small. We don't have a marketing budget. We have a spite budget. So when people bring us up, I don't want it to be in the context of compensating employees. I want it to be in the context of fixing the AWS bills since that's the thing that lets us compensate those employees, [laughs] It's a fun and interesting nuanced issue and it's easy to take a singular position from all of the different stakeholders that are involved in something like that and make strong pro, or con arguments from that person's position. But one of the weird things about running a company that I discovered is you have to put yourself in multiple shoes simultaneously all the time, where you have to weigh the opinions and perspectives of various stakeholders. You ask someone in engineering what they think we should be focusing on strategically, the answer is probably going to align around engineering, but is engineering going to align with what the company needs to do? If you're getting no sales coming in, is engineering going to be the way you fix that? Maybe not. Maybe you invest in marketing or sales as a result and it's always about trade-offs and no one's perfectly happy with what you decide. The world is complicated and for better or worse, one of the bad tendencies of Twitter is to distill these principles down to pithy soundbites that fit 280 characters and the world doesn't lend itself to that. REIN: Okay. Let's try to distill this down into a pithy soundbite. COREY: By all means. REIN: No, I was just kidding. COREY: And I'm sure someone's going to be pithed. It'll be fine. MANDO: Hey! TIM: I was waiting. Took longer than I expected. [laughter] COREY: Latency. REIN: What's the most important thing in comedy? TIM: It's timing. COREY: Timing. REIN: Timing! [laughter] It’s easier to love that joke in-person. TIM: It is. COREY: Or if you’re going to put that in, just make sure you insert a bunch of time before audio engineer can wind up doing that. [laughter] TIM: Right. I was going to ask if an audio engineer can actually make that joke funny, or is that? [laughter] COREY: Yeah. Or it’ll just come off as corny. So many jokes work super well when you deliver them in-person or face-to-face with a small group, but then you deliver into, to an audience of 5,000 people and they fall completely flat because the energy is different. That observation right there is why so many corporate keynotes are full of jokes that bomb horribly, because with the 20 people who were in there and have context and nuance, it's great in the rehearsal, but then you have a bunch of people and it just feels lame. TIM: Yeah, I thought the corporate keynote jokes, they failed because the 20-person focus group was a bunch of sycophants ready to laugh at anything they said. Whereas, the audience, maybe not so much. COREY: Yes. Do you end up with the entire executive committee watching it? They're just a bunch of yes men and the one token yes woman, but diversity is important to them. Just look at their website. No, no, the point that makes the statement about diversity being important, not the pictures of their team. MANDO: That part. One of my favorite speakers in the technical circuit is Aaron Patterson and I think part of the reason why I love his delivery so much is that he himself personally laughs at all his jokes. Like it really [laughs] like he cracks himself up and so you just can't help, but get pulled along with him. COREY: I find that most of my jokes that I put in my talks and whatnot are for me, because without it, I get bored and I lose interest and have other people come along for the joke, great. And if not, well, that's okay, I'm still laughing. MANDO: [laughs] Yeah. TIM: So Corey that I have a question that I had wondered and then never got to ask out loud. But seeing as how, although we pretty much knew that Andy Jassy was going to be the new CEO of Amazon, would obviously need someone to replace him at AWS. What would you say to the AWS recruiter when they offered you the job and why? COREY: Directly, that would be one of the most thankless jobs I can possibly imagine for the way I see the world and how that job has to be done, in all seriousness. It is the ultimate expression of responsibility without the ability to directly impact an outcome. You will have to delegate absolutely everything and it's paradoxical, but the higher you rise in a role like that, the less you're able to say. Every time Jeff Bezos makes a comment in public, it hits the news. He doesn't get to go effectively shitposting on Twitter. How Elon Musk manages to do it, couldn't tell you, but his random jokes move markets and that's why he's constantly in trouble with the SEC. The reason that I enjoy the latitude and the freedom that I do is that I am functionally, a nobody and that's okay. As soon as I start becoming someone who is under global public scrutiny, then that entire thing becomes incredibly misaligned. Every time there's a controversy or a scandal, I would never be allowed to sit down and be directly and completely honest about what I think about those things because you can't in those roles. These things are always nuanced and public messaging is a problem. I do firmly believe. For example, the reason I don't weigh in very often on a lot of the labor relations issues, for example, that Amazon winds up finding itself confronted with is, I believe firmly that there is a choice that I get to make as part of my expression of privilege. Here, I can be part of the mob on Twitter, yelling at them over these things, or I can have conversations directly with people who you are in a much better position to influence these things internally. I do not believe you can do both, simultaneously. We pick and choose our battles sometimes and I can't wind up going off about every outrage, real, or perceived, that accompany does, or I simply look like an endless litany of complaints. You have to find the things that make an impact and there's always a price to that. An example of a fight that I do go to bat for is Amazon's position on non-competes for their employees and their decision to pursue them after they leave Amazon. I think it has beneath them, I think it makes the entire industry poorer for it, and it's one of the areas in which I do not respect Amazon's position, full stop. Their employees are better than that and deserve more. That's an issue that I feel profoundly about and I'm willing to go to the mat on that one, but when I do it, it comes with a price. It makes them look at me like a little bit of a, “Oh, is he going to be one of those?” whatever those happen to be and maybe. There's a reason I don't bring it up casually. There's a reason I don't drag them with that in casual joke threads, but it's there and that's what one of those issues I'm willing to be known for. Now, labor organizing and the rest. There's an entire universe of people paying better attention to a segment of their business that I don't talk about, or know about and who are well-suited to lead a public opinion, to have conversations internally. I don't know about a lot of those things and this is why I've never cut out to be a VC either, by the way, where when I don't know something, I don't feel that I should be sounding off about that thing on Twitter. Apparently, that is not normal in D.C. land, but here we are. The beautiful part about being me is that I'm fundamentally in possession of a platform I can use to broadcast every harebrained idea that crosses my mind out to an audience to test it. So I don't feel constrained in what I can say. In fact, that's the reason that I am what I am is that no one can fire me. I'm an AWS customer, but I have no client that is a significant percentage of our revenue base, which means I can't get fired. The only real risk is something either systemic that happens globally, in which case, all bets are off, or we're at a scenario where I have surprise, become a secret dumpster goblin and no one is going to want to do business with me anymore and everyone abandons me. But that doesn't seem likely because that is not my failure mode. REIN: Do you know what your failure mode is? COREY: Oh, absolutely. I sometimes, as I mentioned, go too far. I find that things that are funny, just wind up being mean at times. A joke wasn't that great there. I mean, my entire company is fundamentally built around aspects of my own failures. I am possessed of a profound case of ADHD that manifests in a bunch of interesting ways. A lot of the company is functionally scaffolding around me and picking up the things that I am not good at and will not be successful at if left to my own devices. I feel bad about it on some level, but on the other, it frees me up to do the things I am great at. It's an area of being able to take the things that make me, for better or worse, borderline unique and really focus on those because I don't have to continue to wrestle with things like making sure that JIRA tickets get done for us to use an example from my engineering days. We tend to have this bias when hiring people to optimize for hiring folks who have no weaknesses rather than hiring for strengths. Yeah, there are a lot of things I'm crap at, but I'd rather be very, very good at the subset of things that are intensely valuable and that means that okay, maybe someone else can handle making sure my expense report gets filed, if you want to use a banal example. REIN: One of the first things that you talked about was sometimes to improve the way a customer uses AWS; they have to spend more money in one area rather than less. There's an interesting property of systems, which is that you can't improve a system just by making each individual part better and actually, sometimes you have to make some parts worse to make the system better. So I'm hearing a little bit of that here as well, which is you want to build a system that works well and takes advantage of the parts that you have, the people you have, their relationships, their strengths, how they work together, and you're not interested in everyone having to be perfect. You're okay with parts that work in different ways and accounting for that and focus. So the other thing is that a system is not the sum of its parts. It's the product of its interactions and what I'm getting is that you care about those interactions. COREY: Very much so. It's hard to build things in isolation. It's hard to wind up treating everyone as interchangeable components that you can shuffle up and have them do different things. You don't want to know what would happen if you put me in charge of accounting, for example. There's this also this idea as well that is endemic, particularly to the world of developers and software engineers in the context of – I saw this most prominently with a number of professors in my first job, as a Unix systems administrator at a university, where I have a Ph.D., I am a world leading expert in this very narrow field of knowledge and I am brilliant in it, which means I'm very good at everything else, too, ha, Getting the computer to work. Oh, they don't even offer Ph.Ds. in that so how hard could it really be? This idea that, “Oh, I am terrific at this one very valuable, highly advanced skill; I should be good at everything else.” Well, not really. It doesn't work that way and is there even value in you learning that particular skill? Let's use an example that's germane to what we're doing right now. When I record podcasts, I'm good at having the conversations. I'm good at making the word noises come out of my mouth to varying degrees of good and then we're done with the recording and what tends to happen next? Well, it has to get edited, put together, and the rest, and I don't know how to do that. Now, do I go and spend a year learning how audio engineering works and then spend my time doing the audio engineering piece, or do I find someone who lives in that world, who loves it, who they are great at it, and they want to do it and they want to do it more and wind-up paying people for their expertise and let them come out with a far better product than I'm ever going to be able to deliver? If it doesn't need to be me doing a thing, I might want to tag someone else in to do it instead. That's the art of delegation and increasingly, I have to be more and more comfortable with letting more and more things go as our company continues to grow. It's a hard lesson to learn. I mean, the biggest challenge of running a business bar, none, I don't care what anyone else tells you, it's always the same and it is managing your own psychology. ARTY: So you mentioned earlier with you were talking about psychological safety and people being able to give you feedback about when their feelings were hurt, or things that are challenging to talk about. What factors do you think contribute to your approachability when you have the stance of being this kind of snarky identity? What makes you approachable still? COREY: I think it's that when I get it wrong, I'm very vocal at apologizing. Let me use an example of the time I got it spectacularly wrong. A while back, I did a parody video of Hitler Reacts, the Downfall parody thing that everyone's doing and it was Hitler receives his AWS bill was my entire shtick. I did a whole dialogue thing for it, as one does. There's generators for it—this was not an artistic endeavor whatsoever—and one line I have in there is one woman turns to the other and says, “Yeah, I get gigabytes and terabytes confused, too,” and it goes on. People started liking it on Twitter and I went to bed. The next day, I get a message from someone that a number of women were having a thread somewhere else that they thought it was offensive because that was the only speaking line women had and it was admitting that math is hard, more or less and when I heard that my response was, “Holy shit.” I took the video down and did a whole thread about here's how I fucked up and some people were saying, “Oh, it wasn't that big of a deal. It's fine.” You are wrong. I'm sorry. People felt shitty because of what I said and that's not okay and just deleting it, or not talking about it again is a response, but it's not an instructive one and what I did ideally, will help people avoid making similar mistakes in the future. Again, this stuff is not easy. We're all learning. I've made jokes when I was – if I go back in time 10 years, I made a whole bunch of jokes and had a sense of humor of now I look back and I am very honestly ashamed of them and I'm not talking about things that the kind of joke we have to look over your shoulders before you tell anyone to make sure that someone doesn't look like you isn't within earshot. No, I'm just talking about shitty jokes that punch down. I don't make those jokes anymore because guess what? They're just not that funny and that's important. We all evolve. So that's part of it is I vocally critical of myself when I get it wrong. I also have DMs open for this specific reason. Again, I am not in the demographic people going to harass me by a DM. Not everyone has that privilege so people can reach out to me when they think I get something wrong, or they just want to talk and I view confidentiality as sacrosanct. If someone says that wasn't funny, I always thank them first off and then I try and dig deeper into what it is that they're saying. If someone says it on Twitter, because they don't feel that a call-in is warranted—no one knows you would call-in—a callout is fine, too. I try to engage in the same behavior just because if nothing else, I can set an example. I don't know if people feel they have a sense of psychological safety in approaching me, to be perfectly honest. No one knows their own reputation. But the fact that people continue to and I have never once broken the faith and thrown someone out under a bus publicly, or even mentioned who they were without their permission first, that's powerful and I hope anyway. I mean, again, no one knows their own reputation. For all I know, there are whisper networks out there that are convinced that I'm a complete piece of crap and if that's true, I'm not going to inherently say that they're wrong. I would be honored if someone would tell me and would let me know what I'm doing that has caused that opinion to form, because if possible, I'd like to fix it. If not, I at least want to hear the perspective. But feedback is an opinion and not everyone's opinion carries equal weight and I don't agree with everyone's opinion, but I would like to know how I'm being perceived. The biggest problem I get is with all the podcasts, with all of the tweets, with all of the newsletters, that most common response by landslide is silence. There are days I wonder I remember to turn the microphone on. There are other days where oh, I get emails and I love those days because I at least get to learn how I'm coming across. ARTY: I can imagine just seeing someone having a history of admitting when they make a mistake and trying to correct it and fixing it, turning you into someone that if you have feedback that feeling like you'd be heard, that your feedback would be listened to and taken seriously, I can see that really making a difference. I also really appreciate you modeling that kind of behavior, too because I think it is important. We are human. We make mistakes and having models to follow of what it looks like to be confident enough in ourselves that we can screw up publicly, I think is really important. COREY: I have the privilege and audience and at least apparently public reputation to be allowed to fail, to be allowed to mess these things up and if I can't own those things that I get wrong and what's the point, really. The honest way that I feel about all of this is I just recently crossed 50,000 Twitter followers, which is a weird, trippy, and humbling experience. But if I can't use that vast audience to help people, then what the fuck was the point of it all? Why did I do it? It's not just for my own self-aggrandizement, or trying to sell consulting projects. If I can't leave a little bit of a dent in the universe in the sense of helping people become better than they are then what was the point? Spoiler, the answer to what was the point never starts with a dollar sign. REIN: What do you think is the point? COREY: I think it has to be different for other folks. For me, the point has always been about helping people and I have a sense of indebtedness that I have my entire career because early on in my career and consistently throughout, people have done me favors and there's no way for me to repay them for the kindness that they have shown and the help that they've given. All you can ever do is pay it forward. But I help people with an introduction. It doesn't take much from me. You two people have problems that would be a solved by having an introduction between the two of you? Wonderful. Go ahead and talk. Let me know how I can help and it costs me nothing and when people are like, “How can I thank you for this?” Help someone else. It's always the same answer. It's a someday, you're going to be in a position to help someone else, do it. Don't think about how it's going to come back and help you. Maybe I will, maybe it won't. Cosmically, I found it always does somehow, but again, you don't have to take that on faith. Just assume it doesn't help you in the least. The more you help people, the more you wind up doing favors for people, the more it comes back around and that is something that opens up a tremendous level of, I guess, leverage. I guess, it makes sense of being able to make a difference in the world. Now, please, don't misunderstand what I've just said as, “Oh, you should do a bunch of uncompensated work for anyone who demands a moment of your time.” That's not what I'm talking about. I'm not suggesting you let people take advantage of you, but when you find someone who's struggling at something that you know would approach it, it really doesn't cost you much to reach out and ask if they need a hand. ARTY: That seems like a good note to switch to reflections. REIN: I think that's great. I was thinking about Corey, how you look at mistakes as opportunities to get better, not just for yourself, but also for how you participate in communities that matter to you. One of the interesting things about systems is that systems derive their purpose from how they relate to larger systems. So an engine drives its purpose from how it relates to the other parts of the car. If you take the engine out of the car, the car doesn't move, but neither does the engine. So I think that the best communities, whether they're basketball teams, or software development teams, whatever they are, are communities that make each person better and that we derive our purpose and our meaning from our relationship with other people. TIM: I can offer my reflection on this. I've often been either disappointed with, or very impressed by people's ability to learn about themselves and about the impact that they have on the world. I have observed in Corey and have been inspired to do self-optimization, where I have a course of action or behavior, or a line of thinking or reasoning presented into the ether and then based upon the feedback in whatever other means of observability, I amend and iterate on myself to become better. Never perfect—perfect is the enemy of good—but just to be better, to be continually improving. If I were going to find a term to describe Corey and the term that I would ascribe to myself to become a human optimist. I think if we take some of those examples that Corey has discussed and apply them, we can all reach that point to where we'll always know that there's always ways to improve and if we listen to those around us and we study the impact that we have on those people that we can do that. ARTY: It's been interesting listening to you talk and have this description of you in my head of this kind plus snarky being and what does that look like. One of the things I've seen you model repeatedly as I've listened to you talk is holding yourself accountable. In one context, being able to take in one-on-one reflections from other people and really take it in and think about what people say. But two, also taking responsibility for how other people see you and your position in the world and how those things you do end up affecting other people. So, I really appreciate your

Lets Talk About It Podcast With Aaron Patterson
Episode 10 - Drake The Goat

Lets Talk About It Podcast With Aaron Patterson

Play Episode Listen Later Mar 9, 2021 122:13


On Episode 10 of the "Lets Talk About It Podcast w/Aaron Patterson. We talk about why I think Drake is the GOAT, we debate the most overrated and the most underrated rappers in Hip Hop history. Is the Illuminati real? and do entertainers really be selling they soul? #LetsTalkAboutIt --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app

Lets Talk About It Podcast With Aaron Patterson
Episode 1 - The Introduction

Lets Talk About It Podcast With Aaron Patterson

Play Episode Listen Later Jan 5, 2021 69:01


Good Afternoon ladies and gentleman, this is the first official episode of the Lets Talk about it podcast. Hosted by Aaron Patterson and powered by Break The Cycle Gear. --- This episode is sponsored by · Anchor: The easiest way to make a podcast. https://anchor.fm/app

Forest Lake Church Sermon Podcast
Sheltering At Home When...You're a College Student

Forest Lake Church Sermon Podcast

Play Episode Listen Later Apr 23, 2020


Nathan and Aaron Patterson talk about their quarantine experience living at home again as college students.If you are in need of prayer any time, let our Prayer Team know by contacting prayer@forestlakechurch.orgSermon video is available on YouTube: YouTube/c/ForestLakeSeventhdayAdventistChurchLive Services Weekly at 8:45, 10:00, or 11:20 AM EST at www.ForestLakeChurch.org

Forest Lake Church Sermon Podcast
Sheltering At Home When...You're a College Student

Forest Lake Church Sermon Podcast

Play Episode Listen Later Apr 23, 2020


Nathan and Aaron Patterson talk about their quarantine experience living at home again as college students.If you are in need of prayer any time, let our Prayer Team know by contacting prayer@forestlakechurch.orgSermon video is available on YouTube: YouTube/c/ForestLakeSeventhdayAdventistChurchLive Services Weekly at 8:45, 10:00, or 11:20 AM EST at www.ForestLakeChurch.org

Software Sessions
How the Ruby Runtime Works with Aaron Patterson

Software Sessions

Play Episode Listen Later Oct 24, 2019 69:29


Aaron Patterson introduces ruby runtime internals including details on its virtual machine, global interpreter lock, JIT compiler, and the complexities of building a compacting garbage collector.

The Bike Shed
206: No-One Wants to be the Canary

The Bike Shed

Play Episode Listen Later Jul 23, 2019 38:08


On this week's episode, Steph and Chris discuss working with Django, Angular, and explore the new features released in Ruby 2.7.0-preview1! They also respond to a listener's question regarding the trade-offs of using client state management tools like NgRx and Redux. Vote for us for 'Best Dev' Podcast in this year's Noonie Awards. Python Django Angular TypeScript MySQL GraphQL Ruby Ruby 2.7.0-preview1 Manual Compaction for MRI's GC submitted by Aaron Patterson IRB - Interactive Ruby Shell A Brief History of Pipeline Operator Using yield_self for composable ActiveRecord relations Ruby trunk - roadmap Elixir Elm NgRx React Redux Redux thunk Flux Redux Hooks

Software Engineering Radio - The Podcast for Professional Software Developers
Episode 372: Aaron Patterson on the Ruby Runtime

Software Engineering Radio - The Podcast for Professional Software Developers

Play Episode Listen Later Jul 12, 2019 72:07


Aaron Patterson of GitHub discusses the Ruby language and its runtime.  Host Jeremy Jung spoke with Aaron about the Ruby language and how it works.  They discuss the language virtual machine, concurrency, garbage collection, and JIT compilation.  If you’ve ever wondered what’s happening under the hood of a programming language, this is a great introduction. […]

Software Engineering Radio - The Podcast for Professional Software Developers
Episode 372: Aaron Patterson on the Ruby Runtime

Software Engineering Radio - The Podcast for Professional Software Developers

Play Episode Listen Later Jul 12, 2019 72:07


Aaron Patterson of GitHub discusses the Ruby language and its runtime.  Host Jeremy Jung spoke with Aaron about the Ruby language and how it works.  They discuss the language virtual machine, concurrency, garbage collection, and JIT compilation.

The Bike Shed
205: Won't Somebody Think of The Jokes (Aaron Patterson)

The Bike Shed

Play Episode Listen Later Jul 9, 2019 45:29


On this week's episode, Chris is joined in a live recording from RailsConf by the one and only Aaron Patterson. They discuss Aaron's many RailsConf keynotes, his recent work on Rails view rendering and his three-year-long effort to bring more advanced garbage collection to Ruby which will finally be seeing the light of day. And of course, plenty of puns. This episode of The Bike Shed is sponsored by Indeed Prime Aaron's Closing Keynote - RailsConf 2019 Aaron on GitHub Aaron on Twitter DHHs Keynote - RailsConf 2019 Nokogiri libxml2 George Brocklehurst - Intro to Machine Learning (with fizzbuzz) MRI JVM The GC Handbook Compacting Garbage Collector in Ruby Peter Principle Subversion CVS Puma Web Server Perl 6 Dave Thomas

The Bike Shed
203: A Blessed Monkeypatch (Eileen M. Uchitelle)

The Bike Shed

Play Episode Listen Later Jun 25, 2019 40:46


On this week's episode, we revisit RailsConf 2019 for another live recording, this time with Eileen M. Uchitelle, GitHubber and rails core team member. Eileen joins Chris to discuss her RailsConf talk on how GitHub maintained a custom fork of Rails for years, how they finally moved off it, and what lessons we can take away from their experience. They also discussed Eileen's recent work on automatic database switching coming in Rails 6, microservices and monoliths, and getting into working on Rails. This episode of The Bike Shed is sponsored by Indeed Prime Eileen M. Uchitelle - eileencodes Eileen's talk - The Past, Present, and Future of Rails at GitHub Rails 6 connection switching for databases Circuit break pattern ActiveJob Resque The Success of Open Source ActiveRecord Enums ActionCable S3 Service Disruption Indident IOT DDOS on DNS Aaron Patterson

Parallel Passion
30: Aaron Patterson

Parallel Passion

Play Episode Listen Later Jun 6, 2019 61:40


Aaron is on the Ruby core team, the Rails core team, and the team that takes care of his cat, Gorby puff.  During the day he works for a small technology company called GitHub.  Someday he will find the perfect safety gear to wear while extreme programming. Show Notes Aaron at RailsConf 2013 (https://www.youtube.com/watch?v=5kgUL_FfUZY) Ruby (https://www.ruby-lang.org/en/) RubyKaigi (https://rubykaigi.org/) Andouillette (https://en.wikipedia.org/wiki/Andouillette) ErgoDox (https://www.ergodox.io/) Cherry MX Switches (https://www.keyboardco.com/blog/index.php/2012/12/an-introduction-to-cherry-mx-mechanical-switches/) ErgoDox EZ (https://ergodox-ez.com/) Planck (https://olkb.com/planck) Planck Light (https://drop.com/buy/massdrop-x-olkb-planck-light-mechanical-keyboard/talk) Alfred (https://www.alfredapp.com/) Gorby Thunderhorse (https://twitter.com/gorbypuff) Recommendations Ruby on Rails (https://rubyonrails.org/) Working Effectively with Legacy Code (https://www.amazon.com/o/ASIN/0131177052/parpaspod-20) Ruby Community (https://www.ruby-lang.org/en/community/) Aaron Patterson Twitter (https://twitter.com/tenderlove) Instagram (https://instagram.com/tenderlove) Personal Page (http://tenderlovemaking.com/) Parallel Passion Patreon (https://www.patreon.com/parpaspod) Twitter (https://www.twitter.com/parpaspod) Instagram (https://www.instagram.com/parpaspod) Facebook (https://www.facebook.com/parpaspod) Credits Wesual Click (https://unsplash.com/@wesual) for the header photo Tina Tavčar (https://twitter.com/tinatavcar) for Parallel Passion logo Jan Jenko (https://twitter.com/JanJenko) for intro/outro music

Podcast proConf
Proconf #14 Railsconf 2019

Podcast proConf

Play Episode Listen Later Jun 3, 2019 96:26


Тайм коды: 00:00 - Приветствие и впечатления о конференции 03:55 - Opening Keynote by David Heinemeier Hansson - https://youtu.be/VBwWbFpkltg 26:18 - Keynote: The Stories We Tell Our Children by Ariel Caplan - https://youtu.be/XKqvtAxGQOs 39:40 - Closing Keynote by Aaron Patterson - https://youtu.be/8Dld5kFWGCc 45:07 - Automate your Home with Ruby by Karl Entwistle - https://youtu.be/blsQhAqHVhE 57:37 - Performance Improvement of Ruby 2.7 JIT in Real World by Takashi Kokubun - https://youtu.be/s4ACyFD8ES0 01:02:01 - Beyond the whiteboard interview by Joel Quenneville & Rachel Mathew - https://youtu.be/8FkkMkeJKU8 01:07:24 - Maintaining a big open source project: lessons learned by Leonardo Tegon - https://youtu.be/rnOcDH_sgxg 01:14:40 - Event Sourcing made Simple by Philippe Creux - https://youtu.be/ulF6lEFvrKo 01:23:09 - Death by a thousand commits by Kyle d'Oliveira - https://youtu.be/-zIT_OEXhE4 01:34:35 - Итоги и подбивание бабок

Code[ish]
2. Ruby, Regexes and Risk: Aaron Patterson Explains Why Hiring Open Source Developers Will Make Your Company Stronger

Code[ish]

Play Episode Listen Later Mar 27, 2019


In this episode Aaron Patterson joins our own developer advocate Jonan Scheffler to discuss his experiences as an open source developer within GitHub, and explains how he manages to balance his work as a member of the Ruby and Rails core teams with his other responsibilities. Aaron is the only member of both the Ruby and Rails core teams, and he's been working with Rails since 2005 when his friends attended the No Fluff Just Stuff (NFJS) Pacific Northwest Software Symposium and heard Dave Thomas speak.(1) In discussing his path to becoming a Ruby developer, Aaron walks through his time working with Perl and Java, covering language regular expression engines (PCRE, Oniguruma, POSIX), the joy he felt in finding Ruby, and how falling in love with Ruby eventually forced him to become a C programmer. Later in the episode Aaron offers some advice to aspiring open source developers and discusses the future of Ruby, along with some features he would like to see around deep freezing data structures(2) and concurrency/parallelism(3). If you’d like to learn more about Ruby development and how you can contribute, please visit https://bugs.ruby-lang.org. Links from this episode Dave Thomas "Ruby on Rails" talk abstract from NFJS PNW Software Symposium Vaidehi Joshi explains frozen hashes in Ruby Rob Pike explains concurrency and parallelism at Waza 2012:

The Tennis Files Podcast
TFP 078: Strength and Conditioning for Junior Athletes with Aaron Patterson

The Tennis Files Podcast

Play Episode Listen Later Jan 9, 2019 66:21


On Episode 78 of The Tennis Files Podcast, I spoke with sports performance coach and personal trainer Aaron Patterson about how to train our junior tennis players to become better athletes. Aaron works with junior athletes every day at the PIT Strength and Conditioning Center in Bloomington, Illinois, and I have been really impressed by both the effort and positive attitudes from his clients. I first met Aaron at last year’s World Tennis Fitness Conference and really enjoyed speaking with him about how we can develop our junior tennis players to reach the next level in their tennis games by improving their strength and fitness. Aaron has a very strong background in the world of tennis fitness. He is a National Strength and Conditioning Association (NSCA) Certified Personal Trainer, International Tennis Performance Association (iTPA) Certified Tennis Performance Specialist, and a Certified Speed and Agility Coach. Aaron trains a multitude of top level junior athletes in sports such as tennis, golf, and volleyball. He is currently a Sports Performance Coach at the PIT Strength and Conditioning Center and a personal trainer at Four Seasons Health Club in Bloomington, Illinois. On this episode, we talk about the best exercises for junior tennis players, the importance of having fun while training, books and resources for learning more about sports performance training, recovery and nutrition tips, and much more! I really hope you enjoy my interview with Aaron! Let us know what you think about this episode in the comments below! Show Notes: The importance of making sure your athletes enjoy the process 3 things most of the world doesn’t know about Aaron Patterson How Aaron became a sports performance expert and personal trainer The ups and downs Aaron has faced during his career The most critical skills for fitness and sports performance coaches Common mistakes from personal trainers that tennis players should look out for Aaron’s favorite books and resources that helped him develop his knowledge of personal training and sports performance The difficulties of being a personal trainer and fitness coach When younger players should start training their fitness The best exercises for junior tennis players An example of a comprehensive exercise routine Aaron’s favorite pieces of equipment for training athletes Recovery advice for tennis players The most effective stretches after playing tennis Nutrition tips and what kinds of foods to ingest for maximal performance A key tip to help you improve your tennis game Learn more about your ad choices. Visit megaphone.fm/adchoices

The Bike Shed
158: This is How I Ruin Meetings (Aaron Patterson)

The Bike Shed

Play Episode Listen Later Jun 15, 2018 47:01


We're joined by Aaron Patterson for puns. Aaron also updates us on compacting GC for Ruby and Ruby 2.6's JIT compiler before telling us how he really feels about functional programming. Aaron Patterson (@tenderlove) on Twitter Parkinson's Law of Triviality (The Bike Shed Effect) Cargo Cult Building a Compacting GC for MRI by Aaron Patterson Allison McMillan on Twitter CAR and CDR Honeypot The method JIT compiler for Ruby 2.6 Closing Keynote by Aaron Patterson Opening Keynote: FIXME by David Heinemeier Hansson The Future of Rails 6: Scalable by Default by Eileen Uchitelle The Crystal Programming Language

Ruby Rogues
RR 326: Chatbots with Jamie Wright

Ruby Rogues

Play Episode Listen Later Sep 5, 2017 42:59


In this episode of the Ruby Rogues podcast Dave Kimura, Eric Berry, and Charles Max Wood discuss chatbots with Jamie Wright. Jamie will be speaking at Ruby Dev Summit in October. [01:25] Jamie Wright introduction Jamie is a professional nerd and independent contractor. He's been coding for 20 years mostly in Ruby. He's starting to get into Elixir. One of his first projects was a text adventure game, which got him started with conversational UI's. He saw Hubot on Campfire. He started tweaking that. He made a timetracking bot that used Freshbooks and Harvest. Then Slack came out and he created Tatsu. [05:00] Tatsu features You can schedule it and it'll ask automated questions. He's working on having it integrate with github, Harvest, Google Calendar, etc. If there's a blocker, you should be able to create private conversations with the people who are blocked and add that to the standup. When you sign up it adds a video link into your slack. Eric thinks this is pretty clever. In Slack, the default action people should take when a bot is installed should be to DM the person who installed it. [08:50] What it takes to write a bot and the challenges involved Writing bots is "fun as hell." Chatbots suck. We have the opportunity to improve an entire piece of the industry. Many bots are command based bots. You say something and it responds. Conversational UI's are really hard because they don't have any context or shared understanding of the world. [12:18] Chatbot libraries - Getting Started Every large company is working on one. There are also lots of natural language processing services that you can use as well. Before you start, you need to know your use case. Where will your users be? What services do you want to provide? At work? Probably slack. Among friends? Facebook Node has botkit. It's the most popular chatbot platform in the world. Start with botkit, use the examples, then come back to Ruby. Dave brings up building a chatbot for Slack that connected to VersionOne. Data retrieval bots are another great place to start. From there, you start answering the question of where things go. [18:51] The panel's experience with chatbots Tatsu has been around for about 2 years and has existed pre-Slack. Eric uses a Slackbot to get information about users who cancel or decline messages. Chuck has done automatic posting to Slack with Zapier. Chuck also mentions serverless with AWS Lambda. Chatbots are a lot like webapps. They're text in, text out and process things in very similar ways. Dave also brings up SMS bots as well with Twilio. Jamie has thought about creating a web based standup bot for when Slack is down. Slack is a single point of failure for your bot if that's where it lives. Slack gives you a lot of UI elements that you don't get in SMS. [24:51] Do you wish that Slack were more like IRC From an end-user perspective, no. But Jamie does wish they'd revisit threading replies and separating conversations in the same channel. It only took a handful of developers to build Slack. [27:20] What gems do you use in Ruby? slack-ruby-client by dblock slack-ruby-bot by dblock eventmachine [29:30] Does Slack push to an endpoint? or do you poll Slack? You can call an api endpoint on Slack that gives you a websocket endpoint. The events API sends webhook events to your server. It's easier to program against, but it can be slower. It may also be restricted on certain API's [30:55] Github Fantasy League Based on a Peepcode video with Aaron Patterson. You got a score based on your activity in Github. Jamie recorded videos for a talk at Codemash. It never actually became a thing, but it was a fun idea. Jamie got into Ruby by going to a Ruby Koans talk by Jim Weirich. Jamie's links github.com/jwright twitter.com/jwright brilliantfantastic.com This is what we put into the chat room after the Dr. Who reference... Picks Eric Rollbar Dave Mattermost Chuck Zoho CRM Jamie Digit

Devchat.tv Master Feed
RR 326: Chatbots with Jamie Wright

Devchat.tv Master Feed

Play Episode Listen Later Sep 5, 2017 42:59


In this episode of the Ruby Rogues podcast Dave Kimura, Eric Berry, and Charles Max Wood discuss chatbots with Jamie Wright. Jamie will be speaking at Ruby Dev Summit in October. [01:25] Jamie Wright introduction Jamie is a professional nerd and independent contractor. He's been coding for 20 years mostly in Ruby. He's starting to get into Elixir. One of his first projects was a text adventure game, which got him started with conversational UI's. He saw Hubot on Campfire. He started tweaking that. He made a timetracking bot that used Freshbooks and Harvest. Then Slack came out and he created Tatsu. [05:00] Tatsu features You can schedule it and it'll ask automated questions. He's working on having it integrate with github, Harvest, Google Calendar, etc. If there's a blocker, you should be able to create private conversations with the people who are blocked and add that to the standup. When you sign up it adds a video link into your slack. Eric thinks this is pretty clever. In Slack, the default action people should take when a bot is installed should be to DM the person who installed it. [08:50] What it takes to write a bot and the challenges involved Writing bots is "fun as hell." Chatbots suck. We have the opportunity to improve an entire piece of the industry. Many bots are command based bots. You say something and it responds. Conversational UI's are really hard because they don't have any context or shared understanding of the world. [12:18] Chatbot libraries - Getting Started Every large company is working on one. There are also lots of natural language processing services that you can use as well. Before you start, you need to know your use case. Where will your users be? What services do you want to provide? At work? Probably slack. Among friends? Facebook Node has botkit. It's the most popular chatbot platform in the world. Start with botkit, use the examples, then come back to Ruby. Dave brings up building a chatbot for Slack that connected to VersionOne. Data retrieval bots are another great place to start. From there, you start answering the question of where things go. [18:51] The panel's experience with chatbots Tatsu has been around for about 2 years and has existed pre-Slack. Eric uses a Slackbot to get information about users who cancel or decline messages. Chuck has done automatic posting to Slack with Zapier. Chuck also mentions serverless with AWS Lambda. Chatbots are a lot like webapps. They're text in, text out and process things in very similar ways. Dave also brings up SMS bots as well with Twilio. Jamie has thought about creating a web based standup bot for when Slack is down. Slack is a single point of failure for your bot if that's where it lives. Slack gives you a lot of UI elements that you don't get in SMS. [24:51] Do you wish that Slack were more like IRC From an end-user perspective, no. But Jamie does wish they'd revisit threading replies and separating conversations in the same channel. It only took a handful of developers to build Slack. [27:20] What gems do you use in Ruby? slack-ruby-client by dblock slack-ruby-bot by dblock eventmachine [29:30] Does Slack push to an endpoint? or do you poll Slack? You can call an api endpoint on Slack that gives you a websocket endpoint. The events API sends webhook events to your server. It's easier to program against, but it can be slower. It may also be restricted on certain API's [30:55] Github Fantasy League Based on a Peepcode video with Aaron Patterson. You got a score based on your activity in Github. Jamie recorded videos for a talk at Codemash. It never actually became a thing, but it was a fun idea. Jamie got into Ruby by going to a Ruby Koans talk by Jim Weirich. Jamie's links github.com/jwright twitter.com/jwright brilliantfantastic.com This is what we put into the chat room after the Dr. Who reference... Picks Eric Rollbar Dave Mattermost Chuck Zoho CRM Jamie Digit

All Ruby Podcasts by Devchat.tv
RR 326: Chatbots with Jamie Wright

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Sep 5, 2017 42:59


In this episode of the Ruby Rogues podcast Dave Kimura, Eric Berry, and Charles Max Wood discuss chatbots with Jamie Wright. Jamie will be speaking at Ruby Dev Summit in October. [01:25] Jamie Wright introduction Jamie is a professional nerd and independent contractor. He's been coding for 20 years mostly in Ruby. He's starting to get into Elixir. One of his first projects was a text adventure game, which got him started with conversational UI's. He saw Hubot on Campfire. He started tweaking that. He made a timetracking bot that used Freshbooks and Harvest. Then Slack came out and he created Tatsu. [05:00] Tatsu features You can schedule it and it'll ask automated questions. He's working on having it integrate with github, Harvest, Google Calendar, etc. If there's a blocker, you should be able to create private conversations with the people who are blocked and add that to the standup. When you sign up it adds a video link into your slack. Eric thinks this is pretty clever. In Slack, the default action people should take when a bot is installed should be to DM the person who installed it. [08:50] What it takes to write a bot and the challenges involved Writing bots is "fun as hell." Chatbots suck. We have the opportunity to improve an entire piece of the industry. Many bots are command based bots. You say something and it responds. Conversational UI's are really hard because they don't have any context or shared understanding of the world. [12:18] Chatbot libraries - Getting Started Every large company is working on one. There are also lots of natural language processing services that you can use as well. Before you start, you need to know your use case. Where will your users be? What services do you want to provide? At work? Probably slack. Among friends? Facebook Node has botkit. It's the most popular chatbot platform in the world. Start with botkit, use the examples, then come back to Ruby. Dave brings up building a chatbot for Slack that connected to VersionOne. Data retrieval bots are another great place to start. From there, you start answering the question of where things go. [18:51] The panel's experience with chatbots Tatsu has been around for about 2 years and has existed pre-Slack. Eric uses a Slackbot to get information about users who cancel or decline messages. Chuck has done automatic posting to Slack with Zapier. Chuck also mentions serverless with AWS Lambda. Chatbots are a lot like webapps. They're text in, text out and process things in very similar ways. Dave also brings up SMS bots as well with Twilio. Jamie has thought about creating a web based standup bot for when Slack is down. Slack is a single point of failure for your bot if that's where it lives. Slack gives you a lot of UI elements that you don't get in SMS. [24:51] Do you wish that Slack were more like IRC From an end-user perspective, no. But Jamie does wish they'd revisit threading replies and separating conversations in the same channel. It only took a handful of developers to build Slack. [27:20] What gems do you use in Ruby? slack-ruby-client by dblock slack-ruby-bot by dblock eventmachine [29:30] Does Slack push to an endpoint? or do you poll Slack? You can call an api endpoint on Slack that gives you a websocket endpoint. The events API sends webhook events to your server. It's easier to program against, but it can be slower. It may also be restricted on certain API's [30:55] Github Fantasy League Based on a Peepcode video with Aaron Patterson. You got a score based on your activity in Github. Jamie recorded videos for a talk at Codemash. It never actually became a thing, but it was a fun idea. Jamie got into Ruby by going to a Ruby Koans talk by Jim Weirich. Jamie's links github.com/jwright twitter.com/jwright brilliantfantastic.com This is what we put into the chat room after the Dr. Who reference... Picks Eric Rollbar Dave Mattermost Chuck Zoho CRM Jamie Digit

All Ruby Podcasts by Devchat.tv
RR 312 How to Handle WTF's

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later May 30, 2017 49:52


How to Handle WTFs On today’s episode of Ruby Rogues we are chatting about WTFs. On our panel we’ve got Dave Carmona, Brian Hogan and I’m Charles Max Wood. We talk a bit about some of the recent WTFs we’ve encountered and some of our tricks for handling it, including talking to a Rubber Duck. It’s a fun episode so check it out! WTF’s in Two Flavors Charles starts out the episode inquiring to the panel about two different kinds of WTFs. The whats and the whys. WTFs that happen and developers don’t understand what the WTF is, and then on the other hand WTFs that happen and the developer doesn’t know why it’s happening. Unreadable Perl and the Rubber Duck David talks a bit about how hard it is sometimes to read and understand what is happening with Perl code, even if you wrote it yourself. Sometimes debugging Perl codes many years later, running into syntax errors end up being a ‘Why’ WTF. He introduces a method to use for ‘Why’ WTFs that he calls the ‘Rubber Ducky Debugging’ method. The ‘Rubber Ducky Debugging Method’ is when you place a rubber duck on your desk, and when you encounter a WTF you can simply talk through the issue to the duck to help you think through your issue. Brian and Charles add that this method works fine with real people as well and have done it many times with their wives, even for issues that don’t involve code. Blaming it on Past Brian Brain mentions that sometimes when working with someone else’s code, it’s easy to blame the previous developer. Unfortunately in his case, Brian finds that “Past Brian” has often been the culprit. Dave and Code he Doesn’t Understand When encountering classes that are really big with many different methods, find the entry point. If it doesn’t have a traditional initializer or call method for the entry point, you can look around other relevant parts of the code to try and figure it out. Sometimes if it’s obfuscated, you can go through variables and rename them to more relevant names to identify what they are doing to help understand the method at hand. Puts Debugging Aaron Patterson had written an article on his blog about ‘Puts debugging’ that turned Dave onto the the untraditional debugging method. Dave will sometimes write a separate debugger class to separate puts into a different log to keep it organized. Brian’s Version of Puts Debugging Brian mentions that when working on a rails application he will sometimes raise the object he wants to inspect. Errors in Ruby are often something you wouldn’t expect and being able to quickly inspect the object using raise .Using raises the whole stack including the object, session, and cookies , etc. Dave’s Ruby Lifesavers Dave also adds that adding the gems to your development better_errors, and then en binding_of_caller are lifesavers. It allows for a more interruptive session with raised errors. Also, in Rails 4 the console feature was added, allowing you to tweak things and play around to debug. Also, Pry is really useful for loop through and investigate. Dave also notes that Pry, while being a great tool, can sometimes be a bit annoying if you have a large number of loops. Crazy Bug Story - Brian Brian talks about how in Elixir the declaring of methods is very similar to Ruby but at the end of Elixir method calls you add keyword do. If you do this in Ruby, the interpreter’s error message is unusual and doesn’t give any information that helps you find the issue, making it very hard to find the issue. This could be very time consuming for the debugger. He adds that having a second pair of eyes helps with issues like these. Crazy Bug Story - David David talks about working on a personal project late into the night. Using Rails 5.1.1, he thought that maybe his issue with the enumerators. He considered that maybe the issue was with Rails 5.1.1 being that is newer. To test to find out if he caused the error, he recreated a simple bit of code that uses enumerators and saw that it worked, then created the same project in 5.1.1 and it also worked, concluding that he created the issue. Later he found he declared the datatype for the enumerator as a string instead of an int. Brian added that creating a fresh application to test for errors is a great way to start debugging, in comparison to immediately to asking others what the problem might be. This method of checking can have a quick pay off if the code is simple. Also, creating new applications to test gives a great foundation of knowing that the problem is in your own code. Crazy Bug Story - Charles Charles’ bug was something he encountered in his podcast feed application he created in Rails 4. Charles didn’t read the error message very well so he tried it debugging it with Puts Debugging. It’s turned out that he was using a strftime method that he had accidentally formatted the string wrong, using -’s instead of /’s. Characterizing with a Test In issues like Charles’ you can take input that’s going into a method and then setup an integration test. Tests like this can be made fairly quickly. By copying and pasting the input parameters into a test like a Capybara test, then you can get a better idea of where the issue actually is. Creating the Error to Fix the Error Brain mentions that sometimes when he has a specific error, he will try to write a new set of code that reproduces the issue. Then from there he will try to ‘break’ the broken code in efforts to find a debugging solution in the original code. Making your Production Environment The Same as Your Development Environment If you’re using something like caching in your production environment, make sure it is set up in your developmental environment. Debugging caching issues can be some of the most complicated bugs to fix. If you set up your environment to be the same it helps. If you need to start the caching over during development or tests, it’s as simple as a CLI command. When you’re doing feature tests, if you do it with caching enabled, you can use timecop. Timecop allows you to essentially time travel to test timing issues without having to wait. Favorite Development Tools Some of the panelist’s favorite tools are Pry, binding_of_caller, better_errors, Konami, and Sinatra. Google Chrome’s RailsPanel extension Works like MiniProfiler, but digs in further. By adding this gem to your development environment and running it on Chrome, it shows you all the requests that come through, the controller in action, and lists out all the parameters, as well as active record calls and errors. Favorite Production Tools Brian suggests using any tools available to capture exceptions and error messages. Capturing these issues before the user contacts you makes recreating the issue and debugging it a lot easier. Dave mentions using New Relic to capture performance of application as well as error notification. With New Relic you can adjust the notification threshold and give it actions like sending it to a Slack channel. Then use something like Sumo Logic to concatenate and combine the logs if it’s coming from various servers. Shipping Logs Off FluentD can be used to ship off logs to analyze. In some cases management won’t be okay with shipping things off. Doing things internally can sometimes be too much and using a third party aggregation tools can be helpful. Some Tools Can Be Heavy Sumo Logic applet is Java based and takes up quite a bit of space. Jenkins is also a Java setup and takes many parameters to get running. In some cases with smaller applications, applets like Sumo Logic can take up more space than the application. Trying to parse multiple servers can be daunting and will definitely need a centralized logging option. Other Logging Tools Elastic.co and Logstash are other logging tools. They have integrations with tools like Docker and Kibana. If you can roll your own logging tools then great. But it’s usually time consuming and takes resources. Getting Information from People and Assume It’s Wrong Charles mentions that in some cases, especially in cases where something you’re using is dated, resources can be limited to get information on a bug you’re having. Brian suggests that when this happens, getting information out of people is a good place to start. Also, when getting information from people, assume that it’s wrong. People tend to have a pretty poor recollection of what happened. You can sometimes take what they say and compare it to the logs to create tests and logically work out how something has happened. Users will sometimes leave out things like accidentally leaving a field blank, or hitting backspace, or something simple. Extracting information from the users to get relevant information is a skill. Sometimes the best way to get information from a user is to just watch them use the application. Sometimes they will use the application in ways unexpected. Approaching the problem with “Let’s fix this together” helps with getting the client to help. Getting Access with Production Data David mentions that If there is an issue with the production side of things, pulling data down into your own database and your own separate testing environment can keep it safe while debugging. If you’re able to recreate the issue than most likely it’s an application issue, otherwise it’s something to do with the environment like caching. Safely Percautions of Having Client Data on Your Computer If you’re pulling data down, you should absolutely have your devices encrypted. There is no reason not to. Also when pulling data down, you can create a mirror of the data dump. There are systems that dump data that will also obfuscates or remove particular information including personal information like emails. Troubleshooting ActionCable: Step 1 - Cry in a Corner David tells how he was troubleshooting an Actioncable issue and his first step was to cry in a corner for 5 minutes. Afterwards he used Chrome Dev tools to trace back the code’s method where it was getting declared. Sometimes if an application is complicated it can be running many moving parts and be difficult. When debugging something complicated start at the browser level. Check for connection then try pushing a message in the console. If you get it then you’re connecting but not broadcasting. If you have a complicated subscription model for authorizing a channel, it can be even harder, again start with checking to see if it’s connecting. tail -f | grep ‘exception’ Charles remembers a simple way to watch for issues while debugging. A simple use of tail -f | grep ‘exception’ tails the logs and shows only the exceptions. You can use this along with Put debugging by putting the word in all your puts. Picks Brian Learningmusic.abelton.com David RailsPanel His new 5 foot long 12 plug power strip Charles Microsoft Build .Net Rocks Podcast Ketogenic Diet & Livin’ La Vita Low Carb Rubydevsummit.com

Ruby Rogues
RR 312 How to Handle WTF's

Ruby Rogues

Play Episode Listen Later May 30, 2017 49:52


How to Handle WTFs On today’s episode of Ruby Rogues we are chatting about WTFs. On our panel we’ve got Dave Carmona, Brian Hogan and I’m Charles Max Wood. We talk a bit about some of the recent WTFs we’ve encountered and some of our tricks for handling it, including talking to a Rubber Duck. It’s a fun episode so check it out! WTF’s in Two Flavors Charles starts out the episode inquiring to the panel about two different kinds of WTFs. The whats and the whys. WTFs that happen and developers don’t understand what the WTF is, and then on the other hand WTFs that happen and the developer doesn’t know why it’s happening. Unreadable Perl and the Rubber Duck David talks a bit about how hard it is sometimes to read and understand what is happening with Perl code, even if you wrote it yourself. Sometimes debugging Perl codes many years later, running into syntax errors end up being a ‘Why’ WTF. He introduces a method to use for ‘Why’ WTFs that he calls the ‘Rubber Ducky Debugging’ method. The ‘Rubber Ducky Debugging Method’ is when you place a rubber duck on your desk, and when you encounter a WTF you can simply talk through the issue to the duck to help you think through your issue. Brian and Charles add that this method works fine with real people as well and have done it many times with their wives, even for issues that don’t involve code. Blaming it on Past Brian Brain mentions that sometimes when working with someone else’s code, it’s easy to blame the previous developer. Unfortunately in his case, Brian finds that “Past Brian” has often been the culprit. Dave and Code he Doesn’t Understand When encountering classes that are really big with many different methods, find the entry point. If it doesn’t have a traditional initializer or call method for the entry point, you can look around other relevant parts of the code to try and figure it out. Sometimes if it’s obfuscated, you can go through variables and rename them to more relevant names to identify what they are doing to help understand the method at hand. Puts Debugging Aaron Patterson had written an article on his blog about ‘Puts debugging’ that turned Dave onto the the untraditional debugging method. Dave will sometimes write a separate debugger class to separate puts into a different log to keep it organized. Brian’s Version of Puts Debugging Brian mentions that when working on a rails application he will sometimes raise the object he wants to inspect. Errors in Ruby are often something you wouldn’t expect and being able to quickly inspect the object using raise .Using raises the whole stack including the object, session, and cookies , etc. Dave’s Ruby Lifesavers Dave also adds that adding the gems to your development better_errors, and then en binding_of_caller are lifesavers. It allows for a more interruptive session with raised errors. Also, in Rails 4 the console feature was added, allowing you to tweak things and play around to debug. Also, Pry is really useful for loop through and investigate. Dave also notes that Pry, while being a great tool, can sometimes be a bit annoying if you have a large number of loops. Crazy Bug Story - Brian Brian talks about how in Elixir the declaring of methods is very similar to Ruby but at the end of Elixir method calls you add keyword do. If you do this in Ruby, the interpreter’s error message is unusual and doesn’t give any information that helps you find the issue, making it very hard to find the issue. This could be very time consuming for the debugger. He adds that having a second pair of eyes helps with issues like these. Crazy Bug Story - David David talks about working on a personal project late into the night. Using Rails 5.1.1, he thought that maybe his issue with the enumerators. He considered that maybe the issue was with Rails 5.1.1 being that is newer. To test to find out if he caused the error, he recreated a simple bit of code that uses enumerators and saw that it worked, then created the same project in 5.1.1 and it also worked, concluding that he created the issue. Later he found he declared the datatype for the enumerator as a string instead of an int. Brian added that creating a fresh application to test for errors is a great way to start debugging, in comparison to immediately to asking others what the problem might be. This method of checking can have a quick pay off if the code is simple. Also, creating new applications to test gives a great foundation of knowing that the problem is in your own code. Crazy Bug Story - Charles Charles’ bug was something he encountered in his podcast feed application he created in Rails 4. Charles didn’t read the error message very well so he tried it debugging it with Puts Debugging. It’s turned out that he was using a strftime method that he had accidentally formatted the string wrong, using -’s instead of /’s. Characterizing with a Test In issues like Charles’ you can take input that’s going into a method and then setup an integration test. Tests like this can be made fairly quickly. By copying and pasting the input parameters into a test like a Capybara test, then you can get a better idea of where the issue actually is. Creating the Error to Fix the Error Brain mentions that sometimes when he has a specific error, he will try to write a new set of code that reproduces the issue. Then from there he will try to ‘break’ the broken code in efforts to find a debugging solution in the original code. Making your Production Environment The Same as Your Development Environment If you’re using something like caching in your production environment, make sure it is set up in your developmental environment. Debugging caching issues can be some of the most complicated bugs to fix. If you set up your environment to be the same it helps. If you need to start the caching over during development or tests, it’s as simple as a CLI command. When you’re doing feature tests, if you do it with caching enabled, you can use timecop. Timecop allows you to essentially time travel to test timing issues without having to wait. Favorite Development Tools Some of the panelist’s favorite tools are Pry, binding_of_caller, better_errors, Konami, and Sinatra. Google Chrome’s RailsPanel extension Works like MiniProfiler, but digs in further. By adding this gem to your development environment and running it on Chrome, it shows you all the requests that come through, the controller in action, and lists out all the parameters, as well as active record calls and errors. Favorite Production Tools Brian suggests using any tools available to capture exceptions and error messages. Capturing these issues before the user contacts you makes recreating the issue and debugging it a lot easier. Dave mentions using New Relic to capture performance of application as well as error notification. With New Relic you can adjust the notification threshold and give it actions like sending it to a Slack channel. Then use something like Sumo Logic to concatenate and combine the logs if it’s coming from various servers. Shipping Logs Off FluentD can be used to ship off logs to analyze. In some cases management won’t be okay with shipping things off. Doing things internally can sometimes be too much and using a third party aggregation tools can be helpful. Some Tools Can Be Heavy Sumo Logic applet is Java based and takes up quite a bit of space. Jenkins is also a Java setup and takes many parameters to get running. In some cases with smaller applications, applets like Sumo Logic can take up more space than the application. Trying to parse multiple servers can be daunting and will definitely need a centralized logging option. Other Logging Tools Elastic.co and Logstash are other logging tools. They have integrations with tools like Docker and Kibana. If you can roll your own logging tools then great. But it’s usually time consuming and takes resources. Getting Information from People and Assume It’s Wrong Charles mentions that in some cases, especially in cases where something you’re using is dated, resources can be limited to get information on a bug you’re having. Brian suggests that when this happens, getting information out of people is a good place to start. Also, when getting information from people, assume that it’s wrong. People tend to have a pretty poor recollection of what happened. You can sometimes take what they say and compare it to the logs to create tests and logically work out how something has happened. Users will sometimes leave out things like accidentally leaving a field blank, or hitting backspace, or something simple. Extracting information from the users to get relevant information is a skill. Sometimes the best way to get information from a user is to just watch them use the application. Sometimes they will use the application in ways unexpected. Approaching the problem with “Let’s fix this together” helps with getting the client to help. Getting Access with Production Data David mentions that If there is an issue with the production side of things, pulling data down into your own database and your own separate testing environment can keep it safe while debugging. If you’re able to recreate the issue than most likely it’s an application issue, otherwise it’s something to do with the environment like caching. Safely Percautions of Having Client Data on Your Computer If you’re pulling data down, you should absolutely have your devices encrypted. There is no reason not to. Also when pulling data down, you can create a mirror of the data dump. There are systems that dump data that will also obfuscates or remove particular information including personal information like emails. Troubleshooting ActionCable: Step 1 - Cry in a Corner David tells how he was troubleshooting an Actioncable issue and his first step was to cry in a corner for 5 minutes. Afterwards he used Chrome Dev tools to trace back the code’s method where it was getting declared. Sometimes if an application is complicated it can be running many moving parts and be difficult. When debugging something complicated start at the browser level. Check for connection then try pushing a message in the console. If you get it then you’re connecting but not broadcasting. If you have a complicated subscription model for authorizing a channel, it can be even harder, again start with checking to see if it’s connecting. tail -f | grep ‘exception’ Charles remembers a simple way to watch for issues while debugging. A simple use of tail -f | grep ‘exception’ tails the logs and shows only the exceptions. You can use this along with Put debugging by putting the word in all your puts. Picks Brian Learningmusic.abelton.com David RailsPanel His new 5 foot long 12 plug power strip Charles Microsoft Build .Net Rocks Podcast Ketogenic Diet & Livin’ La Vita Low Carb Rubydevsummit.com

Devchat.tv Master Feed
RR 312 How to Handle WTF's

Devchat.tv Master Feed

Play Episode Listen Later May 30, 2017 49:52


How to Handle WTFs On today’s episode of Ruby Rogues we are chatting about WTFs. On our panel we’ve got Dave Carmona, Brian Hogan and I’m Charles Max Wood. We talk a bit about some of the recent WTFs we’ve encountered and some of our tricks for handling it, including talking to a Rubber Duck. It’s a fun episode so check it out! WTF’s in Two Flavors Charles starts out the episode inquiring to the panel about two different kinds of WTFs. The whats and the whys. WTFs that happen and developers don’t understand what the WTF is, and then on the other hand WTFs that happen and the developer doesn’t know why it’s happening. Unreadable Perl and the Rubber Duck David talks a bit about how hard it is sometimes to read and understand what is happening with Perl code, even if you wrote it yourself. Sometimes debugging Perl codes many years later, running into syntax errors end up being a ‘Why’ WTF. He introduces a method to use for ‘Why’ WTFs that he calls the ‘Rubber Ducky Debugging’ method. The ‘Rubber Ducky Debugging Method’ is when you place a rubber duck on your desk, and when you encounter a WTF you can simply talk through the issue to the duck to help you think through your issue. Brian and Charles add that this method works fine with real people as well and have done it many times with their wives, even for issues that don’t involve code. Blaming it on Past Brian Brain mentions that sometimes when working with someone else’s code, it’s easy to blame the previous developer. Unfortunately in his case, Brian finds that “Past Brian” has often been the culprit. Dave and Code he Doesn’t Understand When encountering classes that are really big with many different methods, find the entry point. If it doesn’t have a traditional initializer or call method for the entry point, you can look around other relevant parts of the code to try and figure it out. Sometimes if it’s obfuscated, you can go through variables and rename them to more relevant names to identify what they are doing to help understand the method at hand. Puts Debugging Aaron Patterson had written an article on his blog about ‘Puts debugging’ that turned Dave onto the the untraditional debugging method. Dave will sometimes write a separate debugger class to separate puts into a different log to keep it organized. Brian’s Version of Puts Debugging Brian mentions that when working on a rails application he will sometimes raise the object he wants to inspect. Errors in Ruby are often something you wouldn’t expect and being able to quickly inspect the object using raise .Using raises the whole stack including the object, session, and cookies , etc. Dave’s Ruby Lifesavers Dave also adds that adding the gems to your development better_errors, and then en binding_of_caller are lifesavers. It allows for a more interruptive session with raised errors. Also, in Rails 4 the console feature was added, allowing you to tweak things and play around to debug. Also, Pry is really useful for loop through and investigate. Dave also notes that Pry, while being a great tool, can sometimes be a bit annoying if you have a large number of loops. Crazy Bug Story - Brian Brian talks about how in Elixir the declaring of methods is very similar to Ruby but at the end of Elixir method calls you add keyword do. If you do this in Ruby, the interpreter’s error message is unusual and doesn’t give any information that helps you find the issue, making it very hard to find the issue. This could be very time consuming for the debugger. He adds that having a second pair of eyes helps with issues like these. Crazy Bug Story - David David talks about working on a personal project late into the night. Using Rails 5.1.1, he thought that maybe his issue with the enumerators. He considered that maybe the issue was with Rails 5.1.1 being that is newer. To test to find out if he caused the error, he recreated a simple bit of code that uses enumerators and saw that it worked, then created the same project in 5.1.1 and it also worked, concluding that he created the issue. Later he found he declared the datatype for the enumerator as a string instead of an int. Brian added that creating a fresh application to test for errors is a great way to start debugging, in comparison to immediately to asking others what the problem might be. This method of checking can have a quick pay off if the code is simple. Also, creating new applications to test gives a great foundation of knowing that the problem is in your own code. Crazy Bug Story - Charles Charles’ bug was something he encountered in his podcast feed application he created in Rails 4. Charles didn’t read the error message very well so he tried it debugging it with Puts Debugging. It’s turned out that he was using a strftime method that he had accidentally formatted the string wrong, using -’s instead of /’s. Characterizing with a Test In issues like Charles’ you can take input that’s going into a method and then setup an integration test. Tests like this can be made fairly quickly. By copying and pasting the input parameters into a test like a Capybara test, then you can get a better idea of where the issue actually is. Creating the Error to Fix the Error Brain mentions that sometimes when he has a specific error, he will try to write a new set of code that reproduces the issue. Then from there he will try to ‘break’ the broken code in efforts to find a debugging solution in the original code. Making your Production Environment The Same as Your Development Environment If you’re using something like caching in your production environment, make sure it is set up in your developmental environment. Debugging caching issues can be some of the most complicated bugs to fix. If you set up your environment to be the same it helps. If you need to start the caching over during development or tests, it’s as simple as a CLI command. When you’re doing feature tests, if you do it with caching enabled, you can use timecop. Timecop allows you to essentially time travel to test timing issues without having to wait. Favorite Development Tools Some of the panelist’s favorite tools are Pry, binding_of_caller, better_errors, Konami, and Sinatra. Google Chrome’s RailsPanel extension Works like MiniProfiler, but digs in further. By adding this gem to your development environment and running it on Chrome, it shows you all the requests that come through, the controller in action, and lists out all the parameters, as well as active record calls and errors. Favorite Production Tools Brian suggests using any tools available to capture exceptions and error messages. Capturing these issues before the user contacts you makes recreating the issue and debugging it a lot easier. Dave mentions using New Relic to capture performance of application as well as error notification. With New Relic you can adjust the notification threshold and give it actions like sending it to a Slack channel. Then use something like Sumo Logic to concatenate and combine the logs if it’s coming from various servers. Shipping Logs Off FluentD can be used to ship off logs to analyze. In some cases management won’t be okay with shipping things off. Doing things internally can sometimes be too much and using a third party aggregation tools can be helpful. Some Tools Can Be Heavy Sumo Logic applet is Java based and takes up quite a bit of space. Jenkins is also a Java setup and takes many parameters to get running. In some cases with smaller applications, applets like Sumo Logic can take up more space than the application. Trying to parse multiple servers can be daunting and will definitely need a centralized logging option. Other Logging Tools Elastic.co and Logstash are other logging tools. They have integrations with tools like Docker and Kibana. If you can roll your own logging tools then great. But it’s usually time consuming and takes resources. Getting Information from People and Assume It’s Wrong Charles mentions that in some cases, especially in cases where something you’re using is dated, resources can be limited to get information on a bug you’re having. Brian suggests that when this happens, getting information out of people is a good place to start. Also, when getting information from people, assume that it’s wrong. People tend to have a pretty poor recollection of what happened. You can sometimes take what they say and compare it to the logs to create tests and logically work out how something has happened. Users will sometimes leave out things like accidentally leaving a field blank, or hitting backspace, or something simple. Extracting information from the users to get relevant information is a skill. Sometimes the best way to get information from a user is to just watch them use the application. Sometimes they will use the application in ways unexpected. Approaching the problem with “Let’s fix this together” helps with getting the client to help. Getting Access with Production Data David mentions that If there is an issue with the production side of things, pulling data down into your own database and your own separate testing environment can keep it safe while debugging. If you’re able to recreate the issue than most likely it’s an application issue, otherwise it’s something to do with the environment like caching. Safely Percautions of Having Client Data on Your Computer If you’re pulling data down, you should absolutely have your devices encrypted. There is no reason not to. Also when pulling data down, you can create a mirror of the data dump. There are systems that dump data that will also obfuscates or remove particular information including personal information like emails. Troubleshooting ActionCable: Step 1 - Cry in a Corner David tells how he was troubleshooting an Actioncable issue and his first step was to cry in a corner for 5 minutes. Afterwards he used Chrome Dev tools to trace back the code’s method where it was getting declared. Sometimes if an application is complicated it can be running many moving parts and be difficult. When debugging something complicated start at the browser level. Check for connection then try pushing a message in the console. If you get it then you’re connecting but not broadcasting. If you have a complicated subscription model for authorizing a channel, it can be even harder, again start with checking to see if it’s connecting. tail -f | grep ‘exception’ Charles remembers a simple way to watch for issues while debugging. A simple use of tail -f | grep ‘exception’ tails the logs and shows only the exceptions. You can use this along with Put debugging by putting the word in all your puts. Picks Brian Learningmusic.abelton.com David RailsPanel His new 5 foot long 12 plug power strip Charles Microsoft Build .Net Rocks Podcast Ketogenic Diet & Livin’ La Vita Low Carb Rubydevsummit.com

The Bike Shed
111: Trike Shed (Aaron Patterson)

The Bike Shed

Play Episode Listen Later May 25, 2017 31:14


We talk with Aaron Patterson about Ruby and Rails upgrades, and the goal of making Ruby 3 three times faster than Ruby 2. Aaron Patterson DHH's RailsConf Keynote warning: private attribute? Ruby 2.4 Rounding Changes Ruby 3x3 optcarrot: A NES Emulator for Ruby Benchmark Windows 98 Defragging

The Bike Shed
72: Surprises Cut For Time (Aaron Patterson)

The Bike Shed

Play Episode Listen Later Jul 20, 2016 43:28


Aaron Patterson joins us from RailsConf for puns, performance improvements in Ruby, and AirDropping cats. Gorbypuff Virus UTF8 vs UTF16 vs UTF32 What happened to the Rails 4 queue API? Koichi talks about AOT compilation Aaron hates encoding. This isn't a link, just a fact. Sean's terrifying test script, slightly out of date rails.vim, the tpope jam

Start Here: Web Development
23. The Motivation Episode and Becoming a Programming Super Learner

Start Here: Web Development

Play Episode Listen Later Apr 25, 2016 56:31


http://advancedbeginnerchallenge.com – I built a course to get your first job in web development, or upgrade from Junior to mid-level! On this episode we discuss the fixed mindset vs. the growth mindset, what you should focus on for developer success, and how to overcome the challenges associated with procrastination and fear of failure. Resources mentioned: - Mindset: The New Psychology of Success (Book) (Non-affiliate amazon link)http://www.amazon.com/Mindset-Psychology-Success-Carol-Dweck/dp/0345472322 - Aaron Patterson's commit history https://github.com/tenderlove?tab=activity Resources not mentioned, but that I think you'd like: - The Art of Thinking Big (Book) (Non-affiliate amazon link)http://www.amazon.com/The-Magic-Thinking-David-Schwartz/dp/0671646788/ref=cm_cr_arp_d_product_top?ie=UTF8 Connect with me on instagram @dainmiller or @starthere.fm --- Send in a voice message: https://anchor.fm/startherefm/message

Open Source – Software Engineering Daily
Open Source and Rails with Aaron Patterson

Open Source – Software Engineering Daily

Play Episode Listen Later Mar 6, 2016 58:18


“I have a really fun time being in open source, and I want other people in the community to feel the same way as well. Programming isn’t just my job – its also my hobby.” Ruby on Rails has had the most commits made by its creator, David Heinemeier Hansson. The next most frequent contributor The post Open Source and Rails with Aaron Patterson appeared first on Software Engineering Daily.

Rebuild
122: The Metal Is Dead (tenderlove)

Rebuild

Play Episode Listen Later Dec 17, 2015 52:27


Aaron Patterson joins me to talk about HTTP/2, Rack and Rails. Show Notes Request and Response - RubyKaigi 2015 tenderlove/ds9 Star Trek: Deep Space Nine Nghttp2: HTTP/2 C Library RFC 7540 (HTTP/2) Enable full concurrency when using webrick Rack: a Ruby Webserver Interface HTTP Node.js API Rails on Rack Rhebok, High Performance Rack Handler Rebuild: 58: Close To The BABYMETAL (tenderlove) tenderlove/the_metal class Hash - Documentation for Ruby RubyConf 2015 - Keynote: Matz tenderlove/rails at rack2 PSGI/Plack h2demo/Gemfile

Teahour
#81 - 和微软的爱恨情仇

Teahour

Play Episode Listen Later Nov 15, 2015 81:53


本期节目由 思客教学 赞助,思客教学 “专注 IT 领域远程学徒式” 教育。 本期由 Terry 主持, 采访到了过纯中, 和他聊聊他与微软的爱恨情仇,说说他如何用 Windows 作为桌面来进行“开源软件”开发的。 Visual Basic Silverlight WPF RIA Jon on Software EJB J2EE Development without EJB ADO.NET Ubuntu Django ASP.NET MVC UNIX is very simple, it just needs a genius to understand its simplicity. Rich Hickey Simplicity Matters Simple Made Easy Agile Web Development With Rails Sublime Mosh Quora Ruby社区应该去Rails化了 Cuba Express Aaron Patterson Journey active_model_serializers windows PR AppVeyor Lotus Trailblazer Rails Engine Concern SPA react-rails ECMAScript 6 Ember React Angular Vue Yehuda Bower webpack React Hot Loader Flux redux alt TypeScript Anders Hejlsberg CoffeeScript Haml Slim Been Hero EventMachine Basecamp 3 wechat gem state_machine state_machines-graphviz aasm Edsger React Native 轮子哥 Special Guest: 过纯中.

All Ruby Podcasts by Devchat.tv
224 RR Ruby Together with André Arko

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Sep 9, 2015 54:27


02:05 - André Arko Introduction + Bundler Twitter GitHub Blog 04:28 - Ruby Together Trade Association ​Brian Mikulencak 10:52 - Ruby Central 501(c) Organization 14:23 - Ruby Together Timeline 16:01 - Open Source People Depend on vs Open Source as a Hobby 17:03 - Corporate Member Rights / The Structure of Ruby Together Monthly Contributions 20:19 - How the Board Makes Decisions Slack 23:00 - Membership Numbers 24:03 - How Voting Works 26:58 - How much work is involved in maintaining these projects? 30:08 - How is work doled out? Eric Hodel (@drbrain) Aaron Patterson (@tenderlove) 33:41 - Future Plans and Community Impact Fastly 40:28 - Getting People Involved 43:34 - Lessons Learned 45:23 - Code of Conducts / Community Values Picks Boundaries: A talk by Gary Bernhardt from SCNA 2012 (André) The Protomen (André) Bubblesort Zines (André) Don't Make Me Think: A Common Sense Approach to Web Usability by Steve Krug (Saron) F.lux (Saron) Hue (Saron) Madison Ruby Day 1 (Coraline) Madison Ruby Day 2 (Coraline) Survive Escape From Atlantis 30th Anniversary Edition (Coraline) Angular Remote Conf (Chuck) React Rally (Chuck) Alcatraz Books by Brandon Sanderson (Chuck)

Ruby Rogues
224 RR Ruby Together with André Arko

Ruby Rogues

Play Episode Listen Later Sep 9, 2015 54:27


02:05 - André Arko Introduction + Bundler Twitter GitHub Blog 04:28 - Ruby Together Trade Association ​Brian Mikulencak 10:52 - Ruby Central 501(c) Organization 14:23 - Ruby Together Timeline 16:01 - Open Source People Depend on vs Open Source as a Hobby 17:03 - Corporate Member Rights / The Structure of Ruby Together Monthly Contributions 20:19 - How the Board Makes Decisions Slack 23:00 - Membership Numbers 24:03 - How Voting Works 26:58 - How much work is involved in maintaining these projects? 30:08 - How is work doled out? Eric Hodel (@drbrain) Aaron Patterson (@tenderlove) 33:41 - Future Plans and Community Impact Fastly 40:28 - Getting People Involved 43:34 - Lessons Learned 45:23 - Code of Conducts / Community Values Picks Boundaries: A talk by Gary Bernhardt from SCNA 2012 (André) The Protomen (André) Bubblesort Zines (André) Don't Make Me Think: A Common Sense Approach to Web Usability by Steve Krug (Saron) F.lux (Saron) Hue (Saron) Madison Ruby Day 1 (Coraline) Madison Ruby Day 2 (Coraline) Survive Escape From Atlantis 30th Anniversary Edition (Coraline) Angular Remote Conf (Chuck) React Rally (Chuck) Alcatraz Books by Brandon Sanderson (Chuck)

Devchat.tv Master Feed
224 RR Ruby Together with André Arko

Devchat.tv Master Feed

Play Episode Listen Later Sep 9, 2015 54:27


02:05 - André Arko Introduction + Bundler Twitter GitHub Blog 04:28 - Ruby Together Trade Association ​Brian Mikulencak 10:52 - Ruby Central 501(c) Organization 14:23 - Ruby Together Timeline 16:01 - Open Source People Depend on vs Open Source as a Hobby 17:03 - Corporate Member Rights / The Structure of Ruby Together Monthly Contributions 20:19 - How the Board Makes Decisions Slack 23:00 - Membership Numbers 24:03 - How Voting Works 26:58 - How much work is involved in maintaining these projects? 30:08 - How is work doled out? Eric Hodel (@drbrain) Aaron Patterson (@tenderlove) 33:41 - Future Plans and Community Impact Fastly 40:28 - Getting People Involved 43:34 - Lessons Learned 45:23 - Code of Conducts / Community Values Picks Boundaries: A talk by Gary Bernhardt from SCNA 2012 (André) The Protomen (André) Bubblesort Zines (André) Don't Make Me Think: A Common Sense Approach to Web Usability by Steve Krug (Saron) F.lux (Saron) Hue (Saron) Madison Ruby Day 1 (Coraline) Madison Ruby Day 2 (Coraline) Survive Escape From Atlantis 30th Anniversary Edition (Coraline) Angular Remote Conf (Chuck) React Rally (Chuck) Alcatraz Books by Brandon Sanderson (Chuck)

Beats, Rye & Types
Episode 28: Stickin' it to The Man with Aaron Patterson

Beats, Rye & Types

Play Episode Listen Later Aug 24, 2015 27:35


Ruby Rogues
210 RR Roda and Routing Trees with Jeremy Evans

Ruby Rogues

Play Episode Listen Later Jun 3, 2015 72:56


Sign up for Ruby Remote Conf!!   02:49 - Jeremy Evans Introduction Twitter GitHub Blog Sequel Ruby Hero Awards 03:58 - Roda and Routing Trees rum Cuba Ruby Rogues Episode #182: Keeping Libraries and Utilities Small and Simple with Michel Martens Plugins: ClassLevelRouting 08:56 - Roda vs Padrino, Sinatra 10:03 - Nested Routing 11:09 - Snipping Routing Trees? MultiRoute 13:19 - Dispatching from One Rack Application to Another 13:54 - Rails Integration 14:33 - Performance and Benchmarking @tenderlove (Aaron Patterson)   nyny r10k bench-micro 17:29 - Streaming reel 19:26 - Support Decisions (Roadmapping) Opal More on Opal: Ruby Rogues Episode #193: The Volt Framework with Ryan Stout tilt The Changelog Episode #154: All Things Ruby with 2015’s Ruby Heroes 22:05 - Plugin Architecture Sequel The Single Responsibility Principle roda/lib/roda/plugins at master 28:00 - Security Ruby Rogues Episode #207: Rebuilding Rails with Noah Gibbs DefaultHeaders 30:17 - Apps That Work Well with Roda and Using Roda 33:16 - Application Freezing 36:12 - Jeremy’s Typical Stack/Workflow 37:30 - When Should You Not Use Roda? 38:39 - Roda Timeline and Roadmap 40:01 - Jeremy’s Work/Life Balance OpenBSD 43:46 - Open Source Getting Paid Picking a Project 49:03 - Application Optimization Big O Notation 57:00 - Routing Approaches The Annotated C++ Reference Manual by Ellis and Stroustrup Picks Self: The Movie; (Avdi) Self and Self: Whys and Wherefores (Avdi) April Fools Video Prank in Math Class (Saron) A pattern language for microservices (Coraline) Wytches (Coraline) Garmin Vivosmart (David) "REDNECK AVENGERS: TULSA NIGHTS" — A Bad Lip Reading of Marvel's The Avengers (David) CodeNewbie Episode #37: From Skates To Code with Aimee Knight (Chuck) This Is Your Life Podcast (Chuck) Cleaning off your desk (Chuck) Ys (Jeremy) minjs (Jeremy) Camp (2013) (Jeremy) 

Devchat.tv Master Feed
210 RR Roda and Routing Trees with Jeremy Evans

Devchat.tv Master Feed

Play Episode Listen Later Jun 3, 2015 72:56


Sign up for Ruby Remote Conf!!   02:49 - Jeremy Evans Introduction Twitter GitHub Blog Sequel Ruby Hero Awards 03:58 - Roda and Routing Trees rum Cuba Ruby Rogues Episode #182: Keeping Libraries and Utilities Small and Simple with Michel Martens Plugins: ClassLevelRouting 08:56 - Roda vs Padrino, Sinatra 10:03 - Nested Routing 11:09 - Snipping Routing Trees? MultiRoute 13:19 - Dispatching from One Rack Application to Another 13:54 - Rails Integration 14:33 - Performance and Benchmarking @tenderlove (Aaron Patterson)   nyny r10k bench-micro 17:29 - Streaming reel 19:26 - Support Decisions (Roadmapping) Opal More on Opal: Ruby Rogues Episode #193: The Volt Framework with Ryan Stout tilt The Changelog Episode #154: All Things Ruby with 2015’s Ruby Heroes 22:05 - Plugin Architecture Sequel The Single Responsibility Principle roda/lib/roda/plugins at master 28:00 - Security Ruby Rogues Episode #207: Rebuilding Rails with Noah Gibbs DefaultHeaders 30:17 - Apps That Work Well with Roda and Using Roda 33:16 - Application Freezing 36:12 - Jeremy’s Typical Stack/Workflow 37:30 - When Should You Not Use Roda? 38:39 - Roda Timeline and Roadmap 40:01 - Jeremy’s Work/Life Balance OpenBSD 43:46 - Open Source Getting Paid Picking a Project 49:03 - Application Optimization Big O Notation 57:00 - Routing Approaches The Annotated C++ Reference Manual by Ellis and Stroustrup Picks Self: The Movie; (Avdi) Self and Self: Whys and Wherefores (Avdi) April Fools Video Prank in Math Class (Saron) A pattern language for microservices (Coraline) Wytches (Coraline) Garmin Vivosmart (David) "REDNECK AVENGERS: TULSA NIGHTS" — A Bad Lip Reading of Marvel's The Avengers (David) CodeNewbie Episode #37: From Skates To Code with Aimee Knight (Chuck) This Is Your Life Podcast (Chuck) Cleaning off your desk (Chuck) Ys (Jeremy) minjs (Jeremy) Camp (2013) (Jeremy) 

All Ruby Podcasts by Devchat.tv
210 RR Roda and Routing Trees with Jeremy Evans

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Jun 3, 2015 72:56


Sign up for Ruby Remote Conf!!   02:49 - Jeremy Evans Introduction Twitter GitHub Blog Sequel Ruby Hero Awards 03:58 - Roda and Routing Trees rum Cuba Ruby Rogues Episode #182: Keeping Libraries and Utilities Small and Simple with Michel Martens Plugins: ClassLevelRouting 08:56 - Roda vs Padrino, Sinatra 10:03 - Nested Routing 11:09 - Snipping Routing Trees? MultiRoute 13:19 - Dispatching from One Rack Application to Another 13:54 - Rails Integration 14:33 - Performance and Benchmarking @tenderlove (Aaron Patterson)   nyny r10k bench-micro 17:29 - Streaming reel 19:26 - Support Decisions (Roadmapping) Opal More on Opal: Ruby Rogues Episode #193: The Volt Framework with Ryan Stout tilt The Changelog Episode #154: All Things Ruby with 2015’s Ruby Heroes 22:05 - Plugin Architecture Sequel The Single Responsibility Principle roda/lib/roda/plugins at master 28:00 - Security Ruby Rogues Episode #207: Rebuilding Rails with Noah Gibbs DefaultHeaders 30:17 - Apps That Work Well with Roda and Using Roda 33:16 - Application Freezing 36:12 - Jeremy’s Typical Stack/Workflow 37:30 - When Should You Not Use Roda? 38:39 - Roda Timeline and Roadmap 40:01 - Jeremy’s Work/Life Balance OpenBSD 43:46 - Open Source Getting Paid Picking a Project 49:03 - Application Optimization Big O Notation 57:00 - Routing Approaches The Annotated C++ Reference Manual by Ellis and Stroustrup Picks Self: The Movie; (Avdi) Self and Self: Whys and Wherefores (Avdi) April Fools Video Prank in Math Class (Saron) A pattern language for microservices (Coraline) Wytches (Coraline) Garmin Vivosmart (David) "REDNECK AVENGERS: TULSA NIGHTS" — A Bad Lip Reading of Marvel's The Avengers (David) CodeNewbie Episode #37: From Skates To Code with Aimee Knight (Chuck) This Is Your Life Podcast (Chuck) Cleaning off your desk (Chuck) Ys (Jeremy) minjs (Jeremy) Camp (2013) (Jeremy) 

The Bike Shed
13: Begrudging Applause (Aaron Patterson)

The Bike Shed

Play Episode Listen Later May 5, 2015 53:27


Live from RailsConf, Aaron Patterson joins the show to talk about Rails 5, Rack 2, Contributing to Open Source, and cats. We also field audience questions. Video-version of this podcast! DHH's RailsConf Keynote Aaron's RailsConf Keynote Action Cable Long Polling TurboLinks Ember RFC Process Rack 2 Neko Atsume (also on Android) Ruby Together Chicken Scheme Awful Offal Node/IO Fork Agile Web Development With Rails Cells

The New Stack Analysts
#38: Ruby Should Borrow from Go, Rust and the Rest

The New Stack Analysts

Play Episode Listen Later Apr 17, 2015 22:37


The New Stack was a media sponsor for this year's RubyConf India in Goa, and TNS represented with community manager Atul Jha in attendance. For this episode of The New Stack Analysts podcast, recorded at the conference, Atul quarried a jocular panel comprised of keynote speaker Eleanor McHugh, Red Hat's Aaron Patterson, who's on both the Ruby core team and the Rails core team, and Sidu Ponnapa, Founder and CEO of C42 Engineering, a boutique software engineering consultancy. Learn more at: https://thenewstack.io/tns-analysts-show-38-ruby-should-borrow-from-go-rust-and-the-rest/

The Bike Shed
2: Rails 4.2

The Bike Shed

Play Episode Listen Later Nov 17, 2014 35:51


Derek and Sean discuss Sean's commit access to Rails, what's coming in Rails 4.2, and how to go about making Rails code better. Ylan Segal wrote us to raise a clarification on one of Sandi's rules discussed in episode #1. Ernie Miller's RailsConf Talk The Rails 4.2 release notes. Sean's work on the attributes API. Aaron Patterson explains Adequate Record Aaron Patterson discusses adequate record, rails, and other topics on Giant Robots #100. Active Job Global Id Web Console Foreigner and Immigrant are a good foreign key combination today with Foreigner subsumed by 4.2. transform_values Responders Derek's unDRY Rails Commit. Thanks to Rachel Cope and Reda Lemeden for our great artwork.

Rebuild
58: Close To The BABYMETAL (tenderlove)

Rebuild

Play Episode Listen Later Sep 20, 2014 31:42


Aaron Patterson joins me to talk about Rails 4.2, AdequateRecord, Rack 2.0 and his brand new programming language. (Recorded live at RubyKaigi 2014) Show Notes Rails 4.2.0 beta1: Active Job, Deliver Later, Adequate Record, Web Console AdequateRecord Pro: Like ActiveRecord, but more adequate Aaron Patterson (aka tenderlove) joins ManageIQ Team Rebuild: 56: Technically In Tokyo (a_matsuda) [ANN] Rack, Change of Maintainer & Status tenderlove/the_metal Hijack by raggi - rack/rack faye/faye-websocket-ruby HTTP Node.js macournoyer/thin_async Riding Rails: Introducing Rails Metal Metal for Developers - Apple Developer @tenderlove: Excited to work on my new language called ...

Giant Robots Smashing Into Other Giant Robots
100: Adequately Industrious (Aaron Patterson)

Giant Robots Smashing Into Other Giant Robots

Play Episode Listen Later May 25, 2014 45:31


On our special 100th episode Aaron Patterson joins Ben from RailsConf to talk AdequateRecord, frustrations in software, bulk meat discounts, the finer nuances of cat-naming and the importance of scientific thinking in web development. AdequateRecord Chicken Scheme Aaron's RailsConf Closing Keynote Aaron on Twitter

Giant Robots Smashing Into Other Giant Robots
52: You look really fancy in your tuxedo

Giant Robots Smashing Into Other Giant Robots

Play Episode Listen Later Jun 9, 2013 58:19


In this special episode, number 52, and our 1 year anniversary episode, recorded at RailsConf 2013, Ben Orenstein is joined by Ruby and Rails core team member Aaron Patterson, thoughtbot CTO Joe Ferris, and a live studio audience. The trio discuss Rails 4, observers, callbacks, dubstep, namespaces, Scheme, functional programming, thread safety in Rails, what it would take to remove callbacks from Rails and why you would want to do it, what should be in our anniversary episode, dealing with Rails security issues, why Aaron likes to work on Rails, meeting people's expectations, Vim, intuitive software, and so much more. Array#forty_two ChickenScheme The Racket language Structure and Interpretation of Computer Programs (SICP) Metacircular interpreter Play by Play: Aaron Patterson Heroku fucking console Follow @thoughtbot, @r00k, @tenderlove, and @joeferris on twitter.

Ruby Rogues
081 RR Rails 4 with Aaron Patterson

Ruby Rogues

Play Episode Listen Later Nov 28, 2012 71:04


The Rogues talk with former Rogue, Aaron Patterson about Rails 4.

Devchat.tv Master Feed
081 RR Rails 4 with Aaron Patterson

Devchat.tv Master Feed

Play Episode Listen Later Nov 28, 2012 71:04


The Rogues talk with former Rogue, Aaron Patterson about Rails 4.

All Ruby Podcasts by Devchat.tv
081 RR Rails 4 with Aaron Patterson

All Ruby Podcasts by Devchat.tv

Play Episode Listen Later Nov 28, 2012 71:04


The Rogues talk with former Rogue, Aaron Patterson about Rails 4.

Giant Robots Smashing Into Other Giant Robots
19: I have tons of guns and knives

Giant Robots Smashing Into Other Giant Robots

Play Episode Listen Later Oct 31, 2012 38:38


Ben Orenstein is joined by Aaron Patterson, Ruby Core team member, Rails Core team member, and a Señior Software Engineer at AT&T Interactive. Aaron and Ben discuss the upcoming features and excitement for Ruby 2.0 and some things Aaron would like to see in Ruby in the future that didn't quite make it into Ruby 2.0. They also discuss how the Rails Core team differs from the Ruby Core team, how much effort it takes to write a detailed blog post and how many mistakes are involved, how he likes being a ruby celebrity, his involvement in Seattle.rb and what it teaches him. Finally, how awesome his job is and how he could do it forever, how he worries about Ruby or Rails becoming irrelevant and wants to stop that from happening, how he is happy all the time, and if he could wave a magic wand and change one thing about Rails, what it would be. This and so much more in this entertaining episode recorded at RubyConf 2012. Tender Lovemaking Seattle.rb Follow @thoughtbot, @tenderlove, and @r00k on twitter.

Ruby NoName podcast
Ruby NoName Podcast S04E16

Ruby NoName podcast

Play Episode Listen Later Aug 21, 2012 48:03


Новости Стриминг в новой рельсе mortal-token travis-api Ransak Metaprogramming in Ruby BinUtils from funny-falcon bit.ly on Ruby Yet another JSON parser and discussion on reddit SublimeText package for generating Yardoc Narihiro Nakamura: Ruby’s GC Innovator Unexpected Ruby Behaviour Ruboto 0.8.0 Обсуждение Блоги Dr Nic Edge rails Ilya Grigorik Ivan Blinkov James Golick Jeff Kreeftmeijer Alexey Vasiliev plataformatec Блог Алексея Дмитриева Railscasts Ruby on rails Ruby in use rubysource Aaron Patterson Ivan Evtuhovich Alexey Vakhov Katz Got Your Tongue? Literate Programming Pat Shaughnessy Joe Damato Unlimited Novelty Avdi Grimm Про жизнь Сентябрьская конференция RailsClub Dell u2711

The Changelog
Ruby 1.9, Nokogiri, Tender Lovemaking

The Changelog

Play Episode Listen Later Jan 10, 2011 34:05


Wynn caught up with Aaron Patterson, aka @tenderlove, to talk about Ruby 1.9, Nokogiri, and muscle cars.

Changelog Master Feed
Ruby 1.9, Nokogiri, Tender Lovemaking (The Changelog #44)

Changelog Master Feed

Play Episode Listen Later Jan 10, 2011 34:05


Wynn caught up with Aaron Patterson, aka @tenderlove, to talk about Ruby 1.9, Nokogiri, and muscle cars.

Average Joe Radio
The Joe Show Christmas Giveaway 2008

Average Joe Radio

Play Episode Listen Later Dec 7, 2008


Enter for your chance to win one of several music CDs, free music downloads, or an autographed copy of Sweet Dreams by Aaron Patterson.Mobile post sent by averagejoe using Utterli.  Replies.  mp3