WEBVTT - AI Isn't Making Engineers 10x As Productive with Colton Voege

0:00:02.440 --> 0:00:03.800
<v Speaker 1>Also media.

0:00:05.600 --> 0:00:07.760
<v Speaker 2>Hello and welcome to Better Offline. I'm your host ed

0:00:07.880 --> 0:00:09.600
<v Speaker 2>zitron as eva by our merchandise.

0:00:09.640 --> 0:00:10.760
<v Speaker 3>Subscribe to the newsletter.

0:00:10.760 --> 0:00:23.000
<v Speaker 4>It's all in the episode notes.

0:00:24.520 --> 0:00:27.840
<v Speaker 2>And today I'm joined by programmer Colton Bogie, who wrote

0:00:27.880 --> 0:00:30.360
<v Speaker 2>an excellent piece about a month ago called no AI

0:00:30.480 --> 0:00:32.519
<v Speaker 2>is not making engineers ten X is powerful.

0:00:33.479 --> 0:00:34.720
<v Speaker 3>Colp. Thanks for joining me.

0:00:34.920 --> 0:00:35.680
<v Speaker 1>Thank you for having me.

0:00:36.360 --> 0:00:38.280
<v Speaker 2>So tell me a little bit about your day to

0:00:38.360 --> 0:00:40.160
<v Speaker 2>day work. What do you do for a living.

0:00:41.240 --> 0:00:45.200
<v Speaker 1>Yeah, so I'm a software engineer, and I work specifically

0:00:45.200 --> 0:00:48.760
<v Speaker 1>in what's called web application development. So that's kind of

0:00:48.800 --> 0:00:51.760
<v Speaker 1>like building rich applications that work in the web browser.

0:00:51.840 --> 0:00:55.240
<v Speaker 1>So think of something like Amazon or Google Drive or

0:00:55.240 --> 0:00:57.080
<v Speaker 1>something where you know you can do a lot of

0:00:57.080 --> 0:01:01.840
<v Speaker 1>interactive features within the applihation within a browser, right, So.

0:01:01.840 --> 0:01:04.360
<v Speaker 2>Kind of like the fundament of most cloud software.

0:01:04.800 --> 0:01:08.160
<v Speaker 1>Yeah. I would say that the if not the majority

0:01:08.200 --> 0:01:10.959
<v Speaker 1>of engineers work in web application development, then probably the

0:01:11.000 --> 0:01:12.440
<v Speaker 1>plurality do right now.

0:01:12.480 --> 0:01:16.400
<v Speaker 2>And it's also a large amount of how people interact

0:01:16.440 --> 0:01:18.080
<v Speaker 2>with software is now in this way.

0:01:17.880 --> 0:01:22.119
<v Speaker 1>Though, Yeah, exactly. Yeah, and that's why that's why most

0:01:22.120 --> 0:01:24.480
<v Speaker 1>developers perhaps work in this field now.

0:01:25.160 --> 0:01:27.880
<v Speaker 2>And you'd think something like that would be perfect for

0:01:27.920 --> 0:01:28.640
<v Speaker 2>AI coding.

0:01:29.720 --> 0:01:29.959
<v Speaker 3>It is.

0:01:30.959 --> 0:01:35.200
<v Speaker 1>It is definitely the most applicable place for AI coding

0:01:35.280 --> 0:01:38.399
<v Speaker 1>of all of them. There's sort of a there's sort

0:01:38.440 --> 0:01:41.119
<v Speaker 1>of a thing where people are like, you know, oh,

0:01:41.240 --> 0:01:43.639
<v Speaker 1>you know, lms don't really work really well for my language,

0:01:43.640 --> 0:01:45.440
<v Speaker 1>and they'll be talking about something like RUST, which is

0:01:45.480 --> 0:01:49.120
<v Speaker 1>more of like a a high performance language rather than

0:01:49.120 --> 0:01:50.280
<v Speaker 1>a web language.

0:01:51.840 --> 0:01:54.200
<v Speaker 3>What is a hypophobic language in this case.

0:01:54.800 --> 0:01:59.320
<v Speaker 1>Just something that's designed to work on like weak hardware

0:01:59.480 --> 0:02:04.080
<v Speaker 1>or a like extremely high speed So like for example,

0:02:04.120 --> 0:02:06.240
<v Speaker 1>like video games aren't built in RUSS. They're usually built

0:02:06.240 --> 0:02:08.320
<v Speaker 1>in a language called C plus plus, but they're they're

0:02:08.320 --> 0:02:12.560
<v Speaker 1>built in a high performance language because you know, you're

0:02:12.880 --> 0:02:15.080
<v Speaker 1>trying to max out as much as you can do.

0:02:15.160 --> 0:02:18.440
<v Speaker 2>Ye're taking advantage of the high performance compute you have.

0:02:18.720 --> 0:02:21.360
<v Speaker 1>Yeah, whereas with a website like you know, like Amazon

0:02:21.440 --> 0:02:24.840
<v Speaker 1>or something like that, you're really not pushing the limit

0:02:24.919 --> 0:02:30.000
<v Speaker 1>in terms of interactivity, and so more modest languages are fine.

0:02:30.760 --> 0:02:31.200
<v Speaker 3>Got it?

0:02:31.280 --> 0:02:33.280
<v Speaker 2>So you laid it out really nicely in the piece,

0:02:33.320 --> 0:02:35.399
<v Speaker 2>so you can have to repeat a few things, I imagine,

0:02:35.480 --> 0:02:40.480
<v Speaker 2>but run me through why AI coding tools can't actually

0:02:40.520 --> 0:02:44.760
<v Speaker 2>make you a ten x engineer or ten times better engineer.

0:02:46.760 --> 0:02:52.200
<v Speaker 1>Yeah, so basically AI is really good at AI is

0:02:52.240 --> 0:02:56.400
<v Speaker 1>almost shockingly good at generating code, and it's almost shockingly

0:02:56.400 --> 0:03:03.000
<v Speaker 1>good at generating code that runs, and it can answer

0:03:03.040 --> 0:03:05.520
<v Speaker 1>a lot of questions that are that are like difficult

0:03:06.360 --> 0:03:09.959
<v Speaker 1>or at least, you know, annoying is probably the better word.

0:03:09.960 --> 0:03:11.680
<v Speaker 1>It's really good at dealing with things that are annoying.

0:03:12.040 --> 0:03:14.680
<v Speaker 1>It's really good at, you know, so encoding. We have

0:03:14.720 --> 0:03:18.079
<v Speaker 1>this concept called boilerplate, and it's it's just code that

0:03:18.120 --> 0:03:20.560
<v Speaker 1>you have to kind of rewrite a lot. And as

0:03:20.600 --> 0:03:23.240
<v Speaker 1>an engineer, ideally you don't have to write a lot

0:03:23.240 --> 0:03:26.240
<v Speaker 1>of boilerplate. Ideal you automate things and distract things, so

0:03:26.320 --> 0:03:28.920
<v Speaker 1>you you don't need to do that very often. But

0:03:29.080 --> 0:03:31.640
<v Speaker 1>it's sort of like a requirement of the job. And

0:03:31.720 --> 0:03:34.359
<v Speaker 1>it's really good at writing that because you know, it's

0:03:34.480 --> 0:03:38.520
<v Speaker 1>just it's kind of like low intent, high volume code,

0:03:39.720 --> 0:03:43.280
<v Speaker 1>quantity over quality type thing. So it's really good. It's

0:03:43.320 --> 0:03:47.680
<v Speaker 1>stuff like that. The problem is that generating code really

0:03:47.760 --> 0:03:52.120
<v Speaker 1>isn't the hard part of being a software engineer. It's

0:03:52.160 --> 0:03:54.840
<v Speaker 1>it's one of the things that really matters, and it's like,

0:03:54.880 --> 0:03:57.480
<v Speaker 1>obviously if you go to college to learn how to code,

0:03:57.480 --> 0:03:58.960
<v Speaker 1>what you're going to spend most of the time doing

0:03:59.040 --> 0:04:02.480
<v Speaker 1>is is typing code, but it's it's really just like

0:04:02.600 --> 0:04:06.000
<v Speaker 1>one thing that you're doing, Like in reality, you're doing

0:04:06.000 --> 0:04:07.880
<v Speaker 1>a lot more thinking about like, Okay, how does this

0:04:08.120 --> 0:04:10.520
<v Speaker 1>work with the systems already have? How do I avoid

0:04:11.160 --> 0:04:14.400
<v Speaker 1>creating what's called tech debt? So tech debt is basically

0:04:14.440 --> 0:04:16.440
<v Speaker 1>like an easy way of thinking about it is when

0:04:16.480 --> 0:04:19.360
<v Speaker 1>you write code that makes writing future code harder. So

0:04:19.480 --> 0:04:22.720
<v Speaker 1>an example would be, you know, you want to write

0:04:22.920 --> 0:04:25.799
<v Speaker 1>like a piece of logic that, let's say computes sales tax.

0:04:25.839 --> 0:04:27.640
<v Speaker 1>If you're, you know, making an online story, you'd want

0:04:27.640 --> 0:04:30.080
<v Speaker 1>to compute sales tax based on where they are. You

0:04:30.120 --> 0:04:31.719
<v Speaker 1>only want to write that once. You don't want to

0:04:31.720 --> 0:04:34.839
<v Speaker 1>have two different places that you know handle sales tax,

0:04:34.880 --> 0:04:38.520
<v Speaker 1>because then, if you know, Illinois changes their sales tax, right,

0:04:38.520 --> 0:04:40.360
<v Speaker 1>you have to change two places instead of one.

0:04:41.000 --> 0:04:44.039
<v Speaker 2>It doesn't doesn't The very nature of code also mean

0:04:44.080 --> 0:04:46.400
<v Speaker 2>that it naturally creates tech debt.

