WEBVTT

1
00:00:19.460 --> 00:00:20.500
<v Matt Godbolt>Hey Ben. It's been a while.

2
00:00:20.500 --> 00:00:22.160
<v Ben Rady>Hey, Matt.

3
00:00:22.160 --> 00:00:23.140
<v Matt Godbolt>How you doing?

4
00:00:23.140 --> 00:00:25.380
<v Ben Rady>Good. Yeah, good.

5
00:00:25.380 --> 00:00:34.400
<v Matt Godbolt>So I'd like to abuse this podcast to ask you something that I would like to have asked you if we'd have met up in person.

6
00:00:34.400 --> 00:00:35.200
<v Ben Rady>Mm-hmm.

7
00:00:35.200 --> 00:00:43.000
<v Matt Godbolt>And it strikes me that it might actually be a good podcast episode. So I can kill two stones with one bird or whatever. Stone two birds with one kill.

8
00:00:43.000 --> 00:00:43.120
<v Ben Rady>Mm-hmm.

9
00:00:43.120 --> 00:00:45.120
<v Matt Godbolt>I don't know. One of those things.

10
00:00:45.120 --> 00:00:49.990
<v Ben Rady>I feel like that's like the fundamental basis of this podcast is that we just talk and then, yeah.

11
00:00:49.990 --> 00:00:50.040
<v Matt Godbolt>So...

12
00:00:50.040 --> 00:00:56.400
<v Matt Godbolt>It's an enforced meeting between you and I. Enforced. Wow. It sounds awful. Yeah.

13
00:00:56.400 --> 00:00:56.760
<v Ben Rady>Encouraged.

14
00:00:56.760 --> 00:01:10.680
<v Matt Godbolt>no Like, I don't like this. No, but it's a, there's a point on our calendar where we will sit and talk to each other, even though, yeah, we don't work together anymore, which makes this less of a thing that we just do naturally.

15
00:01:10.680 --> 00:01:30.920
<v Matt Godbolt>But anyway, my question is, Last I spoke to you, we were talking and you had some clever ideas about how you were sort of starting to use carefully AI to do some of the things that, yeah, I guess some of the more humdrum work or I don't know.

16
00:01:30.920 --> 00:01:30.960
<v Ben Rady>Mm-hmm.

17
00:01:30.960 --> 00:01:35.520
<v Matt Godbolt>how do you How would you explain what you're doing? But I know that you have a clever way of using it.

18
00:01:35.520 --> 00:01:49.360
<v Ben Rady>Yeah. Well, I've gone through many, it seems like every few weeks or every month, you know everything with AI and coding agents is changing so incredibly quickly right now.

19
00:01:49.360 --> 00:01:55.060
<v Ben Rady>So it seems like every month or every few weeks, I have a new iteration

20
00:01:55.060 --> 00:02:00.340
<v Matt Godbolt>Oh, so I might be like my mental model of where you are, maybe like several iterations behind, given that we haven't really caught up in a while.

21
00:02:00.340 --> 00:02:05.540
<v Ben Rady>I mean, you know, it's I don't think it's that far behind. I think I think you're maybe one version behind.

22
00:02:05.540 --> 00:02:07.060
<v Matt Godbolt>Okay.

23
00:02:07.060 --> 00:02:28.180
<v Ben Rady>The last, and it's just, you know, it's this whole progression. I think we've talked about it on prior podcasts. I'm not going to recap from the beginning, but and the last iteration I was on was creating, I had created basically like a Docker image that I could run

24
00:02:28.180 --> 00:02:28.180
<v Matt Godbolt>Right.

25
00:02:28.180 --> 00:02:55.640
<v Ben Rady>either locally or on remote machines or in the cloud in various places. And the way that I would use it is I would, it had an embedded Git server, which you know for those that don't know this, a Git server is just SSH, right? There's really not a thing as a Git server. There's not a process that you run. It's like, oh, I killed, like yeah know I pgrep'd for my Git server. It's like, no, that's just SSH.

26
00:02:55.640 --> 00:03:00.160
<v Ben Rady>SSH is your Git server. So it's,

27
00:03:00.160 --> 00:03:08.120
<v Matt Godbolt>And like, what SCP kind of things like there's only a few things it can do is like there's a git remote command that it runs, I think right effectively on your behalf as...

28
00:03:08.120 --> 00:03:15.340
<v Ben Rady>Well, there's a they recommend that you use a special shell for the for the Git user, but you don't have to, actually.

29
00:03:15.340 --> 00:03:26.380
<v Ben Rady>You can just make a bare directory on another machine and use that as Git remote, and that makes, yes, huh the Chicago bear directories.

30
00:03:26.380 --> 00:03:27.400
<v Matt Godbolt>Not that kind of bear. The Chicago Bear Directory.

31
00:03:27.400 --> 00:03:35.960
<v Ben Rady>Yeah. the Chicago Barenaked Lady directories. Not to be confused with the to terrible... I never...

32
00:03:35.960 --> 00:03:39.320
<v Ben Rady>any No, I'm not going on the tangent. There's a bridge involved and a boat.

33
00:03:39.320 --> 00:03:39.400
<v Matt Godbolt>Yeah. yeah

34
00:03:39.400 --> 00:03:43.400
<v Ben Rady>We're not going to talk about that.

35
00:03:43.400 --> 00:03:46.140
<v Matt Godbolt>But so yeah anyway, Git is simpler than you might think.

36
00:03:46.140 --> 00:03:46.140
<v Ben Rady>But get...

37
00:03:46.140 --> 00:03:48.460
<v Matt Godbolt>It's relatively just running a process on a remote machine.

38
00:03:48.460 --> 00:03:49.180
<v Ben Rady>it's real It's real simple.

39
00:03:49.180 --> 00:03:49.320
<v Matt Godbolt>Yeah.

40
00:03:49.320 --> 00:04:10.540
<v Ben Rady>there's no There's no long-running process that needs to be managed with a Git server. right But anyway, there are directories and permissions and sometimes shell and SSH configuration, perhaps, that should be done if you want to you know have the have the thing be particularly secure.

41
00:04:10.540 --> 00:04:16.930
<v Ben Rady>So you I just created this Docker container. and And set up.

42
00:04:16.930 --> 00:04:17.200
<v Matt Godbolt>Right.

43
00:04:17.200 --> 00:04:24.540
<v Matt Godbolt>an SSH server you can get into inside the Docker container. And on the other end of that, it has all the things it needs to be a Git server.

44
00:04:24.540 --> 00:04:31.120
<v Ben Rady>Yeah, yeah. and And honestly, the only hard part about any of this is credential management, which I feel like is true 80% of the time anyway, right?

45
00:04:31.120 --> 00:04:53.780
<v Ben Rady>Like how do you get your public key registered? How do you get the credentials for the processes that you may wanna run? But long story short, and actually there's one smaller other tangent, is that there is actually an open source version of this that Aquatic released under the Aquanauts organization.

46
00:04:53.780 --> 00:05:06.930
<v Ben Rady>And yeah, and it's very like 60% complete at this point, right? like I wouldn't I wouldn't necessarily, I mean, it's I would I would say it's great inspiration for your own implementation, which you can probably create with Claude in about an hour.

47
00:05:06.930 --> 00:05:08.750
<v Matt Godbolt>Oh, I was going to ask you about that because, well, then.

48
00:05:08.750 --> 00:05:08.900
<v Matt Godbolt>Right.

49
00:05:08.900 --> 00:05:18.360
<v Ben Rady>So there's not a real reason to necessarily use it out of the box, but it is there and it does kind of do this thing, which is finally punchline.

50
00:05:18.360 --> 00:05:19.100
<v Matt Godbolt>Yes.

51
00:05:19.100 --> 00:05:38.000
<v Ben Rady>The idea is that you set up Git remotes that point to the running instances of the Docker container and the post receive hook for these Git remotes basically just runs the headless form of Claude, you know, claude -p with a very simple prompt

52
00:05:38.000 --> 00:05:58.640
<v Ben Rady>And that prompt is something like, make this code better. Right? And the idea is that you have enough, you know, CLAUDE.md and skills and other things perhaps checked into whatever repository it is that you're pushing such that you can have like a local working copy and you're like, yeah, this code is like close, but it kind of sucks.

53
00:05:58.640 --> 00:06:08.610
<v Ben Rady>You know, there's some know commented out tests that fail and there's some stubbed out methods and classes. And it's like, have a general skeleton of sort of what I'm trying to do, but it's not really there yet.

54
00:06:08.610 --> 00:06:09.940
<v Matt Godbolt>Right.

55
00:06:09.940 --> 00:06:17.180
<v Ben Rady>And I'm just going to commit that and I'm going to push it to this remote that I've set up to run this or maybe a few of them.

56
00:06:17.180 --> 00:06:17.240
<v Matt Godbolt>right

57
00:06:17.240 --> 00:06:28.920
<v Ben Rady>And then it's going to just make it better. And then when it's done, after a few minutes perhaps, and like each, you know, the instructions that I put in there tell it to do it in very incremental steps.

58
00:06:28.920 --> 00:06:36.180
<v Ben Rady>So it's like, you know, for each to do comment, for example, fix it and commit it with a description in the commit message of what it is that you did.

59
00:06:36.180 --> 00:06:43.520
<v Matt Godbolt>And this is committing into its own local copy of the repository. So it's got no way of getting out from there.

60
00:06:43.520 --> 00:06:44.910
<v Ben Rady>Yes, it's in the Docker container, right?

61
00:06:44.910 --> 00:06:45.180
<v Matt Godbolt>Right. And, and, and

62
00:06:45.180 --> 00:06:58.620
<v Ben Rady>So this is like the post receive hook for the sort of main repo directory in the Docker container creates a working copy and then Claude is operating on that working copy.

63
00:06:58.620 --> 00:06:58.620
<v Matt Godbolt>yeah.

64
00:06:58.620 --> 00:07:03.280
<v Ben Rady>And there can be multiple Claudes working on multiple working copies if you want to configure it that way.

65
00:07:03.280 --> 00:07:08.830
<v Matt Godbolt>Right. This is what like you might use work trees and your local machine, but you're effectively just doing clones, clones all over the place for each Claude.

