Runtime Arguments

22: With Claude, I'm doing the right things better and quicker

Jim McQuillan & Wolf Episode 22

Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.

0:00 | 1:22:22

In episode 8, Wolf talks about using AI to write code; and a bit of the landscape around that. In this episode, he describes what he’s learned on his journey from just coding to using AI as a major tool in his toolbox for addressing friction in every area of (mostly) work and (a bit of) life.

Less about the landscape and more about the applications, the reasoning, the big-picture, and having the right expectations.

Links:

Claude best practices guide - https://code.claude.com/docs/en/best-practices

Claude Opus 4.6: The Biggest AI Jump I've Covered – It's Not Close - https://www.youtube.com/watch?v=JKk77rzOL34

The OpenClaw Saga: Zuckerberg Begged This developer to Join Meta. He Said No - https://youtu.be/5IzPLjqkFaE?si=P-2Ba1WHXmkU_zOj

Seth Godin - https://seths.blog/2026/02/how-to-write-a-coaching-learning-prompt/


Hosts:
Jim McQuillan can be reached at jam@RuntimeArguments.fm
Wolf can be reached at wolf@RuntimeArguments.fm

Follow us on Mastodon: @RuntimeArguments@hachyderm.io

If you have feedback for us, please send it to feedback@RuntimeArguments.fm

Checkout our webpage at http://RuntimeArguments.fm

Theme music:
Dawn by nuer self, from the album Digital Sky

Jim

Welcome to another episode of Runtime Arguments. I'm Jim McQuillen, and as always, here's my partner, Wolf.

Wolf

Hey everybody.

Jim

You always say that. Hey, everybody. That's your easy.

Wolf

Is that what I say? You do.

Jim

And it's good. It gets the point across. So today's a really interesting episode. I I say that always, but uh, I've been looking forward to this one. Uh, we're gonna be talking about AI. Uh, you know, we talked about AI back in uh episode eight, uh, where Wolf tried to convince me to use AI, and uh it somewhat worked. I am using it, uh, as I've mentioned in the past couple of uh episodes. Uh I'm playing around with Claude code, and it's really kind of neat. Um but today we're gonna focus more on Wolf's use of Claude, how he's using it, all the different ways he's using it. And it really surprises me all the things he's doing. His uh he has upped his game uh in so many ways with AI. And uh we're gonna get into that in a couple of minutes. Uh, we've got just a little bit of uh stuff to talk about first. Uh we always like to do the how was your week? So uh Wolf, how was your week?

Wolf

Uh uh it wasn't a boring week, but uh it wasn't a week that had unusual features. It was heads-down uh work the whole week. Uh lots and lots of stuff. I was productive, I got a ton of stuff done. I feel great about that. Um, but uh I didn't go anyplace, I didn't have any special dog stories. Um it was just a week. You know, it it was just like that for me.

Feedback

Jim

And I'm thinking here we are in the in the dead of winter. Uh and sometimes to get through it, you just put your nose to the grindstone and and crank out the code or do the work or whatever. And that's really kind of what I did. I don't have anything notable to mention, just worked really, really hard. And uh it feels kind of good because I did accomplish some things, so that's nice. So let's let's move on to feedback. Uh, last episode was about databases. Uh, I talked a lot about different kinds of databases and some of the features and all that kind of stuff. And we did get a little bit of feedback on that. Uh, our old friend Marlon, the uh brilliant engineer from Meta, who I've mentioned many times, uh, he he kind of wanted to point out I I was talking about stored procedures and triggers, and he wanted to point out that you really don't want to use those things uh if you're trying to scale your database or or your enterprise. And I kind of need to point out that his idea of scale is quite different from mine. I've got like 140 users using my application.

Wolf

He's got three billion users using his reference our previous episode, you are not Google. I mean, um in this case, he's not Google either.

The Meat

Jim

He's Mana. Yeah, yeah, you're right. I was talking to him last night and I I kind of wanted to say you are not Google, and then I thought, nah, I'm not gonna say that, but you you just did. Um yeah, his idea of scaling, uh, he says you don't want to put any extra work on the database server, it's there to serve data. And you know, me with my little tiny application that serves 140 or so users, um I uh my feeling is uh a DBMS has all kinds of features. And you might use some, you might not use others, uh, whatever works for your situation. So for me, I'm gonna keep on using stored procedures because I'm never going to scale to three billion users. Uh I'm not gonna scale all that much bigger than uh than what I am now. Uh so for me, stored procedures work really, really well uh in my solution. And for Meta, not so much. So I don't know. We we didn't get much, uh we didn't get any other feedback. Uh and again, we always like feedback. You can send it to feedback at runtimearguments.fm. Uh we'll have more about that in the show notes uh at the end. Um uh and you can view that in your podcast player or whatever, or go to our website. Um so let's let's you know not waste a lot of time with the overhead. Let's just get right into the meat. And like I said, today's episode is about uh uh using AI, uh in particular uh the way Wolf uses Claude. And like I said, he's upped his game quite a bit. Um, you know, I see I I'm on Mastodon and I watch a lot of people. I follow several people. Some of them like AI, but a lot of them don't. They're anti-AI. And I I wasn't really anti-AI, I was just really, really slow at getting into it, and I doubted that it was going to be all that great. Um, and I I kind of think these people who are anti-AI, I think maybe they're missing the boat a little bit. Um AI is there, it's uh it's it's being used in all kinds of ways. Certainly there are people who think it's going to be the end of programmers. Um, and and I think what Wolf is going to show us today is that's not the case at all. Uh I I think there are some managers who need to learn this fact that they can't get rid of all their programmers because AI is going to do it for them now. Um but that's that's that's what we're talking about today. So uh Wolf, you want to uh take it away?

Wolf

Yeah, I got there's so much to say about AI, we can't possibly say it all. Uh, you know, there's good, there's neutral, there's evil. Um there's using it for um speech and video and coding and every possible thing you can imagine. Uh and there's a billion places to hear this stuff. I'm just, we can't do it. All what I'm gonna do is I'm gonna tell you what my journey has been. This is less about AI and more about where I was, where I am now, and how I got from one to the other. Um I'm gonna try to make it practical. And I and I'm a programmer, so I program all the time. And this is a lot of this is gonna be about things that relate to uh me writing code. Uh and AI is a big part of this whole change, this step change in my life, but it's 100% a moving target. AI next week is not AI right now. Everything I say I'm doing today um is the best knowledge I have at this moment, and it's perishable. I have no idea how long it's gonna last. Uh I use Claude Code heavily. That's my tool. I'm getting really good at it. I like to get good at tools. Um so that's the one I'm gonna talk about. Maybe you're using something else. Uh there's a lot of things to use because I focus on code, and at this moment, in my experience, Claude is the best one for code. That's the one I use.