0:04:46.920 --> 0:04:49.920
<v Speaker 1>You know, you can try to mitigate as much as

0:04:49.920 --> 0:04:52.120
<v Speaker 1>you can, but there's not even an idea like that

0:04:52.680 --> 0:04:57.320
<v Speaker 1>all code is tech debt. And and what LLLMS so

0:04:57.640 --> 0:04:59.880
<v Speaker 1>kind of what I mentioned before. You know, lms are

0:05:00.080 --> 0:05:02.240
<v Speaker 1>get at producing boilerplate. But if you get to the

0:05:02.279 --> 0:05:04.880
<v Speaker 1>point where boilerplate is really easy to produce and you're

0:05:04.920 --> 0:05:08.280
<v Speaker 1>not constantly thinking like, Okay, how do I avoid doing

0:05:08.320 --> 0:05:12.159
<v Speaker 1>this in the future, you start, yeah, exactly, you start

0:05:12.200 --> 0:05:15.159
<v Speaker 1>generating more and more code. And just like generating code

0:05:15.240 --> 0:05:17.480
<v Speaker 1>is an it's kind of like writing in terms of,

0:05:17.520 --> 0:05:20.119
<v Speaker 1>like you know, writing a book, like a good writer

0:05:20.800 --> 0:05:22.520
<v Speaker 1>writes fewer words rather than more.

0:05:22.760 --> 0:05:24.400
<v Speaker 3>Yeah. Yeah, brevity is the soul of wit.

0:05:24.800 --> 0:05:28.159
<v Speaker 2>Now. It's because what I've been realizing is that there

0:05:28.200 --> 0:05:31.400
<v Speaker 2>is this delta between people that actually write software and

0:05:31.440 --> 0:05:34.280
<v Speaker 2>people that are excited about AI coding. Because I had

0:05:34.360 --> 0:05:36.919
<v Speaker 2>Carl Brown from the Internet of Bugs on and it

0:05:37.000 --> 0:05:39.320
<v Speaker 2>was this thing of yeah, being the software engineer is

0:05:39.360 --> 0:05:42.360
<v Speaker 2>not just writing one hundred lines of code and then

0:05:42.720 --> 0:05:45.000
<v Speaker 2>giving the thumbs up to your boss. You have to

0:05:45.080 --> 0:05:49.359
<v Speaker 2>interact with various different parts of the organization. Early on

0:05:49.400 --> 0:05:50.920
<v Speaker 2>in the piece as well, you had this bit called

0:05:50.920 --> 0:05:53.240
<v Speaker 2>the math no link to this obviously in the episode notes,

0:05:53.240 --> 0:05:56.400
<v Speaker 2>where it's any software engineer has worked on actual code

0:05:56.400 --> 0:05:59.560
<v Speaker 2>in the natural company knows that you have these steps

0:06:00.120 --> 0:06:02.400
<v Speaker 2>where it isn't just like icode and then I give

0:06:02.440 --> 0:06:03.960
<v Speaker 2>the thumbs up and I'm dumb for the day. You

0:06:04.000 --> 0:06:06.400
<v Speaker 2>have to go through a reviewer, you have to wait

0:06:06.440 --> 0:06:08.560
<v Speaker 2>for them to get back to you. You have to

0:06:08.600 --> 0:06:10.919
<v Speaker 2>contact switching as well. We have to change different windows

0:06:10.920 --> 0:06:13.520
<v Speaker 2>and do different things. There's a shit ton of just

0:06:13.600 --> 0:06:17.599
<v Speaker 2>intermediary work that is nothing to do with actually writing code, right.

0:06:18.720 --> 0:06:22.920
<v Speaker 1>Yeah, absolutely, I mean it's it really is more of

0:06:23.240 --> 0:06:25.760
<v Speaker 1>you know, there's parts of coding that is more science

0:06:25.760 --> 0:06:28.040
<v Speaker 1>than there's parts of coding that are more art and

0:06:28.160 --> 0:06:30.760
<v Speaker 1>more you know, in college, is really common if you're

0:06:30.760 --> 0:06:34.159
<v Speaker 1>getting computer science deority to take communications classes because you

0:06:34.240 --> 0:06:35.840
<v Speaker 1>just have to interact with a lot of people. So

0:06:36.120 --> 0:06:40.320
<v Speaker 1>the standard way that a thing gets done in a

0:06:40.360 --> 0:06:43.640
<v Speaker 1>software project is you have somebody called a product manager,

0:06:43.720 --> 0:06:47.200
<v Speaker 1>and that person's that person's job is to think about

0:06:47.240 --> 0:06:50.440
<v Speaker 1>what the product is as it exists now and what

0:06:50.480 --> 0:06:52.480
<v Speaker 1>should be in the future, and like what features we

0:06:52.480 --> 0:06:55.240
<v Speaker 1>should build, Like basically more than anything, it's you know,

0:06:55.279 --> 0:06:57.080
<v Speaker 1>what what should we build next? And then you have

0:06:57.120 --> 0:06:59.160
<v Speaker 1>designers who are going to decide how that thing should look.

0:06:59.520 --> 0:07:03.480
<v Speaker 1>And engineers have to be this meeting influence because they're

0:07:03.520 --> 0:07:06.640
<v Speaker 1>the only ones in the process who actually know what

0:07:06.680 --> 0:07:08.880
<v Speaker 1>it's like, how hard it is going to be to

0:07:08.880 --> 0:07:12.040
<v Speaker 1>build something. So a frequent interaction is like, you know,

0:07:12.080 --> 0:07:13.840
<v Speaker 1>product maators are like, oh, we should add this, and

0:07:13.880 --> 0:07:16.440
<v Speaker 1>an engineer has to kind of step in and be like, no,

0:07:16.560 --> 0:07:20.000
<v Speaker 1>that's borderline impossible or you know that would take six months,

0:07:21.000 --> 0:07:23.000
<v Speaker 1>right and you want coding.

0:07:23.120 --> 0:07:25.960
<v Speaker 2>Lllms don't fix that problem. They don't do they actually

0:07:25.960 --> 0:07:27.960
<v Speaker 2>make it easier to develop products.

0:07:28.200 --> 0:07:33.400
<v Speaker 1>I think there are uses for LMS in coding, and.

0:07:33.440 --> 0:07:38.240
<v Speaker 2>I'm not even denying that. I'm just like, how, like,

0:07:38.280 --> 0:07:41.280
<v Speaker 2>what do what do those uses end up actually creating?

0:07:42.280 --> 0:07:46.200
<v Speaker 1>Basically, you know, what I found is that I don't

0:07:46.200 --> 0:07:50.640
<v Speaker 1>really like using lms for most product work, even though

0:07:50.680 --> 0:07:52.360
<v Speaker 1>they're good at you know, say like oh add a

0:07:52.360 --> 0:07:54.760
<v Speaker 1>button here that does this. They can be good at that,

0:07:54.880 --> 0:07:58.200
<v Speaker 1>especially if you have a codebase that that works really

0:07:58.280 --> 0:08:02.920
<v Speaker 1>well with lllms. So some programming languages, some tools, some

0:08:03.200 --> 0:08:05.640
<v Speaker 1>we call them libraries and coding you know, they're basically

0:08:05.680 --> 0:08:09.000
<v Speaker 1>like shared software. Some of those things work really well

0:08:09.040 --> 0:08:12.040
<v Speaker 1>with lms because the lms are just trained on the Internet.

0:08:13.120 --> 0:08:16.280
<v Speaker 1>So sites like stack overflow and sites like leak code

0:08:16.320 --> 0:08:18.680
<v Speaker 1>and stuff like that, and so if they have a

0:08:18.760 --> 0:08:22.440
<v Speaker 1>large body of this code to work within their training data,

0:08:22.520 --> 0:08:25.440
<v Speaker 1>like these tools and these languages, they tend to be

0:08:25.440 --> 0:08:28.680
<v Speaker 1>better at writing them. And so you know, I work

0:08:28.920 --> 0:08:32.400
<v Speaker 1>primarily in JavaScript, as do most web application engineers, and

0:08:32.880 --> 0:08:35.640
<v Speaker 1>lms are quite good at JavaScript, but I still don't

0:08:35.720 --> 0:08:38.000
<v Speaker 1>like to use that much because it tends to just

0:08:38.120 --> 0:08:41.760
<v Speaker 1>not understand context very well.

0:08:43.040 --> 0:08:44.800
<v Speaker 3>And mean impracticality.

0:08:45.520 --> 0:08:47.800
<v Speaker 1>So it's kind of just like you know, understanding the

0:08:48.280 --> 0:08:50.640
<v Speaker 1>existing resources that you've already built in your code base.

0:08:50.720 --> 0:08:52.840
<v Speaker 1>So this is like the avoiding writing the same like

0:08:52.920 --> 0:08:56.640
<v Speaker 1>sales tax thing twice. They tend to default to rewriting

0:08:56.720 --> 0:09:03.640
<v Speaker 1>things and they tend to struggle to reuse the same

0:09:03.960 --> 0:09:07.319
<v Speaker 1>like style. So you know, an important thing in coding

0:09:07.559 --> 0:09:11.640
<v Speaker 1>is maintaining consistent like styles of your code. So like

0:09:11.679 --> 0:09:16.600
<v Speaker 1>there's there's a whole theory and practice of actual like

0:09:16.720 --> 0:09:20.960
<v Speaker 1>how your code should look like as like how the texture,

0:09:21.040 --> 0:09:23.560
<v Speaker 1>like how you should avoid, what things you should avoid,

0:09:23.600 --> 0:09:27.160
<v Speaker 1>because there's there's bad patterns, there's good patterns, and you know,

0:09:27.160 --> 0:09:31.040
<v Speaker 1>there's everything in between. I think it's very similar to

0:09:31.160 --> 0:09:35.880
<v Speaker 1>like you know, when image generation AI kind of came

