We tried autonomous AI agent swarms — total disaster - We Programmers by Robert C. Martin
Part 1
Book Covered

Book links are affiliate links. We earn from qualifying purchases.
Author
Hosts
Transcript
This transcript was auto-generated by our recording software and may contain errors.
Carter (00:00)
Hey there, welcome to Book Overflows, the podcast for software engineers by software engineers. Where every week we read one of the best technical books in the world in an effort to improve our craft. I am Carter Morgan, and I'm joined here as always by my co host, Nathan Toops. How are you doing, Nathan?
Nathan Toups (00:11)
Doing great. Hey everybody.
Carter (00:13)
Well make sure to like, comment, subscribe, share the podcast with your friends and coworkers, share it on LinkedIn, share it you can join our Discord. all sorts of things to help the podcast grow. Didn't you say the Discord's had five hundred Ferapite members now, Nathan?
Nathan Toups (00:25)
We
we just got we just passed the five hundred and twenty mark or something like that. Pretty cool.
Carter (00:31)
Nice. I think before we begin today and talk about the book we're reading, Nathan, you have an announcement you must make to the audience.
Nathan Toups (00:38)
Well, I realize that I have a behoove problem. first of all,
Carter (00:42)
Ha ha ha.
Nathan Toups (00:44)
great comment, talking about how I love to use the word behoove. And then someone else called out the fact that I might be using it the opposite of what it actually means. And to my horror, they are correct. I've been I think this whole time my mother would use it in a very sarcastic tone.
Carter (01:01)
Ha ha.
Nathan Toups (01:01)
I'm blaming it. I'm blaming this on her because I'm just like, How how did I come to this conclusion? And so I don't know.
Maybe you've had this experience in your life where you thought a word meant something and it actually means something else.
Carter (01:11)
Right, right.
Nathan Toups (01:12)
And so yeah, I I'm I'm doing a lot of introspection right now on my use of and abuse of the word behoove. So enjoy.
Carter (01:20)
We
there's a story my friend and I always tell when because when I was in high school, I played in I was in the marching band, but I played like percussion, like up front, like not marching with the drums, but like keyboard and all that xylophone. And there's this thing called the rack, which is just like a a contraption of a bunch of other drums. And one of our friends, Hector Lopez, quite the guy, our percussion instructor said, Would you be adverse to playing in the rack? He Yeah, man, totally. And so we
We we'll occasionally ask each other if if you would be adverse to doing something to respond, yeah man, totally. no, that's or you know, like I said, this this week, this podcast, we we read a book every week to improve our technical craft, and perhaps we also read a book every week to improve our vocabulary. I in my personal time, I'm reading a biography of Ulysses S. Grant, and I'm learning all sorts of new words from that biography. all right, well.
We're excited about the book this week. this is another one by Uncle Bob. This is We Programmers. I guess I'll look true as Uncle Bob, but most people here know him. Robert C. Martin, universally known as Uncle Bob, has been programming since 1970 and is one of the most influential voices in software craftsmanship. Best known as the author of Clean Code, the Clean Coder and Clean Architecture, who was a co-author of the Agile Manifesto in 2001, served as the first chairman of the Agile Alliance, and coined the solid principles that shaped a generation of object-oriented design.
In his book, We Programmers, software legend Robert C. Martin dives deep into the world of programming, exploring the lives of the groundbreaking pioneers who built the foundation of modern computing. From Charles Babbage and Ada Lovelace to Alan Turing, Grace Hopper, and Dennis Ritchie, Martin shines a light on the figures whose brilliance and perseverance change the world. like we said, we never promise any interviews, but we have had Uncle Bob on the podcast twice, once reading his book Clean Coder, and second,
As a joint appearance with John Ostrote after we had connected them and they had a bit of a debate about clean code versus the a philosophy of software design. and we are we're friendly with Uncle Bob. I I was actually texting him yesterday and just telling him, Hey, we're reading We Programmers, we love the book. Yeah yeah.
Nathan Toups (03:34)
Humble brag, humble brag over here. I was just I was texting Uncle Bob.
Carter (03:38)
and he responded and said that he he was glad to hear we loved it and that he's happy to come on the podcast anytime. So again.
No promises, but I I anticipate we'll get Uncle Bob back on, which will make him our second third timer along with Neil Ford. So exciting stuff. and yeah, this has been I I guess I can give my general thoughts first up. I'm really, really liking this book. sometimes it's it it's a great audio book, which Uncle Bob himself narrates. Actually, actually, why I reached out to him like the the auto narration is really good. Is that you or a convincing sound alike? But it is him. it's very clearly a passion project.
Sometimes when people will ask me like about the people we've interviewed, like what surprised you the most or who's been the most interesting, I always say Uncle Bob is by far the most charismatic. you can see why he's had a very successful career as a consultant because he's just he kind of like just oozes life and energy. And so that charisma really shines through in what is very clearly a passion project for him here. And I'll say that as an audiobook, it's great because I can listen to it on my commute home. But you know, I spend all day.
Software engineering. And sometimes I'm like, gosh, like, do I really want to fire up another technical book on the drive home or or the bike ride home? Like I gotta decompress. this book is not that. This book is just a delight to listen to. It's a history lesson, but a history lesson targeted specifically towards us as programmers. it's just been a super, super fun lesson. Really excited for the episodes we're gonna devote to this. Nathan, how about you?
Nathan Toups (05:08)
Yeah, same general thoughts. W you know, I think it helps that we have some more context of, you know, having interactions with with Robert Martin. The book starts off great. He you can see his like charismatic style. And again, having the author read well is so nice because it's like he doesn't,
Carter (05:26)
Right, right.
Nathan Toups (05:27)
you know, sometimes you don't know how to interpret the intent of a writer. And technical books especially can be kind of dry. I can't imagine being a professional,
You know, doing professional audio recordings and like reading fundamentals of software architecture or something like that. But Robert Myr Martin reading his own writing was is super cool. And I will say I love the narrative. There's a puzzling omission though. I'm going to bring this up. It's gonna come up several times. I think it even goes through all the way to my hot take. We we've read through chapter three, it gets us right before the Grace Grace Hopper chapter. So we get through the early 20th century.
you know, and talk about f folks like Von Neumann and Alan Turing. And there's not a single mention of Claude Shannon. And Claude Shannon is like, that's my boy. I he's the one who invented the term the bit. And there's no mention
Carter (06:20)
Yeah.
Nathan Toups (06:21)
of it. I think it's yeah, and I'm I'm absolutely gonna talk ask Uncle Bob about this if you know, he comes
Carter (06:27)
Yes, right.
Nathan Toups (06:28)
on. So
Carter (06:28)
Well, yeah, it is interesting too, like talking about Alan Turing, like like 'cause the most the thing I know the most about Alan Turing is that he was supposedly well one, I I know that he he like cracked the enigma code. I know he was there are strong I I don't remember if it's strong rumors are easily confirmed. I think it is confirmed that he was gay. yes, yes.
Nathan Toups (06:48)
absolut yeah, no, no, it was a huge thing and yeah, yeah.
Carter (06:51)
And then he and then he died under mysterious circumstances and
And Uncle Bob's a little bit like much has been said about Alan Turing being gay and his sub his death by mysterious circumstances. I will not talk about that. I'm just like, that was the part I was most interested in. But I can see why, like yeah, he he he's
Nathan Toups (07:04)
That yeah, that was a very
very Uncle Bob glazing over of that detail. There there is a lot written about it and I I will say it's it's really good to to read about those histories. I think actually and I'll talk about this later. This book is a really good catalyst for me being like, I need to learn more about this person. Like I I I've taken notes several
Carter (07:23)
That's true. That's true.
Nathan Toups (07:25)
times where I'm like, I'd like to read an a biography of of of this person.
Carter (07:29)
Yeah, well, you know, we can just get right into it. although I will point out to any viewers of the podcast, you can often see me drinking a Diet Mountain Dew Baja Blast. And you guys might think, like, what do you guys record this podcast like right after lunch? No, we record this podcast at seven in the morning. And I sometimes I might we're doing the new baby thing and my kids aren't sleeping great. And so if I lose my train of thought throughout this podcast episode, that's that's what's going on. I am not, no, no.
Nathan Toups (07:52)
Y you're also not a hot drink person, right? I I I'm
I'm three Americanos deep before this podcast, so
Carter (08:03)
It's funny, in Utah because Latter-day Saints don't drink coffee. And so it it it's interesting to see kind of like it more and more restaurants outside of Utah doing the whole dirty soda trend with like mixed sodas. But yes,
Nathan Toups (08:15)
Yeah. I've I've heard about this, yeah.
Carter (08:18)
but that is is such a Utah thing. And we have chained, we have multiple different chain restaurants that serve dirty sodas. And like it so you know, when you you don't get your caffeine from coffee,
Some people, me included, get it from somewhere else.
Nathan Toups (08:31)
I'm I'm I'm a sim
I'm a simple man and I'm ver I'm very fortunate that I live in Costa Rica and there's a farmers market that I go to once a week and the guy who grows the coffee also roasts his coffee and
Carter (08:43)
I was gonna say I was gonna say
that Costa Rica's probably gonna ha have pretty good coffee, right?
Nathan Toups (08:47)
they buy excellent coffee. Especially in and again, I love that I can, you know, kind of source it straight from the the folks who
Carter (08:52)
Right, right.
Nathan Toups (08:52)
who grew it themselves, which is cool. It's a nice flex. I will say one of the creature comforts. So, like, you know, we have a lot of stuff in storage in the US. We haven't like brought all of our stuff down.
Carter (09:02)
Right, right.
Nathan Toups (09:03)
But one thing I absolutely did bring down was we have an espresso machine. And I I was like the second time like I went back to the US in January of this year, and that was like one of the dedicated
like bags that I had was to bring back my my espresso machine and so my my wife was very happy. I'm happy. 'Cause we you know, y you can French press, pour over, there's all kinds of wonderful ways to have coffee if you're into coffee.
Carter (09:28)
Right.
Nathan Toups (09:29)
But I there's something about espresso that makes me happy. So it's there. It's on my counter.
Carter (09:33)
Tech
tech startups in Utah are funny like that, just because like about I think about 70 to 80% of our employees at my startup are Latter-day Saints, just because like that's just the demographics of Utah. So we have like one neglected little coffee machine. And we like an intern who was visiting from San Francisco. And he was like, and I was in the kitchen with him. He's Do you know to use the coffee machine? I'm like, No, I I don't think so. Like, I don't think anyone here really uses it. And he he looked at me like I was insane. Like, what do you mean no one here uses the coffee machine? so
Nathan Toups (10:02)
I I feel like
be feel looking
Carter (10:03)
Yeah.
Nathan Toups (10:04)
at you like you're insane visiting you, Tom, like, you know, when in Rome. I I understand the context of what
Carter (10:07)
Yeah, yeah. Yeah, I I guess that's fair, right? Yeah.
Well, let's talk a bit about Uncle Bob here. I actually I guess his book. I I love the starting chapter because the the second chapter one, so I guess let's let's just talk up front about the historical figures we'll be discussing today. I'm pulling up
Nathan Toups (10:27)
Yeah. And and I will say
the the structure of this book's important to tap into. You know, the first
Carter (10:31)
Yes.
Nathan Toups (10:32)
half of the book I think is a is historical context, and the second half is more of a memoir. So of of of Uncle Bob's life
Carter (10:38)
Yes.
Nathan Toups (10:39)
himself. So we won't be getting into any of the memoir stuff in this episode. We're really kind of getting deep into I guess the beginnings of the twentieth century, up to the middle of the twentieth century. and and kind of it's I think he he narrates this really nice thing.
through line.
Carter (10:57)
Yeah.
Well, I'm I'm I'm trying to find the chapters. And I'm looking at the chapters. I'm like, chapter 27, Volcanic Passion, Chapter 28, Trading Places, Spoils of War, We Are All Americans, Sin Against Humanity. I'm like, what? What like this book takes a turn? I'm like, wait, this is the Grant biography. So let me find, let me find Yeah,
Nathan Toups (11:14)
Amazing. Yeah. It's so dramatic, yeah.
Carter (11:17)
I know like I'm like, I know Uncle Bob has a taste for the theatrical, but
Nathan Toups (11:21)
Yeah, I
Carter (11:23)
so I guess it's it's Charles Babbage and Ada Lovelace and then
Nathan Toups (11:26)
Mm-hmm.
Carter (11:27)
It's Alan Turing, Von Neumann, and who's the who's the other one? Who that we I think so. I I can't wait. Yeah.
Nathan Toups (11:32)
is it Hil Hilbert? Is that the it might be Yeah, Hilbert. Hilbert, who
I didn't actually know anything about, but that David Hilbert, who is a again an interesting person as well of like how do we even abstract
Carter (11:44)
Yes, Hilbert.
Nathan Toups (11:47)
away the machine and the runtime
Carter (11:49)
Right.
Nathan Toups (11:50)
for for how code runs? Also before we even get into it, yeah, there's
Carter (11:52)
But before we get into Yeah, yeah.
Nathan Toups (11:54)
the the who are we? You know, I think he yeah, who what is a programmer? What are we even doing here?
Carter (11:56)
Who are we? Yeah. We should we've been
doing this for two years. We should figure this out. Yeah, this is interesting because one thing I like about this book is that it is written like all books have a AI is moving so fast that like all books are kind of lagging indicators. But this book is written with AI in mind. And I do know that Uncle Bob, you know, on his Twitter feed is frequently talking about how he's using coding agents. And that, you know, Uncle Bob is Mr. Clean Code, right?
and so the the fact that he he's using coding agents, I think, is great to see because he's not someone who's just like a Luddite. Like he's trying to figure this out like the rest of us. And so he's talking about AI here too. But he basically says that, you know, the whole prelude to the book is this idea that, like, as the machines have gained power, the people who program the machines have gained power and prestige with them. And
Nathan Toups (12:49)
Mm-hmm.
Carter (12:50)
that and and he plants his flag early in the book and says that like.
AI will not eliminate this. AI will only make the machines more complex. And as the machines have become more complex, it has required more skill to operate them. but my favorite thing about this first chapter he he does is basically say, like, so why what makes us different as programmers? Because anyone can learn how to program. Like programmers, we we like to fancy ourselves like way smarter than other people. And I do think this discipline requires a good amount of mental horsepower, but
A lot of other smart people who go on to become product managers or business unit owners or whatever could could become programmers. So what is it that makes us different? And he he does this great little exercise of like, let's say that someone has this idea and they think that if they could draw a red line on a screen, that they could make a billion dollars. And so he's like, they could learn how to draw a red line. They would have to figure out if they looked at their phone, he has this funny example. If you sneeze on your phone and there's water on the phone, you might.
be able to notice that those dots on the screen are composed of red, green, and blue dots. And so there must be a way to make it so that only the red shines and the blue and green don't. And there must be a way to coordinate those dots and and and plant them one right after another. And then you might need the dots to be thicker to make the line thicker. So you must so you'll need to have multiple dots in a row. And then he kind of gets into like the algebra of it all, like you know, rise over run and how, you know, how how you could make a formula that could
Plot these dots in sequence and he he does this whole bit for a while, but then basically says, like, but here's the thing like at this point, the guy who wants to draw the red line, he doesn't want to think about any of this. What he wants to think about is how he sells his red line. He's like, that's why you hire a programmer because a lot of people don't want to think about the details. But what separates programmers out from the rest of any profession is that we like to think about the details. We're obsessed with the details. We find the details of how a system works fascinating.
Nathan Toups (14:51)
Yeah.
Carter (14:52)
and that's really what gives programmers their power in any organization.
Nathan Toups (14:56)
Yeah, I and I love that and if you have this framing, he he makes a really good point and he says, indeed, programmers have specialized are specialized like doctors. Nowadays you have to hire the right
Carter (15:07)
Yes.
Nathan Toups (15:07)
kind of programmer, right? And he goes on to say, and now they think the solutions will be AI, but trust me, the outcome will be the same. With greater power, the need for and stature of programmers can only increase. And you know it
It's these kind of little nuggets that kind of that you have to kind of sit on that paragraph before you go off to the next one. And I I think this is correct. Like we are the best programmers that I know are pedantic about where which details are important strategically and at what time. Right. I think we you kind of get a a feel for the aesthetics of last responsible moment. We've talked about this before. When when can I know that I can actually put off a decision to the future? Cause I'll just be overwhelmed.
And then where is it there? We really need to stop and be like, no, this really matters right now. Like, we absolutely
Carter (15:56)
Right.
Nathan Toups (15:57)
have to nail the schema because if we
Carter (15:59)
Yes.
Nathan Toups (15:59)
don't, you know, or yeah, I I'm I'm actually doing a personal project right now, and I'm like, this is a weird, a weird thing of mine. I hate floating point numbers. that this is gonna be something I
Carter (16:10)
Ha ha ha.
Nathan Toups (16:12)
I I love them and I hate them. I've been burned by them so many times that if I can represent
data in some sort of integer format, high precision integer format, I will. and then I'll put off floating point stuff to some presentation layer where I kind of just need, you know, the the math part doesn't matter. It's like some render level thing. But if I'm doing something where I'm holding a what I would call like a high fidelity number for some period of time and I really need precision to be accurate, I'll try to find a ways to do some high precision integer piece.
Carter (16:46)
Right, right.
Nathan Toups (16:47)
That is
A a level of detail that most people are like, their eyes
Carter (16:50)
Yeah.
Nathan Toups (16:50)
are glazing over and they're like, why are you such a freak? but I think anyone who's done conversions across types of number sets have run into this before. And if I have full control of the pipeline and I want to work this way, and this helps me write a bunch of tests for it, this is the kind of like reveling in the details that no one should ever care. Right. If if I have something in kilograms or I have something in pounds,
You're gonna be like, cool. you know, I'm I'm working on this like weightlifting app thing right now. But I'm keeping this in, I'm not joking, I'm keeping this in grams. Like I'm actually using grams
Carter (17:24)
Yeah.
Nathan Toups (17:24)
as like my universal integer value that I can convert. And I've built all these converters and
Carter (17:29)
Right, right.
Nathan Toups (17:30)
stuff. But this is the thing that like I love this. If someone ever wants to have a conversation
Carter (17:34)
Right, right.
Nathan Toups (17:35)
with like, why did I get to this decision or why is this gonna be good? we can get into this. And and again, I I I was in an email chain recently.
where a few of us were talking between some security stuff and some architecture and some road mapping. And there was another person on there that was like, I trust that you're making having a wonderful conversation right now, but I I think you I could be talking to Martians, right? Like they just had no
Carter (18:01)
Yeah.
Nathan Toups (18:02)
clue about what we were talking about. And it's funny because I didn't realize that if if I had realized the audience was broader, I probably would have used less domain specific language.
Carter (18:10)
Right, right.
Nathan Toups (18:12)
But in you know, you kind of get in the flow of stuff. And you yeah, like we we come up with and and this is one of the things I love about this too. And I we'll get into this, is that symbolic reasoning is the other sort of abstraction that comes up
Carter (18:24)
Right.
Nathan Toups (18:24)
time and time again. And all the way and he makes this this excellent point, and I think this is a good segue into the history of Babbage.
Carter (18:35)
Well, I just wanted to say about details really quickly.
Nathan Toups (18:37)
yeah, yeah, yeah.
Carter (18:38)
We saw this at at work. I I I mentioned last week on the podcast that we have this kind of vision for redesigning our our inbox, you know, which is used for messaging at the company I work at. And we had this I we so we we had a good the nice thing about redesigning something is that it's easy to know the requirements up front, right? You basically have to look at the current thing.
And say, okay, we're gonna we we just need to replicate all of these features, right? So we had the idea where like maybe if we write really well scoped tickets, like let's just try it and then let's farm it out to all of our individual agents, you know, like and do kind of completely autonomous programming, see how it goes. Disaster. Like it just it didn't work at all. Like every PR that came in had a million merge conflicts, completely wrong patterns. And so I kind of hit the, you know, like pulling the and cord, right? In with Toyota manufacturing.
And and I kind of pulled my junior engineer aside and was like, okay, we gotta, we gotta stop this. Like this is not working. I said, let's really lock in on the patterns. I said, like, I think we've got the workings of some really good front-end patterns and the workings of some really good backend patterns. So let's really define the actions that one can take on the back end to cut because I said we're kind of using this event sourcing model for our messaging. So let's try that. And I said on the front end, he kind of defined like the schema registry pattern so that like
Any action you can take on the front end will automatically show like how it renders in the action menu and how and the sender and receiver previews. and I said, like basically, if we write this in such a way, it should be harder to write wrong code because the path of least resistance should just be the exact pattern and framework that we've set up. And so we took some time to really lock in on that. And then we kind of hand prompted one using Claude and really guided it through this process. And then once we had it through this process, we
We had it summarize everything it learned into a skill. And then after that, I mean, adding the rest of the features, it was like butter, with Claude, but only because we are so obsessed with that foundation and that pattern.
Nathan Toups (20:38)
Yep.
Carter (20:39)
And then it was great adding the rest of these actions we wanted to, because like every single one of them, even reviewing the PRs is pretty easy, even though they were like 25 file PRs. It was just like, yep, this is the exact same shape as everything else we've added here.
Although I will say that Claude is obsessed with generating integration tests and we have sharded our integration tests into four separate runners. We did that when they got to fifty when it took 15 minutes to run the integration tests. And now it's still taking 15 minutes because each runner takes 15 minutes. I'm like, okay, it's time to clean up all these integration tests. Cause like I'm sure
Nathan Toups (21:11)
Yeah.
Carter (21:11)
that about 80% of these are not even helpful. but anyhow, that that just gets back to that idea of like, we love the details and like product owners and and business folks.
Do not want to sit and obsess about what is our front end framework, what what is our pattern here? What the pattern on the back end? they just want the result. And I just think like I actually, you know what I told my coworker, Nathan? I said, What you've told me, which is slow is smooth, smooth is fast. And I was like, Let's yeah. yeah.
Nathan Toups (21:41)
Nice. I love it. Yeah.
You're either gonna get a positive response or like a well slow. You don't you don't need to go s slow and you're like, we're gonna think through this one for a second. Yeah, watch.
Carter (21:51)
Yeah. Like what watch us.
yeah, anyhow. And so that gets perhaps Charles Babbage could have learned the idea of slow is smooth, smooth is fast, because
Nathan Toups (22:02)
Yeah.
Carter (22:02)
Charles Charles Babbage, yes, that he what we learn about him is hit this idea of his adding machine. Do you wanna maybe summarize for our our listeners a bit about Charles Babbage and his added machine adding machine?
Nathan Toups (22:14)
So there's there's there's a couple
of things that I love about Charles Babbage. Number
Carter (22:17)
Yes.
Nathan Toups (22:18)
one, obviously a super genius, and I think that he I I knew a bit about Babbage, but I actually didn't know as much about him as until the depth of what Uncle Bob has in here. Charles Babbage was simultaneously a genius and so scatterbrained and like unfocused
Carter (22:36)
Yeah.
Nathan Toups (22:36)
that he actually never became wealthy from any of his inventions, even though I think
Carter (22:41)
He truly was
the first programmer. Yeah.
Nathan Toups (22:43)
Right, right. And
and and the thing is he the reason he was able to get away with this is because apparently it had inherited some estate that allowed him to have a lot of free time. you know, I think this is very sort of like what you'd think of as the Victorian era of, you know, this sort of people who can pontificate and think about things. And he was a tinkerer, right? The other thing was I loved about this is that he built so at the time, and I think again he's he I knew about these tables and
that they they bring up in here. But so there's these truth tables, right? These tables, not just truth tables, sorry, but tables of like logarithmic calculations or high precision calculations where you'd you'd literally at the time buy books and flip through them and figure out that the sh it was like a shortcut of doing math to like six significant digits or whatever. and I remember I knew about this because I think it was Euler, you know, Euler who you prolific
mathematician who would actually flip through these things and was looking at the numbers on these, I think these logarithmic tables and realizing that there's a pattern here. And he's like the one who figured out the relationship between I, you know, the imaginary numbers, natural log and and pi. And seeing that these these these these large books of tables of things were there, people use these for
Random number generators, all kinds of crazy stuff. Well, apparently Babbage was having to hand calculate or at least check the work of these hand calculations on these on these calculation tables. And it drove him nuts. He was like, why
Carter (24:21)
Yeah.
Nathan Toups (24:22)
are we having to do this? And it's like the most what's that quote? It's like, I didn't do this because it was easy. I did it because I thought it would be easy. It was like one of those where his strategic laziness was: a human shouldn't have to make these calculations, right? This is a beneath me.
Carter (24:38)
Right.
Nathan Toups (24:39)
And so he spends decades coming up with a machine and a symbolic system to like generalize how do we do these calculations? How do we make it so the human doesn't have to be a computer, you know? and w what's crazy is like it was so advanced that he could talk about it abstractly, but they actually didn't have the money to build it. Like I I didn't realize like what
Carter (25:03)
Right, right.
Nathan Toups (25:03)
it what an insane thing he was doing. He'd like speak at conferences and like talk to people and be like, yes.
Like they would all like in be in awe of the beauty of this idea, but actually building the physical machine was like next to impossible.
Carter (25:16)
Well, and and this is the thing I love about it is so he does get the money to build the machine, right? And they build
Nathan Toups (25:20)
Yeah.
Carter (25:21)
like they they build like a a prototype, basically, like the the
Nathan Toups (25:25)
Right.
Carter (25:25)
very first proof of concept, like it works. Like it, you know, like and then you have to build the real thing. And that's what like I I think Uncle Bob said, like, yeah, that last 20% is 80% of the work. I think this is also very analogous, like vibe coding, right? Which is like you can build something that's like eighty percent of the way there really, really easily these days.
But and so you can kind of say, like, my gosh, like look, it works. but of course with anything, that 20% is always most of the work. and I guess there was I some I think it was like what do you call it? Like the London Museum of Computing, I don't remember, but they actually did in the 90s, they they built the adding machine. They built what yes.
Nathan Toups (26:06)
The second version, yeah. The the
there's there's like a second version of it where the symbolic system was a little more abstract and he had a better way of dealing with carrying numbers and some other interesting things. But even then I think yeah, yeah. It was
Carter (26:15)
Yeah, right. And they they said it was a nightmare, right? They they
said debugging it was so complicated, right? Like it's
Nathan Toups (26:24)
Which which I think
is you know, if you really look at the improvements in our tooling, we've come so far in the ability to debug. Just look at w early 20th century compiled languages, right? Or
Carter (26:34)
Right, right.
Nathan Toups (26:35)
should mid, I should say, it's not early, mid-20th century compiled languages. so much of the innovations, and he even called it out in Mythical Man Month was hey, there's this whole world of bespoke internal tooling that, you know, a lot of work needs to be done.
And that's where we like if you look at any off the shelf modern language, we now look if you look at TypeScript, Rust, Zig, Go. I'm just I'm trying to think like it's table stakes now that you have to have good linting and testing and all of these other things on top of it to do the work. and
Carter (27:10)
Well and and
not even just like the tooling on top of it, but like how are you architecting your system? Because this adding machine they built, they talk about like if there was a bug in it, they had like you have to take the whole machine apart, you have to
Nathan Toups (27:22)
Right.
Carter (27:22)
like break it in other parts to see if you know, if you can kind of like isolate the failure to a specific part. because it's it's mechanical, right?
Nathan Toups (27:30)
I there's also this clean s exactly
there's this very clean separation between the data that went through the system and then the the code. There was no code, right? It was a mechanical
Carter (27:40)
Right, right.
Nathan Toups (27:42)
implementation. And so there's this and it and it makes sense because I think humans up to this point, why would the thing I'm computing have an interconnected relationship with the actual machine? and so it what I love, and we'll get into this later is
This fuzzy line where we get into things like the Turing machine, where
Carter (28:03)
Right.
Nathan Toups (28:04)
the machine can program itself to calculate things, which can then feed back into the calculations themselves. And that abstraction doesn't happen until the 20th century. But here we still see something interesting. I I also I I love these little facts that came up where all the reasons that Babbage would distract himself. One of them is he had these deep social contracts. And so he'd have these like, I guess,
Carter (28:25)
Yeah.
Nathan Toups (28:26)
dinner parties and and stuff. And here's the some of his guest lists.
Charles Dickens, Charles Darwin, Charles
Carter (28:31)
Yeah.
Nathan Toups (28:32)
Lyle, Charles Wheatstone, who else? It there's just like a bunch of people who were like, Michael Faraday, John Herschel. I there's just all
Carter (28:40)
Yeah, yeah.
Nathan Toups (28:43)
these people, and you're like, yeah, well, I mean, if you're a socialite, and of course, obviously his intellect was high enough that in he could entertain and impress these folks. He he becomes like a fellow at the Royal Society in 1816, which again is, you know.
Isaac Newton and other folks are like part of this like heritage that he's
Carter (29:03)
Yes.
Nathan Toups (29:04)
in. And so he's just having fun, like working on pontificating about strange. you know,
Carter (29:11)
Yeah.
Nathan Toups (29:12)
in the future, and he does, he actually like calls this out. He's like, in the future, we're going to compute all of this stuff. Like, we'll have machines that do all these things. And of course, he was off by a while. but he's also absolutely correct and inspired.
I mean, so many people cite Babbage and his his his thought experiments as, you know, deep inspiration.
Carter (29:32)
Yeah, I had one reading this kind of made me think because this is I I don't remember the exact dates, this like late 18th century through early 17th century or 19th century. and it made me just realize like cause because now it's like the the epicenter of the tech world is it's in Silicon Valley. Like it's very clear that the United States of America is the leader globally in technology services, right?
But like back very different. Like all of all these famous people he's associating with, like the best and brightest minds are all in England, right? And and I was thinking, like, man, like America must back then just been like this backwater country bumpkin sort of country. And so I I thought that was interesting. That like, yes, now I mean, all basically every figure from here on out in the book is is an American or or lived in America. and or
Nathan Toups (30:28)
Right, or or is or is
incentivized to come to America. And I think there there's some geopolitics
Carter (30:31)
Exactly. Right.
Nathan Toups (30:33)
you know around World War Two that really changes the course of history.
Carter (30:35)
Yes. Yeah.
the other thing is, yeah, just talking about kind of like this idea of debugging, like this idea of details, and the final 20% being 80% of the work. Like I I've been using Fable. I probably shouldn't be using Fable as much because it's really expensive, but work's paying for it. But I had Fable just like straight up hallucinate the other day. This is Fable, right? Which is like the the state of the art frontier model. I've although I've heard good things about ChatGPT five point six.
and yeah, I was I was trying to do like a scheduling flow. And my understand and this is another thing where like domain knowledge really matters, because my understanding of our scheduling flow is that basically whoever proposes the session cannot confirm it, right? And then if you propose a new time, then it kind of kicks the ball back to the other party. And so only the the the most whoever has not proposed the most recently can actually confirm the session.
And Fable just straight up hallucinated. I told it, like I that's what I think it is. And it it researched the code base and it was like, nope, that's not what it is. It's you know, it instead it's only that the coach can ever confirm the session. And so it wrote all this code based on that. And I had to prompt it again. I'm like, I'm I'm pretty sure that's not it. And and then it searched again and it was like, you're you're totally right. You know, again, classic, you're absolutely right. but yeah, just like
I and our code base at this point is pretty well architected. Like it's it's very easy to kind of trace an action through and figure out what's happening. We've isolated all the side effects to these downstream consumers in an event driven way. Like it's very, very easy to read. And I'm car I'm constantly harping on with like AI assist development. Like what's good for AI is good for humans. and just good clean code bases to reason about. And why I'm so obsessed with like making sure that our agents are operating in a good, clean way, because I'm like,
They will just bolt on if statements everywhere, right? You'll tell it, please do this thing. They will never think by you asking me to do this thing, we actually need to rethink our system. They'll just bolt on if statements. And I think even our code base is pretty clean and fable hallucinated yesterday. I'm like, I'm sure if we don't let it, if we don't keep track of it, I mean that that rate of hallucination is just gonna increase and then our agents are gonna become less valuable. I was even talking about this from a cost perspective because you might say, well, no, no, no. We have all of these integration tests and they
And so our agents can just run, you know, in in verification loops over and over again. I'm like, yeah, well, if if your agent needs to run nineteen times to make a simple change, and mine only needs to run once because my code base is clean and well architected, then even from a cost saving perspective,
Nathan Toups (33:12)
Right.
Carter (33:13)
that's really valuable. so yeah.
Nathan Toups (33:15)
Right. And even if you're you have
a really capable plate spinner, right? So a lot of times I'll think about
Carter (33:20)
Yeah, absolutely.
Nathan Toups (33:21)
cognitive load of how many plates am I expected to spin? And the the risk being that if you get off on any of them, the plates start to fall and they can kind of cascade. Even if these AI agents are quite capable at spinning lots more plates than maybe you can, it's going to make a mistake. And I I it's funny that you bring this up because I've been in this case, I've been using Matt Pocock's
styles a lot and have some of my own skills that I've been developing where I'm actually full circle getting back to breaking problems up in really small incremental changes and stacking them.
Carter (33:52)
Right, right.
Nathan Toups (33:53)
mostly because that's how we did it before AI tooling. And it I'm I do believe I think Will Will Larson actually hit like a really good blog post recently about there was already a problem in the software industry of being accountable for what you're shipping.
Meaning that that
Carter (34:08)
Right.
Nathan Toups (34:08)
like can you actually you you say that this is the way that the system works or should work and not holding yourself into account or the code reviewer kind of just agreeing to it. you know, Sally's pretty smart. It kind of makes sense to me. I haven't fully grocked it, but you know, I trust their work and I'm gonna approve it. That those add up, those technical errors add up over time where you
Carter (34:31)
Right, right.
Nathan Toups (34:32)
six months later you go, man, that's not what I wanted at all. Like, how did we get here? And it's like
there was no egregious thing. It was like this one little problem. And the AI exacerbates this, right? A AI, you you get in there and you're like, do I really want to read this verbose markdown file that's explaining everything? Like I'll kind of breeze
Carter (34:49)
Right, right.
Nathan Toups (34:50)
over it and and so yeah, I think you're you're absolutely right. Like paying up this tech debt first of all make are we doing foundational principles? Do we really understand the domain that we're in? I've never regretted spending that extra time doing that. I guess
Carter (35:06)
Yeah.
Nathan Toups (35:07)
You know.
Carter (35:08)
Well and that's why I I I I s didn't get enough sleep last night and my I'm losing my trains of thought. but I just like some people are are all in on this idea of like we're just gonna like these agent swarms they're gonna operate autonomously. And and there's some things I really like about that in the sense that like on our checkout page for so long, we have not displayed like
Like it's like, hey, you bought 10 hours of coaching, right? And for some reason we did not display the coach's actual name and their image. It was just like 10 hours of MBA coaching. Super impersonal. We hate it. And so we just like in Slack pinged our our agents, we call them the ponies, and said, like, hey, like, can you fix it? And it's great. It generated like a little four file PR, right? And then we and you can look at it and grok it pretty easily of like, yeah, this is what this is doing, right? And very, very small change and like done. And like that's something that's bothered us for years. We just haven't gotten to And so to be able to
Fire that off in a Slack command is great. But in general, I am not a huge fan of this idea of like, like I said, we try to kick off a swarm to do this net new feature development. It was a disaster. Even when I'm coding, like some people are like, you should be working on five separate things at a time. Like generally, I'll have like maybe two agents going in separate workspaces if the features are very easily parallelizable, right? Just kind of separate domains. But in general, if I have downtime when my agents are going,
I much prefer spending that downtime, like, and this is different because I'm a principal engineer. And so I have more like leadership responsibilities. Like, I'll review the product roadmap. I will be in our analytics tool post hoc and like be researching like how are our customers using the product. Sometimes I'm just clicking around the website myself and and trying to get ideas for like how could we be improving this? And so I think in an AI world, like where we're supposed to become more product minded as engineers, like
This idea that you should just have like 10 agents going and switching back and forth between all of them, like I find that context switching and that plate spinning way too overwhelming. And I think the time is better spent like doing something completely different related to the domain that can improve, you know, your your product, but not necessarily how much code can I possibly generate at the same, you know, at a time.
Nathan Toups (37:21)
No, I I'm I'm in the same boat. I think my sort of like terminal agent usage is depends on the type of work, but it's if I get much more than three, I start
Carter (37:33)
Right.
Nathan Toups (37:33)
feeling the stress. I I've definitely I will definitely have like it and so it's funny, I've actually gotten I will use VS Code some I I have I'll have VS Code just so it's an easier way to file browse.
but most of my stuff is entirely terminal based now and I'm using Tmux and I have work trees and I have like I have these like
Carter (37:53)
Right, right.
Nathan Toups (37:54)
clean separations and workflows that have kind of come up. I also I work with multiple clients and I have strict separation across virtual machines. So I the hygiene
Carter (38:03)
nice, nice.
Nathan Toups (38:04)
mostly being me being paranoid, being like, Hey, what happens if an agent breaks out or something crazy? I
Carter (38:11)
Right, right.
Nathan Toups (38:11)
would like to I'd like it to be, you know, blast radius of a single, you know, client or whatever.
but this has forced me to do things like get my dot files working better, how make it as low cost as possible to spin up virtual machines for sandboxes and all of those things have actually been useful and actually have gone back to to clients that I work with because these are the same problems they're trying to solve. Like, how can
Carter (38:34)
Right.
Nathan Toups (38:34)
I, you know, allow an agent to be autonomous within a set of constraints in a sandbox that keeps things safe, but also allows it so I don't have to like hit yes every time.
Carter (38:45)
Have you ever used you're talking about dot files, you ever use dot en v x?
Nathan Toups (38:50)
No, never never use that.
Carter (38:51)
It's super awesome. I I I'm familiar with this concept with EJson, but it's this idea that it's a.emv file, but it's encrypted. And so
Nathan Toups (38:59)
Uh-huh.
Carter (39:00)
you just need one key to decrypt it. But what's fantastic about it is you can commit the.env files to source control. And so as long as you only have the the key,
Nathan Toups (39:11)
yeah.
Carter (39:12)
you know, in in Bitwarden or Keeper or whatever, you can commit all your.emv files to source control. And so it's really helpful for like,
Just like a a a staging like like for example, you're you're running local development, but you want kind of all the staging secrets so that you know you're interacting with staging locally. it's yeah, it it it's awesome. And yeah. Yeah.
Nathan Toups (39:33)
This is interesting. I actually I'm I think this would be good to go off on a a on a
a little tangent for a second. How let's say you so then is there a common secret that you have to share amongst your group? Like how does
Carter (39:43)
Yeah, yeah. So there's
a common just like a common one key. It's like just the decryption key. And so
Nathan Toups (39:49)
So my
my sp my tinfoil hat Spidey Sense goes off because I say, okay,
Carter (39:52)
Yeah. Okay.
Nathan Toups (39:53)
well what happens when we need to key rotate? because any so now we have an in like a in number of engineers problem, which is if anyone leaves for any reason, it we now have a key rotation event that has to happen.
Carter (40:06)
That's fair. That's fair. Right. But
is that any different from just th your your classic secret, like right.
Nathan Toups (40:13)
so so here's a good
yeah, well, yes. Any secret inside of the envelope, obviously, if they have access to those secrets, you have to rotate all of them if they're not ephemeral, right? Which again,
Carter (40:22)
Right, right.
Nathan Toups (40:23)
in a perfect world, we would live in a world where all secrets are short-lived, they're ephemeral, we ask some
Carter (40:28)
Right, right.
Nathan Toups (40:29)
service for them. so there's a couple ways I've I've seen in I'm not I'm not like dumping on dot in vx, because I think that these are great solutions for lots of reasons. there's tools like
age or Age or I don't know how to pronounce it. Please rest me. But age, it's A G E. I know it'd behoove me to do my research
Carter (40:46)
It would behoove you to roast Nathan.
Nathan Toups (40:51)
before. so the in this one, you add you it's a aggregate of all of your private keys. So basically if I added a new person,
Carter (41:02)
interesting.
Nathan Toups (41:03)
it re-encrypts the envelope encryption.
Carter (41:05)
that's cool.
Nathan Toups (41:06)
but then I'm never you we're never sharing a secret. It's just are you is your private key ever there or not?
Carter (41:09)
that's nice. Yeah, yeah. We'll have to look into that.
Nathan Toups (41:12)
Also, OnePassword has an amazing command line tool now. And so that's actually, yeah.
Carter (41:17)
okay.
Nathan Toups (41:17)
So I we are now using this at a couple different places. And for me personally, it's called OP, like OnePassword. And so OP, you can give it read access to stuff, and then I use it to kind of bootstrap things. and then of course you get to like lean on all the cool things that OnePassword does. and then the the the
The awesome one, if you want to go vendor neutral, is is a tool called Vault by HashiCorp. And again, it takes a little bit more to
Carter (41:46)
Yeah, yeah.
Nathan Toups (41:47)
get it set up, but that's like the best environments I've ever been in that needed to be cloud agnostic. then you can do cool stuff like software engineers never see production secrets ever. Only a
Carter (41:58)
Right, right.
Nathan Toups (41:58)
role on an EC2 instance ever sees it. But when I'm doing local dev, my GitHub credentials can give me access to decrypt a secret. And so like
Our dev environment, anybody who's in certain GitHub groups can access it. everything feels the same, but then if it happens to be in the prod environment, it uses a a different, you know, sort of s SAML handshake or, you know, whatever single sign on stuff that you're your handoff that you're doing.
Carter (42:26)
You say one
password, it it has a good CLI to how how recently did they develop this CLI? Do you know?
Nathan Toups (42:32)
I don't know. We've started using it in a way that's been pretty cool. Cause again, I still use it to kind of bootstrap. we're big on like injecting secrets it to just to the s the smallest surface possible.
Carter (42:44)
Right, right.
Nathan Toups (42:45)
but one password is great because any field in your one password can be a key value store. So you can use
Carter (42:50)
Yeah, right.
Nathan Toups (42:51)
it for sensitive stuff. I actually have one I have one that I have for my private vault and one password called Home Lab. And it's literally just like a catch-all for certain my
tail scale ephemeral API tokens or some other, you know, things
Carter (43:03)
Right, right.
Nathan Toups (43:04)
like this that I kind of want to inject into something that I'm doing. it's made things nice for for personal projects. So
Carter (43:11)
I just
wonder because with you saying it was developed recently, that that's one thing because I've just noticed with like large language models that like it's just enabling us to take on new surface area we wouldn't have in the past. But I'm also big telling the team like, look, there's kind of two ways you can develop with large language models if you just have more bandwidth, which is you can either just develop a ton more features or you can develop a a little more features, but just make them good, right? And just make like the quality of the website. And I keep telling the team like the bar.
for user experience for the history of this company has been functional. If it's functional, it works. Like I said, the new bar is delightful, right? And so kind of with new stuff we're building, I'm trying I'm trying to like focus on like, is this a delightful experience? And and and just clicking around the site. Sometimes I'm like, yep, like this is this doesn't work. And so I I'm trying that that's my big hunt right now is to try to find those things and and fix them. but we we talked a lot about that. We we should mention this this chapter with Charles Babbage
Ada Lovelace is the companion figure in this chapter who was, she was Babbage's protege, so to speak.
Nathan Toups (44:17)
Yeah.
Carter (44:19)
she is called, she's often called the first programmer because she recognized with Charles Babbage's adding machine that it could inter that that there was a a future where it could interpret symbols. and basically that idea that
Understanding that a machine could work with symbols makes her in some sense the first programmer. Uncle Bob disputes the idea that she's the first programmer. He says there's evidence that Charles Babbage understood that the machine could use could could interpret symbols one day too. but he's he gives her the title, at least with Babbage, of they're the first pair programmers, that they have lots
Nathan Toups (44:58)
Right.
Carter (44:59)
of correspondence between each other, discussing the potential of the machine and how the machine currently works.
And and he has this really interesting point. She dies at 36, unfortunately, of cervical cancer. but basically, like, can you imagine living in this world? I mean, this is the early 19th century, understanding this vision of what could be and just limited by the technology of your time. and and he also has this kind of like what if of like, what if Charles Babbage had been kind of more of a completely starter?
Nathan Toups (45:32)
Right.
Carter (45:33)
And what
if he had actually just followed this passion through to the very end? Is there a world where the computing revolution takes off faster than it Right. You know? Right.
Nathan Toups (45:44)
absolutely. And and I do
I think it it seems like, you know, and I don't know if it gets enough credit in the book itself, but I feel like it s with some of my own independent research, Ada Lovelace and Babbage seem to be a feedback loop where they they
Carter (45:59)
Right.
Nathan Toups (45:59)
were really pair programmers in the sense that I think they both fed off each other of like the potential. And I think it it is hard when you're the inventor of something to even know what its applications could be.
Cause you really are thinking of a world that doesn't exist yet. And you're also having to constantly validate and saying, Am I crazy? Or is this are we really onto something? Am I tapped into some deeper truth that we haven't figured out up to this point? And of course, most of the time is you're delusional, right? Most people think that they've come up with something amazing and it really isn't that amazing. And every once in a while, somebody comes up with something amazing and it really is so crazy that people don't even know how to like
Carter (46:37)
Yeah.
Nathan Toups (46:38)
wrap their heads around it, right?
I bring up Euler again, because Euler hit the mathematical equation, he was just doing it to like goof around and it was like weird weird abstract ideas, and it's like the foundations of modern cryptography. Sitting there latent for like 200 years, right? or a hundred and some odd years. And and so I I think that Babbage was in and and Ada were in the same spot where they they had the mathematical prowess.
They had the understanding of how physical machines could function. And they knew that we were just tapping into a potential. And again, you have to remember this was actually before the idea of like binary, binary operations.
Carter (47:22)
Right.
Nathan Toups (47:23)
So they're still doing this on top of some base 10 type abstractions, just because that's how numbers function. So, you know, these mechanical wheels and they they would periodic and it flip over. And but the fact that they could like turn things from
A set of numbers, I'm doing something that turns into a set of numbers, and then those set of numbers go through a machine and then come out with a new set of numbers at the other side, and that those things can represent something abstract is a sort of beauty and madness. I I would argue that anyone who does advanced mathematics are like high functioning crazy people. and I mean that in the most loving way possible, because I think if any of us who've ever had a conversation with somebody who's like,
super excited about, you know, Einste Einstein's mechanics or something about quantum, this real observation, you start being like, are what planet are you on? Right? which
Carter (48:22)
Yeah.
Nathan Toups (48:23)
I don't know. It's I it's it's it's interesting. And I so I I had a feeling that Babbage probably at these dinner parties would go on about the future of this thing and
Carter (48:33)
Right.
Nathan Toups (48:34)
skeptical minds probably came through and were like, this dude's nuts, right? Like this guy's
completely out of his mind.
Carter (48:39)
I know
I've I've had as I've gotten older, like and reading this book, you you have to, I think you have to recognize where your strengths are. Cause I admire people like Babbage, who have that kind of like mad scientist mind. And like sometimes I get frustrated that I'm not a more like the bleeding edge of things. But I think sometimes our greatest strengths are also our greatest weaknesses. And that that groundedness that I think I have also makes me, I think, a more effective product thinker. Because when I think about building something.
It's very clear in my mind, like who are we building this for? What do we want it to look like? What is a good user experience? And I think kind of the people who are a little more like nutty professor struggle with that. And which isn't to say one is even better than the other, I think. it's but yeah, just you know, different strokes for different folks. maybe this is a good time to talk about the next chapter because this the book jumps time quite a bit, basically from early, I mean, you know, like American Revolution and
Pre-Civil War era, although obviously in England, to World War II. And Uncle Bob mentions this that basically necessity is a mother of invention. And we reach the age where our machines are getting more powerful, war breaks out, and now there are government needs for computing to become more powerful. and this introduces us to David Hilbert, Alan Turing, and von Neumann. What is von Neumann's first name? I don't I don't even John, John von Neumann, yes.
Nathan Toups (50:04)
John, yeah.
Carter (50:09)
yeah, all all interesting characters in their own right. I I I guess yeah we we
Nathan Toups (50:14)
And and if your ears
perk up because you recently saw the movie Oppenheimer and you knew
Carter (50:18)
Yes.
Nathan Toups (50:18)
that John von Neumann was in that movie, he was a prolific polymath of polymaths. The guy is literally involved in
Carter (50:24)
Yes.
Nathan Toups (50:26)
everything in the 1940s, and and and beyond. And it's absolutely fascinating to see where his influence was, whether it was in obviously the von Neumann machine, which we'll get into, which is
the foundations of how modern computing is abstracted put across CPU and memory and everything else. he was deeply involved in quantum you know quantum physics. He was deeply involved in the Manhattan Project. He was also like
Carter (50:59)
Yes.
Nathan Toups (51:00)
very interested in the beginnings of AI and really was just a deep thinker in a lot of ways that it just I I'll again I'm I'm gonna I'm gonna
I'm gonna talk about something really quickly, which is Claude Shannon is absent from this section. And I think it's to the detriment
Carter (51:17)
Ha ha ha.
Nathan Toups (51:18)
of this because von Neumann and Alan Turing had interactions with Claude Shannon. Von Neumann was the reason that Claude Shannon named entropy entropy. So Claude Shannon was
Carter (51:30)
Ha ha ha.
Nathan Toups (51:31)
trying to say, like, hey, there's this a certain maximum amount of information that can be extracted from any set of bits, and
the s the amount of surprise that comes from this or the the distribution of what's the possible set is is the entropy. So like the the a high entropy system is one that has is very unguessable. And a low entropy system is one that you can really guess. Turns out this is the b the basis of how next token guessing functions as well. but von Neumann's like, hey in physics there's this word no one understands it's called entropy. you should use this word, right? This is a kind of this like running joke. And so
Carter (52:07)
Right, right.
Nathan Toups (52:07)
The reason
that there's this thing called Shannon entropy is because of conversations he had with with von Neumann. Alan Turing and shlaude Shannon also worked on cryptographic systems during World War II and they were not allowed to talk about it. But they did, there was a period of time where Alan Turing was in the US, I think it was the US, but they were in the same spot and they would have tea like every day talking about the future of computing. And so, like again, it it it just feels absent that the person who coins the term the bit.
Like the the foundations of how binary operations
Carter (52:39)
Right.
Nathan Toups (52:40)
work in systems is not there. So anyway, that was my little my little scree. this section's great. It's just
Carter (52:46)
Claude
the AI is not named after Claude Shannon, right? Is it Claude Coates? Is that or is it Claude Shannon?
Nathan Toups (52:49)
It no, it's named after Claude Shannon.
Carter (52:53)
Who's Claude Coates? Is that is that something
Nathan Toups (52:55)
I don't know.
Carter (52:56)
I I think I just think of it because of Claude an American artist. Yes, no, of course it's not named after. I just I just think of Claude Coates because of Claude Coates. I don't think there's any relation.
Nathan Toups (52:59)
Actually don't who no no it's it's named after Claude Shannon for sure. well and that's a funny thing, and again,
there may be people I g I should say this. There are probably people on this listening to this podcast right now who don't know who Claude Shannon is. I'm really sad about it. He's probably the most important person in the 20th century that no one knows about.
Carter (53:21)
Ha ha.
Nathan Toups (53:21)
he's the father of information theory, and he he actually like as an undergraduate wrote a paper.
On how you could use Boolean logic to s to prove the correctness of circuits. And so it there's this really interesting gap where being an engineer was considered more of an art. And he brought it into a a a rigorous discipline that was backed by mathematics. And there's this transition period happening in the beginning of the 20th century that happened with this. Bell Labs took his undergraduate paper.
And started using this so that they could prove the correctness of their circuits that they would deploy out into their telem their telephony systems. And of course, he eventually ends up getting a job at Bell Labs. And so the reason I'm like this huge clo Claud Shannon fanboy is because like he absolutely is we programmers, right? Like it's just
Carter (54:15)
Right.
Nathan Toups (54:15)
nuts to me. And again, I can't wait to ask Uncle Bob about this because and it could be that the book would be going on for
Carter (54:21)
Right.
Nathan Toups (54:22)
infinity if he didn't cut some people out.
Carter (54:24)
And gobble answer for his crimes. I've been I've been watching
Nathan Toups (54:24)
But I know. I know that you crossed the one line that this co-host can't stand.
Carter (54:33)
clips of Batman for some reason. And so I'm thinking of Batman quotes. Like, I have one rule. Nathan, you have one rule, and it's you must not forget Claude Shannon. This reminds me of when I was in elementary school and we were
Nathan Toups (54:41)
Yeah.
Carter (54:44)
like watching like this like history channel thing of like the hundred most important inventions in human history and like and their inventors. Naturally, as a as a child, I knew exactly.
which invention should be on there and the inventor is Nolan Bushnell, the creator of Atari and Chuck E. Cheese, some sometimes known as the father of the modern video game. So I'm just waiting throughout the series for, of course, Nolan Bushnell is gonna get show up. We get to like number one, and our teacher pauses it and it's just like, okay, what do you think is the number one most important invention? As again, I'm like, well, I don't know if I would put Nolan Bushnell number one, but he hasn't shown up here yet. So I I'm sure
Sure, he's gonna come. No, it was Johan Gutenberg in the printing press.
Nathan Toups (55:24)
Hilarious.
Carter (55:24)
As a kid, I was like, what? Like, when was the last time I've used a printing press? this is you and Claude Shannon. but your arguments are
Nathan Toups (55:30)
This is me that yeah, this is my
Carter (55:32)
are better founded than mine were.
Nathan Toups (55:34)
That's hilarious. I love that though. I really do. I really do.
Carter (55:38)
little 10-year-old Carter. yeah, I I think it is an interesting, I think there's also an interesting Uncle Bob doesn't get into this, but the parallel between John von Neumann and Alan Turing, which is John von Neumann is a Jew.
And was persecuted and and and in I believe communist Russia at the time. And so he flees and then finds safe harbor in America. basically, you know, one nation because of their prejudice changed out a brilliant thinker and and it was our gain as Americans. but then there's this interesting asymmetry with Alan Turing, who is persecuted by his country for being gay and someone who could have been a brilliant mind, it was a brilliant mind, obviously, but his influence could have been tenfold.
If he didn't have this this prejudice against him, right? and so, you know, just a little symmetry there.
Nathan Toups (56:22)
Yeah. It's it you know, it's fascinating because all none
of these people fit into any clean path, right?
Carter (56:30)
Right.
Nathan Toups (56:31)
all of these folks were such, I mean, it's so cliche to say out-of-the-box thinker, but really they're you know, one of the things I loved about Turing is obviously Turing was a a genius, and I think that that was witnessed early on, but he wasn't a great student in the way that some of the schools that he was in expected him to be.
He would he got
Carter (56:50)
Mm-hmm.
Nathan Toups (56:50)
very bored with certain expectations of how he was supposed to go through the education process, but also he became fixated on certain types of problems. And unfortunately, I think systems chew up curious minds like this all the time, right? I I wonder how many Alan Turings through s situation and circumstance the world never knew because they
Carter (57:14)
Right.
Nathan Toups (57:14)
were born on the wrong side of the street or they weren't encouraged by a certain family member.
Or a teacher, and probably were exceptionally intelligent and yet, you know, never got to find a way to express that. And I I think that
Carter (57:30)
Right.
Nathan Toups (57:30)
these stories of these truly exceptional people, right? Like the Alan Turing, John von Neumann, David Hilbert, these are, you know, not these are the exceptions of the exceptions. But I do think that like
What we see here is that we really do need to w have a way of cultivating wild new ideas and letting people go down certain paths so that they can find you know, blind spots in society. Right. And yeah
Carter (58:00)
Right. Well, I and
it's fascinating. We we had this talk with Brian Kernahan. I'll point out one, looking at the chapters of like who's to come, I'm like, how neat is it that like he lists yeah, he chapter 10 is Thompson, Richie, and Kernahan. I'm like, how crazy that we've interviewed Brian Kernahan twice. What a nice guy. but we asked Brian Kernahan in when we were interviewing him about Unix history in a memoir, like, do you think this could happen again? Do you think a couple people with an idea?
can change the world. And he pointed out the the very first paper, Attention is all you need, which is the foundation of LLMs. He's like, that paper only had a couple writers on it, right? And that's an idea that has exactly right.
Nathan Toups (58:40)
And it was ignored for a couple of years, right?
Carter (58:44)
And that is an idea that has, I mean, I I at this point it's undeniable, it's changed the world. and so I I think, yeah, it's an interesting thing to think about, which is like how many people out there are having ideas like that that could change the world and aren't being properly
nurtured or encouraged or our systems
Nathan Toups (59:00)
Right. Or how many
Carter (59:01)
are not feeding through the through the right pipelines.
Nathan Toups (59:03)
Exactly. I and again I know that we things will get controversial, depending you know, for all of his flaws. you know, Elon Musk is an executor, right? So like
Carter (59:16)
Right. Yeah, yeah.
Nathan Toups (59:18)
there's a lot of things that I I I'm not the biggest fan of. But I will say I like you know when people write him off as like, he really actually hasn't innovated
Carter (59:25)
Mm-hmm.
Nathan Toups (59:26)
or done anything, I'm like, Well, I I understand from like Cope, I would I would love for that to be true, but that's not true at all.
Carter (59:33)
Right,
right. Even if Elon
Nathan Toups (59:34)
He from a
Carter (59:35)
Musk's only thing is that he finds interesting ideas and funds them, that's still
Nathan Toups (59:39)
Right.
Carter (59:40)
a lot more than a a lot of other people do, right.
Nathan Toups (59:42)
Right. And and and again, he
did things that were considered impossible. People laughed at him. This idea that you could have a reusable rocket, that you could actually make a
Carter (59:48)
Right, right.
Nathan Toups (59:49)
profitable business model off of space internet. You know, I again I think I'm in the same I'm in the same boat as Charles Munker, which is that like I don't ha most of the time I don't quite understand what Elon Musk's like really his point is of what he's doing, but I won't bet against him. Like it's just betting
Carter (1:00:06)
Right, right.
Nathan Toups (1:00:07)
against him is is obviously not worked out well.
Carter (1:00:11)
Yeah, yeah. And y you know, obviously
Nathan Toups (1:00:11)
For folks and so I it
Carter (1:00:14)
he's he's talking about full self-driving. it's six months away for the past ten years or whatever. But y
Nathan Toups (1:00:17)
yeah. It it
Carter (1:00:19)
I again, you look at this what he's built, or at least what he is enabled to be built.
Nathan Toups (1:00:22)
No, but he he's a con man in
a lot of ways, right? Like he's definitely hyped himself up and done things, but despite all of that, he's shipped some things that I think have changed the even if he disappeared tomorrow and all of his companies disappeared, we now know that you can reuse rockets and operate them
Carter (1:00:37)
Yeah, right.
Nathan Toups (1:00:37)
at a fraction. We know that there's viable business models with doing certain things in space. And so like I I think he's the antithesis to Babbage in some ways of like how many folks have had the crazy, I would say like pothead ideas.
Carter (1:00:50)
Right.
Nathan Toups (1:00:52)
Of like, hey man, it would be so cool if, and then just kind of like sat on the couch and never finished doing that. and so it I think what's unique about this aspect of the 20th century is that no one would have built Turing's machine unless World War II was happening, right?
Carter (1:01:09)
Right.
Nathan Toups (1:01:09)
No one would have tried to split the atoms and you know cause the most devastating war weapon ever.
created unless we thought it was going to end a war or, you know, give us sort of dominance in certain ways. And I'm not necessarily saying that all of those innovations are good. And I think even I I loved that von Neumann talked about this, that he's like, you know, I wish I had the quote, maybe we can find it in a second. Where he's like, we're going to be misunderstood and hated. And at the same time, it's inevitable that these things are going to be developed.
Right. Like I think he kind of had this understanding that like if we don't do it, other folks are going to do it. And it's also like terrifying what that means, what's gonna come out of the other side.
Carter (1:01:54)
Well, and it's yeah, and there's also this idea that like being early is just as bad as being wrong. Right. And like I I follow this Twitter account that just like it's summarizing events from 25 years ago. and and just recently it it says Web Van, a grocery delivery startup, goes out of business, right? This back in the dot com boom. And and now we know that grocery delivery is a hugely profitable and popular business, but you were just too early. I think VR.
Is one of those things. Like I'm just such a believer in the idea of the glasses. Like the ability to put on glasses. And my brother, who lives a thousand miles away, now appears to be sitting in the room with me. And we can have a conversation. Like that is a hugely valuable product. I owned an Apple Vision Pro briefly. I had it for about two weeks before I returned it. Very, very interesting product, just way too heavy. but one of the most magical things about it, and again, too heavy, too expensive for just this use case was I took a spatial video.
Of my children playing in in our loft. And the ability to sit back on that couch, even for those two weeks in that same spot and to turn it on. And it was like my children were playing in front of me was magical. And I do think there will be a future where we look back on like like I mean, you know, right? Like, how many videos do are there of you as a baby? Probably very little, if any. I don't know how good your parents are about recording.
Nathan Toups (1:03:16)
Yeah, I don't think my my
parents didn't have like an eight millimeter or like or like a little mini
Carter (1:03:21)
Right.
Nathan Toups (1:03:23)
it wasn't until probably I was like ten or eleven that we probably had like some sort of camcorder type device.
Carter (1:03:28)
Yeah. And I
I'm 10 years younger than you. And so there's more of me. But
Nathan Toups (1:03:32)
Mm-hmm.
Carter (1:03:32)
we have my brother actually got them all and and and published them as a private video on YouTube that the family has access to. And there's about, I think, 90 minutes of footage of us
Nathan Toups (1:03:41)
Mm-hmm.
Carter (1:03:42)
as as small children compared to my kids, where there's just tons and tons of video of them. Exactly. And so but I right,
Nathan Toups (1:03:44)
Right, which is hours and hours and hours, right? Yeah. Same with our daughter, right? Yeah.
Carter (1:03:50)
but I think our children might look at that one day if they if they do get the glasses kind of down.
And that will be kind of like we have this grainy footage of me and there's just a little bit of it, but they will take 3D spatial videos of their children
Nathan Toups (1:04:01)
Mm-hmm.
Carter (1:04:01)
and be able to put the glasses on and relive it. I think that's a really, really interesting idea. I think it there will be a lot of demand for a product like that, but it's just so early. And I think there are people who have invested a lot of time and energy and effort into VR. That's just like the the consumer demand is not there yet. And so, you know, I I I I you wonder about how many people with those kind of crazy ideas right now are just.
They're not wrong, they're maybe just early. who knows?
Nathan Toups (1:04:27)
Yeah, and it
it it it's it's fascinating. And I would imagine it's probably a a cruel joke on one level to see a glimpse
Carter (1:04:35)
Right.
Nathan Toups (1:04:35)
of the future that you know is going to exist, but be incapable, right? Yeah.
Carter (1:04:38)
Right, like Lovelace.
Nathan Toups (1:04:41)
Being capable of living in that world. And I I I'm sure there's folks like this that live amongst us now, right? That have a
Carter (1:04:47)
Yeah, absolutely.
Nathan Toups (1:04:49)
something that like I can't even wrap my head around because it just sounds completely nuts.
Carter (1:04:55)
well we as far as hot takes go, you already shared yours, Claude Shannon, right.
Nathan Toups (1:04:59)
Yeah. Claude
Shinnan also I'll give an honorable mention. Alonzo Church is also not mentioned.
Carter (1:05:05)
Okay.
Nathan Toups (1:05:06)
He's like the he was the the first to do lambda calculus and is like the reason that like Lisp and Haskell and all these like functional programming things exist.
Carter (1:05:13)
Okay. Interesting.
Nathan Toups (1:05:15)
So a little shout out.
Carter (1:05:17)
mine mine's not a hot take so much as a disclaimer, which is this book is very like Uncle Bob. It's a passion project by Uncle Bob. There will be some things you might hear in it and roll your eyes a bit and be like, Yeah, Uncle Bob's political opinions. He he likes to display on Twitter. however you think of it. I I do think there is something to be said for whether or not you agree with him or not. There's a bit of like separate the art from the artist.
But I I I enjoy Uncle Bob. I think there's something about someone who's just very opinionated. And even if you think those opinions are wrong, I can appreciate having those opinions. But if you're someone who just has this need for your opinions to kind of be constantly confirmed to you, like, yeah, don't read Uncle Bob's stuff. but if you're someone who can instead hear an opinion and just kind of go, that's just Bob being Bob, right? then then you know, I I I like his work. I think it's it's always at least interesting.
what are we gonna do differently in our career? Or or no, no, what unless you had a follow-up.
Nathan Toups (1:06:16)
no no no. I I I definitely wanna read I wanna read a a biography on John von Neumann. I think that was the big
Carter (1:06:23)
Okay.
Nathan Toups (1:06:23)
thing. I he he's such a fascinating person. Like I've I've seen him touch certain areas. Also, quick quick note, I was wrong. He did mention Alonzo Church briefly. So he I think
Carter (1:06:33)
Okay, okay.
Nathan Toups (1:06:33)
he was a student of Hilbert, but there wasn't a section on him. So and again, you you have to edit somehow. But
Carter (1:06:41)
for me, I want to not be Charles Babbage in that I want to finish what I start. And especially at a startup, it's so tempting to just do that 80% and say it works. And the product I'm working on in particular, like I think we finally just hit like that. Finally, we've been working on this for a week. I think we've hit like that 80% of like, okay, this is like we could ship this theoretically, but there's so much beyond that with like reliability and monitoring.
And just kind of general UX polish that I really want to be good about before rolling it out to customers. So love you, love you, Babbage.
Nathan Toups (1:07:14)
So I'm
I'm going to I'm gonna take a contrarian take here, which is I want to be Babbage. I would love
Carter (1:07:19)
Okay. Okay, okay.
Nathan Toups (1:07:22)
to have a legacy of like this man worked on the most useless things or what felt like the most useless things. And then 200 years in the future, they're like, that guy, he saw a vision of the future. And it like, and I'm just like unburdened by the practicality of actually making it something viable. I that sounds awesome. I would love to be remembered in the history books for just like that dude had a lot of fun.
He was so distracted and like touched way too many things, but he had an influence on others. Like I that seems like a dream to me.
Carter (1:07:52)
You're you're like my older brother. he's always up to he's always up to some scheme. very, very smart guy. But like it was fourth of July, fireworks were banned in Utah this year, which is lame because it's the 250th anniversary, just because it's been so dry. And you know, I support it. Like, let's not light our state on fire. But so people at work were asking, like, what would you do instead of fireworks? I'm like, Well, luckily in my spare time, my brother built a trebuchet. And so we launched like water balloons and rice. I know,
Nathan Toups (1:08:13)
Ooh, good use of time, yes, said
Carter (1:08:16)
right? Like he's he's he's doing stuff like that all the time.
Nathan Toups (1:08:18)
I
I had a good friend in in high school and he was like, Yeah, he would build guitars from scratch. He would he built
Carter (1:08:24)
Nice.
Nathan Toups (1:08:24)
a trebuchet. And I mean it became this multi year thing where his tre trebuchet just kept getting more and more advanced because you have to learn you know, because you have to learn about you
Carter (1:08:31)
Yeah, yeah, of course, yeah.
Nathan Toups (1:08:33)
have to teach you're like, how far could I launch this? And like, can I tune the release so that it's actually at their optimal angle? Fine.
Carter (1:08:39)
Right.
Nathan Toups (1:08:39)
I love that stuff. also I was half expecting you to be like, he got into you know, drone.
yeah, I I th I thought I was gonna get you're yeah, like he he makes drone matrix art in the sky.
Carter (1:08:49)
Yeah. He probably will. Yeah. Yeah.
Yeah. as far as book recommendations, I'd recommend this to anyone. This is a the audiobook is great. Uncle Bob does a great job narrating it. it it's a fun little history lesson. And just you can read about all of these people, but it in other methods, but it's so cool reading about this where like the audience is programmers, right? And unc and it's written by Uncle Bob, who
Say what you will about Uncle Bob. He loves programming. It is so clear how much he loves the act of programming. And so someone who loves it so much, writing about all the people that have inspired him, is really, really fascinating. I remember he he mentioned this book. I think when we first interviewed him, that he was working on it. I was like, huh,
Nathan Toups (1:09:37)
Yeah.
Carter (1:09:38)
like interesting. I that's not the book I would write necessarily. but I think that's what makes it so great. It's a passion project for him, and that passion shines through and
every sentence. So yeah, anyone, pick it up. It's a fantastic book.
Nathan Toups (1:09:51)
Yeah, it's I'd say it's in the same category as Unix A History in a Memoir that Koernahan wrote.
Carter (1:09:56)
Right.
Nathan Toups (1:09:57)
it's just we need, I think somebody in the comments last week who talked about this, because we mentioned this and I said I thought it was important that we know our history. This is a a great example of a very approachable way to kind of pique your interest and let you dive deeper. You know, the there's a lot of inspirational.
Carter (1:10:14)
One hundred percent.
Nathan Toups (1:10:15)
beautiful stories of like how did we get here? And I think that he does a a masterful job of making this approachable.
Carter (1:10:23)
Yeah, it's a great book. we're excited to cover it throughout the weeks. but in the meantime, yeah, you can check us out on our website at bookoverflow.io. You can contact us at contact at bookoverflow.io. We're on Twitter at BookOverflow Pod. I'm on Twitter at CarterMorgan. Nathan is work with his consulting agency, RojoRoboto at Rohoroboto.com with his newsletter at slash newsletter. thanks so much for sticking with us, folks. We're excited. We'll be back next week with more from Uncle Bob and we programmers. See you around.
Nathan Toups (1:10:53)
See him.