Jim

You know, uh Wolf, I'm gonna point out we are not getting paid to say that. Uh, we are not sponsored by uh Anthropic or anybody else. Uh this is Wolf using Claude. He's paying for his subscription. Uh, he's just gonna relay uh uh how he's using it, and and uh maybe you can benefit from that. But uh this is not a biased thing in any way in terms of uh money for us.

Wolf

Yeah, in fact, um my jobby job, uh they when I use the AI to uh help accomplish tasks, uh they uh will reimburse me for some fraction of my monthly bill for that month, but they don't pay for it. I pay for my own, and I don't have that$20 subscription. I did the math, and I can't afford not to pay$100 a month. I don't want to. I definitely don't want to pay a hundred dollars a month, but that's what I'm doing. So it's not an ad, it's me, it's how I use it. Um, and I'm gonna start with two things, a short one and a slightly longer one. One of the most influential and important things anybody ever said to me, um, well, one of them was don't forget to breathe, that was important. But when I was uh just a teenager, um, and I was in the jazz band, and we were playing some incredibly hard song called uh Sweet Georgia Brown, a million notes, and we sounded like people throwing gravel at the side of a barn. We weren't hitting the right notes, we weren't hitting them at the same time, we weren't playing things in the right sequence, we weren't fast enough, some of us were too fast. It sounded awful. I don't I don't want to joke or kid here, um, or minimize. This was just bad. It's everything you've ever had a nightmare about when thinking about going to one of your kids' concerts. Um and I had a saxophone teacher. That was quite sort of an extravagance in my family, that I had a one-hour, I I think once a week, one-on-one session with my teacher Bob Cole, who was a million years old. Anyway, I needed help playing this song. I walked into my lesson, I said hi, and we started in, and you know, when you're working on I'm gonna play the song. So I started playing the song, and I'm sure every single listener knows exactly what I played. I played the part I was good at. And he stopped me within 15 seconds, and he said, No, don't don't play the part you know how to play. Don't practice the thing you already can do. Practice the part you suck at. I think those might have been his exact words. Um, I was a teenager, this was decades and decades ago, and that remains one of the most important things in my life. In just a second, I'm gonna go a little deeper into why uh when I talk about friction. The second thing I want to say is AI is not magic. There was a time when at the introduction of Photoshop, when everybody in the world thought Photoshop was magic. And if you had Photoshop, you were gonna be Da Vinci or Ansel Adams or uh y whoever. You were gonna be this fabulous creator. And now, today, we don't think that. We think that if you're already good at uh, you know, making images or layer, you gotta be good, and then Photoshop will help you. And not just good at the thing, you've gotta be good at Photoshop. Just like there are people who are good at Google or not good at Google. Google's a force multiplier, but only if you know how to use it. Same with Photoshop. Um, so you gotta know the tool, you've gotta know the underlying craft, either be a great photographer or a great artist, um, and when it does something for you, and almost always the thing it does for you, is something you could have done yourself if only you were willing to spend the 100x time that it would have taken. Computers can multiply gigantic numbers together. You could have done that, but it would have taken you a year. But a computer can just do it. That's not magic, it's just fast. Um, Photoshop will do these things for you, but you gotta look at the answer at the end. Is this the picture I wanted? Are these layers right? Am I showing the right thing? And that's a bunch of stuff the computer can't do for you. So you gotta know Photoshop, you gotta know art or photography or whatever it is that you're using Photoshop on, and you've gotta look at the result and see if you got what you wanted. Those three things. And those three things are exactly the same for AI. It doesn't make up brand new stuff you couldn't do by yourself. Um, and maybe you think it does because you just made a picture of a person with eight arms running down the street, and it's a movie, you know, and AI made that for you. But you know what? When AI does that, all that work, that that wasn't you, that's just hallucination almost. It's made up. I mean, sure, maybe you told it what to do, but it's not the thing. I'm actually, alright, this is vanity speaking, but uh I'm a craftsman, maybe even an artist. I write code that matters. The straight output from plod code, from anything, from codex, from Gemini, I don't care what. It's not good enough for me. Um so A, I've gotta be good at using plod code. B, I've gotta be good at programming, and C, I've gotta look at what came out and make it be good enough to be the answer. And that's even just when I use whatever tool it is for coding, which is maybe, I don't know, 20% of what I actually use it for? I'm gonna talk uh talk more about what I actually use it for. Yeah, it helps me with code. And yeah, I'm using the one that's really good at code. And yeah, there's code, I let it write. Uh the code that doesn't matter. Remember I said uh in a previous episode on fundamentals that some problems aren't worth solving? Um, okay. AI makes it cheap enough to solve those problems. I it's fine for AI to write the tests. The tests aren't artistic. They're just set it up, make it happen, did the right answer come out? It's a straight line. There's not even a loop. There's certainly no algorithms or artistry. It's calling the thing and seeing if it got the right answer. I'm happy to let Claude or anything write that, that's fine. Commit messages, doc strings, help me pick new names. Um it's great at those things. Um oh, and it's terrific at looking at someone else's code and explaining it to me the first time I've ever encountered this. Yeah, show me what they did, why did they do it? Because they use all different names than I do, and they don't have tests or asserts and you know, a million different things. But the AI has seen code like this um all across the world because probably this is average code. And the AI loves average code, it's built on average code. So that's the Photoshop analogy. Um I I I'm gonna now, I want to talk about um the thing that I started with. Practice the part you suck at. And AI isn't necessarily about practice. But the point here is, and this is a big part of my life, friction. Friction is the right name, at least when I talk about these things. There's a zillion things that just get in the way and stop you from bringing your value to the table. There's stuff I can do, but you know what? If there's a two-hour meeting, that's in my way. I don't get to do the part I'm really good at doing. Instead, I do the part that anybody could do. Why couldn't this have been an email? It probably it could have. And that email would have taken me two minutes to read, not two hours to attend. Two hours where I couldn't type on my laptop, I don't even bring my laptop to meetings. Two hours where I could barely look at the one person who was talking. Ugh. So there's stuff in the way. And some of that stuff is writing the tests, or writing the the doc strings, or understanding this other piece of code that you're starting from that's alien, like I just said a minute ago. Or remembering to write down notes when you switch from one task to the next, or committing at the right time, or there's a million little things that if you do them right, if you do them on time, there's less friction. Before I was using Claude the way I'm using Claude right now, in the best of circumstances. If I was working on one thing, you know, solving a problem in one piece of the code that had a particular algorithm, and maybe I finished it, or maybe I was pulled off to work on something else, um to get my head into the new thing, or when I was done with that new thing, to get my head back into the thing I was working on before, the old thing, probably the thing I really wanted to work on, that transition, best case, 20 minutes. Because I had to remember the things that I was working on, especially if I didn't write them down. I had to maybe write down the things that I was transitioning away from. I had to recalculate my priorities. I had to pick up where I left off, where did I leave off? That was a thing that I think it was Hemingway said. When I stop writing for the night, I stop in the middle of a paragraph where I know what was going to happen next. That way when I start the next morning, I can start. He doesn't have to pick up because he's doing the right thing. Before I started using these tools in this way, um, I wasn't like Hemingway. But now I am, and I just start. And it's not 20 minutes. And remember, that's best case.