0:09:35.920 --> 0:09:38.040
<v Speaker 1>onto the scene, you had a lot of people being like,

0:09:38.040 --> 0:09:40.240
<v Speaker 1>all right, well, graphic designers are done. You know, they're

0:09:40.240 --> 0:09:42.000
<v Speaker 1>out of a job. They don't need to do anything

0:09:42.200 --> 0:09:44.040
<v Speaker 1>because I can generate a logo now and like it

0:09:44.040 --> 0:09:46.079
<v Speaker 1>looks pretty good. Like I can generate a logo for

0:09:46.160 --> 0:09:48.320
<v Speaker 1>my nail slam or whatever, and look at it looks great.

0:09:48.760 --> 0:09:51.200
<v Speaker 1>But as soon as you try to generate a second

0:09:51.640 --> 0:09:54.120
<v Speaker 1>logo that looks like the first one and you know,

0:09:54.160 --> 0:09:56.840
<v Speaker 1>maybe has a slight modification or or something like that,

0:09:57.240 --> 0:09:59.760
<v Speaker 1>it's really it's really bad at it. It's really bad

0:09:59.760 --> 0:10:01.679
<v Speaker 1>at you using the context and you're like, okay, now

0:10:01.679 --> 0:10:03.640
<v Speaker 1>I need a graphic designer. And as soon as you

0:10:03.679 --> 0:10:09.760
<v Speaker 1>need you know one anyway, yeah, exactly, and so and

0:10:09.960 --> 0:10:12.760
<v Speaker 1>and you know that's it's very similar to engineers, you know,

0:10:12.760 --> 0:10:15.280
<v Speaker 1>they a lot of what you're doing is sort of

0:10:15.320 --> 0:10:20.480
<v Speaker 1>working around context and avoiding redoing things and avoiding moving

0:10:20.559 --> 0:10:22.719
<v Speaker 1>away from your existing styles.

0:10:23.160 --> 0:10:26.400
<v Speaker 2>And what is the critical nature of styles?

0:10:26.480 --> 0:10:26.760
<v Speaker 3>Is that?

0:10:26.800 --> 0:10:30.800
<v Speaker 2>Because is that so the people looking at your staff

0:10:30.920 --> 0:10:33.280
<v Speaker 2>in the future can say, Okay, this is what they

0:10:33.320 --> 0:10:36.400
<v Speaker 2>were going for. This is so that everything doesn't break.

0:10:36.800 --> 0:10:40.840
<v Speaker 1>Yes, exactly. It's about consistency. It's about so there are

0:10:40.880 --> 0:10:43.520
<v Speaker 1>certain you know, for example, JavaScript, which is the main

0:10:43.600 --> 0:10:49.920
<v Speaker 1>language I work in, is almost infamous for basically allowing

0:10:49.960 --> 0:10:53.600
<v Speaker 1>you as the developer to do all sorts of buck

0:10:53.679 --> 0:10:55.920
<v Speaker 1>wild stuff that you should like never do coding wise,

0:10:55.960 --> 0:10:59.480
<v Speaker 1>like a lot of old patterns, a lot of recycled stuff,

0:10:59.559 --> 0:11:01.760
<v Speaker 1>a lot of it just it just lets you. It's

0:11:01.880 --> 0:11:05.920
<v Speaker 1>it's an extremely varied language in the things it supports,

0:11:05.960 --> 0:11:07.480
<v Speaker 1>and so what you want to do when you're writing

0:11:07.480 --> 0:11:10.880
<v Speaker 1>in JavaScript is only use the good parts. You want

0:11:10.920 --> 0:11:13.760
<v Speaker 1>to strategically avoid doing a bunch of bad things. And

0:11:13.840 --> 0:11:16.760
<v Speaker 1>some of those bad things, there's tools that will automatically

0:11:16.800 --> 0:11:29.280
<v Speaker 1>detect if you're doing them.

0:11:29.440 --> 0:11:31.360
<v Speaker 3>What are these bad things? Is it just the job?

0:11:31.679 --> 0:11:34.280
<v Speaker 3>What's so special about Java that it allows you to

0:11:34.640 --> 0:11:34.960
<v Speaker 3>do that?

0:11:35.640 --> 0:11:40.880
<v Speaker 1>Yeah, JavaScript, which is technically different from Java, Yeah, no problem. Basically,

0:11:40.960 --> 0:11:43.320
<v Speaker 1>the reason JavaScript has all these bad parts is because

0:11:43.360 --> 0:11:47.240
<v Speaker 1>it was created in ten days as a toy language

0:11:47.400 --> 0:11:50.640
<v Speaker 1>at Mosaic, which was the precursor to Firefox, you know,

0:11:50.679 --> 0:11:55.200
<v Speaker 1>the first browser that really green traction and sat the Internet.

0:11:55.360 --> 0:11:57.440
<v Speaker 2>I'm old enough to have used Mosaic somehow.

0:11:57.840 --> 0:12:01.240
<v Speaker 1>Yeah. So JavaScript was created in like ten days almost

0:12:01.400 --> 0:12:03.680
<v Speaker 1>like just as like a thing to test, like just

0:12:03.679 --> 0:12:05.760
<v Speaker 1>something to try like, okay, what if we put a

0:12:05.800 --> 0:12:09.160
<v Speaker 1>coding language into the into the browser that people could

0:12:09.200 --> 0:12:14.640
<v Speaker 1>just like ship with their websites. And in response to that,

0:12:14.840 --> 0:12:18.559
<v Speaker 1>other company said, okay, well we need to support JavaScript

0:12:18.559 --> 0:12:20.760
<v Speaker 1>as well, and so when Internet Explorer came out, they

0:12:20.800 --> 0:12:23.439
<v Speaker 1>shipped their own version of JavaScript, which was slightly different.

0:12:24.000 --> 0:12:26.640
<v Speaker 1>And so you have this engineer that was kind of

0:12:26.640 --> 0:12:30.160
<v Speaker 1>built on like these like very hacked to get their principles,

0:12:30.440 --> 0:12:33.920
<v Speaker 1>that was then rebuilt with slightly different principles, and then

0:12:34.200 --> 0:12:36.920
<v Speaker 1>what you have now is thirty years later, sort of

0:12:37.480 --> 0:12:41.280
<v Speaker 1>the conglomeration of all those things into one language, and

0:12:41.880 --> 0:12:45.480
<v Speaker 1>it's improved dramatically in that time. But the nature of

0:12:45.520 --> 0:12:48.240
<v Speaker 1>coding languages is there's a lot of backwards compatibility. Like

0:12:48.240 --> 0:12:51.000
<v Speaker 1>a video game where you know, you you know, you

0:12:51.040 --> 0:12:53.080
<v Speaker 1>want to be able to build a computer that can

0:12:53.160 --> 0:12:56.040
<v Speaker 1>run a game from nineteen ninety one, so you want

0:12:56.040 --> 0:12:58.079
<v Speaker 1>the browser to be able to still run code largely

0:12:58.120 --> 0:13:00.880
<v Speaker 1>that was written in nineteen ninety five or whatever. So

0:13:01.120 --> 0:13:03.560
<v Speaker 1>a lot of that stuff still exists, and what they've

0:13:03.559 --> 0:13:06.680
<v Speaker 1>done is introduce new patterns that can be better, and

0:13:06.720 --> 0:13:09.440
<v Speaker 1>so there's a sort of an equal amount of like

0:13:09.520 --> 0:13:13.800
<v Speaker 1>avoiding that and then also just consistency. So there are

0:13:14.120 --> 0:13:17.640
<v Speaker 1>times where there's two good ways to write ways to

0:13:17.720 --> 0:13:20.120
<v Speaker 1>do something, but you always want to do it only

0:13:20.160 --> 0:13:22.600
<v Speaker 1>in one way so that anytime someone reads it, they

0:13:22.640 --> 0:13:24.360
<v Speaker 1>see that pattern and they say, okay, I know exactly

0:13:24.440 --> 0:13:25.240
<v Speaker 1>what this does.

0:13:25.600 --> 0:13:29.920
<v Speaker 2>Right, And this fundamentally feels like something large of language

0:13:29.920 --> 0:13:32.960
<v Speaker 2>world is bad at because they don't know anything and

0:13:32.960 --> 0:13:35.480
<v Speaker 2>they don't create anything unique either.

0:13:35.520 --> 0:13:37.720
<v Speaker 3>They just repeat yeah exactly.

0:13:37.760 --> 0:13:42.400
<v Speaker 1>I mean, they are statistical inference models, and so they

0:13:42.480 --> 0:13:46.200
<v Speaker 1>are very good at generating what they think should come

0:13:46.240 --> 0:13:51.320
<v Speaker 1>next based on probabilities. And you can when you're training

0:13:51.480 --> 0:13:53.240
<v Speaker 1>a large language model, you can try to push it

0:13:53.240 --> 0:13:55.000
<v Speaker 1>in one way, push it in another way to say

0:13:55.000 --> 0:13:56.920
<v Speaker 1>like no, don't do that, do that. But like trying

0:13:56.960 --> 0:13:59.480
<v Speaker 1>to do that on the broad spectrum of all things

0:13:59.559 --> 0:14:02.640
<v Speaker 1>code is impossible, and so you're going to get things

0:14:02.679 --> 0:14:05.320
<v Speaker 1>that default to the way that they were done on

0:14:05.360 --> 0:14:08.000
<v Speaker 1>the Internet, and so much like so, like like I said,

0:14:08.080 --> 0:14:12.560
<v Speaker 1>JavaScript it is thirty years old, it's extremely it's gone

0:14:12.600 --> 0:14:15.160
<v Speaker 1>through a lot of turk times in terms of patterns

0:14:15.480 --> 0:14:19.280
<v Speaker 1>and so on the Internet, there are just fast swaths