66
00:07:08.830 --> 00:07:09.060
<v Ben Rady>Yeah.

67
00:07:09.060 --> 00:07:17.820
<v Matt Godbolt>And so one thing is like, usually they need a lot of guidance guidance and or they will say, hey, I'd like to edit this file now. And like, there's nobody on the other end of that. So how do you.

68
00:07:17.820 --> 00:07:28.390
<v Ben Rady>Well, so part of running it in Docker is that I run it with the dangerous permissions, right? And and you know a more evolved form of this might have some like IP tables rules or other things to try to limit its internet access.

69
00:07:28.390 --> 00:07:28.520
<v Matt Godbolt>Got it.

70
00:07:28.520 --> 00:07:36.330
<v Ben Rady>But the general idea here is to create a safe container so that it can run without, like you're trying the whole design of this is to not interact with it.

71
00:07:36.330 --> 00:07:36.460
<v Matt Godbolt>I know.

72
00:07:36.460 --> 00:07:42.280
<v Ben Rady>That's the whole reason I created this. in the first place is because I was sick and tired of babysitting a bunch of Claudes.

73
00:07:42.280 --> 00:07:42.880
<v Matt Godbolt>Got it.

74
00:07:42.880 --> 00:08:01.280
<v Ben Rady>And so I'm like, no, I'm going to try to structure things and change my the way that I work such that the intention is I send you crappy code and then you send me commits. And then I can review those commits and decide whether it was that I liked what you did, but at no point should I ever have to interact with you in between those two points.

75
00:08:01.280 --> 00:08:17.500
<v Matt Godbolt>Got it. And so how, yeah, how that's, so let me sort of read back to you. Yeah, this is a sort of self-contained world. And the only way that it starts up is you inject from the outside world, something new into it by get pushing.

76
00:08:17.500 --> 00:08:17.880
<v Ben Rady>okay

77
00:08:17.880 --> 00:08:24.200
<v Matt Godbolt>And then it turns away and turns away and turns away. And you don't even, you'rere you're off walking the dog, you're off making tea.

78
00:08:24.200 --> 00:08:25.340
<v Ben Rady>Right.

79
00:08:25.340 --> 00:08:31.280
<v Matt Godbolt>, and then when it's finished, how do you know? and how does that process? How's the handoff back you?

80
00:08:31.280 --> 00:08:38.970
<v Ben Rady>So usually when I'm running these things, I'm running them in a tmux so I can see the output of each one just for debugging purposes.

81
00:08:38.970 --> 00:08:39.180
<v Matt Godbolt>Yeah.

82
00:08:39.180 --> 00:08:48.560
<v Ben Rady>I'm not interacting with them, but I'm like looking at what they're doing. If one of them misbehaves or something goes wrong, I can poke it or restart it or look at what it did or whatever.

83
00:08:48.560 --> 00:08:55.080
<v Matt Godbolt>And with claude -p, that's a like one-shot mode, right? You can't talk back to it or anything like that. It just keeps running and running. and

84
00:08:55.080 --> 00:08:56.500
<v Ben Rady>Uh-huh. Yeah, that's right.

85
00:08:56.500 --> 00:09:06.410
<v Matt Godbolt>I see, right. I've I've never really used that. I mean, I've used it like to say claude -p, tell me a joke, you know that kind of thing, just to see that it works. But I always felt like something would need to be more babysat.

86
00:09:06.410 --> 00:09:06.420
<v Ben Rady>Mm-hmm.

87
00:09:06.420 --> 00:09:14.290
<v Matt Godbolt>But you're saying... No, you give it the permissions, let it run, and then just mark it at the end, right?

88
00:09:14.290 --> 00:09:14.300
<v Ben Rady>Mm-hmm.

89
00:09:14.300 --> 00:09:26.500
<v Matt Godbolt>You don't have to look at all the intermediate steps that it went through necessarily. You don't have to micromanage it, which is, of course, the exhausting and part that's frustrating, which you're trying to avoid, is this whole babysitting part.

90
00:09:26.500 --> 00:09:45.400
<v Ben Rady>Yeah. Yeah. And I've tried this with different variations, like, you know, with like the agent teams and you have like an agent, the lead of the agent team that is responsible for watching the commits go in and out and, you know, having different agents working on different things and all of it, it's all just like different variations on the same thing.

91
00:09:45.400 --> 00:09:58.800
<v Ben Rady>And it's nothing, nothing that's like really any more amazing than anything else. Yeah, you know, there are advantages and disadvantages maybe, but again, this is one of those things where it's like, I'm not even doing this anymore because it's, it's been, it's been obsolete.

92
00:09:58.800 --> 00:10:05.320
<v Matt Godbolt>Oh, right, right, right. So that's what you were doing.

93
00:10:05.320 --> 00:10:05.750
<v Ben Rady>yeah.

94
00:10:05.750 --> 00:10:06.400
<v Matt Godbolt>That's what I remember you explaining to patiently in the pub, that's what you were doing.

95
00:10:06.400 --> 00:10:06.480
<v Ben Rady>Yeah. yeah

96
00:10:06.480 --> 00:10:17.600
<v Matt Godbolt>And I was like, cool, that sounds great. Because yeah, when I do use Claude, it feels like a powerful refactoring tool, but I have to be with it all of the time.

97
00:10:17.600 --> 00:10:26.150
<v Matt Godbolt>And you know then if I try and do anything more complicated with it, I have done some pretty complicated things with it. But like you just say, hey, simplify the code or whatever. Then you have to sort of watch it.

98
00:10:26.150 --> 00:10:26.200
<v Ben Rady>Right.

99
00:10:26.200 --> 00:10:46.200
<v Matt Godbolt>And it feels like, as I say, it's exhausting. And you feel like you should be doing something else at the same time. But context switching is burning you out. And it would be nice to just throw it over a fence and say, I'll have a look in half an hour without without the worry that inevitably when you say, here's a big piece of work to do, one second after tabbing away from it, it's stopped on a question saying, hey, would you like me to do this?

100
00:10:46.200 --> 00:10:46.320
<v Ben Rady>Right.

101
00:10:46.320 --> 00:10:47.220
<v Matt Godbolt>and then you come back to it and like you've been doing nothing.

102
00:10:47.220 --> 00:10:47.300
<v Ben Rady>Right, right, right.

103
00:10:47.300 --> 00:10:49.020
<v Matt Godbolt>Yeah.

104
00:10:49.020 --> 00:10:51.310
<v Ben Rady>Yeah, but the general model has not changed.

105
00:10:51.310 --> 00:10:51.460
<v Matt Godbolt>So.

106
00:10:51.460 --> 00:11:03.200
<v Ben Rady>The general model for me that I'm trying to work towards, which you know happens in fits and spurts and I run into problems with it, and you know but the thing I'm trying to move toward is a world where I create...

107
00:11:03.200 --> 00:11:03.200
<v Matt Godbolt>Okay.

108
00:11:03.200 --> 00:11:07.640
<v Ben Rady>It's a little bit like getting the right answer on the internet by posting the wrong answer.

109
00:11:07.640 --> 00:11:08.160
<v Ben Rady>I create...

110
00:11:08.160 --> 00:11:16.820
<v Ben Rady>a vague, partially specified, broken in pieces skeleton of what it is that I want to exist.

111
00:11:16.820 --> 00:11:17.130
<v Matt Godbolt>that

112
00:11:17.130 --> 00:11:17.440
<v Matt Godbolt>Right.

113
00:11:17.440 --> 00:11:25.970
<v Ben Rady>And then rather than creating like complicated prompts, I just put comments in the code because that sort of creates like the most context for Claude, right?

114
00:11:25.970 --> 00:11:26.080
<v Matt Godbolt>, right.

115
00:11:26.080 --> 00:11:30.760
<v Ben Rady>Like instead of describing like, oh, in this function, in this file, maybe you should consider doing this. It's like, no.

116
00:11:30.760 --> 00:11:30.900
<v Matt Godbolt>Right.

117
00:11:30.900 --> 00:11:44.980
<v Ben Rady>to do, do this, to do, do that. And then it can tell from the like surrounding function structure and maybe what's calling it and like the tests that are calling it. like It gathers more context and it like focuses, because it's all about managing the context window.

118
00:11:44.980 --> 00:11:49.840
<v Ben Rady>right like You just have to get the right information in the context window, no more, no less.

119
00:11:49.840 --> 00:11:50.280
<v Matt Godbolt>Yeah.

120
00:11:50.280 --> 00:12:03.660
<v Ben Rady>And so I feel like the best way to do that is to say, okay, I'm going to take a bunch of crappy things. I'm going to have one agent break up the work that it sees in those crappy things.

121
00:12:03.660 --> 00:12:15.320
<v Ben Rady>And then each piece of crap is gonna be worked down by one agent, which will create one commit. And then all of those commits together then come back to me as we clean up all your mess, right?

122
00:12:15.320 --> 00:12:15.560
<v Matt Godbolt>Got it.

123
00:12:15.560 --> 00:12:26.380
<v Ben Rady>And that is the workflow that I'm trying to move towards. And eventually I kinda wanna get to a point where after that process is complete,

124
00:12:26.380 --> 00:12:43.110
<v Ben Rady>I don't even need a PR. I don't even need anyone to review it because the PR is baked into the continuous deployment process. And that's just something that because here's here's the thing is we've we've created all these amazing tools for writing more code and making more changes.

125
00:12:43.110 --> 00:12:43.580
<v Matt Godbolt>Right.

126
00:12:43.580 --> 00:12:54.720
<v Ben Rady>but But as you know, if you have a pipeline with multiple stages and you increase the throughput of one stage without increasing the throughput of the next stage, all you do is create a queue at the next stage, right?

127
00:12:54.720 --> 00:12:57.020
<v Ben Rady>You don't actually increase the throughput of the overall system at all, right?

128
00:12:57.020 --> 00:13:06.230
<v Matt Godbolt>Yeah, this has been my life of like, it used to be that I would open up like say Compiler Explorer and look at the 40 open pull requests and go, oh gosh, I really have to get through these.