Jim

You you were basically doing a full context switch from one task to another. It's you know, it's like the way computers work, right? They're not working on multiple things at once. Well, they they kind of do now with multi-uh core CPUs. But you know, we've all grown up with a single threaded process on a single CPU, and it doesn't do multiple things at once. It works on something and then it switches to the next thing, and it's a full context switch. Uh the the stack has to be saved and restored and all kinds of registers and registers and everything so that it can start on the next task for some slice of time. That's what you're doing.

Wolf

Right. Um, and it maybe if I was some junior programmer, and by the way, I have more to say about junior programmers later. Uh maybe if I was some junior programmer, they wouldn't be switching me back and forth on things. Right. But the fact is, I am working on multiple things, and some of those things are meetings, and some of those things are code reviews, and some of those things are helping other people solve problems, and they're not just me writing code, uh, but no matter what, there are multiple jobs to do. That's a fact of life. Um, and companies are getting smaller, and jobs are getting bigger, and tasks are getting more numerous, and that's just the way it is. Um, it's not evil, it's just fact, that's all. Um so that's a for a place of friction, and that is a place where I have applied Claude. Um, there are lots of little places where I have friction. Um and I just uh that's the thing I've addressed. These places of friction. So AI isn't the only tool that I use to address that, because for instance, um I take notes. Uh and there's a couple different ways I take notes. Um I use a task manager. For me, that's uh a Mac OS thing called uh well, it's anywhere in the Apple ecosystem because iOS and iPad, all that stuff, called things from uh cultured code. I have a calendar, uh so some kinds of notes go into the calendar. And most importantly, I make it markdown files. I have a big tree of markdown files for s separation. I have one tree of markdown files that's personal stuff, and one tree of markdown files that's work stuff. So, you know, should the horrible, horrible thing happen, I can discard the the work one or give it to them or whatever the correct thing is to do. But um I use a program that manages this stuff. That program is called Obsidian. Um and Obsidian let lets you have plugins, it runs on everything, it's open source, and one of the great things about it is that tree of markdown files, um, if you are willing to pay for the sharing thing, um no matter what device you're on, obsidian is there and is looking at the same tree. So on whatever device I'm on, when I accomplish a task, I add it to my work log. If I have open questions or thoughts, I've got a file for that. That's just for today. Um because uh Claude can see those files, Claude Code can, um, Claude, the chat bot, is less good at looking at random files on your system. It's not impossible, but it's less good. That's why I like Claude Code. I think Cowork is good at this too. Um, so uh I don't use co-work much yet. Maybe it's gonna be better, I don't know.

Jim

Um Okay, I've got a question for you. You you're talking about Claude Code, Claude Co-Work, uh, and a Claude chatbot. If I am sitting at the command line and I'm in a directory of source code and I type Claude, it comes up with a nice UI. What is that?

Wolf

That's Claude Code.

unknown

Okay.

Wolf

Claude Chatbot is a GUI application with a text field for you to type in. Um, and if you are on uh one of Anthropic's uh plans, like their pro pro plan or max plan, then at the top of that window, uh there's it's not a menu, whatever they call the tabs, I guess they would call them, but not not the tabs you like, horrible tabs. Uh and one is uh the chatbot, and one is co-work, and maybe one is Claude Code.

Jim

Is this on the website? On a web page you're seeing this?

Wolf

No, there's an app. Claude has a native app for whatever OS you're at Cloud.

Jim

Gotcha.

Wolf

Yeah, now Claude Code isn't really an app. It's it's a tool that you're running from your command line.

Jim

Right. Seems like an app, but it's not Claude chat the chatbot or the or the coworker. Okay.

Wolf