0:14:19.320 --> 0:14:21.720
<v Speaker 1>of terrible JavaScript and you know.

0:14:22.000 --> 0:14:24.320
<v Speaker 2>So it's just these models are trained on bad code

0:14:24.320 --> 0:14:25.480
<v Speaker 2>as well as good code.

0:14:25.840 --> 0:14:29.560
<v Speaker 1>Yeah, exactly, and and that you know, I'm sure they're

0:14:29.560 --> 0:14:33.160
<v Speaker 1>trying very hard when they're training the models to filter

0:14:33.240 --> 0:14:34.600
<v Speaker 1>some of this stuff out, but like trying to do

0:14:34.640 --> 0:14:39.080
<v Speaker 1>a broad filter on hundreds of thousands, millions even of

0:14:39.200 --> 0:14:43.320
<v Speaker 1>what does say again, like decades, Like I mean, JavaScript

0:14:43.360 --> 0:14:45.680
<v Speaker 1>has been around for thirty years. I just have most

0:14:45.960 --> 0:14:48.320
<v Speaker 1>programming languages that are in use right now.

0:14:48.440 --> 0:14:52.920
<v Speaker 2>Right, but this particular one seems particularly chaotic in how

0:14:53.000 --> 0:14:53.600
<v Speaker 2>it's sprawled.

0:14:54.160 --> 0:14:57.600
<v Speaker 1>Yes, JavaScript is a particularly thirty language. Yeah.

0:14:57.720 --> 0:15:00.600
<v Speaker 2>Why So what you're describing, I'm not trying to put

0:15:00.600 --> 0:15:03.040
<v Speaker 2>words in your mouth, is that this stuff doesn't do

0:15:03.160 --> 0:15:05.280
<v Speaker 2>the stuff that everyone's saying it does. Like it's not

0:15:05.400 --> 0:15:09.720
<v Speaker 2>replacing engineers. It doesn't even seem like it could replace engineers.

0:15:10.120 --> 0:15:12.640
<v Speaker 2>Like it's just not it doesn't do In fact, maybe

0:15:12.680 --> 0:15:15.520
<v Speaker 2>it's fair to say that. So it doesn't do software engineering.

0:15:16.400 --> 0:15:19.240
<v Speaker 1>That's almost the perfect way to put it. It does coding,

0:15:19.480 --> 0:15:22.720
<v Speaker 1>but it doesn't do software engineering, and software engineering is

0:15:22.920 --> 0:15:25.680
<v Speaker 1>kind of this broader practice of like everything that comes

0:15:25.720 --> 0:15:30.800
<v Speaker 1>together around coding. So you know, some people really integrate

0:15:31.040 --> 0:15:35.440
<v Speaker 1>lms deeply into their everyday work and they do similar

0:15:35.480 --> 0:15:38.000
<v Speaker 1>work to what I do. So you know, there are

0:15:38.040 --> 0:15:42.760
<v Speaker 1>people who who are primarily having like lms write their code,

0:15:42.800 --> 0:15:48.880
<v Speaker 1>and they can be good engineers, but they're intervening pretty

0:15:48.880 --> 0:15:52.000
<v Speaker 1>constantly from what I understand, and you know, they're having

0:15:52.040 --> 0:15:54.400
<v Speaker 1>to sort of redirect it, make sure it stays on

0:15:54.440 --> 0:15:58.240
<v Speaker 1>patterns and all that stuff, and there's just kind of

0:15:58.280 --> 0:15:59.800
<v Speaker 1>you know, this is the reason that I don't really

0:16:00.360 --> 0:16:03.880
<v Speaker 1>elms that much, is there's just a constant tension between

0:16:04.400 --> 0:16:09.160
<v Speaker 1>the the lack of context they have and you know,

0:16:09.200 --> 0:16:11.360
<v Speaker 1>what you want them to do and constantly reviewing the

0:16:11.400 --> 0:16:13.840
<v Speaker 1>code and making sure it's up to standards when I

0:16:13.880 --> 0:16:15.560
<v Speaker 1>know I could just write it and you know it'll

0:16:15.560 --> 0:16:17.720
<v Speaker 1>take up out as much time then as it would

0:16:17.720 --> 0:16:21.400
<v Speaker 1>take prompting and re prompting. It's just I get better

0:16:21.440 --> 0:16:23.520
<v Speaker 1>code that way, and that's that's what I care about most.

0:16:23.640 --> 0:16:26.160
<v Speaker 2>So do you think it's kind of a mirage al

0:16:26.200 --> 0:16:28.040
<v Speaker 2>most the productivity benefits?

0:16:28.760 --> 0:16:32.320
<v Speaker 1>I think it would vary a lot. I think yes, broadly,

0:16:32.720 --> 0:16:35.240
<v Speaker 1>I think that there are productivity benefits, but like these

0:16:35.320 --> 0:16:38.600
<v Speaker 1>like huge outsides, like oh my gosh, I'm galaxy brained

0:16:38.640 --> 0:16:41.800
<v Speaker 1>right now, I'm doing so much. I think that that

0:16:42.320 --> 0:16:46.840
<v Speaker 1>is largely a mirage based on like extrapolation of like

0:16:47.000 --> 0:16:50.440
<v Speaker 1>small wins. I talk about this a little bit in

0:16:50.440 --> 0:16:53.440
<v Speaker 1>my article that you know, there are times. One thing

0:16:53.480 --> 0:16:56.560
<v Speaker 1>that I use LMS for a lot and not a

0:16:56.600 --> 0:16:59.920
<v Speaker 1>lot sometimes, but that they are really good at is

0:17:00.160 --> 0:17:02.640
<v Speaker 1>you know, sometimes you're writing code and you're like, I

0:17:02.680 --> 0:17:04.520
<v Speaker 1>need to write a thing that I will only run

0:17:04.560 --> 0:17:06.800
<v Speaker 1>once and I will throw in the trash, or I

0:17:06.800 --> 0:17:09.960
<v Speaker 1>need to write a thing and it uses this tool

0:17:10.200 --> 0:17:13.199
<v Speaker 1>that like I don't have the time to learn, but

0:17:13.280 --> 0:17:15.280
<v Speaker 1>like I'd really like to have this tool, Like I'd

0:17:15.320 --> 0:17:19.159
<v Speaker 1>really like to just like use this once and so

0:17:19.320 --> 0:17:21.320
<v Speaker 1>you can you can vibe code something and not really

0:17:21.440 --> 0:17:23.400
<v Speaker 1>understand what the code does. You can run it once

0:17:23.520 --> 0:17:26.000
<v Speaker 1>and not you know, validate the output and make sure

0:17:26.040 --> 0:17:29.680
<v Speaker 1>it works fine, and you know I've saved in that time.

0:17:29.800 --> 0:17:32.399
<v Speaker 1>You know, it might have taken me five hours to

0:17:32.480 --> 0:17:34.679
<v Speaker 1>like learn how to use this tool properly and like

0:17:34.760 --> 0:17:37.160
<v Speaker 1>learn how to use it with good standards. It could

0:17:37.320 --> 0:17:39.560
<v Speaker 1>even have taken me more, and instead I spent twenty minutes.

0:17:40.240 --> 0:17:42.480
<v Speaker 2>You know, wouldn't that be dangerous because you don't know

0:17:42.520 --> 0:17:45.560
<v Speaker 2>how it works exactly.

0:17:45.400 --> 0:17:47.160
<v Speaker 1>Exactly why I like to only use it for these

0:17:47.160 --> 0:17:51.480
<v Speaker 1>like one time like low. You know. So for example,

0:17:51.600 --> 0:17:54.240
<v Speaker 1>I wrote some code the other week and I was

0:17:54.280 --> 0:17:58.320
<v Speaker 1>basically I basically refactored some existing code. So I adjusted

0:17:58.320 --> 0:18:00.720
<v Speaker 1>how it worked a little bit, and I realized there

0:18:00.760 --> 0:18:04.800
<v Speaker 1>was a way that I could break some existing code

0:18:05.080 --> 0:18:07.240
<v Speaker 1>with it. But I didn't have an easy way of

0:18:07.320 --> 0:18:10.520
<v Speaker 1>checking across the entire code based. So we have tests

0:18:10.560 --> 0:18:12.919
<v Speaker 1>in our code base that would you know, catch issues,

0:18:12.920 --> 0:18:15.359
<v Speaker 1>but there's always some code that isn't quite up to

0:18:15.640 --> 0:18:18.480
<v Speaker 1>up to par with tests. And so I had this

0:18:18.560 --> 0:18:21.360
<v Speaker 1>idea that you know, a simple a really simple language

0:18:21.359 --> 0:18:24.320
<v Speaker 1>parser could go through and make sure that this code

0:18:24.359 --> 0:18:26.840
<v Speaker 1>was right, you know, something that is only like thirty

0:18:26.880 --> 0:18:30.639
<v Speaker 1>lines of code. But language parsing is really complicated, and

0:18:30.800 --> 0:18:33.560
<v Speaker 1>the tools to do it are you know there, there

0:18:33.600 --> 0:18:36.320
<v Speaker 1>are a lot of them, and they're very well supported.

0:18:36.359 --> 0:18:40.320
<v Speaker 1>And because language parsing is a huge deal, but it

0:18:40.359 --> 0:18:41.960
<v Speaker 1>would it would take me a lot of time to

0:18:42.040 --> 0:18:43.680
<v Speaker 1>learn that. So I just I just vibe coded a

0:18:43.720 --> 0:18:46.680
<v Speaker 1>little tool. I said, hey, find me every case where

0:18:46.680 --> 0:18:48.680
<v Speaker 1>I use this function, and I call it like this

0:18:49.680 --> 0:18:52.480
<v Speaker 1>in this entire code base, or actually said, I said,

0:18:52.480 --> 0:18:55.199
<v Speaker 1>write a script that will find me that and I