129
00:13:06.230 --> 00:13:06.340
<v Ben Rady>Right.

130
00:13:06.340 --> 00:13:15.120
<v Matt Godbolt>And this is when humans were generating these pull requests, right? And I want to make sure that I give them the time and the thought to interact with them and say, yeah, this is great.

131
00:13:15.120 --> 00:13:15.200
<v Ben Rady>Right.

132
00:13:15.200 --> 00:13:30.200
<v Matt Godbolt>Or can you change this? All that stuff. But it's a lot of work and ultimately it's great. I don't want to sound like I don't like that thing, right? But now, when I ask an agent to do like, Hey, can you fix bug 27?

133
00:13:30.200 --> 00:13:31.430
<v Matt Godbolt>It goes off, finds bug 27.

134
00:13:31.430 --> 00:13:31.660
<v Ben Rady>Mm-hmm.

135
00:13:31.660 --> 00:13:41.720
<v Matt Godbolt>Often it can, if they're a certain form. And then now, instead of me working on bug 27 and effectively pre reviewing it because it's my own code. Right.

136
00:13:41.720 --> 00:13:44.750
<v Matt Godbolt>And, you know, CE is not a professional product.

137
00:13:44.750 --> 00:13:45.440
<v Ben Rady>Mm-hmm.

138
00:13:45.440 --> 00:13:57.460
<v Matt Godbolt>So like, you know, I can merge straight to main if I want, I choose generally don't, but I still, you know, the review is kind of like, advisory more than anything else, I can I can I can fix bug 17 and we're done.

139
00:13:57.460 --> 00:13:57.620
<v Ben Rady>Mm-hmm.

140
00:13:57.620 --> 00:14:06.360
<v Matt Godbolt>But now it's like, no, I've asked the robot to do the bit that I enjoy doing. And then and then I get just stuck with the bit that I don't like so much, which is the review part.

141
00:14:06.360 --> 00:14:07.010
<v Ben Rady>Yeah, yeah, yeah, right.

142
00:14:07.010 --> 00:14:13.100
<v Matt Godbolt>And I'm like, yeah, so. And then you're like, oh, now I have 80 open PRs because I've got some, oh, oh dear. So

143
00:14:13.100 --> 00:14:16.500
<v Ben Rady>Yeah, yeah, yeah, I mean, so yeah.

144
00:14:16.500 --> 00:15:01.890
<v Matt Godbolt>Kind of removed the... But, but that you know, without without human interaction at some point, how do you prevent... wildly spinning out of control things I'm sure you've seen this you know like I've you know you know I mean but models are getting better at this but you know I actually was working with one just a few minutes ago and I saw it several times go no let me take a big step back no let me take a huge step back as it was kind of floundering and realizing it was floundering and whatever magical craft crafting in the prompts and whatever they're doing notices that and then tries to like do what a human would do which I think is clever but like you know But, you know, you do need someone to say, wait a minute, you know, the otherwise you're going to be in like there's some kind of like millions of paper cuts all over your code base.

145
00:15:01.890 --> 00:15:02.100
<v Ben Rady>Oh, yeah, yeah, yeah.

146
00:15:02.100 --> 00:15:08.400
<v Matt Godbolt>How do you how do you deal with that without a human going, wait, wait, wait a second. Something needs to look. I have the context and I can broadly.

147
00:15:08.400 --> 00:15:18.970
<v Ben Rady>Yeah. I mean, so I think I don't think that the way to do this is to give it a large chunk of work to do and then go and make tea and then come back in 30 minutes.

148
00:15:18.970 --> 00:15:19.460
<v Matt Godbolt>OK. Mm-hmm.

149
00:15:19.460 --> 00:15:22.960
<v Ben Rady>that's That's not the model that I'm trying to move toward.

150
00:15:22.960 --> 00:15:37.260
<v Ben Rady>The model that I'm trying to move toward is one where I'm doing enough work to get, you know, to sort of like seed the work of some number of agents.

151
00:15:37.260 --> 00:15:57.640
<v Ben Rady>And while those agents are churning away, I'm kind of like thinking about what the next step is and maybe creating those pieces, some of those pieces. And one advantage of this model is that, you know, you can do a git pull at any time. And so if like the easy ones start coming in first, right? So like if you have a to-do comment, that's like, you know,

152
00:15:57.640 --> 00:16:01.810
<v Ben Rady>you know, simplify this method, right? There's some unnecessary complexity in here.

153
00:16:01.810 --> 00:16:02.180
<v Matt Godbolt>Right, right.

154
00:16:02.180 --> 00:16:29.140
<v Ben Rady>Like, you know, you'll see that one finish and then it's like, all right, that took all of 10 seconds. git pull, okay, cool, I'll get that and I'm gonna look at that. And so you it's not like, you know, create a big bunch of work, push off a big bunch of work, get back a big bunch of work, review a big bunch of work. It's more like create a bunch of individual things or maybe just a handful, push them out and then start pulling them in and reviewing them and reading through them and maybe even iterating on them.

155
00:16:29.140 --> 00:16:38.180
<v Ben Rady>Or I'd be like, you know, I'm gonna revert this commit, we're gonna try again, or I'm gonna, you know, add another comment in that says like, this still needs more work.

156
00:16:38.180 --> 00:16:40.760
<v Matt Godbolt>so So just to look at my, maybe I missed this part.

157
00:16:40.760 --> 00:16:51.750
<v Matt Godbolt>you You can pull from this repo and then it's just a different remote for you. So you would, you're still, as in you, Ben, are still the main repo is on GitHub or GitHub Enterprise wherever it is.

158
00:16:51.750 --> 00:16:51.860
<v Ben Rady>Yeah.

159
00:16:51.860 --> 00:17:00.000
<v Matt Godbolt>And then you are just pulling from yet another source or pushing and pulling to another source, much as if it was like a vendor branch.

160
00:17:00.000 --> 00:17:00.180
<v Ben Rady>Right.

161
00:17:00.180 --> 00:17:00.800
<v Matt Godbolt>It's just like, this is the agent repo.

162
00:17:00.800 --> 00:17:01.740
<v Ben Rady>Right. Right.

163
00:17:01.740 --> 00:17:02.740
<v Matt Godbolt>I see. Okay.

164
00:17:02.740 --> 00:17:04.350
<v Ben Rady>Yeah, it's a different Git remote.

165
00:17:04.350 --> 00:17:05.150
<v Matt Godbolt>So then the

166
00:17:05.150 --> 00:17:10.790
<v Ben Rady>And usually I'll just name the remote for whatever the host name is that the Docker image is running on. right

167
00:17:10.790 --> 00:17:11.330
<v Matt Godbolt>Makes sense.

168
00:17:11.330 --> 00:17:19.110
<v Matt Godbolt>Makes sense. Yeah, no, I get it. So, and then ultimately those changes make it through into the main line through you having pulled them and looked at them.

169
00:17:19.110 --> 00:17:19.380
<v Ben Rady>Right.

170
00:17:19.380 --> 00:17:23.940
<v Matt Godbolt>And so you've looked at them locally rather than through GitHub. So that's kind of, that's interesting.

171
00:17:23.940 --> 00:17:32.260
<v Ben Rady>Exactly.

172
00:17:32.260 --> 00:17:58.820
<v Matt Godbolt>That's interesting. So, so that's different from what the model that I've been sort of trying to work towards myself in my own experience. way because for me, the goal the goal, and this is very Compiler Explorer centric, is many, many, many of the open issues in Compiler Explorer are please install Compiler X. And Compiler X is, yeah and we have readme's for this, people can send pull requests for it, but usually it's a multi-step process. and you know It can be up to four steps, which is a pain, but you know it's in it and it's almost automatable.

173
00:17:58.820 --> 00:18:02.270
<v Matt Godbolt>you know, someone says, hey, I have this Clang build over here.

174
00:18:02.270 --> 00:18:02.320
<v Ben Rady>Yeah.

175
00:18:02.320 --> 00:18:12.360
<v Matt Godbolt>I'm like, great. what's What GitHub repo is it? Oh yeah, which branch is it in? Oh yeah, right, whatever. And you go and you go and pull it down. It's like, yeah, didn't build. I said, oh yeah, you need these extra flags because we need these things on our building.

176
00:18:12.360 --> 00:18:22.820
<v Matt Godbolt>Okay, that can be done, right? You know, there's no, but I had to try the build out and which is, you know, like a 45 minute build on a beefy machine and then discover that I actually, no, I need to change it.

177
00:18:22.820 --> 00:18:33.480
<v Matt Godbolt>And I have to iterate a few times to get the exact flags Then having built it, it gets some it needs to be installed, and then the install usually picks up a few things, and then it has to be configured, then it has to be tested, whatever.

178
00:18:33.480 --> 00:18:45.780
<v Matt Godbolt>Each of these is a different repo for unfortunate legacy. well I don't know if they're unfortunate, but for reasons, right? you know most Most people who pull the get the Compiler Explorer repository aren't actually installing three terabytes of compilers.

179
00:18:45.780 --> 00:18:54.230
<v Matt Godbolt>They're about to use it on their local machine, and they don't want to have anything to do with all of the things that to do, the orchestration and infrastructure of Compiler Explorer, the website.

180
00:18:54.230 --> 00:18:54.480
<v Ben Rady>Mm-hmm. Mm-hmm.

181
00:18:54.480 --> 00:19:15.570
<v Matt Godbolt>So that's a separate thing. They just have the code, right? And the code is just versioned. and We pull in version 12 of the code into, you know, that kind of stuff. So, but it does mean that now there's two repos you have to manage. And then similarly, even in the infrastructural thing, it doesn't make sense to have like every Docker container we've ever had to build every possible compiler ever gets rebuilt every single time, every push happens.

182
00:19:15.570 --> 00:19:45.620
<v Matt Godbolt>So they're in their own repositories and so on. And so it all makes sense, but it's also painful and it requires orchestration and multiple steps. Anyway, popping the stack, it is nearly automatable, but you need something with half a brain to watch it and got to go, oh yeah, maybe we need to change this flag. Oh, it has completed now. Now I can test install it locally. Oh, it does work locally. Okay, cool. Now I can make the pull request, all these things. And so that workflow is what I would like to manage so that I can sick the...