Yeah. Thanks. Um okay. So Claude itself, um, this is where this whole thing started for me. Claude itself presents friction to me. For instance, when you first start using Claude code, every single time it wants to do something. Oh, can I ls the files here? Can I grep for this? Can I find that? Can I uh cat this file? Can I uh edit this thing? Can I ask GitHub to send me a repo? Can I look at these tickets? Every single thing, whether it's read or write or both or something in between, it asks you. Turns out that's all under your control. There's a settings.json file. You can just edit it and say what it's allowed to do or not. Or uh Claude actually has some commands that will let you do it kind of automatically. Um the way some things do. Claude lets you do a lot of things with commands. Um I'm sort of going in a different direction than my I I I have, and this is the way Jim and I work. We it's not exactly an outline, but but we have a uh sort of a list, and you know, talk about this, talk about that, talk about the other thing, and I'm starting to um go all around the order of that. And I don't I don't really want to keep that. I am going off script, and I don't really want to. Even though we don't have a script. Right. What what I want to do is I want to finish up on friction and then talk about where the time actually goes. Um so the things I want to say about friction are um friction isn't just a hunk of time that you didn't get to spend working. Um it it it every hunk of friction casts a shadow around it. It's a productivity killer. It's a thing in between you and the finish line. Um and Norm Abrams knew this. I talked in previous uh uh episodes about the the notion of building jigs when you need them. Uh and the thing that I said that I'm gonna say right now is you gotta do the math a little bit. You gotta figure out for each piece of friction, is the cost of this piece of friction worth me figuring out a permanent answer to eliminate it or reduce it? Sometimes it's not. Some pr like I said before, some problems aren't worth solving. Um some problems are. Uh, and a coincidence is that some of these problems uh that maybe you wouldn't have spent time to solve yourself. Um AI can solve them for you. Uh here's a perfect example. Uh I have these uh files, these markdown files, um, one per day in my tree of stuff I've worked on. Um they have special names, they're named for dates, I've put in entries. If I want to see all the stuff I've worked on in a week, um I open those files one after another and I look and I say, well, there's a thing I did, and there's a thing I did, and I spent two hours and uh I don't record the right amount of time on them. I don't say, for things that are associated with work, what ticket that was. I don't say whether it's done or not, I don't point to open questions. Uh they're sinkholes, they're they're places that are ready to eat more time than they save me. I addressed this with Claude. Um now I don't write in those files at all. I tell Claude, log this, or log meeting, or start my workday, or any and these are called skills. When you actually type them to Claude, you start them with a slash. Um there's a great thing about skills I'm gonna say in a second, but when you do a skill, Claude can take care of a bunch of things you've already said in advance. And there's no programming language for Claude. A skill is just like you typing the same kind of English prompt, or your native language, whatever it might be, to Claude when you're in Claude Code. Um it happens that skills are markdown files. Um, at least they are for me, I assume they are for everybody.

Jim

So it's kind of a macro. Like it it you you can type slash something, what slash start my day, and and it'll call up the the thing that you saved previously called start my day.

Wolf

Yes. That is exactly what it is. It's not even kind of a macro, it's a macro. Yeah. Except because Claude is so good at this matching stuff. I mean, that's the whole point of AI, is that they're m matchers and predictors and autocompleters. Um when you say something that's not quite the command, like this is something worth recording in my work log, Claude says, Oh, I know what that means, and by the way, I know where your work log lives, and by the way, I also know what format you like. And because I use Obsidian, and Obsidian has plugins, one of those plugins is a thing called DataView, um, and it's free, obsidian's free, dataview is free. All you do if you're gonna use data view is you stick some YAML, Y-A-M-L, yet another markup language, at the very top of your file that is that thing. In reading mode, it doesn't look like YAML. You see some things, but it doesn't look like YAML. But the great thing is, you can write data view queries in any document that acts exactly like your markdown tree is a database, and the data comes from this front matter. So I now have courtesy of Claude helping me backfill the front matter for all of my work files. Um, like we picked a format, we figured it out, and it knows I work for dynamic map.

Jim

Um, that's funny because you're you're you're saying we, like you you and Claude working together.

Wolf

I I am saying we. In the same way that an a than an airline attendant says, and how are we feeling? Sort of like that. Um but uh I now have a dashboard that shows me the tasks I've done today, this week, and the last ten things I worked on. It tells me how much time I allocated to this ticket total. I can compare what I said that ticket would take to how much I actually spent on it. I can see how many hours I've worked at DMP this week. I can it goes on and on. And I wouldn't have done that for myself, but Claude did it in 30 seconds.

Jim

Because it would have been too much work. Not worth solving.

Wolf

It would have it's one of those problems not worth solving. And once it was solved, it reduced friction I didn't even realize I had. That's pretty good. Because now I can look at that dashboard and I can say, wow, I've been starving SR 4036. That's a ticket, and I haven't given it enough time because I gave too much time to such and such an other ticket that wasn't my priority. And I wouldn't have realized that, but looking at my dashboard, it's right there. It's obvious, it's in my face. This reduces friction, it helps me spend my time on the right things, it helps me lean my ladder up against the right wall. Yeah. So that's pretty neat. Uh where where does the time go? When somebody says, I use an AI coding tool, um, the first thing that happens in your mind is you say, Oh, that person used their coding tool to write some code. I I almost haven't said anything about coding, except that I let Claude write some tests, um, and I let it generate these queries in my notes. Um, but at the end of the day, um, I accomplish in somewhere between two and four hours less what I would have accomplished without Claude using the whole day. So I save two to four hours. Not a bad day, it could be horrible. Claude only saves me an hour, maybe even less, who knows? And a day full of meetings, Claude doesn't really help me all that much at all. Um but a day where I'm looking at brand new code, I'm uh writing tests, I'm annotating stuff, I'm fixing typos, Claude might save me a ton. Um so on a really great day, maybe Claude saves me five hours. But on average, maybe two, three hours. A day. Now I'm not rich, I don't get paid a ton, but you do the math for you. If it saves you three hours a day, how much is it worth for you a month? Um and uh the second thing about that that I want to say is that, um I don't, you know, it's not like, okay, I used up my regular day four hours sooner, time to go to the golf course. By the way, I hate golf, sorry Dave. Um I now I get to do other work that's important, or I get to dive deeper on the thing that I wanted to dive deeper on. You know, a lot of times you solve problems to the best of your ability in the time allotted. But if you have more time, maybe you can have a better solution that ends up that and saves more. But you see what I'm saying. So um, where does this time go or come from? Or what am I getting from Claude? I said already exploring unfamiliar code. I do a thing with Claude that's that I call rubber ducking, except Claude is way better than a rubber duck, uh, because rubber ducks don't know the names of things.

Jim

Explain to us what rubber ducking is.

Wolf

Okay, so rubber ducking is a is uh I don't know if people outside of programming use this term, but usually when you're programming and you hit some problem, uh you're stuck not because the problem is hard, you're stuck because you totally overlooked something obvious. So a thing that you can do is you can stand up, turn around, and tell the guy in the cube next to you, assuming they have time, which they don't because there's only three of you, or whatever, you can tell them what you're what you're what you're trying to solve, and you'll have to start at the beginning because they don't know. And because you started at the beginning, and because you're telling them what went wrong, suddenly, as you're telling them, um, you realize, oh shit, I didn't put a file spec at the front of that whatever statement, and so it didn't go to the log. It was just a bad statement. So now your problem's solved. Yeah, yeah. Just saying it out loud, saying it's a good thing. Saying it out loud. Sure. And that person whose time you were wasting, uh using, they didn't even have to speak. So rubber ducking is the term where you don't say it to a colleague, you have a rubber duck, a real rubber duck, on your desk. And you say it to the rubber duck.