0:18:55.240 --> 0:18:56.800
<v Speaker 1>looked at the code, I was like, yeah, that looks right,

0:18:56.840 --> 0:18:59.720
<v Speaker 1>that looks right, looks right. I ran it, it said

0:18:59.720 --> 0:19:01.639
<v Speaker 1>there was there's no issues in my code base. So

0:19:01.680 --> 0:19:04.160
<v Speaker 1>I intentionally created an issue just to make sure it worked.

0:19:04.400 --> 0:19:07.000
<v Speaker 1>And it worked, it showed it, and so then I

0:19:07.040 --> 0:19:08.640
<v Speaker 1>got rid of the intentional issue. I was like, Okay,

0:19:08.680 --> 0:19:10.440
<v Speaker 1>this is probably good, and I pushed my code and

0:19:10.480 --> 0:19:11.320
<v Speaker 1>it turned out to be good.

0:19:11.480 --> 0:19:14.919
<v Speaker 3>But that's you know, that also seems low stakes.

0:19:15.080 --> 0:19:18.000
<v Speaker 1>Exactly, and it's it's what I would say, wouldn't scale.

0:19:18.040 --> 0:19:21.879
<v Speaker 1>So if I really needed to start doing like language

0:19:21.880 --> 0:19:24.720
<v Speaker 1>person constantly, like I was doing it daily at my job,

0:19:25.080 --> 0:19:28.520
<v Speaker 1>I simply would have to learn. Like you said, you know,

0:19:28.680 --> 0:19:30.520
<v Speaker 1>how do you know that there are any issues? I

0:19:30.520 --> 0:19:33.879
<v Speaker 1>would have to learn the tools, right, So the time

0:19:33.920 --> 0:19:39.440
<v Speaker 1>that I saved was by avoiding learning for this one thing.

0:19:39.560 --> 0:19:42.360
<v Speaker 1>But eventually, like if you're going to make something your

0:19:42.359 --> 0:19:44.119
<v Speaker 1>full time job, you have to learn it because you

0:19:44.160 --> 0:19:46.280
<v Speaker 1>can't fully trust the output.

0:19:46.080 --> 0:19:50.120
<v Speaker 3>Because it isn't your job, like you were just kind

0:19:50.160 --> 0:19:51.240
<v Speaker 3>of mimicking.

0:19:51.720 --> 0:19:55.520
<v Speaker 1>Yeah, and you know you have to. You know, the

0:19:55.760 --> 0:20:01.480
<v Speaker 1>llms make mistakes in occasionally extremely catastrophic ways. There's a

0:20:01.640 --> 0:20:04.160
<v Speaker 1>thing called slop squatting. Have you heard of slap squatting?

0:20:04.440 --> 0:20:06.399
<v Speaker 3>No, but please tell me. I love this term so

0:20:06.520 --> 0:20:07.280
<v Speaker 3>much already.

0:20:07.640 --> 0:20:11.040
<v Speaker 1>Yeah. So basically you might you might have heard like

0:20:11.119 --> 0:20:12.160
<v Speaker 1>domain squatting.

0:20:12.240 --> 0:20:13.960
<v Speaker 2>So this is where like I think I know what

0:20:14.000 --> 0:20:15.840
<v Speaker 2>this is and I'm very excited to hear more.

0:20:16.359 --> 0:20:18.200
<v Speaker 1>Yeah. So, like you know, this was a thing where

0:20:18.240 --> 0:20:21.920
<v Speaker 1>like in nineteen, you know, ninety one, you're like, Okay,

0:20:21.960 --> 0:20:23.840
<v Speaker 1>I think the Internet's gonna be big, so I'm gonna

0:20:23.840 --> 0:20:26.639
<v Speaker 1>grab Nike dot com. Right, I'm just gonna hold it.

0:20:26.680 --> 0:20:30.679
<v Speaker 1>So that's squatting a domain. So slap squatting is basically

0:20:30.800 --> 0:20:36.919
<v Speaker 1>where you the the lms. You know, they're statistical inference machines.

0:20:36.920 --> 0:20:41.200
<v Speaker 1>They don't they don't actually understand uh, what they're doing.

0:20:41.280 --> 0:20:45.520
<v Speaker 1>And so you know, sometimes they will import software.

0:20:45.840 --> 0:20:49.960
<v Speaker 2>They will oh is this when it looks on GitHub

0:20:50.000 --> 0:20:52.160
<v Speaker 2>for something that doesn't exist.

0:20:52.480 --> 0:20:56.399
<v Speaker 1>Yes, and and it it It will just add code

0:20:56.400 --> 0:20:59.520
<v Speaker 1>to your project that's like import this thing and it

0:20:59.560 --> 0:21:02.159
<v Speaker 1>will stall it and it'll say like, okay, this is

0:21:02.200 --> 0:21:04.160
<v Speaker 1>the library that you want to use, and it's it's

0:21:04.200 --> 0:21:07.000
<v Speaker 1>not right. It's it's either misspelled or it's you know,

0:21:07.560 --> 0:21:09.880
<v Speaker 1>for example, you would be looking for a library called

0:21:10.359 --> 0:21:13.400
<v Speaker 1>uh left dash pad, and it would import something called

0:21:13.520 --> 0:21:18.000
<v Speaker 1>left pad with no dash. And so what people realized

0:21:18.119 --> 0:21:21.480
<v Speaker 1>is that they can, you know, when the the lms,

0:21:21.480 --> 0:21:25.359
<v Speaker 1>there's statistical machines, and so they frequently they do the

0:21:25.400 --> 0:21:27.640
<v Speaker 1>same thing a lot, they make the same mistakes a lot.

0:21:27.680 --> 0:21:31.800
<v Speaker 1>So you could grab that library left pad with no

0:21:31.960 --> 0:21:36.679
<v Speaker 1>dago and jet and put code in there that works,

0:21:36.920 --> 0:21:38.960
<v Speaker 1>that does the thing that the library is supposed to do,

0:21:39.080 --> 0:21:44.480
<v Speaker 1>but also retrieves, you know, all of the secrets that

0:21:44.520 --> 0:21:47.360
<v Speaker 1>are in your environment or like looks for and crypto

0:21:47.359 --> 0:21:50.960
<v Speaker 1>wallets or like production database passwords and stuff like that.

0:21:51.520 --> 0:21:54.160
<v Speaker 2>And if you're someone that can't read code or can't

0:21:54.200 --> 0:21:56.399
<v Speaker 2>read that kind of code, you would have no idea

0:21:56.400 --> 0:21:57.080
<v Speaker 2>this is happening.

0:21:57.440 --> 0:22:00.200
<v Speaker 1>You'd have no idea. And even if you're somebody who

0:22:00.240 --> 0:22:03.240
<v Speaker 1>does read code really well, if you you know, look

0:22:03.280 --> 0:22:06.399
<v Speaker 1>at that he said, it's it's important left You're like,

0:22:06.480 --> 0:22:08.800
<v Speaker 1>that sounds right, that looks right, like unless you are

0:22:08.840 --> 0:22:11.719
<v Speaker 1>really familiar with this library, and even if you are familiar,

0:22:11.920 --> 0:22:14.560
<v Speaker 1>you might just like gloss right over it. So it's

0:22:14.600 --> 0:22:17.560
<v Speaker 1>it's really really really dangerous, and like, this is the

0:22:17.600 --> 0:22:22.760
<v Speaker 1>type of thing that could you know, like maybe if

0:22:23.080 --> 0:22:25.720
<v Speaker 1>like if the LM is making you even twice as productive,

0:22:26.080 --> 0:22:28.000
<v Speaker 1>you know, that doesn't mean much if you know, there's

0:22:28.040 --> 0:22:31.159
<v Speaker 1>a chance you could destroy your entire company with a

0:22:31.160 --> 0:22:34.720
<v Speaker 1>catastrophic security breach, you know, yeah, leak all your database

0:22:34.760 --> 0:22:36.040
<v Speaker 1>to this this hacker.

0:22:37.600 --> 0:22:42.600
<v Speaker 3>And so yeah, not good. Yeah, is that becoming preblem?

0:22:43.359 --> 0:22:46.440
<v Speaker 1>I haven't heard much of it like happening in the wild,

0:22:46.800 --> 0:22:49.040
<v Speaker 1>but it's it's just one of those things that is

0:22:49.520 --> 0:22:52.760
<v Speaker 1>bound to happen because again, these are just just statistical

0:22:52.760 --> 0:22:55.119
<v Speaker 1>models that they don't they don't have the ability to

0:22:55.160 --> 0:22:58.480
<v Speaker 1>really reason about the actual nature of the things that

0:22:58.480 --> 0:23:00.600
<v Speaker 1>they're doing. They can try, you know, they can make

0:23:00.640 --> 0:23:03.359
<v Speaker 1>a sub LLM call and ask the other element like

0:23:03.640 --> 0:23:06.639
<v Speaker 1>does this look right? But then you're you know, burning

0:23:06.640 --> 0:23:07.040
<v Speaker 1>more and more.

0:23:07.480 --> 0:23:09.760
<v Speaker 2>And I also, at some point you are trusting the

0:23:09.840 --> 0:23:12.800
<v Speaker 2>statistical model to measure a statistical model's ability to do

0:23:12.920 --> 0:23:13.320
<v Speaker 2>is job.

0:23:13.880 --> 0:23:18.400
<v Speaker 1>Yes, exactly, And you know it kind of devolves. Anybody

0:23:18.400 --> 0:23:22.320
<v Speaker 1>who's who's used an LLM for coding knows that the

0:23:22.400 --> 0:23:25.480
<v Speaker 1>deeper you go into like a single prompt, like the

0:23:25.560 --> 0:23:28.440
<v Speaker 1>more back and forth, the larger the context window, the

0:23:29.000 --> 0:23:31.800
<v Speaker 1>more garbage it gets. And so like as you have