183
00:19:45.620 --> 00:19:57.640
<v Matt Godbolt>something on that and say, can you just do this thing and send me the pull request when it's done. And I can review on my phone while I'm walking the dog and go, yes, that's fine. And merge it because most of the time I can see if it's okay.

184
00:19:57.640 --> 00:20:02.730
<v Matt Godbolt>and And if in particular, I can see that it's been through the test steps and the CI build is giving it the clean bill of health.

185
00:20:02.730 --> 00:20:03.060
<v Ben Rady>Yeah, yeah.

186
00:20:03.060 --> 00:20:24.820
<v Matt Godbolt>So that's what I'm working towards to try and design away, that kind of thing.,, Yeah, it's kind of a different model, I think. from Yours is more of a, I want to use this as a pair programmer or mob programmer with me, and I'm kind of pulling and pushing with it. Is that a fair observation, or would you say it's different than that?

187
00:20:24.820 --> 00:20:36.600
<v Ben Rady>I, you know, I don't know that it really... I wouldn't really compare it to like pair programming or I wouldn't compare it to any practices that we have used in the last 30 years, honestly.

188
00:20:36.600 --> 00:20:38.100
<v Ben Rady>It's just a new and different thing.

189
00:20:38.100 --> 00:20:38.480
<v Matt Godbolt>Interesting.

190
00:20:38.480 --> 00:20:40.890
<v Ben Rady>It's just a different, it's just a different way to build software.

191
00:20:40.890 --> 00:20:41.800
<v Matt Godbolt>Right.

192
00:20:41.800 --> 00:20:55.860
<v Ben Rady>If the closest analog is I've had situations in my career where I have intentionally created an incorrect PR and sent it to someone

193
00:20:55.860 --> 00:20:58.220
<v Matt Godbolt>for the same, you know, someone's wrong on the internet kind of approach.

194
00:20:58.220 --> 00:21:06.940
<v Ben Rady>Yeah, like you get you get into a discussion with someone, like I think you should this, and I say, you know what the easiest way for me to describe what I'm trying to do here is to do a third of it.

195
00:21:06.940 --> 00:21:07.560
<v Matt Godbolt>Yeah.

196
00:21:07.560 --> 00:21:10.310
<v Ben Rady>And then you'll see the other two thirds. So I'm just going to do that.

197
00:21:10.310 --> 00:21:10.340
<v Matt Godbolt>Yeah.

198
00:21:10.340 --> 00:21:15.940
<v Ben Rady>Now, you know, it's very limited in the situations where I've done that, right?

199
00:21:15.940 --> 00:21:16.240
<v Matt Godbolt>Yeah.

200
00:21:16.240 --> 00:21:24.570
<v Ben Rady>But now it's basically that all the time. Or at least that's what that model was, which again, is not what I'm actually doing right now.

201
00:21:24.570 --> 00:21:24.680
<v Matt Godbolt>Maybe.

202
00:21:24.680 --> 00:21:24.680
<v Ben Rady>But that's...

203
00:21:24.680 --> 00:21:38.420
<v Matt Godbolt>I was going to say, yeah, you just made me think of something else that I found is a useful thing for me to do now is that the cost of prototyping with now we're I'm just talking generally about this is going to be a meandering conversation. Sorry, listener.

204
00:21:38.420 --> 00:21:57.080
<v Matt Godbolt>The cost of exploratory work is so low now. that I will happily, so I now have a restricted user on my machine and I run it in a sandbox and I put a T-Mux into it like you're suggesting and it allows me to run in YOLO mode as well. So then I can kind of say, oh, knock yourself out, go and, you know, I don't care.

205
00:21:57.080 --> 00:22:05.340
<v Matt Godbolt>The worst you can do is delete your entire directory and everything you have in here, which in case is, well, inconvenience me not one bit, you know, you'll stop working and then I'll come find you.

206
00:22:05.340 --> 00:22:05.740
<v Ben Rady>Yeah, yeah.

207
00:22:05.740 --> 00:22:16.020
<v Matt Godbolt>And it has, you know, it's a separate Unix user. It has no credentials, all the things, all those good things. I don't necessarily internet sandbox it as well. I mean, if I told it to hack my network, I'm sure it could.

208
00:22:16.020 --> 00:22:20.100
<v Matt Godbolt>But anyway, the point is I can point it at saying, so like, I don't know how to do this.

209
00:22:20.100 --> 00:22:20.180
<v Ben Rady>Mm-hmm.

210
00:22:20.180 --> 00:22:31.740
<v Matt Godbolt>Can you just have a spirited attempt at it? And then and I can see... where where you get stuck and where the problems lie. right The cost of prototyping and spiking out an idea and going, would it be possible to do X?

211
00:22:31.740 --> 00:23:02.680
<v Matt Godbolt>Like, hey, what if we were to completely replace this? So in the window behind you, my JavaScript BBC microemulator, the it's like a 400k download in the web thing because it has two separate g unzip libraries for like very ancient reasons right there's just like two you know silly reasons and nowadays browsers have decompression stream but they don't support the one thing that I kind of need in it and I'm like is it possible to hack the heck out of it and make it work reliably on both node and chrome and firefox go

212
00:23:02.680 --> 00:23:03.820
<v Ben Rady>yeah, yeah. Yeah,

213
00:23:03.820 --> 00:23:15.060
<v Matt Godbolt>And it came back and I can see behind you now it's like, yeah. And now I haven't looked at the code. It may be atroc an atrocity, in which case I'll throw it away and we'll pretend it never happened. But if it's okay, that was great.

214
00:23:15.060 --> 00:23:15.140
<v Ben Rady>yeah. yeah

215
00:23:15.140 --> 00:23:16.940
<v Matt Godbolt>Right. And that's, that's not utility to me.

216
00:23:16.940 --> 00:23:31.440
<v Matt Godbolt>And it's also not the kind of thing that I particularly want to do. And again, this is something interesting. Maybe, maybe this is a pivot now, right away from the kind of things that would be automating. It's like, And maybe you're feeling this too, because you said about like the way software engineering is changing, the way that you're developing.

217
00:23:31.440 --> 00:23:40.970
<v Matt Godbolt>This is something new that is not pair programming or mob program, whatever it is, whatever this is nowadays. It's LLM assistant, agent assistant coded coding.

218
00:23:40.970 --> 00:23:41.540
<v Ben Rady>Yeah. yeah

219
00:23:41.540 --> 00:23:55.100
<v Matt Godbolt>And, you know, there's a lot of people who quite reasonably have a lot of issues with it. There are people who have, you know, issues on in terms of the power that it's using and things like that. And that is a very valid concern, but not one I want to talk about here for all the complicated reasons that I'm I'm not well thought about.

220
00:23:55.100 --> 00:24:04.910
<v Matt Godbolt>it And honestly, a little bit put my fingers my eyes and hoping that someone clever person solves this. You know, I suppose I'm pinning my hopes on the fact that there is at least one one.

221
00:24:04.910 --> 00:24:05.380
<v Ben Rady>Haha.

222
00:24:05.380 --> 00:24:26.280
<v Matt Godbolt>one prior piece of art that says that you can think and not take an entire data center's worth of power because it's between my ears at the moment, right? And it's not, apparently not taking more than a few tens of watts. I don't know what a brain takes, but it's certainly not hundreds of kilowatts, right? Anyway, that to one side. The, the,

223
00:24:26.280 --> 00:24:39.540
<v Matt Godbolt>Folks of our age, I think, are having a bit of an interesting experience here because you know we can see the utility of being able to do stuff very quickly in prototype, like I just described.

224
00:24:39.540 --> 00:24:40.340
<v Ben Rady>right.

225
00:24:40.340 --> 00:24:54.780
<v Matt Godbolt>We're seeing the utility of getting stuff done really quickly, which... And maybe we're sort of still discovering what really quickly is whether or not there is it is a silver bullet or it's you know just a sort of copper bullet that's not quite as good as we think it is, whatever.

226
00:24:54.780 --> 00:24:57.110
<v Matt Godbolt>Something like this, right? It's like it's a good it's a good thing.

227
00:24:57.110 --> 00:24:57.180
<v Ben Rady>right

228
00:24:57.180 --> 00:25:20.980
<v Matt Godbolt>Maybe it's it's not as we're not as effective as we think we are. Maybe that will play out in the medium term and we'll discover that. But what it means is that we're not programming... as much anymore, like literally hand on keyboard, open bracket, type some things, close bracket. I don't feel like I'm doing that. There have been days recently where I've spent the entire day going. And then at the end of the day, I was like, oh, let me just look at the code.

229
00:25:20.980 --> 00:25:26.350
<v Matt Godbolt>Oh, I haven't opened even Visual Studio Code. I've just been talking to a you know various things.

230
00:25:26.350 --> 00:25:26.380
<v Ben Rady>right

231
00:25:26.380 --> 00:25:36.800
<v Matt Godbolt>It's like I'm chatting in Slack and I'm chatting in Windows and things are happening and I'm reviewing them on like pull request level things, but I'm not necessarily programming in the same sense.

232
00:25:36.800 --> 00:25:39.900
<v Matt Godbolt>And like, there's a definitely a part of me that's like, Oh, I like that.

233
00:25:39.900 --> 00:25:43.340
<v Ben Rady>Yeah, right. Uh-huh.

234
00:25:43.340 --> 00:25:47.750
<v Matt Godbolt>And so I'm, you know, maybe I'm just using this as our, you know therapy session.

235
00:25:47.750 --> 00:25:48.020
<v Ben Rady>Yeah.

236
00:25:48.020 --> 00:25:56.190
<v Matt Godbolt>I'm I'm still trying to work out how I feel about it. Like I can't deny that I'm excited to get things done that are exciting to me.

237
00:25:56.190 --> 00:25:56.800
<v Ben Rady>Mm-hmm.

238
00:25:56.800 --> 00:26:05.280
<v Matt Godbolt>And I enjoy the outcome. but I feel like maybe I'm missing something on the journey, you know, and maybe that will bite me in the future as well.