Jim

So you're talking to the rubber duck. Yeah, okay.

Wolf

Out loud. The out loud part is kind of important. Um and the duck, just like your colleague, not gonna respond back. But just like your colleague, if you do the right thing, if you do it the way you're supposed to, you're gonna say all the things you needed to say, and you're gonna have the same insight, and you're gonna realize where you went wrong.

unknown

Okay.

Wolf

When you do this, you're gonna ask.

Jim

Uh I I'm I'm still not clear how you how you d use AI as your rubber duck.

Wolf

So when you're using Claude or whatever, instead of the rubber duck, Claude actually can respond, and your problems can be slightly bigger. For instance, uh, you know, it's you can't use a dictionary to fix your spelling, because you don't know how to spell the word, so you can't look it up. Uh you are trying to solve a problem, and if you're good at your job and have experience, you already know, oh, there's an algorithm, and you know, maybe it's in Git or something, uh a tool or a command, whatever. You happen to know there's a way to uh explore commits in between you and the place where something went bad, but you forget what that's called. You know what you want, you just don't know what to call it. A rubber duck will not tell you. Your colleague might have. Claude will. When you tell Claude, oh, this is what I meant, Claude says, yeah, yeah, you're talking about get by sec. That's what you wanted. And you're like, yeah, that is what I wanted. Thank you. Thank you very much. Um so rubber ducking, research, and web searching, because while you're designing what you want, Claude can go look on the web and see what the right thing is. Um collecting and organizing notes. Uh it happens that uh these AIs, all of them, use a thing called an MCP. Um suddenly, I've forgotten what MCP stands for.

Jim

Model control protocol?

Wolf

Yeah, I think that's right. Um there's billions of them, and uh well, there's not billions, but uh uh one end typically is specially designed for the content provider. So for instance, Atlassian has one um that you can extract or make changes to Jira tickets and confluence documents and blah blah blah. And um on the other end, uh your AI can ask questions.

SPEAKER_01

Yeah, model context protocol. That's what MCP stands for.

Wolf

Uh so you want these things. And I actually have a couple that I use and one I really, really want to use, uh, but it's not in place in where I want it. Like, for instance, um I have an open source MCP that connects me to uh the underlying macOS calendar events, reminders, uh service. Uh so it doesn't matter what calendar you're actually using, with what I have, Claude can now look at my appointments, it can remember which meetings I've gone to, uh, it can tell how much time I spent there, it will ask me, and by the way, such and such a meeting were there action items, and I can run write them down right then, and it can turn them into things tasks because I have an MCP that points back to things, my task manager. Um I want the one for Atlassian so that I can extract priorities from my tickets. Um another time saver. It helps me figure out my priorities, it makes recording outcomes and thoughts and tasks easier. It makes it easy for me to remember what I spent time on. Um, it puts it on my dashboard because it shows up in my work log.

Jim

Um I I've had people tell me that uh there's a MCP, what would you call it, a driver or a layer or or something? Uh there's an MCP thing for Postgres. So I can connect Claude uh on my desktop with my Postgres database, and all of a sudden now it knows all about my database, though, entire schema, and can even do queries. Uh have you done anything like that?

Wolf

Um well, I mean yes, because that's exactly what I'm doing with things and calendar events. Okay.

Jim

Um not not with the database, but basically the the theory is the same. Exactly. Whatever you're talking about.

Wolf

Now, there are situations where you're connecting something and the tools are so good you don't even need an MCP, for instance. Um there is a command line tool for dealing with GitHub called GH. GH lets you uh fetch and make brand new tickets uh or issues, I guess they're called on GitHub, and get comments out of them, and uh it lets you look at uh repositories and clone them and fork them. And because I have GH on my system, I can do that. I don't need an MC, an MTP. I, if I had the Atlassian MCP, I could do the same thing with Bitbucket. That's what we use at work. I want to do that. And that brings up an issue. Why is my work slow to turn on this MCP, which is a feature of Atlassian? It's just a please enable this. It's a checkbox at some control panel. Why wouldn't they? Let me explain their point of view, and this is a thing you need to think about too. And that is there's security issues. On the one side, where your AI, first of all, you gotta have your AI configured the way that it's acceptable to you. So for any kind of business task, for instance, you might want it to be that data retention is zero. The default might be five years or 30 days, who knows? But if you're running a business and the thing you're asking your AI about is important, you want to explicitly configure that in a way that meets your business needs. You care about does that data leak to other sessions or other um, like for instance, some employee uses some AI tool and uh maybe they pay for it themselves or maybe they don't or whatever. The question is, if it is just one tool and they have, and please don't mix. If you have one tool and you are working on business stuff and personal stuff, don't do that in one session. Have two terminal windows open, two tabs, whatever it is that you want. Or quit uh from one session with whatever it is and start a brand new session. Um data doesn't necessarily leak and it doesn't necessarily go anywhere, but why take risks that you don't have to? So here's the thing. Uh if you are a business and you've got your data and you you it's gonna happen to go somewhere that's on an AI, there's three things you care about. What's the security at the AI, what's the security where the data actually lives, and what's the security of the pipe in between? Um now for us, our tickets are Jira and our uh repos are BitPucket, that's all Atlassian. Atlassian has all our data. We've already made all our agreements, we already have all our settings. So for us, the Atlassian end, there's no problem, there's no question. Making sure that your um AI settings are correct, that's important. It has to be done. Um, and if you're using a personal account, you've got to make sure you do it for either you entirely or that specific place. If you can prove you've done it, then there still might be leaks, but those leaks are probably bugs. This is okay, that's why my work doesn't want to just enable it and they're they're going slow and carefully, fine. That's why you also, I'm talking to the listener, want to be slow and careful. Figure out what's right for you. Is AI the right thing? Because at the end of the day, the model is big, bigger than your local machine. So whatever it is that you're showing Claude or asking Claude, everything about that goes over the wire up to Anthropic or whoever your provider is, they look at it in your session, um, figure out an answer, and send it back to you. Uh so you gotta be aware of that. Now they they make promises. Um we already know that a model, the model you're using, isn't changing. It's not learning. It's only your session that where things are happening. And that's the actual critical resource, uh, a thing called the context. We may have talked about this before. Your goal when you're work excuse me, when you're when you're working with AI is to put as little in the context as you can, because the context is a limited re resource, and as you fill it, things slow down. That's why skills are important, like, hey, end my work day, or now we're going to write some Pearl or whatever. Um, because they're not in the context until you actually want to do that thing. So it only has to think about the things you care about. All of these AIs have sort of configuration files. It's not unlike robots.txt for websites, but you know, much they're they're not about who can go or who can't go. They're sort of like preferences. Uh for Claude, it's called Claude.md, and it's your basic rules, and it's just like.gitignore. They stack. So you have a global one, you have one in your repo, maybe in specific folders down inside that repo, you have narrower ones. Um, and the goal is say the right thing at the right place, make sure each claude.md file is small, maybe under 500 lines or 200 lines, um, and they will nest just like Gitignore. Um and that's key. Mine are public, they are in my uh public github.files repo. Um probably we should add that to the show notes, Jim.