0:23:31.920 --> 0:23:35.760
<v Speaker 1>things like working off of other LLLM input, which is

0:23:35.800 --> 0:23:37.720
<v Speaker 1>effectively what you're doing in a large context window. You know,

0:23:37.720 --> 0:23:41.399
<v Speaker 1>it's just what the LM is sort of reprocessing the

0:23:41.440 --> 0:23:44.640
<v Speaker 1>text that it generated and that you've added to it.

0:23:44.640 --> 0:23:47.240
<v Speaker 1>It steadily gets worse the later in the context window.

0:23:47.280 --> 0:23:49.720
<v Speaker 1>So so basically all of these sort of mitigations are

0:23:50.400 --> 0:23:55.199
<v Speaker 1>you know, they've made surprising progress with the way that like,

0:23:55.640 --> 0:23:57.960
<v Speaker 1>you know, things like this don't happen is like just

0:23:58.160 --> 0:24:01.920
<v Speaker 1>raw hallucinations of like I think this library exists. They

0:24:01.920 --> 0:24:04.040
<v Speaker 1>happen a lot less now than they used to, but

0:24:04.080 --> 0:24:07.160
<v Speaker 1>they're they're just always they're always.

0:24:06.840 --> 0:24:09.280
<v Speaker 3>Gonnask and they're also always gonna be there.

0:24:09.600 --> 0:24:12.280
<v Speaker 2>Yeah, it's not it's not really something you could unless

0:24:12.280 --> 0:24:14.639
<v Speaker 2>we invent new maths.

0:24:15.040 --> 0:24:18.320
<v Speaker 1>Yeah, I mean, at least with the way we approach

0:24:18.440 --> 0:24:22.199
<v Speaker 1>AI right now, which is is is based purely on

0:24:22.880 --> 0:24:27.639
<v Speaker 1>language as tokens and it can't really fundamentally like understand

0:24:27.640 --> 0:24:29.960
<v Speaker 1>things outside of you know, word probabilities.

0:24:44.440 --> 0:24:45.959
<v Speaker 3>So where is this pressure coming from?

0:24:46.040 --> 0:24:49.320
<v Speaker 2>Because it feels like it's everywhere and you've got people

0:24:49.440 --> 0:24:52.399
<v Speaker 2>up Paul Graham who are wanking on about Oh that

0:24:52.760 --> 0:24:55.639
<v Speaker 2>I met a guy who writes ten thousand lines of code.

0:24:55.680 --> 0:24:57.359
<v Speaker 3>I think he said, what is it?

0:24:57.600 --> 0:24:59.520
<v Speaker 2>Are we just finding out how many people don't know

0:24:59.520 --> 0:25:00.000
<v Speaker 2>how code is?

0:25:00.119 --> 0:25:04.960
<v Speaker 1>Wooks? I think a lot of that. Yes, Like I said,

0:25:04.960 --> 0:25:07.880
<v Speaker 1>it's exactly the same way as like people, you know,

0:25:08.080 --> 0:25:10.040
<v Speaker 1>when the first image generation models were like, oh great,

0:25:10.040 --> 0:25:12.679
<v Speaker 1>we don't need graphic designers anymore, and then they are,

0:25:12.880 --> 0:25:15.600
<v Speaker 1>you know, oh great, we don't need customer support chat anymore,

0:25:15.720 --> 0:25:18.919
<v Speaker 1>because they fundamentally don't understand what those roles do. You know,

0:25:18.960 --> 0:25:23.399
<v Speaker 1>they're they think graphic designer and they think image generator.

0:25:23.920 --> 0:25:26.960
<v Speaker 1>But a graphic designer is a human being. That's that's

0:25:27.160 --> 0:25:30.520
<v Speaker 1>dealing with different stakeholders, dealing with people saying like no, no, no,

0:25:30.560 --> 0:25:33.680
<v Speaker 1>the logo can't have that, or you know, yes the logo.

0:25:33.520 --> 0:25:34.280
<v Speaker 3>Must get bump.

0:25:35.200 --> 0:25:38.920
<v Speaker 1>Yeah, yeah, exactly, and they're dealing with you know, different requirements,

0:25:38.960 --> 0:25:41.760
<v Speaker 1>and then they're needing to make variations, which is something

0:25:41.760 --> 0:25:45.080
<v Speaker 1>that LMS are not always very good at, or I

0:25:45.080 --> 0:25:48.440
<v Speaker 1>should just say jeneratorf AI is not always very good at. Yeah,

0:25:49.320 --> 0:25:52.560
<v Speaker 1>and so so I strange part of it is is

0:25:52.560 --> 0:25:54.359
<v Speaker 1>is people who you know, like I said, you know,

0:25:54.400 --> 0:25:56.520
<v Speaker 1>you get these like brief bursts where you're like, oh

0:25:56.560 --> 0:25:59.040
<v Speaker 1>my god, I just say so much time and you

0:25:59.160 --> 0:26:01.800
<v Speaker 1>extrapolate that. So some of it I think as engineers

0:26:01.840 --> 0:26:04.600
<v Speaker 1>who are just like actual engineers who know how to code,

0:26:04.600 --> 0:26:06.880
<v Speaker 1>who see these things and they think like I did

0:26:06.880 --> 0:26:10.320
<v Speaker 1>this today, and like I must have been so much

0:26:10.359 --> 0:26:12.520
<v Speaker 1>more productive as a result. You know, I saw this

0:26:12.560 --> 0:26:16.160
<v Speaker 1>one thing happen. But they don't really actually measure in

0:26:16.280 --> 0:26:19.359
<v Speaker 1>depth what they produced and was it more than what

0:26:19.400 --> 0:26:22.520
<v Speaker 1>they would have produced. There have been some studies to

0:26:22.560 --> 0:26:25.800
<v Speaker 1>measure that, and they haven't looked particularly good for lllms.

0:26:25.840 --> 0:26:29.640
<v Speaker 1>You know, if you actually compare people, you know, using

0:26:29.680 --> 0:26:34.120
<v Speaker 1>AI versus not using AI, the results don't always look

0:26:34.160 --> 0:26:38.399
<v Speaker 1>particularly great for AI. And one thing that's very common

0:26:38.400 --> 0:26:40.720
<v Speaker 1>out of that is that people overestimate their performance.

0:26:41.160 --> 0:26:43.320
<v Speaker 2>So I think that might be a problem across or

0:26:43.480 --> 0:26:46.399
<v Speaker 2>like a lot of people don't. I also think my

0:26:46.440 --> 0:26:49.480
<v Speaker 2>grander theory with all of this is a lot of

0:26:49.480 --> 0:26:50.800
<v Speaker 2>people don't know what work is.

0:26:51.280 --> 0:26:52.040
<v Speaker 3>Like a lot of these.

0:26:51.880 --> 0:26:54.399
<v Speaker 2>Investors and managers and such, and even people in the

0:26:54.440 --> 0:26:57.439
<v Speaker 2>media don't seem to actually know what jobs are and

0:26:57.480 --> 0:26:59.439
<v Speaker 2>how the jobs work, and they think that things like

0:26:59.480 --> 0:27:02.400
<v Speaker 2>coding is just like I said earlier, yeah, just walk

0:27:02.400 --> 0:27:04.600
<v Speaker 2>into work or write ten thousand lines of code on

0:27:04.640 --> 0:27:07.199
<v Speaker 2>a walk home. But now I can write twenty billion

0:27:07.240 --> 0:27:09.280
<v Speaker 2>lines of code because that's all my job is.

0:27:10.359 --> 0:27:12.800
<v Speaker 1>Yeah, absolutely, I mean this is this is something I

0:27:12.840 --> 0:27:15.159
<v Speaker 1>talk about in my article, is that there's always this

0:27:15.240 --> 0:27:17.880
<v Speaker 1>like degree of separation and the people who are talking

0:27:17.960 --> 0:27:23.080
<v Speaker 1>the most about AI coding' aren't really coders and they're

0:27:23.119 --> 0:27:26.280
<v Speaker 1>not really providing like detailed reproduction steps.

0:27:27.600 --> 0:27:27.760
<v Speaker 4>You know.

0:27:27.840 --> 0:27:31.520
<v Speaker 1>I know engineers who love using AI like every single day,

0:27:31.560 --> 0:27:33.320
<v Speaker 1>and they use it for like all of their projects.

0:27:33.600 --> 0:27:35.360
<v Speaker 1>And I know really good ones to do that. And

0:27:35.600 --> 0:27:39.080
<v Speaker 1>if I asked them like, hey, how could I like

0:27:39.160 --> 0:27:42.760
<v Speaker 1>be more likely be more like you? How could I

0:27:42.840 --> 0:27:45.640
<v Speaker 1>be a better coder? One of the last things they'll

0:27:45.640 --> 0:27:48.359
<v Speaker 1>say is, probably, you know, start using AI more, for

0:27:48.760 --> 0:27:52.320
<v Speaker 1>it's really just a tool to accomplish part of their job.

0:27:52.520 --> 0:27:54.640
<v Speaker 1>And so so yeah, I think there's a lot of

0:27:55.119 --> 0:27:59.800
<v Speaker 1>you know, there's probably you know, plenty of genuine people

0:27:59.840 --> 0:28:02.639
<v Speaker 1>who who just like you know, they've never written a

0:28:02.640 --> 0:28:04.560
<v Speaker 1>line of code in their life. They pull up Lovable

0:28:04.880 --> 0:28:06.840
<v Speaker 1>they say, generate me an app that does this, and

0:28:06.880 --> 0:28:09.240
<v Speaker 1>like they legitimately are like, oh my gosh, it actually

0:28:09.280 --> 0:28:14.120
<v Speaker 1>worked like I I can code, and they just yeah,

0:28:14.119 --> 0:28:16.480
<v Speaker 1>they just you know, naturally, you know, they don't realize it.