239
00:26:05.280 --> 00:26:11.820
<v Ben Rady>Yeah, no, I've thought about that a lot you know in the last three to six months.

240
00:26:11.820 --> 00:26:12.220
<v Matt Godbolt>Oh boy.

241
00:26:12.220 --> 00:26:32.860
<v Ben Rady>And you know the conclusion that I kind of came to is that the career that I enjoyed for 25 years is now over. And my number one priority in exploring all of these things, and the reason why I change it every month, or less than a month, is because the number one priority is that the new thing is fun.

242
00:26:32.860 --> 00:26:35.550
<v Ben Rady>The productivity gains, I don't care. I'm sure they'll come.

243
00:26:35.550 --> 00:26:35.620
<v Matt Godbolt>Right, right, right.

244
00:26:35.620 --> 00:26:53.720
<v Ben Rady>like It's kind of inevitable that they'll come in some form. I'm not worried about that at all. The sort of efficiency, the like you know resume fodder of like, did you use this? I don't care about any of that. The only thing I care about is that I create a new way of working that is fun.

245
00:26:53.720 --> 00:26:59.690
<v Ben Rady>Because if it's fun, I'll do it. And if it's not fun, then I won't do it. And if I do it, then I'll get better at it. And if I don't do it, then I won't.

246
00:26:59.690 --> 00:27:00.140
<v Matt Godbolt>That's...

247
00:27:00.140 --> 00:27:07.960
<v Ben Rady>So the only thing that matters is create something that's fun. And the inch the great thing about this is that it's like a brand new world. like

248
00:27:07.960 --> 00:27:08.260
<v Matt Godbolt>Yeah.

249
00:27:08.260 --> 00:27:11.260
<v Ben Rady>it's You get to reinvent the rules all over again. you know

250
00:27:11.260 --> 00:27:11.560
<v Matt Godbolt>Yeah.

251
00:27:11.560 --> 00:27:16.860
<v Ben Rady>I've been having a lot of discussions with people lately about maybe rewrites aren't a bad idea anymore.

252
00:27:16.860 --> 00:27:17.860
<v Matt Godbolt>Yeah, maybe not. I mean...

253
00:27:17.860 --> 00:27:23.720
<v Ben Rady>Maybe language choice doesn't matter anymore because you can just have it, rewrite it in whatever language you want, right?

254
00:27:23.720 --> 00:27:24.000
<v Matt Godbolt>and

255
00:27:24.000 --> 00:27:27.080
<v Ben Rady>Like there's all of the rules might be out the window.

256
00:27:27.080 --> 00:27:29.960
<v Ben Rady>Some of them are not going to be, but we don't know, right

257
00:27:29.960 --> 00:27:33.360
<v Matt Godbolt>Well, and I was going to say, some some of the rules that are closest to your heart are probably still very valid.

258
00:27:33.360 --> 00:27:47.580
<v Matt Godbolt>You know, like the fact that having a strong framework around the outside about sort of intersubjective and test for, is this what we want it to be?

259
00:27:47.580 --> 00:27:48.560
<v Ben Rady>Yeah.

260
00:27:48.560 --> 00:27:52.780
<v Matt Godbolt>bit yeah I said test, I was trying to avoid the word test, but like, is test, right?

261
00:27:52.780 --> 00:27:54.200
<v Ben Rady>No, I'm, you know, it's verifying correctness, right?

262
00:27:54.200 --> 00:27:54.620
<v Matt Godbolt>Functional test? Yeah, yes, thank you, that's better word.

263
00:27:54.620 --> 00:28:04.060
<v Ben Rady>the The requirement that you verify that the software that you produce works correctly for the definition of correctly that you probably are in charge of maintaining, right?

264
00:28:04.060 --> 00:28:04.120
<v Matt Godbolt>Yeah.

265
00:28:04.120 --> 00:28:09.130
<v Ben Rady>Like that's your job is to, what does it mean to be correct? Right? Like that's why you're there is to figure that out.

266
00:28:09.130 --> 00:28:09.560
<v Matt Godbolt>Yeah.

267
00:28:09.560 --> 00:28:14.900
<v Ben Rady>None of that has changed. The tools that we use to do it, I'm sure are going to change dramatically.

268
00:28:14.900 --> 00:28:16.660
<v Matt Godbolt>Right. Right.

269
00:28:16.660 --> 00:28:16.740
<v Ben Rady>Yeah.

270
00:28:16.740 --> 00:28:34.630
<v Matt Godbolt>It's interesting. So I was having a discussion about how the kind of, if you cast your mind back to one of our first guests, Claire McRae and the, I always want to call them golden tests, acceptance tests.

271
00:28:34.630 --> 00:28:34.940
<v Ben Rady>Not acceptance tests.

272
00:28:34.940 --> 00:28:35.080
<v Ben Rady>Yeah.

273
00:28:35.080 --> 00:28:35.670
<v Matt Godbolt>Is that the right one?

274
00:28:35.670 --> 00:28:35.880
<v Ben Rady>Approval tests, perhaps.

275
00:28:35.880 --> 00:28:37.100
<v Matt Godbolt>Oh, I'm so sorry.

276
00:28:37.100 --> 00:28:38.070
<v Matt Godbolt>Approval test. Thank you.

277
00:28:38.070 --> 00:28:38.440
<v Ben Rady>Yeah.

278
00:28:38.440 --> 00:28:51.080
<v Matt Godbolt>Oh gosh. Yeah. But you know, though, the, those tests seem to be not, let me try and think, the disc, I'm trying to remember what the discussion was.

279
00:28:51.080 --> 00:29:06.900
<v Matt Godbolt>I you know, effectively I, prefer a well-designed unit test because then I, you know, like you, right? If something breaks, one test breaks in one place and you don't have like this collateral damage of like, well, I changed the log line and now everything is different apparently.

280
00:29:06.900 --> 00:29:06.920
<v Ben Rady>Yeah.

281
00:29:06.920 --> 00:29:26.320
<v Matt Godbolt>Not everyone thinks that way. And someone made a reasonably compelling argument to me that I'm forgetting exactly, but of like in an LLM driven world, the value of having a targeted unit test that tells you what the problem is, is not as great as the fragility of like, oh, I'm changing my API and now everything has to be updated.

282
00:29:26.320 --> 00:29:26.320
<v Ben Rady>Yeah.

283
00:29:26.320 --> 00:29:42.100
<v Matt Godbolt>Whereas like the bloody output of your program should be the same. Kind of makes sense to me then. But like, it's, yeah, you know, it doesn't sit comfortably with me yet. but I could see it and I was like, this is the first time I'm nodding a little bit towards this. This.

284
00:29:42.100 --> 00:29:59.030
<v Ben Rady>No, it's funny because, again, all the rules are up for debate. Let's debate. I could make the argument that the sort of isolation of those tests in the sense of like one bug produces one test, what I would have been called an informative test.

285
00:29:59.030 --> 00:29:59.340
<v Matt Godbolt>hmm.

286
00:29:59.340 --> 00:30:15.870
<v Ben Rady>is less important, but only to the extent that the tokens don't cost you too much. right like If you've got Claude or many Claudes in a very tight loop running tests over and over and over again, and they're trying to make changes, and every time they make any change, you get hundreds of failing tests, that's going to fill up the context window pretty fast.

287
00:30:15.870 --> 00:30:17.620
<v Matt Godbolt>it gets pretty expensive pretty quick. yeah

288
00:30:17.620 --> 00:30:24.070
<v Ben Rady>But the thing that might matter more is speed. Right? Like the faster your tests run, the more iterations you can go through.

289
00:30:24.070 --> 00:30:24.160
<v Matt Godbolt>Yeah. Yeah.

290
00:30:24.160 --> 00:30:31.300
<v Ben Rady>And if you can automate that, then you can get things done very quickly. Right? These are things that we're going to have to find out.

291
00:30:31.300 --> 00:30:44.040
<v Matt Godbolt>That's an excellent point. Yeah. Yeah, no, I think that's very, very valid. It's in fact, one of the more interesting things I have seen people do again recently is change the model that they're using to us to a smaller one that's dumber because it can go faster.

292
00:30:44.040 --> 00:30:44.190
<v Ben Rady>Yeah.

293
00:30:44.190 --> 00:30:44.200
<v Ben Rady>Yeah.

294
00:30:44.200 --> 00:30:47.320
<v Matt Godbolt>It's like, I don't care that it's dumb because you know it's protected from itself.

295
00:30:47.320 --> 00:30:51.100
<v Matt Godbolt>and like And then I can use a slower model at the end to kind of like clean it up or whatever.

296
00:30:51.100 --> 00:30:51.540
<v Ben Rady>Mm-hmm. Yep.

297
00:30:51.540 --> 00:30:53.650
<v Matt Godbolt>And that was like, oh, that is interesting.

298
00:30:53.650 --> 00:30:54.620
<v Ben Rady>yep

299
00:30:54.620 --> 00:31:30.540
<v Matt Godbolt>So let me ask you another question. This is really far reaching now. Sorry, we've we've reached half an hour into this conversation. We had literally zero plan. How do you feel about the fact that you're working and then you get a 500 error from the Claude endpoint and now suddenly everything comes to a slamming halt and you're like, oh oh, I can't work. And as a proxy for, oh, what does it mean for my hobby that I could previously do with an air-gapped computer

300
00:31:30.540 --> 00:31:35.670
<v Matt Godbolt>and then And obviously there's a hundred reasons why that's not true, but like let's just go with it for now. And I got, you know, I'm on the plane.

301
00:31:35.670 --> 00:31:35.880
<v Ben Rady>Right.

302
00:31:35.880 --> 00:31:50.260
<v Matt Godbolt>I have no internet access, although also that's not true anymore. I'm just tinkering around and I can do my thing and I'm enjoying it. Suddenly it's not only the fact that there is no internet there, it's the fact that there is a vendor that is the thing that is preventing you.

303
00:31:50.260 --> 00:31:50.260
<v Ben Rady>Yeah.