Jim

Just making a note for that. We're gonna we're gonna include a link to Wolf's public repo on GitHub, uh, which includes his Claude.md files.

Wolf

Uh so from my own Claude MD, um, let me talk about uh a couple of the things I tell Claude. And interestingly enough, it's not unlike the things I tell uh a programmer that I'm uh help helping along the path uh from from junior to senior. Uh philosophy. You hear me say this almost every episode. Solve the right problem. The one you actually have. Not the one you want to have. I've said that a million times. Um this is me telling the AI, but it's just good programming. And that's what's in my Claude AI file. Almost entirely, stuff that's good programming. Um, stuff that you might not guess. Um discipline. I told Claude what I'm bad at, what my friction points are. Like, I tend to keep rolling from task to task without pausing to commit or writing down notes. I want Claude to help me maintain boundaries. I've made skills to help it do that, and when it notices that I'm at a boundary, I've told it, you just shout. Tell me, hey, it's time to do this. And by the way, it does. It's kind of annoying, and boy, does it help. Um, tool preferences. Um, I have specific tools that I use. Telling uh Claude which tools those are can help Claude. Um so for instance, I use ripgrep. Uh the binary is called RG instead of grap. Um I use FD instead of find. This is a tiny thing, but telling Claude use FD when he can, that's right. The permissions model. Hey Claude, you're okay to do anything when you're in this directory. For instance, it is totally f fine for Claude to edit, add, delete, anything in my work log directory, um, which is actually a hierarchy of years and months, and then the actual entries are inside those. Um don't even ask me, just do it. Um that eliminates friction because when I say log this, everything that had to happen, Claude just does. A thing that would have taken me ten minutes without Claude, or four minutes with Claude not configured, but you know, it knew what I meant by right to my worklaw. But the fact that I didn't have to answer any questions, yes, this is okay, yes, that's okay, turned the ten minutes from the outside to a minute, 40 seconds. That's friction. Friction gone. Um and I already talked about the permissions model, which uh mostly comes from settings that JSON. Um given all this, it matters how well you speak to Claude. Um this is another place where i if you want programming to happen, you really need to know the way to describe programming problems. Just like people who were good at searching Google knew the words to say, to make Google find the right things. And the people who sucked at it, they weren't different human beings. They just said wrong words. Words that don't help. Like when you're talking to Siri, you know, there are people who get whatever they want from Siri. It does the right thing. Or, you know, spokenly they for sure get what they want. Uh, or Alexa, almost certainly. Um, and then there's uh I I'm not making fun, but my wife can't get a good response from Siri. Like she she doesn't even consider it because Siri will never help her. Is that Siri's fault? Well, yeah, it is. But also, she's probably not using the best possible words. She could have used better words and gotten something better from Siri. Not not what Alexa would have given her, not what spokenly would have given her, but but you know. So um you've got to uh be a good communicator. Um that's that's the basic. So understand what the tool can do and what it can't do. It's a great and shit y I'm sorry, stuff you didn't want to do. Writing boilerplate, refactoring, explaining brand new code, or exploring it, um, translating between languages, and and I don't just mean between French and English, I mean between uh Pearl and COBOL or Python and Rust. Um looking for patterns that you missed, uh finding places where oh, it's so great when you've got a page of code and something goes wrong, and you're like, was it this, was it that, was it the other? And uh the AI says, uh, no, you left off the file descriptor that you needed to make be the first argument of logging statement, because it looked at the whole thing or had the whole thing in its mind, and it just knew that was stupid. That was stupid work you didn't want to do. There's plenty of bugs it can't find because it doesn't understand anything. It can identify patterns, and it sees the pattern of you not giving the file descriptor in the right place. That's easy to spot, it's easy to report, and it would have been crap for you. Great! That's a thing it can do. Use it for that. Um But boy, the failure mode is bad. Uh all those people, and you read stories about this on Reddit, people who they just don't look at the answer. Um, and I don't care if it's AI, it's it's your calculator too. It's your ordering system. Did you end up with the black one instead of the green one? It's the it's every single thing. At the end, did you get what you wanted? If you start not even knowing what you want, if you don't have the power to describe what you want, and you don't even bother to look at the answer to see if it was what you want, and if you do look and you don't have the skill to comprehend whether it is what you want, um, I've used these words before. That's gonna be a bad day. Uh, the thing I recently on Reddit, and you know, maybe it was AI generated or fiction, I don't know. Some guy who joined a startup and the founder of the startup was writing code and spent a weekend and came back with one commit that was 20,000 lines, all new, all changed, never wrote any tests, didn't bother to even run it, didn't say what it did, had no comments, and the guy kinda wasn't a programmer. Of course it didn't run. Uh when the guy asked, when the the programmer who was in charge of making sure it did run asked, um, did you run this? Does it do the right thing? The founder guy said to him, uh, it should run. Should. Now, maybe this was entirely fiction. I don't know. Sounded real enough. The senior programmer guy in charge of making sure that it ran explored it and figured out that it was a 20,000 line effectively print statement that was no better than saying print success. That not only was that all that it did, but that it didn't even do that. So, know what the tool can do for you. Um, and y uh you know, do that. Make it do the parts you suck at, and save the parts that you're good at, the value you bring to the table. Do that part yourself. Um and that part is gonna have little parts that y you're less good at that that the AI can help you. Sure, let it do those parts. But it's never going to get well, okay. Like I said, moving target, getting better and better. At this moment, the very best AI code I've seen looks to me like what I would get from a junior programmer. Um, and it needs lots of help to be anything near what I think is acceptable. Um that's just how it looks to me. Maybe it looks different to other people. I don't know. Um so uh I think I essentially hit everything. I could dive down into specific things, but what I'd rather do is sort of hit you with some practical tips and quick wins. Would that be a a thing to do, Jim?