0:28:16.880 --> 0:28:20.120
<v Speaker 1>They don't realize that, like there is so much more

0:28:20.160 --> 0:28:25.720
<v Speaker 1>to this actual practice, and you know they're they're they're

0:28:25.760 --> 0:28:28.159
<v Speaker 1>just not in tune with the way that coding actually works.

0:28:29.280 --> 0:28:32.399
<v Speaker 2>Yeah, it's a little bit sad as well, because it

0:28:32.440 --> 0:28:34.840
<v Speaker 2>really feels like a lot of this is just the

0:28:35.480 --> 0:28:37.280
<v Speaker 2>point you've made about like the image generators.

0:28:37.359 --> 0:28:40.000
<v Speaker 3>It's just this immediate moment of wow, look what this

0:28:40.040 --> 0:28:40.360
<v Speaker 3>could do.

0:28:40.520 --> 0:28:42.360
<v Speaker 2>Imagine what it could do next, and then you look

0:28:42.400 --> 0:28:44.600
<v Speaker 2>at what it could do next, and it can't, Like

0:28:44.680 --> 0:28:47.240
<v Speaker 2>it looks like it can generate code, but it can't

0:28:47.280 --> 0:28:50.240
<v Speaker 2>actually generate software like it cut.

0:28:50.520 --> 0:28:52.320
<v Speaker 3>It doesn't seem to do the steps.

0:28:51.920 --> 0:28:56.600
<v Speaker 2>That make software functional and scale because there's these tendrils

0:28:58.040 --> 0:29:01.160
<v Speaker 2>of from software into the infrastructure to make sure it

0:29:01.200 --> 0:29:04.160
<v Speaker 2>can be shown in different places or to make sure

0:29:04.200 --> 0:29:06.440
<v Speaker 2>that it actually functions.

0:29:05.920 --> 0:29:11.160
<v Speaker 3>On a day to day basic Yeah, and it's like, yeah.

0:29:10.320 --> 0:29:12.760
<v Speaker 1>It's a pretty simple like curve, Like you know, you

0:29:12.840 --> 0:29:16.160
<v Speaker 1>start out and it generates so much code that's like

0:29:16.680 --> 0:29:20.000
<v Speaker 1>pretty correct, really fast. When you if you start a

0:29:20.040 --> 0:29:25.000
<v Speaker 1>completely bare project from just like a lovable prompt or

0:29:25.040 --> 0:29:28.959
<v Speaker 1>something like that. But as you go on, you know,

0:29:29.280 --> 0:29:31.440
<v Speaker 1>it's like the curve kind of flattens and it goes

0:29:31.480 --> 0:29:33.880
<v Speaker 1>down and it becomes less and less productive, and I

0:29:33.880 --> 0:29:37.280
<v Speaker 1>think eventually, usually like pure vibe coded projects hit a

0:29:37.280 --> 0:29:41.960
<v Speaker 1>pretty big wall because you're just introducing so much code

0:29:42.480 --> 0:29:47.560
<v Speaker 1>and it's not consistent, it's not it's not using shared tools,

0:29:47.600 --> 0:29:50.000
<v Speaker 1>and so eventually you just end up with this you know,

0:29:50.040 --> 0:29:52.000
<v Speaker 1>they call it spaghetti code. It's you know, code that

0:29:52.440 --> 0:29:56.520
<v Speaker 1>is so interwoven and difficult to understand that like you

0:29:56.560 --> 0:29:58.440
<v Speaker 1>can't actually see what's going on with it.

0:29:59.200 --> 0:30:01.920
<v Speaker 2>Yeah, it was like context is the whole problem, just

0:30:01.960 --> 0:30:06.040
<v Speaker 2>because even if not to say, like LLM generated writing

0:30:06.160 --> 0:30:09.000
<v Speaker 2>is dog shit, and I think it's worse than code

0:30:09.040 --> 0:30:13.000
<v Speaker 2>because code code, code is functional in a way that

0:30:13.040 --> 0:30:15.920
<v Speaker 2>I don't think writing has to be. Like writing conveys meaning.

0:30:16.000 --> 0:30:19.520
<v Speaker 2>But good writing is usually more than just I am

0:30:19.680 --> 0:30:22.800
<v Speaker 2>entering this writing into someone's brain. So something happens in

0:30:22.800 --> 0:30:25.520
<v Speaker 2>the way that code is, but writing it they share

0:30:25.520 --> 0:30:28.480
<v Speaker 2>the same problem, which is great writing has contextual awareness,

0:30:28.520 --> 0:30:31.440
<v Speaker 2>It builds, it connects, there is an argument or there

0:30:31.480 --> 0:30:34.120
<v Speaker 2>is an evocation from it. In the case with software,

0:30:34.160 --> 0:30:37.320
<v Speaker 2>it appears to be. If you don't know every reason

0:30:37.360 --> 0:30:40.240
<v Speaker 2>that everything was done and fully understand the reasons that

0:30:40.280 --> 0:30:43.200
<v Speaker 2>were previous and the reasons that are happening right now,

0:30:43.640 --> 0:30:46.840
<v Speaker 2>you kind of will fuck something up naturally, even if

0:30:46.840 --> 0:30:48.760
<v Speaker 2>you do know how to code, if you just don't

0:30:48.800 --> 0:30:51.680
<v Speaker 2>read any of the notes, if you if if it's

0:30:51.720 --> 0:30:54.680
<v Speaker 2>not clear why things were done, things will break anyway, right.

0:30:55.000 --> 0:30:58.200
<v Speaker 1>Yeah, exactly. And great writing, you know, it knows when

0:30:58.280 --> 0:31:00.760
<v Speaker 1>to you know, you know, a great knows you know,

0:31:00.800 --> 0:31:02.680
<v Speaker 1>when they need to explain something, when they don't need

0:31:02.720 --> 0:31:05.000
<v Speaker 1>to explain something. You know, they know, you know, I'm

0:31:05.040 --> 0:31:07.520
<v Speaker 1>writing a trade publication like I don't need to explain

0:31:07.640 --> 0:31:10.120
<v Speaker 1>how friction works, or I'm writing, you know, a public

0:31:10.160 --> 0:31:12.680
<v Speaker 1>press release, Okay, I do need to explain how friction works,

0:31:12.720 --> 0:31:17.880
<v Speaker 1>or you know whatever. So it's it's very you know,

0:31:18.720 --> 0:31:21.280
<v Speaker 1>these are the things that the lms are like, yeah, exactly,

0:31:21.360 --> 0:31:23.320
<v Speaker 1>just like very not good at you know, they can

0:31:23.400 --> 0:31:26.920
<v Speaker 1>they can generate stuff that looks good, but it's just

0:31:27.000 --> 0:31:28.800
<v Speaker 1>the more you try to build on top of it,

0:31:29.120 --> 0:31:31.200
<v Speaker 1>the more it'll it'll end up restating. Like you know,

0:31:32.480 --> 0:31:35.800
<v Speaker 1>lms are really good at writing, Like the classic school

0:31:35.960 --> 0:31:41.960
<v Speaker 1>level five paragraph essay. But everybody who actually writes anything

0:31:42.000 --> 0:31:44.760
<v Speaker 1>at all knows that, like the five paragraphed essays that

0:31:44.800 --> 0:31:46.680
<v Speaker 1>you wrote in high school are like terrible and like

0:31:46.840 --> 0:31:49.680
<v Speaker 1>nobody wants to read something structured as like you know,

0:31:50.240 --> 0:31:53.680
<v Speaker 1>premise three, argumented a paragraphs conclusion like that's it's really

0:31:53.760 --> 0:32:00.760
<v Speaker 1>bad like unconvincing writing. Uh. And it's the same with

0:32:00.880 --> 0:32:02.960
<v Speaker 1>you know, lms are really good at making toys and

0:32:03.000 --> 0:32:06.000
<v Speaker 1>like like quick things that like are are fun or

0:32:06.040 --> 0:32:08.320
<v Speaker 1>you know, maybe a little bit useful in certain situations,

0:32:09.160 --> 0:32:11.800
<v Speaker 1>but really bad at writing things that you know, uh,

0:32:12.560 --> 0:32:15.160
<v Speaker 1>like like a book level type things like you know,

0:32:15.280 --> 0:32:18.120
<v Speaker 1>ais are horrible at writing books because they restate things

0:32:18.160 --> 0:32:20.840
<v Speaker 1>and they lose track of what they're talking about.

0:32:20.880 --> 0:32:23.560
<v Speaker 2>And the more stuff it creates, right, the more it

0:32:23.640 --> 0:32:25.600
<v Speaker 2>looks over, the more confused it gets.

0:32:26.080 --> 0:32:30.280
<v Speaker 1>Exactly It's it's really really similar. I think that coding

0:32:30.280 --> 0:32:33.080
<v Speaker 1>has really just followed the same trajectory as like all

0:32:33.120 --> 0:32:34.920
<v Speaker 1>of these other things where we're like, oh, we don't

0:32:34.920 --> 0:32:38.920
<v Speaker 1>need copywriters anymore. Oh, we don't need uh designers anymore.

0:32:38.960 --> 0:32:41.120
<v Speaker 1>We don't need graphic designers, we don't need this, that

0:32:41.200 --> 0:32:43.760
<v Speaker 1>and the other. We don't need lawyers anymore we have

0:32:43.840 --> 0:32:46.920
<v Speaker 1>an ll m P or a lawyer, and you just

0:32:47.000 --> 0:32:50.440
<v Speaker 1>very quickly realize that like these these jobs aren't uh

0:32:51.000 --> 0:32:56.640
<v Speaker 1>you know, dumb factory uh like producing you know, pulling

0:32:56.640 --> 0:32:59.960
<v Speaker 1>a lever type jobs. They're they're about interaction.

0:32:59.640 --> 0:33:02.480
<v Speaker 2>And that's an insult to factory labor. That is very