304
00:31:50.260 --> 00:31:59.540
<v Matt Godbolt>That, that you know, as much as I'm an anthropic fan boy, that does scare me. and I'm like, oh, shucks.

305
00:31:59.540 --> 00:32:00.020
<v Ben Rady>Yeah.

306
00:32:00.020 --> 00:32:00.800
<v Matt Godbolt>What do you, yeah, discuss.

307
00:32:00.800 --> 00:32:04.980
<v Ben Rady>Yeah, that's a real serious problem. That's a real serious problem. And, you know, I, yeah, I get, yep.

308
00:32:04.980 --> 00:32:15.000
<v Matt Godbolt>You can see why folks are looking at like, you know, self hosting solutions, even if they're again, dumber models, it's like, well, look, I have a rack of GPUs behind me or whatever, and it's running there.

309
00:32:15.000 --> 00:32:18.940
<v Matt Godbolt>And then I know where I am, stand with it. You know, it's a, it's my own electricity, better my own power.

310
00:32:18.940 --> 00:32:26.130
<v Ben Rady>Well, so that this leads me and the local models thing leads me to the next iteration of things that I am doing.

311
00:32:26.130 --> 00:32:26.820
<v Matt Godbolt>Oh, unintentional segue.

312
00:32:26.820 --> 00:32:37.570
<v Ben Rady>and And one of the reasons why I am doing it, the next iteration is I am just fully leaning into remote development environments.

313
00:32:37.570 --> 00:32:38.180
<v Matt Godbolt>Right. Right.

314
00:32:38.180 --> 00:32:51.780
<v Ben Rady>And I am trying, I have right now a project where I'm trying to just set up an Amazon AWS account. It's really just the EC2 instance and a few other attendant things right now.

315
00:32:51.780 --> 00:33:02.040
<v Ben Rady>But basically, like the way I want to think about this is that like I do all of my programming in and a cloud account, and I'm doing that for multiple reasons.

316
00:33:02.040 --> 00:33:04.980
<v Matt Godbolt>which mirrors the kind of way that you and I've had to work in finance for a while.

317
00:33:04.980 --> 00:33:07.240
<v Ben Rady>the first The first... Yeah, it's not that foreign.

318
00:33:07.240 --> 00:33:08.510
<v Matt Godbolt>Anyway, for all those reasons of, like yeah, it's not, yeah, we've we've got kind of gotten used to it.

319
00:33:08.510 --> 00:33:08.540
<v Ben Rady>and Exactly. Right.

320
00:33:08.540 --> 00:33:11.400
<v Matt Godbolt>And also, you know, IDEs are good at this these days.

321
00:33:11.400 --> 00:33:13.820
<v Ben Rady>Yeah, remote development yeah over SSH works pretty well.

322
00:33:13.820 --> 00:33:15.780
<v Matt Godbolt>You can kind of, yeah. And for me, it works a treat as well.

323
00:33:15.780 --> 00:33:15.860
<v Ben Rady>Yeah.

324
00:33:15.860 --> 00:33:21.610
<v Matt Godbolt>You know, I'm forever just using Mosh to talk to the machine that's that's under my desk here, where where the real development happens for the same reason.

325
00:33:21.610 --> 00:33:21.820
<v Ben Rady>yeah

326
00:33:21.820 --> 00:33:30.640
<v Matt Godbolt>And it doesn't matter which laptop I'm on or where I am. I'm the same, dropped into the same environment, carrying on with the same sessions that were there from before. So it's, yeah. But yeah, so you're setting this up.

327
00:33:30.640 --> 00:33:39.120
<v Ben Rady>Yeah. Yeah. now And the metaphor here, I think a useful way to think about this is like a long time ago in a galaxy far, far away, when we built systems, they ran on a computer.

328
00:33:39.120 --> 00:33:49.030
<v Ben Rady>Like you'd go into a you know server closet in your office building and they'd be like, all right, this is the Dell computer that we got to run our you know whatever.

329
00:33:49.030 --> 00:33:49.220
<v Matt Godbolt>Yep.

330
00:33:49.220 --> 00:33:57.900
<v Ben Rady>And it was on that computer. And then we built, you know, much bigger systems that run on lots of computers in the cloud and all of that.

331
00:33:57.900 --> 00:33:58.200
<v Matt Godbolt>yep

332
00:33:58.200 --> 00:34:13.940
<v Ben Rady>This is what we're doing with the development environment. I think development environments are going to move from it's running on your computer that's like on your desk or your laptop to like, no, it's a whole system of interconnected services and computers and things for you.

333
00:34:13.940 --> 00:34:18.640
<v Ben Rady>for you individually so that you can do all of these things with agents.

334
00:34:18.640 --> 00:34:19.080
<v Matt Godbolt>Yep. Yeah.

335
00:34:19.080 --> 00:34:31.660
<v Ben Rady>Right. And a key part of this is security. Right. Because, you know, a lot of times in a lot of environments that I've worked in, they've had this sort of like, you know, hard exterior, soft interior security model.

336
00:34:31.660 --> 00:34:31.780
<v Matt Godbolt>yep

337
00:34:31.780 --> 00:34:52.220
<v Ben Rady>where you're protecting yourself from from outside attacks, but then inside the network is fairly loosey-goosey, right? And I think when you have a structure of like, you know, very competent engineers internally, and you are reasonable about taking precautions and various things, that model works really well.

338
00:34:52.220 --> 00:34:58.180
<v Ben Rady>I don't want to set a whole bunch of Claude YOLO agents loose in an environment like that, right?

339
00:34:58.180 --> 00:34:58.240
<v Ben Rady>So my...

340
00:34:58.240 --> 00:34:58.240
<v Matt Godbolt>Right.

341
00:34:58.240 --> 00:35:03.920
<v Matt Godbolt>We've all seen the tweets from people saying, oh, I, you know, Claude just deleted the database, whatever, you know.

342
00:35:03.920 --> 00:35:03.940
<v Ben Rady>Yeah,

343
00:35:03.940 --> 00:35:10.380
<v Matt Godbolt>And like the thing is, you and I as humans have made idiotic mistakes in our time, maybe not to that extent.

344
00:35:10.380 --> 00:35:10.640
<v Ben Rady>Yeah.

345
00:35:10.640 --> 00:35:20.660
<v Matt Godbolt>And that's only to be expected. And the only thing that you can do to protect that is to make sure those humans know the consequences and are scared of them and don't do them. But you can't scare the agents.

346
00:35:20.660 --> 00:35:20.700
<v Ben Rady>Right.

347
00:35:20.700 --> 00:35:32.200
<v Matt Godbolt>So you have to just bubble wrap them. and say you're not allowed to do the things that you think you're allowed to do, even when it would be extremely useful for them to be able to alter the live production data, to do a rollout for you or whatever.

348
00:35:32.200 --> 00:35:32.300
<v Ben Rady>Right.

349
00:35:32.300 --> 00:35:36.280
<v Matt Godbolt>You're like, no, that's not how we're doing things here.

350
00:35:36.280 --> 00:35:37.640
<v Ben Rady>Yep. Yep. And, and, you know, it's so, so, so,

351
00:35:37.640 --> 00:35:42.750
<v Matt Godbolt>Yeah, so to have fine-grained controls and say, like, you've got read-only to these things, you can do what you like with those, that cut so yeah I'm with you.

352
00:35:42.750 --> 00:35:42.820
<v Ben Rady>Exactly.

353
00:35:42.820 --> 00:35:43.540
<v Matt Godbolt>Sorry, I cut you off.

354
00:35:43.540 --> 00:35:49.920
<v Ben Rady>Yeah. and And cloud providers are really good at fine-grained access controls. It's something that they've been doing for decades, right?

355
00:35:49.920 --> 00:35:50.700
<v Matt Godbolt>Yeah, yeah, that's fine.

356
00:35:50.700 --> 00:36:02.620
<v Ben Rady>And so I'm like, all right, my whole development environment now is going to live in AWS, Google Cloud, doesn't really matter. And it's going to be managed in Terraform and it's going to have this like very particular setup to it.

357
00:36:02.620 --> 00:36:14.080
<v Ben Rady>And that's going to do a number of things for me. when it's going to solve a security problem for me so I don't have to worry about like, I don't have to retrofit my company's internal network to have passwords everywhere. Right.

358
00:36:14.080 --> 00:36:23.180
<v Ben Rady>You know, and then the second thing it's going to do for me is it's going to at least potentially allow me to start running my own models. Right.

359
00:36:23.180 --> 00:36:40.400
<v Ben Rady>So I can at least explore the idea of being less dependent on third parties in order to basically do my job. Because right now, when I when that happens, I have to drop into the slow mode and be like, all right, well, going to fire up PyCharm or IntelliJ or Vim or whatever it is.

360
00:36:40.400 --> 00:36:44.870
<v Ben Rady>And I'm just going to run the test myself and I'm going back to the way that I worked for 25, 30 years.

361
00:36:44.870 --> 00:36:45.380
<v Matt Godbolt>Yep. Emacs.

362
00:36:45.380 --> 00:36:57.380
<v Ben Rady>And that is slower. It's definitely a lot slower. And so I think this is just like, again, and I expect this to last like a month.

363
00:36:57.380 --> 00:37:09.020
<v Matt Godbolt>because things move so quickly. It's funny. I did a panel AI agents and the use of it in C++ at CppCon and they just released a video and it's like, you shouldn't have bothered.

364
00:37:09.020 --> 00:37:09.340
<v Ben Rady>Yeah.

365
00:37:09.340 --> 00:37:11.050
<v Matt Godbolt>You know, that was six months ago.

366
00:37:11.050 --> 00:37:12.040
<v Ben Rady>Yeah.

367
00:37:12.040 --> 00:37:13.100
<v Matt Godbolt>The landscape's completely different now.

368
00:37:13.100 --> 00:37:14.060
<v Ben Rady>Yeah, yeah, yeah.

369
00:37:14.060 --> 00:37:27.700
<v Matt Godbolt>You know, it's, it's, it is, I want, yeah, want so this is really interesting. and I know I asked you about this and that was where your opinion and whatever. and things but Obviously, you're now almost doubling down on the vendor lock-in with the fact that you're now like, well, I'm running on AWS.