Jim

I think that's a good idea, because we could spend we we've been at this for an hour. We could spend three more and still not cover everything. So why don't we go through your your practical tips and and uh see what we can get out of that?

Wolf

Um okay. Uh well I'm I'm not sure that these are um do what I say, not what I do. Uh because I do I do write tests, but I don't write my tests first. I'm guilty. I feel guilty every time I don't write my tests first, but I I tests give me power, they give me strength, they do the job I want them to do. I don't know if I need them to help me design the code, design the interface. So I don't actually write my tests first, but my first quick tip, quick win, practical tip, is start with the tests. Maybe that is a help for you, and if it's not, then delay it till later. Uh let Claude write your commit messages, or whatever AI you're using. It's great at those. It remembers all the things that you've done, or sees it right then when it does the diff. It knows why you did them because it sees the totality of the diff. It uses the right words, it references the ticket, it formats it correctly, it makes it obey the line limits. I don't want to do any of those things. I want to say fix some stuff. Commit.

SPEAKER_01

Yeah.

Wolf

Um when you are looking at a brand new piece of code or some not written by you, some alien piece of code, and what you want to know is how did this do the job? What does it do? What can I expect out of it? Let your AI investigate. It's not gonna know everything, it's not gonna find everything, and maybe it will only find the things you specifically tell it to look for, but wow, three hours you could have spent looking into something turns into five minutes. And at the end, um, you know, it comes back with the basics of um essentially this uses AWS to download some images that you already had, blah blah blah blah blah, and now I know everything I need to know. So, absolutely, look at that. If you have the tests, which is very important, because whatever AI you're using, you need to give it a mechanism so that it can tell it was right. Because AIs are not good at knowing if they're right. So making it have tests, making it run those tests, and only count as success when those tests pass, and also making sure it doesn't just delete tests that fail, and that it's testing the behavior, not the implementation of things. That's the power, and that's the way AI can make sure that it's right. And that's where you get to this practical tip, which is refactoring. When you're doing a simple little refactor, maybe said is your tool. All I want to do is rename this function in the eight places I call it. If your project is big, AI is like said, but super. Um it doesn't need it to be spelled exactly the right way every time. It doesn't need it to be um different-like, for instance, maybe I use the word I for a variable in 50 places, but I mean this specific one. AI knows, it knows the right one. Yeah, a lot of your IDEs can do the same thing, but uh AIs can have that same power over much bigger changes, and it can generalize them. So when you refactor, you know what the thing is that you're changing. You understand why it was this way and will be that way, and you can change the first two or three, whatever it takes, and then explain to Claude, look what I did, see why? This is what I need, go do it everywhere. That's busy work. You don't need to do that part. You did the hard part. Let Claude do the rest. It's great at that. Um, your whatever um Claude has a setup, it's like any other tool. Uh it it has settings.json, it's got Claude.md, it's got permissions, it's got skills, it knows things. It it's gonna take a little bit of work. Don't use the one out of the box, spend the 30 minutes, because that 30 minutes will pay you back on day one. Um, and you will if like passive income every day after day one um i uh am in the habit of and this is a habit i want everybody else to have too of persist this if claude asks me a couple of times in a row like here's the thing today um when i'm getting ready to commit i i use pre-commit and i run uh a tool as part of pre-commit that must pass or the commit is denied um and that tool is a a formatter and as i watch commit as i watch claude put together my commits from the files that I've changed a thing that happens is everything everything works the tests pass and when it actually tries to run the the test pre-commit asks the files to get reformatted and then it fails because one of them did so rough format returned non-zero um and the commit doesn't go through this happened three times to me today so I told Claude um you know what this happens a lot let's never have this happen again remember it in Claude.md and now Claude remembers and Claude makes sure that we run that tool format before we even try to commit so that pre-commit running that format thing is really uh an emergency check not a uh not an actual test um and once you've written stuff that you like now just like you asked Claude to look at that alien project have Claude review your code um ask it for specific things did I use good names if you're using a language that uses types um did I um use the n uh uh broadest reasonable types for things that I accept and the narrowest reasonable types for things that I return. Um that's actually a well-known principle. I think those are the quick tips. Um maybe you're not using it for coding the stuff that you're good at. Maybe uh Jim's SQL queries are twenty times better than what Claude would have given you.

Jim

Um but it can help you it can do the right thing um so what do you think Jim uh you covered a lot um I I've got some random thoughts I'd like to go through these are things I've come up with the last couple of weeks. Uh first of all back in episode eight the original uh AI episode you made a statement that um Claude knows a lot of things but it can't really reason about stuff and the example you gave was uh if you ask AI what's two plus two it won't tell you um it will Claude knows I asked Claude what's two plus two it told me four uh I asked it a much harder I did a square root of some big number it did it no problem at all so it knows how to do that kind of stuff I guess it's a skill that it's acquired in it okay so stop um yeah let me tell you why that is true yeah uh the bulk of any of these AIs is a giant model it's a graph with weighted edges it doesn't use that model to solve math problems what happens is it identifies that you are trying to solve a math problem and solves it some other way yeah you know we're good at math we know how to do math yeah and so Claude says oh okay let's let's do this the math way so I thought I I thought that was pretty neat. Um I I ran across a couple what's that things are changing fast.

Wolf

That was six months ago and now look it's different it's it's a different river. I read a funny thing uh it's a real short quote I'll uh do uh the uh uh somebody asked uh ai uh they said I want to wash my car the car wash is only 50 meters away should I walk or should I drive and in four different engines I think Claude uh uh Google Gemini and a couple others it said it's only 50 meters away you should walk it's a ridiculous answer right but it doesn't understand the problem very well right you're not gonna wash your car by walking to the car wash uh I thought that was pretty neat and uh another thing um uh do you uh do you still think that you'd be disappointed if you expect AI to create a complex app to find I mean okay well any let me just answer that question yes I would be disappointed now for for some ordinary human being who's not a not a full on programmer but maybe has some skills like they call themselves a scripter or they use Apple shortcuts or you know something like that let's pretend we're them and let's say the app they're writing is a to-do list okay yeah maybe uh is Claude going to write your word processor for you by itself no what about these things that we hear about where whatever tool it was actually stayed focused for was it two or three weeks and wrote a C compiler that could compile was it Postgres?