0:33:02.480 --> 0:33:05.640
<v Speaker 2>hard work. But it's not like a repetitive action that

0:33:05.760 --> 0:33:06.920
<v Speaker 2>is always the same thing.

0:33:07.880 --> 0:33:10.160
<v Speaker 1>No, not in a sense anyway. Yeah, and like a

0:33:10.200 --> 0:33:14.480
<v Speaker 1>factory worker, you know, is doing a lot more than

0:33:14.520 --> 0:33:15.400
<v Speaker 1>just pulling levers.

0:33:15.680 --> 0:33:18.120
<v Speaker 2>Yeah, of course, but it's not just hitting a button.

0:33:18.240 --> 0:33:20.880
<v Speaker 2>But I think people condense coding to this thing.

0:33:22.040 --> 0:33:25.760
<v Speaker 1>Yeah, And it's very similar to like robotics in factories too,

0:33:25.800 --> 0:33:27.360
<v Speaker 1>where you know, the promise is like, oh, you know,

0:33:27.400 --> 0:33:28.800
<v Speaker 1>we'll just have a robot do this thing that a

0:33:28.840 --> 0:33:31.240
<v Speaker 1>human does. But the human is doing a lot more

0:33:31.280 --> 0:33:33.640
<v Speaker 1>than just you know, pulling the lever. They're like observing

0:33:33.680 --> 0:33:36.360
<v Speaker 1>the process. They're making sure that things are not getting

0:33:36.400 --> 0:33:38.479
<v Speaker 1>broken or getting gummied up and stuff like that. So

0:33:39.720 --> 0:33:42.840
<v Speaker 1>there's just there's just limits to what machines can do

0:33:43.080 --> 0:33:46.160
<v Speaker 1>when they're not actually intelligent. And that's just what it

0:33:46.200 --> 0:33:46.680
<v Speaker 1>comes down to.

0:33:47.520 --> 0:33:50.560
<v Speaker 2>Do you buy the any of these companies like Google

0:33:50.800 --> 0:33:52.960
<v Speaker 2>a writing thirty percent of their code with AI.

0:33:57.360 --> 0:33:59.760
<v Speaker 1>The thing about like those numbers is that they are

0:33:59.840 --> 0:34:03.560
<v Speaker 1>soon easy, maybe not to game, but to First of all,

0:34:03.560 --> 0:34:06.239
<v Speaker 1>I don't know anyone who's actually like measuring this in

0:34:06.280 --> 0:34:11.399
<v Speaker 1>a really like effective way, because the thing about your

0:34:11.440 --> 0:34:15.240
<v Speaker 1>like coding editor is that it's a lot of people

0:34:15.320 --> 0:34:17.759
<v Speaker 1>I don't like to use the AI autocompletion, but some

0:34:17.800 --> 0:34:20.319
<v Speaker 1>people do. You know, there's there's pieces where it'll you know,

0:34:20.400 --> 0:34:23.440
<v Speaker 1>you'll start writing some boiler plate and it'll like pop

0:34:23.560 --> 0:34:25.439
<v Speaker 1>up you know what it thinks you mean to write,

0:34:25.440 --> 0:34:27.520
<v Speaker 1>and you'll just hit tab the tab key on your

0:34:27.560 --> 0:34:30.719
<v Speaker 1>keyboard and it'll just like finish the line of code

0:34:30.760 --> 0:34:34.960
<v Speaker 1>that you were writing. And maybe that would yeah, yeah, exactly,

0:34:35.120 --> 0:34:38.799
<v Speaker 1>and it might even very often what it produces is wrong,

0:34:38.880 --> 0:34:41.000
<v Speaker 1>but it's like seventy five percent, right, So you're like, oh,

0:34:41.040 --> 0:34:43.719
<v Speaker 1>I can just like use these keystrokes, I can save

0:34:43.760 --> 0:34:46.120
<v Speaker 1>these keystrokes, and I can just fix what it did wrong.

0:34:47.560 --> 0:34:51.440
<v Speaker 2>Oh God, it's like saying auto correct wrote parts of

0:34:51.480 --> 0:34:51.960
<v Speaker 2>your book.

0:34:52.560 --> 0:34:57.720
<v Speaker 1>Yeah, it really is. And you know there are times

0:34:57.760 --> 0:35:02.160
<v Speaker 1>where like an AI does is fully write the code

0:35:02.160 --> 0:35:05.640
<v Speaker 1>for a feature, so people use you know things where

0:35:05.640 --> 0:35:10.880
<v Speaker 1>they can prompt an LLM and it will with like

0:35:10.960 --> 0:35:12.719
<v Speaker 1>what they want the feature to be or what they

0:35:12.719 --> 0:35:15.279
<v Speaker 1>want the bug fix to be, and it will go

0:35:15.320 --> 0:35:17.480
<v Speaker 1>and we'll write all the code and it will make

0:35:17.520 --> 0:35:19.759
<v Speaker 1>the sort of we call it a merge request, but

0:35:19.800 --> 0:35:25.400
<v Speaker 1>that's the request for new code that then gets reviewed.

0:35:25.520 --> 0:35:27.680
<v Speaker 1>It will go all that way. But the thing is,

0:35:28.040 --> 0:35:31.320
<v Speaker 1>you know, it might have written the code, but somebody

0:35:31.800 --> 0:35:36.799
<v Speaker 1>took time away from you know, their normal job, which

0:35:36.840 --> 0:35:39.800
<v Speaker 1>just be writing code, to write a really good prompt

0:35:40.239 --> 0:35:41.759
<v Speaker 1>to make sure it didn't screw it up, and then

0:35:41.800 --> 0:35:45.480
<v Speaker 1>reinteract with it. And so you know, did it write

0:35:45.520 --> 0:35:50.320
<v Speaker 1>the code, yes, but did it do the task not really,

0:35:50.360 --> 0:35:52.640
<v Speaker 1>because it needed somebody else to do some support work

0:35:52.640 --> 0:35:54.160
<v Speaker 1>to make it even possible for it to do it.

0:35:54.200 --> 0:35:56.480
<v Speaker 1>And that person could have That person needed to be

0:35:56.520 --> 0:35:58.359
<v Speaker 1>technical and needed to be able to say like, oh,

0:35:58.400 --> 0:35:59.879
<v Speaker 1>you need to look in this part of the code base,

0:36:01.840 --> 0:36:06.439
<v Speaker 1>And so you end up just getting the same type

0:36:06.440 --> 0:36:11.000
<v Speaker 1>of like actual work from the actual specialist who knows

0:36:11.000 --> 0:36:13.239
<v Speaker 1>how to code the same amount of work. They're just

0:36:13.320 --> 0:36:14.480
<v Speaker 1>doing something slightly different.

0:36:15.800 --> 0:36:18.160
<v Speaker 2>Cole has been such a pleasure having you here. Where

0:36:18.200 --> 0:36:19.000
<v Speaker 2>can people find you?

0:36:19.680 --> 0:36:23.960
<v Speaker 1>For sure. My blog is Coulson dot dev c O

0:36:24.080 --> 0:36:26.560
<v Speaker 1>L t O N dot dev. I don't post that

0:36:26.640 --> 0:36:30.719
<v Speaker 1>often because I work full time and I just I

0:36:30.800 --> 0:36:33.239
<v Speaker 1>just post when something really gets to me. But you know,

0:36:33.320 --> 0:36:35.560
<v Speaker 1>I might. I might say some things here and there.

0:36:35.719 --> 0:36:37.400
<v Speaker 3>And you have your excellent blog that I brought you

0:36:37.440 --> 0:36:37.719
<v Speaker 3>on for.

0:36:38.080 --> 0:36:40.160
<v Speaker 1>Yeah, yeah, that's my that's my most recent one. You

0:36:40.160 --> 0:36:41.680
<v Speaker 1>can feel free to check it out. I'm sure the

0:36:41.719 --> 0:36:43.879
<v Speaker 1>link to that will be in the description. But yeah,

0:36:43.880 --> 0:36:44.680
<v Speaker 1>it was great being here.

0:36:45.040 --> 0:36:56.000
<v Speaker 5>Thanks so much, Thank you for listening to Better Offline.

0:36:56.120 --> 0:36:58.560
<v Speaker 6>The editor and composer of the Better Offline theme song

0:36:58.640 --> 0:37:01.239
<v Speaker 6>is Matosowski. You can check out more of his music

0:37:01.320 --> 0:37:04.959
<v Speaker 6>and audio projects at Mattasowski dot com m A T

0:37:04.960 --> 0:37:09.400
<v Speaker 6>t O s O W s ki dot com. You

0:37:09.440 --> 0:37:11.960
<v Speaker 6>can email me at easy at Better offline dot com

0:37:12.040 --> 0:37:14.320
<v Speaker 6>or visit better offline dot com to find more podcast

0:37:14.400 --> 0:37:17.720
<v Speaker 6>links and of course, my newsletter. I also really recommend

0:37:17.760 --> 0:37:19.680
<v Speaker 6>you go to chat dot Where's youreaed dot at to

0:37:19.760 --> 0:37:22.080
<v Speaker 6>visit the discord, and go to our slash.

0:37:21.840 --> 0:37:25.000
<v Speaker 5>Better Offline to check out our reddit. Thank you so

0:37:25.080 --> 0:37:28.520
<v Speaker 5>much for listening. Better Offline is a production of cool

0:37:28.600 --> 0:37:30.600
<v Speaker 5>Zone Media. For more from cool Zone, Media.

0:37:30.960 --> 0:37:34.120
<v Speaker 4>Visit our website cool zonemedia dot com, or check us

0:37:34.120 --> 0:37:37.120
<v Speaker 4>out on the iHeartRadio app, Apple Podcasts, or wherever you

0:37:37.160 --> 0:37:38.280
<v Speaker 4>get your podcasts.