370
00:37:27.700 --> 00:37:30.160
<v Matt Godbolt>Now, obviously, other providers are available, that kind of stuff. But like, there's...

371
00:37:30.160 --> 00:37:33.540
<v Ben Rady>I can point that Terraform somewhere else and it'll do just fine. You know what I mean?

372
00:37:33.540 --> 00:37:33.940
<v Ben Rady>I'm not really doing anything special there.

373
00:37:33.940 --> 00:37:35.780
<v Matt Godbolt>Sure, sure.

374
00:37:35.780 --> 00:37:36.100
<v Matt Godbolt>Yeah, I mean, I don't think...

375
00:37:36.100 --> 00:37:38.080
<v Ben Rady>The IAM permissions are a little bespoke, but other than that, it's not that big at all.

376
00:37:38.080 --> 00:37:38.120
<v Matt Godbolt>I think...

377
00:37:38.120 --> 00:37:54.820
<v Matt Godbolt>Yeah, and you know, yeah, there's a lot of things that, but yeah, having, you know, holding a thing in your hand and saying, this is my thing and I can do whatever I like with it. You know, in fact, until earlier I had my BBC micro behind me, which is like though the epitome of like literally everything is inside this box.

378
00:37:54.820 --> 00:38:22.400
<v Matt Godbolt>that is that maybe we have to accept that's going or, you know, like everything's a cycle. It used to be, you know, everyone would go and get timeshare on their timeshare machine. That's the only thing we had, you know, it's kind of a comeback round to that, but, but there's something about the models being so, you know, in principle, I can buy computers, I can rack them in my basement, I can connect them up with a network switch and I can go on and I can be like, yeah, I can, I can continue to do this, you know, that, that what I, what I like to do, but I I can't necessarily get access to,

379
00:38:22.400 --> 00:38:33.720
<v Matt Godbolt>the technology that lets me run an agent in the same way, right? And that's not just, you know, the GPU stuff. It's like the whole IP of it and whatever.

380
00:38:33.720 --> 00:38:47.040
<v Matt Godbolt>that just sort of, I suppose, having been so open source for so long, where, you know, in principle, I can compile every piece of code that I use from source. Not that I ever do, but I could, on a machine that is mostly open to me and is well understood.

381
00:38:47.040 --> 00:38:47.220
<v Ben Rady>Yeah.

382
00:38:47.220 --> 00:38:57.530
<v Matt Godbolt>That's one thing to have it sort of like taken away, we'd be like, oh yeah, you know my company uses SQL Server from Microsoft. You're like, wait, I oh, but it doesn't work.

383
00:38:57.530 --> 00:38:58.020
<v Ben Rady>Right, right.

384
00:38:58.020 --> 00:38:59.180
<v Matt Godbolt>like, tough.

385
00:38:59.180 --> 00:38:59.540
<v Ben Rady>Right, right.

386
00:38:59.540 --> 00:39:32.100
<v Matt Godbolt>Sorry about that. It doesn't sit well, but I can't deny the and this is what I wanted to go back to you know as we kind of probably should finish up soon. But like the the joy, the fun aspect and making fun. I am having fun. That's probably why I'm so invested in trying to find a way to make it work well for me so that I can enjoy the things that I'm doing. And you know and that's why I think about this whole difference between outcomes when you just, I want the cool thing, make the cool thing.

387
00:39:32.100 --> 00:39:32.160
<v Ben Rady>Uh-huh.

388
00:39:32.160 --> 00:39:45.440
<v Matt Godbolt>And I don't actually care how the cool thing was made. And having the cool thing is more interesting to me than than the making process. But then, you know, accepting that some of me enjoys the making process, but I knowing that I can choose, certainly my personal life, I can choose to make the cool things.

389
00:39:45.440 --> 00:39:56.200
<v Matt Godbolt>And the hope is that the The thing maker, the automatic thing maker can do the things that the only, sorry, that the that I can't do or I don't want to do rather.

390
00:39:56.200 --> 00:40:30.160
<v Matt Godbolt>And then I'm just left with the things that I can do and I am good at and are my USP. And that's what I hope. We're not there. necessarily yet and now I can't remember where I was going with this big long meander but yeah the joy oh yeah it's burnout I want to just talk about that because I get so you know it's I'm reminded of the times when I first got into programming and I was burning the midnight oil doing all sorts of things and I would go to sleep and I wake up early in the morning and my mind was still buzzing with like oh I could do this thing oh I wonder if we could do that whatever and I'm finding that about programming again

391
00:40:30.160 --> 00:40:30.900
<v Ben Rady>Mm-hmm.

392
00:40:30.900 --> 00:40:42.090
<v Matt Godbolt>But it's perhaps got a slightly darker tone to it because all the time I'm not able to feed the agents that are doing useful work for me, I feel like it's wasted time.

393
00:40:42.090 --> 00:40:42.960
<v Ben Rady>Yeah.

394
00:40:42.960 --> 00:40:55.800
<v Matt Godbolt>And so I, you know, and somebody was saying to me, someone I worked with was saying like, oh, I woke up in the night the other night and I got up and I was like, well, I might as well just check on what it's doing and kind of logged in to just hit enter a few times on some Claude sessions.

395
00:40:55.800 --> 00:40:55.800
<v Ben Rady>Yeah,

396
00:40:55.800 --> 00:41:10.250
<v Matt Godbolt>And there's a certain, like, there's a dark pattern around that. You know, there's a meme went around about the fruit machine where, I'm sorry, fruit machine being a slot machine and to translate for you, where, you know, you pull the crank, which is like hitting the yes, do this, and maybe you get the right answer this time.

397
00:41:10.250 --> 00:41:10.340
<v Ben Rady>yeah. yeah

398
00:41:10.340 --> 00:41:23.000
<v Matt Godbolt>And there is a bit of that and that doesn't, you know I'm I'm I don't know how I feel about that either. it feels you know So I feel like overwhelmed, overworked, burnt because I'm context switching all the time, but also excited. And I'm trying to pick through that.

399
00:41:23.000 --> 00:41:28.060
<v Matt Godbolt>And I wondered if, yeah, having me just talked at you like for 10 minutes, what do you if you could somehow.

400
00:41:28.060 --> 00:41:32.000
<v Ben Rady>I mean, that's, I that yes.

401
00:41:32.000 --> 00:41:34.100
<v Matt Godbolt>All right.

402
00:41:34.100 --> 00:41:38.140
<v Ben Rady>I think you're not the you're not the only person that is feeling that right now.

403
00:41:38.140 --> 00:41:38.270
<v Matt Godbolt>And.

404
00:41:38.270 --> 00:41:50.180
<v Ben Rady>we're One of the things that we're going to have to figure out, you know, I have used the phrase, I think, on this podcast before, a sustainable pace. What does sustainable pace look like when basically you're building software at the speed of thought?

405
00:41:50.180 --> 00:42:00.460
<v Ben Rady>Right? Like there's literally no barrier. I mean, you know, maybe this is a few years ahead of us, but it's like, there's literally no barrier between you coming up with an idea and implementing it.

406
00:42:00.460 --> 00:42:01.700
<v Matt Godbolt>Right

407
00:42:01.700 --> 00:42:02.300
<v Matt Godbolt>yeah

408
00:42:02.300 --> 00:42:14.960
<v Ben Rady>One of the, you know, we had a mutual friend that pointed out that he thought that this sort of agentic programming would separate out programmers that love to code and programmers that love to make things, right?

409
00:42:14.960 --> 00:42:26.400
<v Ben Rady>I think that's a little bit more of a two dimensions in a plane for me. And one thing that I have, because I think I like I enjoy both aspects of it, right?

410
00:42:26.400 --> 00:42:26.480
<v Matt Godbolt>There. Mm-hmm.

411
00:42:26.480 --> 00:42:54.900
<v Ben Rady>Like there's a puzzle solving aspect to writing code that I enjoy. That's why I play games like Factorio. But I also love building things for the sake of building things. And if I could build them at the speed that I can think of them, that would be great. One of the things that I've noticed is that I think actually this has diminished the number of personal projects that I take on because In the past, I would choose projects because I would be getting something from both of those dimensions.

412
00:42:54.900 --> 00:42:58.200
<v Ben Rady>Like, oh, this would be a useful thing and it would be a fun puzzle to solve.

413
00:42:58.200 --> 00:42:58.820
<v Matt Godbolt>Uh-huh, right.

414
00:42:58.820 --> 00:43:00.680
<v Ben Rady>And now the puzzle aspect is completely gone.

415
00:43:00.680 --> 00:43:00.920
<v Matt Godbolt>And or I would learn something and all this, yeah.

416
00:43:00.920 --> 00:43:04.570
<v Ben Rady>right There's no puzzle enjoyment from it at all.

417
00:43:04.570 --> 00:43:04.920
<v Matt Godbolt>Right.

418
00:43:04.920 --> 00:43:09.080
<v Ben Rady>And so there's a certain category of them that just don't meet the bar anymore. right like

419
00:43:09.080 --> 00:43:10.020
<v Matt Godbolt>Interesting to put, yeah.

420
00:43:10.020 --> 00:43:26.300
<v Ben Rady>But I'm also taking on personal projects that I never would have dreamed of doing before because it would have been too time consuming. Right. I think the net number of them is actually lower, but the quality is like,

421
00:43:26.300 --> 00:43:30.080
<v Ben Rady>not better, but more use because it's a personal project. What does better even mean?

422
00:43:30.080 --> 00:43:30.740
<v Matt Godbolt>Yeah, right. Yeah, you definitely.

423
00:43:30.740 --> 00:43:32.020
<v Ben Rady>It's more like more useful, right?

424
00:43:32.020 --> 00:43:32.340
<v Matt Godbolt>Right.

425
00:43:32.340 --> 00:43:42.560
<v Ben Rady>Like there's more of a chance that I'm going to actually use it and it will not just be a thing that I built three years ago and then shoved in a folder somewhere and then forgot about.

426
00:43:42.560 --> 00:43:42.670
<v Matt Godbolt>Right.