Jim

I can't remember what thing it compiled I don't know what they compiled but it was a C compiler that worked uh so there's a lot of things to say about that one is the thing they built was very highly specified there are validation tests that are part of the specification so not only is it highly specified but also um it's testable and um you know the work of a compiler is a hard job but it's a simple concept um so well defined um that's a huge help testable that's a huge help things can get you and also AIs are getting better and better and better uh I am I certainly am not a person who can say oh we're gonna stop here i I don't know you know in a year AIs might be able to write a word processor um I don't know could happen um I I can only talk about what happens right this minute yeah uh that that that leads me to the next thing and that is uh you know there's a lot of talk about AI slop and a lot of people complaining about AI and then there's people that think it's it's a gift from heaven um and I think you and I are somewhere in the middle you're you're further along in your progression but I think one of the really good things that's going to come out of AI is there will be people who learn how to really be good at specifying. They will write very clear specifications for what they want. I I don't know what it's like at your job but for me oftentimes my my clients don't give me good specs. They don't tell me exactly what they need they they they give me a rough idea in fact most of the time they describe the solution in terms of what they think or they describe the problem in terms of what they think the solution is they don't specify what a good clear solution is and I think uh the people who are really good at AI will be the ones that can clearly specify exactly what they want including tests and all that stuff. So I think that's a good thing to come out of AI. And there's other other things too I know you're using it and saving two to four hours a day and and that's fantastic. I'm saving a little bit of time with some of the few things I'm doing.

Wolf

It's a really interesting time and uh you know we saw uh just oh uh Opus four point no what is it sonnet which which one's the new one that came out 4.6 and Opus and Sonnet both uh are built on 4.6 um and Opus is better at specific kinds of very complicated tasks Opus Opus Opus 4.6 is what I'm using is is clearly better than 4.5.

Jim

It's a huge huge improvement over 4.5 so the things that we're doing in February are so much more advanced than what we could do in January and it just boggles the mind to think about what we could be doing six months from now or five years from now assuming the whole thing doesn't collapse.

SPEAKER_00

Right?

The Takeaways

Wolf

So I I will uh I I will hand it back to you uh if you want to wrap things up um I think uh I guess there's a couple main points it's a tool you know like Photoshop or like a table saw or or like a pen. You need to be good at that tool. You know like if it is a pen calligraphy pen maybe you need to be good at calligraphy. But like a table saw it could be dangerous in the wrong hands. Absolutely true nice um so you need to be good at the tool you need to be good at the thing you're using the tool for um you know a terrific typewriter does not make you Hemingway um I don't care how great that typewriter is uh and you need to look at the end to see if you got what you wanted. Critically evaluate everything. So this is a gigantic mindset shift. Um don't think AI writes my code. Um that's like thinking this table saw builds my house. That's that's not what happens. Um think instead I'm a programmer with an extremely fast broadly knowledgeable collaborator that's why I say we uh who needs supervision um and I can tell you from my own personal um life experiences and foibles and problems with vanity that um I am totally totally uh sympathetic to the working with somebody who needs a supervision situation. Um so you need to adopt the same friction first approach that you use with every other tool. Um when you have to go to the market carrying stuff back is friction and that's why you took the wagon instead of your bike. Um you picked the tool for the job. So identify the friction figure out the tool that can help see how you can apply it adopt that make it be part of your life. And the people who are gonna get the most out of the one out of this are the are the people and programmers especially uh who are good at this collaboration finding the right tool at the right time uh putting the right stuff in getting the right stuff out and checking to see if it's the right stuff um let me just give you guys something to do this week pick an AI coding tool. I assume that you're programmers because you're listening to us. If you were a programmer you gave up in the first four minutes. But you're a programmer pick one. Give it a week and focus on learning that tool same as you would with an editor. You don't try an editor and say oh it's got tabs I hated come by you don't do that. You say alright let me try to edit this small file let me try to edit this larger file how does it help me with Perl? How does it help me with Python? Give it a shot give it a fair shot um as you start using that AI tool whatever it is um okay now start configuring that tool so that it knows about you and you know about it. It has the permissions you want it knows the jobs you want to do etc etc um and on your next AI assisted task whatever it does when that output comes um you do exactly the same thing you would have done if a deranged angry programmer who knew where you lived wrote a ton of code to solve some problem you thought you had and handed it to you you do the same thing you would do for that and by the way that person is you as we have said many times um you do the same thing for the AI output that you would have done for your own output or for for their output. You go over it line by line it's an AI it's not an expert it's not an authority the fact that an AI made it doesn't make it right it might be right I hope it's right find out find out if it's right um anyway uh that's my feeling yeah learn about MCPs uh multi-agent workflows that's a thing uh I do uh when I'm doing top level work then I also send you know five or eight agents quote into that other repo to see what it's all about um stuff like that uh and find out can you use your AI and CI C D um can it review your code? What what can it do? Where's the friction?

Outro

Jim

Find it do it anyway I'm done I'm all talking out well that was a lot of information I uh I I think people are gonna be happy with this episode I hope they are I I'm I'm uh happy with uh what you've said and I'm uh I'm gonna keep on my journey uh while it's a lot slower than your journey I am gonna keep moving forward uh so let me help yes you will thank you everybody for uh listening uh we really appreciate it if you had have any feedback send it to feedback at runtimearguments.fm uh we will include uh links to contact us uh we have email addresses and mastodon addresses and all that kind of stuff i know what's all in the show notes and a website it's all in the show notes so please check that out and uh until next time uh thank you and bye bye thanks everybody

Podcasts we love

Check out these other fine podcasts recommended by us, not an algorithm.

CoRecursive: Coding Stories Artwork

CoRecursive: Coding Stories

Adam Gordon Bell - Software Developer
Two's Complement Artwork

Two's Complement

Ben Rady and Matt Godbolt
Accidental Tech Podcast Artwork

Accidental Tech Podcast

Marco Arment, Casey Liss, John Siracusa
Python Bytes Artwork

Python Bytes

Michael Kennedy and Brian Okken
Talk Python To Me Artwork

Talk Python To Me

Michael Kennedy