427
00:43:42.670 --> 00:43:42.780
<v Ben Rady>it

428
00:43:42.780 --> 00:43:42.880
<v Ben Rady>Right.

429
00:43:42.880 --> 00:43:43.100
<v Matt Godbolt>It is.

430
00:43:43.100 --> 00:43:50.560
<v Matt Godbolt>Yeah, it's definitely changing. You reminded me of a tweet I saw by Ellie Huxtable, who is the person writes Atuin, the shell history thing.

431
00:43:50.560 --> 00:43:50.640
<v Ben Rady>Oh yeah.

432
00:43:50.640 --> 00:43:51.350
<v Matt Godbolt>I don't know if you know it.

433
00:43:51.350 --> 00:43:51.480
<v Ben Rady>Yeah.

434
00:43:51.480 --> 00:43:52.960
<v Matt Godbolt>Yeah. I can't live without it now.

435
00:43:52.960 --> 00:43:53.020
<v Ben Rady>Yeah.

436
00:43:53.020 --> 00:44:03.920
<v Matt Godbolt>That's another sort of crutch I have to live on as I, my memory did disappears and I have to use my infinite shell searchable shell history as my, like the most important intellectual property I create.

437
00:44:03.920 --> 00:44:04.920
<v Ben Rady>so

438
00:44:04.920 --> 00:44:13.960
<v Matt Godbolt>, Yeah, she was retweeting somebody who was like some high school student who was like trying to build a web browser using agents to help them do it.

439
00:44:13.960 --> 00:44:25.500
<v Matt Godbolt>And it's like, and I think her point was something along the lines of like, if you aren't doing this kind of thing, are you even exploring the space anymore? Now now that the barriers have come down so much, well, you know, like this is an amazing kind of thing you can do.

440
00:44:25.500 --> 00:44:37.050
<v Matt Godbolt>Now, whether you're successful or not, this is the new thing that you can, yeah this is a new achievable goal, right? Or at least, you know, you can learn a whole bunch of stuff about why it's not trivial to do this kind of thing.

441
00:44:37.050 --> 00:44:37.140
<v Ben Rady>Right. Right.

442
00:44:37.140 --> 00:44:39.080
<v Matt Godbolt>You know, I was fascinated by that.

443
00:44:39.080 --> 00:44:39.080
<v Ben Rady>right

444
00:44:39.080 --> 00:44:54.180
<v Matt Godbolt>And I thought, wow, you know, what what it would be like to be a teen in this and this environment. But I would like to put a massive thumbprint thing which I now I've made a horrible noise that microphone is, I'm not going to like this in the edit.

445
00:44:54.180 --> 00:45:07.300
<v Matt Godbolt>I come from this as somebody who can afford to pay for the access to these systems at the level, which means effectively, I don't have to think about it so much.

446
00:45:07.300 --> 00:45:13.080
<v Matt Godbolt>I don't hit the limits very much. Right. And that is different from somebody who is,

447
00:45:13.080 --> 00:45:15.000
<v Ben Rady>Yeah.

448
00:45:15.000 --> 00:45:27.920
<v Matt Godbolt>you know, you know, and unable to afford even, I say, the most minimal access to cloud. And that is not a good feel, actually, compared to like, you know, if you could get a computer in the old days, even some time on your friend's computer, you could learn to program.

449
00:45:27.920 --> 00:45:32.960
<v Matt Godbolt>And now it's like, no, you need a $20 a month subscription at the absolute minimum to even start the whole process.

450
00:45:32.960 --> 00:45:33.080
<v Ben Rady>yeah

451
00:45:33.080 --> 00:45:34.140
<v Matt Godbolt>You know, that doesn't sit that well.

452
00:45:34.140 --> 00:45:45.520
<v Ben Rady>And honestly, yeah, those $20 a month subscriptions are clearly being subsidized and are not sustainable and are, yeah. I mean, if you look at, especially what's been happening with some of the rate limiting lately, like it's getting, yeah.

453
00:45:45.520 --> 00:45:47.600
<v Matt Godbolt>So I understand, yeah. it

454
00:45:47.600 --> 00:45:54.400
<v Ben Rady>Like, and so like, yes, it's introducing this whole other like barrier to entry for programming, which is not great.

455
00:45:54.400 --> 00:46:08.560
<v Matt Godbolt>Yeah, it's, yeah. Not great, but, you know, also... if you know if you're, I guess, a craftsman, you can buy a set of tools and you know whittle away at a piece of wood and make something beautiful, and that's wonderful, and it's a new thing.

456
00:46:08.560 --> 00:46:12.790
<v Matt Godbolt>But like you know I can't operate a mill because I can't afford it.

457
00:46:12.790 --> 00:46:12.820
<v Ben Rady>Yeah.

458
00:46:12.820 --> 00:46:27.280
<v Matt Godbolt>It's like, well, fine. you know Maybe that's okay anymore, but it's just that it's always been something that is so emotionally important to us and our backstory. The reason that we you and are even talking to each other now on this podcast is because we were whittling away, right?

459
00:46:27.280 --> 00:46:27.910
<v Ben Rady>It's true. and you know, yeah, yeah, yeah.

460
00:46:27.910 --> 00:46:28.780
<v Matt Godbolt>And now, don't know if

461
00:46:28.780 --> 00:46:48.380
<v Ben Rady>It's possible that history will tell of a brief period of time where unlike pretty much every other professional engineering industry, civil engineering, mechanical engineering, maybe not mechanical, engineering You could essentially for the cost of a laptop, have everything that you needed to apply your profession.

462
00:46:48.380 --> 00:46:48.640
<v Matt Godbolt>Yeah.

463
00:46:48.640 --> 00:46:52.470
<v Ben Rady>And that was incredible. What an amazing thing to have occurred.

464
00:46:52.470 --> 00:46:52.780
<v Matt Godbolt>Yeah.

465
00:46:52.780 --> 00:46:55.290
<v Ben Rady>That's not how normally things occur, right?

466
00:46:55.290 --> 00:46:56.990
<v Matt Godbolt>No, that's true.

467
00:46:56.990 --> 00:47:05.000
<v Ben Rady>You know, you can't be a chemical engineer at home unless you're just brewing beer. And even then it's sort of like, you know, how are you going to scale that?

468
00:47:05.000 --> 00:47:06.070
<v Matt Godbolt>You know, I mean, that's true.

469
00:47:06.070 --> 00:47:16.680
<v Ben Rady>and You're not going to, you're not going to get a job at, you know, Oh God, what is the name of that chemical company? It's like, we don't make the thing. We make the thing that goes, whatever.

470
00:47:16.680 --> 00:47:21.440
<v Ben Rady>Some big chemical company whose name I can't remember right now because you know how to brew your own beer.

471
00:47:21.440 --> 00:47:22.880
<v Matt Godbolt>isn't Isn't your wife a chemical engineer?

472
00:47:22.880 --> 00:47:23.660
<v Ben Rady>Well, that's why I brought that one up.

473
00:47:23.660 --> 00:47:24.300
<v Matt Godbolt>Should we know this stuff?

474
00:47:24.300 --> 00:47:32.050
<v Ben Rady>I mean, you know, she worked in the petroleum industry for a little while and you definitely can't do that at home, nor should you, nor should anyone ever for any reason.

475
00:47:32.050 --> 00:47:33.990
<v Matt Godbolt>Oh. No, that's true. Nor should you. No.

476
00:47:33.990 --> 00:47:40.040
<v Matt Godbolt>True. Oh, boy. Well, somehow we're a like very long time into this podcast, and we should probably stop talking about it, but this is...

477
00:47:40.040 --> 00:47:43.440
<v Ben Rady>Yeah, well, this yeah this is a topic that could go on forever. Yeah.

478
00:47:43.440 --> 00:47:57.240
<v Matt Godbolt>I know, but it's really interesting to check in. and I mean, I think unlike most of our podcasts, this one will probably go out somewhat contemporarily. So maybe this will be up to date when by the time people hear it still. you know like we We won't be so ridiculously out of date, rather.

479
00:47:57.240 --> 00:47:59.960
<v Matt Godbolt>So I mean I'd be interested.

480
00:47:59.960 --> 00:48:01.020
<v Ben Rady>yeah

481
00:48:01.020 --> 00:48:30.280
<v Matt Godbolt>you know it is it's It's a tough and interesting and very deep topic and has a lot of dimensions that we're not used to dealing with as programmers. you know like which Which sort algorithm is better? is like where my you know What should be pulled out how the branch predict as well these are things that I'm kind of more comfortable with but when it's like you know hey this may change the whole nature of what we do as a profession and it may exclude people it may cause environmental damage but it's also very exciting I don't know how to navigate it other than like I'm so kind of riding the wave yeah

482
00:48:30.280 --> 00:48:31.690
<v Ben Rady>Yep. Yep. It's, it's a it is a crazy world. We're in a crazy world.

483
00:48:31.690 --> 00:48:32.160
<v Ben Rady>and Everything's new.

484
00:48:32.160 --> 00:48:44.920
<v Matt Godbolt>Well, friend, let's let's leave it there for this time and we'll let our listeners let us know if they want us to continue ranting and rambling about this or whether we should go back to something a little bit more traditionally twos complementy.

485
00:48:44.920 --> 00:48:48.860
<v Matt Godbolt>But well, either way, this has been fab. Thank you for bringing me up to date with what you're doing.

486
00:48:48.860 --> 00:48:50.560
<v Ben Rady>Right, right.

487
00:48:50.560 --> 00:48:53.000
<v Matt Godbolt>And we'll have to try and find a time to grab a coffee in person sometime and talk more.

488
00:48:53.000 --> 00:48:54.800
<v Ben Rady>Yeah, next time at the bar, that'll be the plan.

489
00:48:54.800 --> 00:48:56.780
<v Matt Godbolt>That works. That works for me.

490
00:48:56.780 --> 00:48:56.940
<v Ben Rady>Yeah, yeah.

491
00:48:56.940 --> 00:48:58.460
<v Matt Godbolt>All right, friend, until next time.

492
00:48:58.460 --> 00:49:01.460
<v Ben Rady>Until next time.

