﻿<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Peterman Post]]></title><description><![CDATA[Sharing learnings from the transparent career stories of technical people, written by an ex-software engineer @ Instagram

]]></description><link>https://www.developing.dev</link><image><url>https://substackcdn.com/image/fetch/$s_!645l!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5381e1ae-726f-45da-ae2c-21f0a14a3336_1280x1280.png</url><title>The Peterman Post</title><link>https://www.developing.dev</link></image><generator>Substack</generator><lastBuildDate>Fri, 12 Jun 2026 22:34:16 GMT</lastBuildDate><atom:link href="https://www.developing.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Ryan Peterman]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[ryanlpeterman@gmail.com]]></webMaster><itunes:owner><itunes:email><![CDATA[ryanlpeterman@gmail.com]]></itunes:email><itunes:name><![CDATA[Ryan Peterman]]></itunes:name></itunes:owner><itunes:author><![CDATA[Ryan Peterman]]></itunes:author><googleplay:owner><![CDATA[ryanlpeterman@gmail.com]]></googleplay:owner><googleplay:email><![CDATA[ryanlpeterman@gmail.com]]></googleplay:email><googleplay:author><![CDATA[Ryan Peterman]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Co-Creator of Haskell: Functional Programming, Thinking in Types, Useless Languages | Simon Jones]]></title><description><![CDATA[Simon Peyton Jones is the co-creator of Haskell (pure functional programming language) and I interviewed him about functional programming, why it matters, and his thoughts on other programming languages.]]></description><link>https://www.developing.dev/p/co-creator-of-haskell-functional</link><guid isPermaLink="false">https://www.developing.dev/p/co-creator-of-haskell-functional</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 08 Jun 2026 10:02:31 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/200821756/8f5bbc64b28f11f5e661ec5cab7b8e50.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/simonpj/">Simon Peyton Jones</a> is the co-creator of Haskell (pure functional programming language) and I interviewed him about functional programming, why it matters, and his thoughts on other programming languages.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/xcB_LF3cdqw">YouTube</a>, <a href="https://open.spotify.com/episode/5d9VR5MwYDWs9qAzo2H6bv?si=tZEd-XCmS7-4065ifediRw">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-xcB_LF3cdqw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;xcB_LF3cdqw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/xcB_LF3cdqw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/200821756/0039-what-functional-programming-is">00:39 - What functional programming is</a></p><p><a href="https://www.developing.dev/i/200821756/0918-downsides-of-functional-programming">09:18 - Downsides of functional programming</a></p><p><a href="https://www.developing.dev/i/200821756/1053-specialized-hardware-for-functional-programming">10:53 - Specialized hardware for functional programming</a></p><p><a href="https://www.developing.dev/i/200821756/2147-haskell-is-useless">21:47 - Haskell is useless</a></p><p><a href="https://www.developing.dev/i/200821756/2559-rust-vs-c">25:59 - Rust vs C</a></p><p><a href="https://www.developing.dev/i/200821756/2826-haskell-vs-ocaml">28:26 - Haskell vs OCaml</a></p><p><a href="https://www.developing.dev/i/200821756/3526-side-effects-in-haskell">35:26 - Side effects in Haskell</a></p><p><a href="https://www.developing.dev/i/200821756/4426-type-systems">44:26 - Type systems</a></p><p><a href="https://www.developing.dev/i/200821756/5730-how-the-haskell-compiler-works">57:30 - How the Haskell compiler works</a></p><p><a href="https://www.developing.dev/i/200821756/010435-why-haskell-is-talked-about-more-than-used">01:04:35 - Why Haskell is talked about more than used</a></p><p><a href="https://www.developing.dev/i/200821756/010907-avoiding-success-at-all-costs">01:09:07 - Avoiding success at all costs</a></p><p><a href="https://www.developing.dev/i/200821756/011112-llms-and-programming-languages">01:11:12 - LLMs and programming languages</a></p><p><a href="https://www.developing.dev/i/200821756/011357-new-programming-language-design">01:13:57 - New programming language design</a></p><p><a href="https://www.developing.dev/i/200821756/011559-should-students-continue-to-learn-programming">01:15:59 - Should students continue to learn programming</a></p><p><a href="https://www.developing.dev/i/200821756/012233-why-excel-is-is-2nd-favorite-programming-language">01:22:33 - Why Excel is is 2nd favorite programming language</a></p><p><a href="https://www.developing.dev/i/200821756/012504-advice-for-his-younger-self">01:25:04 - Advice for his younger self</a></p><h1>Transcript</h1><h3>00:39 &#8212; What functional programming is</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=39">00:39</a>] I wanted to start by asking you, what is functional programming in your words? And why does it matter to people who might use the other languages, the imperative languages?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=57">00:57</a>] Functional programming is about programming with values instead of mutation. So in a conventional imperative programming, computation proceeds by, if I want to add up the numbers between 1 and 100, I have a mutable cell containing a running total. And then as computation proceeds, I keep adding to my running total. So there&#8217;s a cell that changes its value over time. Computation proceeds step by step.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=83">01:23</a>] There&#8217;s a program counter. Now, that&#8217;s very unlike mathematics. If I say three plus four times seven, you don&#8217;t think of a mutable cell that changes its value over time. You think, well, three plus four is seven, seven times seven is 49. Just the answer is 49. So, in a sense, it&#8217;s more declarative than imperative. Another way to think of it is it&#8217;s more like what a spreadsheet does. In a spreadsheet formula, if you put in a cell, you&#8217;d say, in A1, you put the formula =A2 * A3 + 7.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=115">01:55</a>] Well, then that&#8217;s just the formula that is evaluated. And you expect to compute the values of A2 and A3 automatically before computing A1. It wouldn&#8217;t make any sense to compute A1 from the old values of A2 and A3, right? So, and there&#8217;s no notion of a program counter. There&#8217;s no notion of do this and then do that. It wouldn&#8217;t be sensible to say equals print X plus 3, because who knows when or even whether that cell will ever that formula will ever be evaluated.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=143">02:23</a>] Now, the surprise is that it is possible to do useful things in such a limited language. When I learned programming, I learned it by writing machine code in which the fundamental mode of computation is registers and program counters and mutation of registers as you go along. And memory, like, computation and mutation seem to be inextricably interwoven, right? That&#8217;s how computation gets done. So it was a surprise to me when I learned that, well, it is possible to do useful things with functional programs.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=176">02:56</a>] I still remember that amazing revelation. Now, in fact, one way to look at it is this: right back in the late 1920s, early 1930s, <a href="https://en.wikipedia.org/wiki/Alan_Turing">Alan Turing</a> was doing a PhD in Princeton under the supervision of <a href="https://en.wikipedia.org/wiki/Alonzo_Church">Alonzo Church</a>. Now, <a href="https://en.wikipedia.org/wiki/Alan_Turing">Alan Turing</a>, as we all know, invented the <a href="https://en.wikipedia.org/wiki/Turing_machine">Turing machine</a>, which is fundamentally about mutation, right? It has a little tape, and you can read things from the tape, and then you write back new things onto the tape, and it has an immutable program.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=210">03:30</a>] Now, <a href="https://en.wikipedia.org/wiki/Alonzo_Church">Alonzo Church</a> at the very same time, was working on something he called the <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>, in which there&#8217;s no mutation. The <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> is like the essence of functional programming. Programs execute just by reduction. Now, so these were two different models of computation. You might ask, what can you compute with a <a href="https://en.wikipedia.org/wiki/Turing_machine">Turing machine</a>? And what can you compute with a lambda term? And the astonishing thing that turned out, which is completely nonobvious, is that anything you compute with a lambda term, you can compute with a <a href="https://en.wikipedia.org/wiki/Turing_machine">Turing machine</a>.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=242">04:02</a>] And anything you compute with a <a href="https://en.wikipedia.org/wiki/Turing_machine">Turing machine</a>, you can compute with <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>. So that means that the two are identical from the point of view of their computational power. Big surprise to me. Okay, so they&#8217;re equally powerful. And then the question is, which might you want to choose? As I say, I started life from my baseline of imperative programming. Of course, that&#8217;s the way you write programs.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=266">04:26</a>] And functional programming is a kind of weird, anomalous, rather nerdy, academic thing. But I became hooked on the idea that by excluding side effects by default, i.e., imperative programming has side effects by default. By excluding side effects by default, we could make programs that are easier to write, easier to maintain, easier to reason about. And then the question is, what are the practical obstacles?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=293">04:53</a>] Is it slower? Is it less convenient, and so forth? So, in effect, I&#8217;ve devoted my research life to exploring that hypothesis. The wonderful thing about being a researcher is you can take something which, at the time back in 1980, functional programming was very nerdy, geeky, academic. But I was allowed to spend my professional life just saying, what would happen if you took that one idea, programming with values, and just ran with it?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=323">05:23</a>] Where would you get? And I think we got somebody somewhere pretty interesting. I don&#8217;t want to say that it&#8217;s better fundamentally, because after all, <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> on that journey started with functional programming. Then we learned how to mix functional imperative programming together in a way that we might talk about later, right? So it&#8217;s not really an either-or; it&#8217;s more of a both-and in the end. But my position now is, as I often say, when the limestone of imperative programming has worn away, the granite of functional programming will be revealed underneath.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=357">05:57</a>] And why do you say that?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=359">05:59</a>] Well, functional programming is the language of mathematics. That&#8217;s how we fundamentally think about things when we want to be formal. Indeed, if we want to reason about and say, what does this imperative program do? We have to wheel out a lot of mathematics and Hoare triples and so forth. But that&#8217;s all in the world of maths, which is just functional programming. Functional programming is just mathematics brought to life and made executable.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=382">06:22</a>] So you might wonder, I suppose you may be saying, well, isn&#8217;t imperative programming just enough? And I think that there you have to just look at the broad sweep of things. I think what&#8217;s happened is that from the world of functional programming, lots of ideas have got adopted into the imperative arena, right? So they grew up over here in functional programming, and then they have been adopted by the imperative programming thing.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=414">06:54</a>] So you might think garbage collection, you might think lambdas, you might think language integrated query, you might think about lots about type systems, polymorphism and static typing, tons of that. So at least it has been an intellectually interesting experiment that has been a very fertile laboratory in which to grow up ideas that can infect the mainstream. Now my instinct now is that we should start from functional programming and do imperative programming where necessary.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=444">07:24</a>] I think probably the mainstream is we should start with imperative programming and sort of add bits of functional programming where possible. And I&#8217;m not going to say that they&#8217;re wrong to do that, just to say that I think it&#8217;s a pretty interesting dialogue. Now you do have to think very differently about the act of programming, right? You do have to rewire your brain quite a bit. But just let me.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=466">07:46</a>] This is something we might want to come back to. I said easier to maintain. As programs get old. Think of a 10-year-old program, right? If you have a piece of 10-year-old code written by somebody who&#8217;s long since left your company that mutates some more or less global variables, then you might be a little bit afraid about, oh, and there&#8217;s other bits of code scattered about that also read or write those global variables, then you might be a little cautious about making modifications, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=496">08:16</a>] Lest, oh, if I put these two things, if I do B and then A instead of A and then B, maybe the global variable that I read somewhere deep inside the code no longer has the value that it was expected to. So reading and writing shared variables that are visible outside the scope, sort of somewhat global variables, is a form of coupling between bits of code that is very invisible, very invisible.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=524">08:44</a>] So functional programming forces that to become visible. It forces it into the open, and by the act of forcing it into the open, that strongly encourages a style of programming in which you don&#8217;t have such interactions because they are painful to manage. So it encourages a style in which programs execute in modular boxes without interacting. Now, every imperative programmer would want to do that, but I want them to do that in a provably secure way so you can know that these programs don&#8217;t interact, rather than just say I&#8217;ve done my best.</p><h3>09:18 &#8212; Downsides of functional programming</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=558">09:18</a>] Then I guess on the flip side, what are the downsides of a functional programming language?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=565">09:25</a>] Oh, well, it can be very tiresome and inconvenient, right? So you&#8217;re somewhere deep in the, you know, a subroutine of a subroutine of a subroutine of a software stack, and you want to reach out and, I don&#8217;t know, grab the time of day. Oh dear, that&#8217;s a side effect. But we&#8217;re in a pure functional language, the time of day. And indeed there&#8217;s a good reason, because everybody else higher in the stack is assuming that if I call this function, apply to, you know, seven, it will give me the same answer if I call it again, apply to seven.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=596">09:56</a>] But if it could interrogate the time of day, certainly it might give a different answer, right? So a simple thing as I was asking for, the time of day, invalidates a whole set of assumptions and so is not by default allowed at all. And that can be inconvenient because all you say, look guys, all I want to do is get hold of the time of day. Don&#8217;t give me grief. And so every functional programming language, including <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, provides you with a little trapdoor.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=621">10:21</a>] <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>&#8216;s is called unsafePerformIO, and it says, trust me, I&#8217;m going to do something that has side effects, but you can pretend there weren&#8217;t any. All right, so it&#8217;s called, it is literally spelled unsafePerformIO, with a long name that has unsafe in the title, so that you, the programmer, are taking on the obligation to make sure that what you&#8217;re doing is okay. Whereas in imperative language, everything you do could be unsafePerformIO-ish.</p><h3>10:53 &#8212; Specialized hardware for functional programming</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=653">10:53</a>] I was watching one of your lectures, and you did go over a little bit of the history of functional programming languages. And you mentioned somewhere that there was this idea of people building hardware for functional programming languages. This just made me curious because I didn&#8217;t. I only know the von Neumann architecture. Do you have any idea what that might look like? And some high-level thoughts?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=680">11:20</a>] Well, I did. I now think it&#8217;s probably a bad idea. But back in 19, when was John Backus&#8217;s Turing Award lecture? I think it was 1978 or thereabout. What was it called?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=694">11:34</a>] Can Programming Be Liberated from the von Neumann Style?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=698">11:38</a>] That&#8217;s it. Now he was saying two things. Firstly, the designer of Fortran, a quintessentially imperative language, was saying, guys, we should do functional programming. That was what the talk was about. And he introduced a language called FP for functional programming. It was a very particular, somewhat idiosyncratic functional programming language. But there it was. So that was rather amazing, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=726">12:06</a>] This was 1977. He was saying, guys, give up on imperative programming. Just do functional programming. Here&#8217;s how you do it. But he also said in the same lecture, we might imagine designing new hardware to execute this new kind of language. So if you like, we&#8217;ve got Turing machines, they give rise to register machines and microprocessors and so forth. Maybe <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>. Perhaps if we designed a machine from the ground up to do <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>, it would look different.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=757">12:37</a>] So that was, of course, very exciting. And similar kind of thinking led to an actual commercial machine called a Lisp machine. That was a piece of hardware that was designed by Symbolics to execute Lisp programs. Lisp is a mostly functional programming language. And so, at the time, I was in my early 20s. We were thinking, oh crumbs. What would a piece of hardware look like that was primarily designed to execute functional programs?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=786">13:06</a>] Would it have a different kind of instruction set and architecture? So the nearest we got to it actually was, although there was a big strand of work then that was called the MIT Dataflow project. So dataflow languages, functional languages, they&#8217;re definitely the same kind of category, right? And so MIT had this great group led by Arvind called the MIT Dataflow Group. And they designed, in the end, a machine called Monsoon that was specifically designed to execute dataflow programs, that is, functional programs.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=819">13:39</a>] It was based on a token store and matching, and tokens flowing around and getting matched up and executing. You might imagine data flowing, going through a graph, when 3 arrives at a plus node and 4 arrives at the other input of the plus node. Bam. You could fire that plus node, right? And the hardware did all of that. At a similar kind of time in England, my colleagues Thomas Clark, Joe Stoy, and others built something called the SKI machine, SKIM.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=847">14:07</a>] There&#8217;s a paper about this in the FPCA conference. And SKIM was designed to execute SK combinators. So at the time, David Turner&#8217;s written a lovely paper in which he described how to take <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> programs and translate them into SK combinators. So you can read about that in my book. It&#8217;s a very simple translation. You can give the whole translation in half a dozen lines, but then you have this mess of S&#8217;s and K&#8217;s, and S and K reduction is very, very easy.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=880">14:40</a>] So it&#8217;s like the machine code of functional programs.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=885">14:45</a>] What is a SK combinator? Just for context, there are three combinators,</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=890">14:50</a>] S, K, and I, and they have simple reduction rules. Here they are: I of X equals X, KXY equals X, S X, Y, Z is X of Z applied to Y of Z. End of story. That&#8217;s all so very simple, right? So now all I&#8217;ve got to do is take my lambda, translate it into a giant tree of SK combinators, right? S applied to K applied to I of 3 and S of Z of just a huge tree of S&#8217;s and K&#8217;s, right? Now simply apply the rewrite rules I gave you, and that is program execution.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=925">15:25</a>] It&#8217;s rather astonishing that that can execute arbitrarily complicated programs, but it can. Don&#8217;t you think that&#8217;s rather amazing? Now, I can take an arbitrary <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> program and could translate it into lambda terms, and I could translate those lambda terms into S and K. Very simple transformation. And I can just write those, run those three rules, and it&#8217;ll produce the output of the <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> program.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=947">15:47</a>] That&#8217;s pretty amazing. And indeed, there is an implementation of <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> that uses exactly this. It&#8217;s called MicroHs, and my colleague Lennart Augustsson has built it. And its execution mechanism is SK combinator reduction. And if you sit in MicroHs, you can ask it to show you the S&#8217;s and K&#8217;s that it produces. If we had a shared screen, I could probably show you. So, long story short, then the SKI machine was designed to take SK trees, big trees of S&#8217;s and K combinators, and just execute them directly.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=981">16:21</a>] So it was built in hardware and it ran perfectly well, reasonably fast. Now, why didn&#8217;t this catch on? Why don&#8217;t we have functional programming machines? I mean, at the time it was a big idea. We even had a conference called Functional Programming and Computer Architecture. FPCA was right there in the title of the conference. But slowly we became aware that what was really happening is we were doing at runtime what we could do instead at compile time.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1013">16:53</a>] And that is always a bad idea. Imagine an interpreter for, I don&#8217;t know, Pascal or something, or for Java. We can compile Java to bytecode and we could interpret the bytecode, right? So then we&#8217;re doing something at runtime. At runtime, the interpreter is looking at the bytecode, saying, dispatching to say which instruction, blah, blah, blah, right? Now what does JIT do? It takes a sequence of bytecode and says, oh no, no, I&#8217;m going to take that sequence of bytecode and compile it to a sequence of machine instructions that, when executed, will do the same thing much faster because it can take advantage of bytecode sequences, for example, to say if you swap and then swap, it&#8217;s a no-op or something like that.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1064">17:44</a>] So what, in fact, it turned out is this whole SKI business, and any other, and indeed dataflow machines also were simply doing at runtime what you could do better at compile time. We were building an interpreter in hardware. So don&#8217;t build the interpreter in hardware. Instead, build a compiler that translates your lambda term into a sequence of machine instructions that, when executed, will behave as if you had done this reduction business.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1095">18:15</a>] And then you might think, well, machine instructions for what machine? Well, from a practical point of view, it was very hard to compete with <a href="https://en.wikipedia.org/wiki/Intel">Intel</a>, right? They were just spending bazillions of man years on making x86 go faster, and Arm likewise. So we can leverage all of that work by compiling into their instruction set. But even if you say you are God, you are the chief executive in <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> and can tell them to add new instructions or computation mechanisms to support functional programming.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1128">18:48</a>] What would you add? Not very much. Little bits to do with garbage collection, barriers, I think, and such like, but nothing major. So, in other words, I think the whole build hardware to execute functional programming directly thing turned out to be a mistake. Inspiring mistake, fun mistake. I had a great time. But a mistake. It&#8217;s better to build a compiler.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1157">19:17</a>] I would have thought there might be some unique opportunities for parallelism given the immutability in these functional programming languages. So yeah, you described that graph or that SK combinator graph. I imagine you could execute that all in parallel, assuming there&#8217;s no connections across the graph.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1180">19:40</a>] And indeed, that was the dataflow machine. The MIT Dataflow machine was all based on that idea. So you throw the whole graph into the token store and just run all the nodes that are runnable.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1191">19:51</a>] But that&#8217;s incredibly fine grained. You&#8217;ve got to imagine this big tree of a million nodes, and your processor is sort of wandering around over it, doing little things in parallel. There&#8217;s a lot of memory traffic going on there. And if these little threads are operating on the same bit of tree, then there&#8217;s synchronization costs. So very, very fine grained parallel computation like this turns out to be impractical, or not impractical.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1218">20:18</a>] You could do it, but it&#8217;s very slow. So the dataflow people, their history, if you look at the history of the MIT Dataflow project, they started with micro parallelism. Every individual instruction was a separate parallel computation that might take place, and the token store would match it up. And then they built more and more compiler technology that grouped these things together into larger units.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1242">20:42</a>] So they expanded from micro threads of single instruction threads into 10 instruction threads or 100 instruction threads. Right. But even that never really caught on. So you&#8217;re right though, that if I say in a <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> program E1 plus E2, then I can do E1 and E2 in parallel. And GHC does support you in doing that. But nowadays, rather than expecting the compiler to do that automatically for every subexpression, you can spark a computation. You say E1 par E2, and that says do E1 and E2 in parallel.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1277">21:17</a>] There&#8217;s a project at Carnegie Mellon for a strict power, a strict language called ML that has a very good variant of Parallel ML going in a similar way. So essentially, we&#8217;ve moved away from the dream of automatically getting parallel, very, very fine grain to the programmer. We give the programmer clues about where it&#8217;s a good idea to do parallelism, and still the compiler will try not to fork two tiny grains.</p><h3>21:47 &#8212; Haskell is useless</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1307">21:47</a>] I was searching on YouTube and I searched your name, and this video came up. It said, &#8220;<a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> is useless.&#8221; Simon Peyton Jones, and it&#8217;s a video from a long time ago, and someone&#8217;s got a low-quality handheld camera. There&#8217;s a group of researchers that are all talking. Butler Lampson is across the table. And it&#8217;s a fun little video. And in the video you lay out this two-dimensional graph where on one dimension there is the useful versus useless axis, and then on the other dimension there is the safe versus dangerous.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1346">22:26</a>] And then you&#8217;re placing programming languages on this two-dimensional graph. And I think you started by putting C as very useful, but it&#8217;s incredibly dangerous. And then you put <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> on the polar opposite side. You said it&#8217;s useless, but it&#8217;s very safe. What are the least safe and most useful languages? And why do you place them there? C, for instance.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1372">22:52</a>] Well, yeah, so let&#8217;s see. In C, you program by mutation. So it&#8217;s unsafe in the sense that any function can mutate any variable at any time. It has a lot. You pass pointers around a lot, and functions mutate the memory pointed to by those pointers. And moreover, typically they can mutate it anywhere. There&#8217;s no array bounds checks or anything. So it&#8217;s kind of like super unsafe. And in fact, and this is demonstrated by the fact, can you imagine all of these exploits that we get every day, right, that Mythos is discovering in huge numbers?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1404">23:24</a>] But why is the Internet so insecure? Primarily because all of our software infrastructure is written in unsafe languages. If we&#8217;d written all of our Internet software and operating systems in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> or maybe in OCaml or ML, 99% of all these exploits would be removed by construction. It&#8217;s like we&#8217;ve built a boat out of paperclips and we&#8217;re surprised that it&#8217;s leaky.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1435">23:55</a>] I mean, you shouldn&#8217;t build boats out of paperclips, right, because they have holes in them. You should build it out of a secure substance, right? But then it&#8217;s too late. So we spend incredible amounts of human ingenuity and effort patching the holes in our boat built of paperclips. It&#8217;s tragic. It&#8217;s tragic how much effort and ingenuity and money has been lost and waste of resources just because we wrote our computational infrastructure for the world in an insecure language.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1465">24:25</a>] That&#8217;s what I mean by unsafe.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1467">24:27</a>] I mean, are there not vulnerabilities? If I wrote something in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, there&#8217;s gotta be some new type of.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1474">24:34</a>] Of course there are vulnerabilities. I just said 99%, I didn&#8217;t say 100. If I write a <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> program that says receive message, if the message says tell me everything, then spit out my entire database in reply, no language can stop you doing that, right? But if you look at the program and it doesn&#8217;t have any such things, right? So, I mean, nothing can prevent you against high-level attacks to insecure programs.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1503">25:03</a>] Or, I mean, another example might be deadlock, right? Services, no matter how securely written. If A waits for B and B waits for A, deadlock. Sorry, no. And no language is going to stop you doing that. You might hope for some high-level verification tools, but it&#8217;s like surely if you&#8217;re trying to do something hard, like prove that that doesn&#8217;t happen, you want to have a foundation that is, you know, in which you&#8217;ve got some bedrock to stand on.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1534">25:34</a>] If you&#8217;re standing on sand and trying to prove some advanced property, it&#8217;s very, very difficult. But good point. I&#8217;m not talking about 100% security. Absolutely not. But how many exploits are based on buffer overruns or pointer manipulation that&#8217;s gone wrong? If you couldn&#8217;t have a buffer overrun, you couldn&#8217;t do pointer manipulation gone wrong. Those bars just wouldn&#8217;t exist.</p><h3>25:59 &#8212; Rust vs C</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1559">25:59</a>] So, I mean, C&#8217;s maybe half a century old now. What about more modern versions of those lower-level languages like <a href="https://en.wikipedia.org/wiki/Rust_(programming_language)">Rust</a>?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1569">26:09</a>] Much, much better. Much, much, much better. Right. If we rewrote all of our software infrastructure in <a href="https://en.wikipedia.org/wiki/Rust_(programming_language)">Rust</a>, things would be way, way better. I&#8217;m not actually even sure whether <a href="https://en.wikipedia.org/wiki/Rust_(programming_language)">Rust</a> has array bounds checks built in, but suppose. But it must have the ability to promise that you&#8217;re not indexing out of bounds. I don&#8217;t quite know quite now, but if you compile all your code with that switched on, you are in a way better situation, way better.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1597">26:37</a>] So yes, this is not just functional programming. But you did ask about why I thought C was an insecure, unsafe language.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1604">26:44</a>] If we imagine that graph, there&#8217;s the upper right quadrant, which is useful and safe, and you described that as nirvana in the video. And I guess maybe over time, I mean, C is somewhat really unsafe, really useful, yes.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1621">27:01</a>] So C, <a href="https://en.wikipedia.org/wiki/Rust_(programming_language)">Rust</a> has moved along the axis from useful but very unsafe to stay useful and become safer. Now, <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> started life as being very safe but useless. So it&#8217;s worth just rehearsing that because in the first version of <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> there was no I/O. The only <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> program was a function of type string to string. It&#8217;s functional programming, after all; it could do I/O. All it could do was take a string and produce a string.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1651">27:31</a>] So obviously that&#8217;s not very useful. It&#8217;s a little bit more useful. A language that is very, very safe and completely useless is no-op, that does nothing ever, very safe, but very useful. <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> was a bit better, right? At least it lets you apply a function to a string and get back another string. So, of course, we then worked on how could we do I/O in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> in a safe way that will lead to monads and stuff, but just as the, you know, we&#8217;re moving from C horizontally to go safer and safer, but staying useful.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1689">28:09</a>] So from <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, we&#8217;re moving sort of vertically to get more and more useful without stopping being safe. And nirvana is when we sort of meet up, right? But the point is not to say one is better than the other, but just to say that we both seek things that are useful and safe.</p><h3>28:26 &#8212; Haskell vs OCaml</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1706">28:26</a>] When I think of functional languages, I guess in the mainstream, or what people are kind of thinking about, I hear <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>. I also hear OCaml. How do these two programming languages compare if someone was trying to pick a functional language to work with?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1721">28:41</a>] So OCaml is a strict language that is called by value. So when you say F applied to 3, 4, it&#8217;ll add 3 plus 4 and then call F to get 7, right? In <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, if you say F of 3, 4, it&#8217;ll build a little suspension that says, well, if you ever need this three, four, you can evaluate it, but maybe you&#8217;ll never need it. And then it calls F. That&#8217;s a lazy language. So because OCaml is strict, it has a defined order of evaluation.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1751">29:11</a>] So if you say F of 3, 4 and a second parameter, 8, 9, it&#8217;ll evaluate 3 plus 4 and then 8 plus 9 in that order. So it makes sense to say you can say F of print hello, print goodbye, right? Because you get hello and then goodbye printed. So once you have a defined order of evaluation, then it&#8217;s pretty easy to incorporate I/O, right? Even though it&#8217;s, quote, a functional language, OCaml allows you to do I/O without saying unsafePerformIO or anything.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1787">29:47</a>] In fact, it has a defined order of evaluation, and it&#8217;s perfectly kosher to do that as a sort of unintended consequence of being called by value. It was also, by default, impure. Now, good OCaml programmers won&#8217;t use many side effects, but OCaml doesn&#8217;t prevent you. <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> prevents you. Why does it prevent you? Because if we&#8217;d allowed you to say F of print hello, comma, print goodbye, those would be thunks, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1818">30:18</a>] Not yet evaluated. Right. So if F happened to evaluate its first argument and then its second, we&#8217;d print hello and then goodbye. If it evaluated its second and then its first, we&#8217;d print goodbye and then hello. If it didn&#8217;t evaluate either, we wouldn&#8217;t print either of them. That doesn&#8217;t sound very good if you want to control what I/O is happening. Laziness forced <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> to stay pure. Strictness allowed OCaml, which grew out of the ML tradition, by the way.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1845">30:45</a>] ML is another functional language that predated <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>. It was always strict, and it always had I/O by default. It wasn&#8217;t a goal. But that&#8217;s just the way it worked out at the time. Nobody thought about it. It was just obvious.</p><p>So that&#8217;s a big difference between OCaml and <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, right? Is that now, then, since then, they&#8217;ve both grown up. <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>&#8216;s gained sort of monads. OCaml&#8217;s gained lots of fancy type systems.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1873">31:13</a>] Some of them look at how <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> and OCaml have learned from each other. OCaml has got an interesting effect system recently and a whole lot of new extensions. It&#8217;s an absolute hotbed of innovation at the moment. OCaml. So I view OCaml and <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> as kind of siblings. Brothers and sisters, right? We love each other, we learn from each other, we compete with each other, all of the things that siblings do, but they&#8217;re not the same, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1897">31:37</a>] So siblings don&#8217;t say, I&#8217;m just better than you. You shouldn&#8217;t exist. We say, let&#8217;s enjoy our life together. And that&#8217;s what it is. That&#8217;s the way it is.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1904">31:44</a>] You describe the laziness and the strict. And as a programmer, my initial thought is I would like to control the order of execution, and when I say print X and then print Y, I want it to happen that order. Otherwise it would be a little unintuitive. What is the main benefit of laziness?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1925">32:05</a>] Why is laziness good? Well, John Hughes did this rather well way back, in 1980-something. He wrote a paper called Why Functional Programming Matters. And one of its main theses was that lazy evaluation lets you compose programs in a particularly modular way. So imagine a program that is, I mean, his classic example is a program that plays chess, right? So one thing you could do is you could imagine building a tree of all possible moves, starting from the position we&#8217;re at.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1958">32:38</a>] It would be a very, very big tree. It would be too big, because first of all I compute the tree and then I&#8217;d start deciding what move to do. It couldn&#8217;t possibly do that because the tree of all possible moves has more nodes in it than the number of protons in the universe. So let&#8217;s not do that. Now, if instead you could build the tree, having got this tree, supposing you had it, you could then walk over the tree saying, ah, let me do some minimaxing, and seeing, oh, this looks like a good position.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=1986">33:06</a>] Let me go this way. I could explore the tree right now, then. So in OCaml, then you would have to put the tree generation and the tree exploration in one function, right? In <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, with lazy evaluation, you can generate an infinite tree, and then the explorer that prunes the tree and explores just the bits of it that are necessary is completely modularly separated. I can build a different generator and a different pruner.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2016">33:36</a>] They&#8217;re just completely separate programs. So lazy evaluation is very powerful glue that lets you glue together two programs that you&#8217;d like to be distinct. Strict evaluation forces you to merge them together.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2033">33:53</a>] Yeah, this reminds me, so in Python, for instance, they have the idea of a generator where you could lazily retrieve things.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2041">34:01</a>] Every strict language, every serious strict language has lazy evaluation in it. They&#8217;re called iterators or generators, and so does OCaml. All right, but in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, that&#8217;s the default. Now instead, in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, so this is a bit like, again, the two are converging on the middle, right? <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, lazy by default. But you can make things strict. You can put in exclamation marks to say, please evaluate this before the call, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2069">34:29</a>] Or the IO monad to say value. But that&#8217;s a more brutal strict annotation. So in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, you can make things stricter. In OCaml, you can make things lazier. So it really boils down to what&#8217;s the default? We both want to have a mixture of the two. And then it becomes a bit cultural. As to which you prefer, I don&#8217;t know. Some people sometimes ask me. They say, well, well, if you were designing <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> again, would you make it strict by default with really good support for laziness?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2102">35:02</a>] And I often say, well, I might. Yeah, that does seem attractive because frequently I found myself cursing laziness as an implementer. But I strongly suspect that 10 years after that I&#8217;d be thinking, man, if only it was lazy by default. Oh, when I said strict by default, I would definitely mean strict, but pure, right, no side effects.</p><h3>35:26 &#8212; Side effects in Haskell</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2126">35:26</a>] A few times in our conversation, you&#8217;ve mentioned the word monad, and it seems like it allows us to do the side effects. And what is a monad? And how does it help us do side effects and preserve ordering?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2141">35:41</a>] One way to think about it that&#8217;s very easy to understand and use is just to imagine that the do notation is somehow built into <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>. So you can say do print x, semicolon, print y, and that has type IO unit. So a value of type IO unit means I do some input output and return a value of type unit. An expression of type IO int is an expression that when you run it will do some I/O and return an int. Okay, so do lets you combine I/O-performing computations together.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2183">36:23</a>] So print 3 has type IO unit. It does some I/O, namely printing 3. GetChar has type IO Char. It does some I/O, namely reading a character from standard input and returns a character. All right? Notice that&#8217;s different from just Char. So quotes x quote has type Char. It&#8217;s just the character pure, right? GetChar, the I/O-performing operation, has type IO Char. It does some input output and returns a character.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2223">37:03</a>] Okay, the do notation lets you combine together I/O performing computations. So if you could say do and then you say x left arrow getchar; putchar x, then that x left arrow getchar says run the getchar computation and get me the character. Call it x. The putchar x says run the putchar computation to put x, and we combine them together with the do notation that combines two computations to make one I/O performing computation.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2265">37:45</a>] But these things are completely first class. That&#8217;s what&#8217;s new about monads compared to just make it into C. x left arrow, getchar semicolon, putchar x. That&#8217;s a computation whose type is I/O unit. Let me give it a name, so I can say let foo. We type I/O unit equals that do. Now I can pass foo as an argument to something. I could put foo in a data structure. I could return foo as a result; it&#8217;s a value just as much as three or plus in particular.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2301">38:21</a>] For example, I could say do foo, foo that takes foo, uses it twice each time. Do foo; semicolon, foo says do foo and then do foo again, right? So I&#8217;ll read a character and print it, and then read a character and print it again. So these values of type I/O for some type T are first class values, right? In C, I can&#8217;t take X colon equals 3 semicolon, you know, Y plus 4 and pass that as an argument to something and expect it to happen wherever it&#8217;s used, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2341">39:01</a>] It&#8217;s not a first-class value.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2343">39:03</a>] When I first was learning this monad idea, it seems like you&#8217;ve said in a few places it&#8217;s a way to do the side effects, but keeps the language pure. But when I saw it, my first thought was it&#8217;s almost like this little place where we segregate the dirty things we want to do. But then how does that keep the language pure?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2366">39:26</a>] Oh, because. Because we are lying. But look, if your function has type int to int, can it do any I/O? No, no. If it has type int to I/O int, it could do arbitrary I/O. So yes, so it&#8217;s nice. Pure int to int function or dirty int to int function. So you may say, perhaps you&#8217;re about to say, that&#8217;s a bit of a blunt instrument. Either completely pure or completely dirty. Right. It gets you an awfully long way.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2402">40:02</a>] But nevertheless, it would be cool if you could say, oh, I am effectful, doing reading of files only. Right. So, in the type, you&#8217;d like to say, what kind of effects can it have? Can it throw exceptions? Can it spawn new threads? So you&#8217;d like to enumerate the effects this computation could have. Right. That would be cool. That&#8217;s called an effect system. And there&#8217;s a bazillion programming language papers about effect systems.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2444">40:44</a>] And it turns out that you can indeed, in the type system of <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, and indeed OCaml is rapidly becoming the same. You can express not just all or nothing, does it do I/O, game over, but rather which particular effects does it do, including no effects at all? That&#8217;s pure. Right. A good place to start is a library called Bluefin, which my colleague Tom Ellis has designed. It&#8217;s a very nice take on how to do effect systems in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2477">41:17</a>] I guess the purity comes from that. This dirty stuff is signaled through the type system.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2485">41:25</a>] Correct?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2486">41:26</a>] Okay, so we can do it. But here it is. And be aware.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2491">41:31</a>] Yeah, and because you have to thread, you know, because the type system gets in your face, you were trying to map, say, no, map says I apply a function to every element of the list. Well, so it has type A to B to list of A to list of B. If you want to apply an I/O performing function, so the function you&#8217;re applying has type like int to I/O of character, you could map that over a list, but you just get a list of I/O of chars that hasn&#8217;t done any I/O yet.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2523">42:03</a>] Right. You want something that says, take a list of IO chars and perform those actions one at a time. So I want a function that goes from type list of IO char to IO of list, and you might want to perform all those actions top to bottom, or maybe bottom to top, who knows? That&#8217;s what this function of type. Yes. So you could do it in various ways. So sometimes it gets in the way. Right. You say, oh, shit, can&#8217;t I just use Map?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2554">42:34</a>] Well, in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, no, sorry, you&#8217;re going to have to do a little bit more work to tell me in what sequence you want your effects to happen. Because by default, <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> does not specify sequence. So, adding monads to control effects does get in your face a bit. And that&#8217;s the tax we pay. In effect, that&#8217;s part of the big experiment that <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> is doing: to say, suppose we upfront say we&#8217;re willing to pay that tax.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2584">43:04</a>] How many followers can we get? And the more. But I will note that monads have infected quite a lot of other languages. Like F# is definitely a call-by-value impure language. And yet F# had these workflows that were definitely monad. And monads have appeared in Scala and in many other languages. So something that&#8217;s very monad-like has appeared lots elsewhere. It&#8217;s been a very unifying concept.</p><h3>44:26 &#8212; Type systems</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2666">44:26</a>] And so I kind of want to ask you, maybe just even on the highest level, what is a type system, in your words?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2675">44:35</a>] Okay, so what does a type system do? It lets you reject silly programs upfront. So if I have a function that adds one to things and I apply it to a character or to an I/O computation, that&#8217;s going to fail at runtime, right? Because I can&#8217;t add one to a character. Or maybe you overload plus. Maybe I reverse a list or something. If I&#8217;ve got a list reverse function, and I give it something that just isn&#8217;t a list, then it&#8217;s a bit silly to allow that and only fail at runtime.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2713">45:13</a>] So fundamentally, type systems are about rejecting at compile time programs that you do not want to run because they will fail at runtime. Okay, now, we&#8217;ve had static type systems for a long time, going back to Pascal and earlier. But simple type systems are annoying because they get in the way. Imagine a function that reverses a list. In Pascal, you could write a function that reverses a list of integers.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2746">45:46</a>] But if you wanted to reverse a list of characters, sorry, you can&#8217;t. That function that reverses a list of integers, it has type list event to list event, so you can&#8217;t apply it to a list of characters. Game over. You have to write another copy of the code with a different type. That&#8217;s a bit annoying. So what are we going to do? We need polymorphism. We need a more powerful type system. We want to give reverse the type for all a list of A to list of A.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2778">46:18</a>] So that upfront says, I work for any type A. You give me a list of integers. Fine, I&#8217;ll produce a list of integers. You give me a list of characters. Fine, I&#8217;ll produce a list of characters. Notice that&#8217;s much better than just list to list. I want to keep the fact there&#8217;s a list of integers so I know if I apply, when I look inside the list, I know I&#8217;ve got an integer. But also if I just list the list, I might get back a list of some completely different type.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2803">46:43</a>] But I know that reverse returns a list with the same type of things, right? So parametric polymorphism, super valuable, right? If you want a size of type system, it must have parametric polymorphism. The message is, if your type system is too simple, it gets in the way. Very important lesson, because it means that we cannot really say a type system is useful or not unless we say which one, because we know that weak type systems are very inconvenient.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2836">47:16</a>] It must at least have parametric polymorphism. And that is another idea that was born in the world of functional programming. It was born in ML, incidentally, Robin Milner&#8217;s famous dictum: well-typed programs don&#8217;t go wrong. ML was the first, I think, the first parametrically polymorphic functional programming language. But generics in Java and object-oriented programming more generally is exactly the same idea, right?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2862">47:42</a>] into the mainstream and you mentioned polymorphism, and so there&#8217;s this parametric polymorphism in the type system. But in the example you mentioned where maybe you want to do an operation on a list and then the type of the input changes, I was just thinking, what about when people do polymorphism in the classes?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2883">48:03</a>] Yeah, okay, but so now you&#8217;re into a whole more complicated world, right? So as soon as you say class, you&#8217;re talking static type system again, right? So object-oriented programming is another approach to polymorphism. So in an object-oriented language, we say if we have a Ford that is a car and a car is a vehicle, then anything that works on vehicles should also work on cars and should also work on Fords.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2912">48:32</a>] So the code that we write for cars works unchanged for vehicles and for Fords. Okay? Now that&#8217;s a form of polymorphism, not parametric polymorphism. That&#8217;s what you might call object-oriented polymorphism or subtype polymorphism. Okay, so now we have polymorphism in the sense that the same code, the same executable code, actually the same machine instructions work on values of different types. Okay. In both cases, both reversal lists, same machine instructions.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2948">49:08</a>] Code that works on vehicles works on things on Ford. Same machine instructions, right. Okay. That&#8217;s what polymorphism in general means. Parametric polymorphism means this for all. A list of a to list of a stuff. Subtype polymorphism means if it works on vehicles, it works on any subtype of vehicles. Okay? Now the interaction of the two, which you get by adding generics to an object-oriented language, is pretty complicated.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=2976">49:36</a>] Oh, and by the way, adding side effects as well. And so your question involving classes and superclasses and so forth is smack in that complicated world. I&#8217;m not sure it&#8217;ll be very fruitful for us to get a lot more details of the type system sorted out to know what to say. But at this very high-level overview, the big point I&#8217;m trying to make is weak type systems get in the way.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3004">50:04</a>] Type systems are meant to reject programs that will go wrong. But my function that reverses a list of integers, it will also reverse the list of characters. So it&#8217;s tiresome to be told, no, that is a bad program. I want to be able to write that it has type, for all a, list of a to list of a. So the idea of making the type system more complicated is to say programs that you want to run, you can still write in your static type system.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3029">50:29</a>] Now you might say, well, blimey, if that&#8217;s all, why don&#8217;t we just get rid of the static type system altogether? Now we could run all of those programs, but the trouble is, you can run too many programs now. You can run programs that will crash at runtime, and that&#8217;s very, very, very bad. And we all know the costs of programs that crash in deployment, that you could have crashed before you even started to run them, before you even ran your first test, right before you even linked it into an executable.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3060">51:00</a>] That&#8217;s really good. But the biggest benefit of a static type system, in my humble opinion, is maintainability. If you have a program written in, I don&#8217;t know, Perl or Ruby or Lisp in its basic form, and it was written 15 years ago and the original author has left, and all of the people who were involved at the time it was written have left, then that program is very difficult to maintain, and it becomes almost immutable.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3091">51:31</a>] Nobody dares change it anymore. What they do is, it&#8217;s an immutable piece of software, and you do stuff around the edges to impedance match what you really want to do to this now immutable blob. Now of course you have lots of tests, so test-driven development, I&#8217;m totally with it, I&#8217;ll develop all of that. But still, GHC, for example, is itself written in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>. It&#8217;s 35 years old, and yet I do large-scale systematic refactorings of it fearlessly because the type system keeps me safe.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3122">52:02</a>] In fact, often what I&#8217;ll do is I&#8217;ll change a few types and then start compiling, and then a sort of wave of changes propagate through, forced by&#8212;I just get type errors. So I know what to do. The thought was that I&#8217;ve changed the representation of this data structure a little bit. I&#8217;ve added a field to this data structure. Where in the entire compiler might that field be read, written, or freshly allocated?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3147">52:27</a>] I can&#8217;t imagine how anybody maintains 30-year-old software and makes large-scale changes like that. Without a type system, it&#8217;s unimaginable. So for me, the benefit of type systems is maintainability. Oh, and designability. Right. So I often write the types of my programs up front. The data types are super perspicuous. Novices say it&#8217;s a bit like writing the classes of an object-oriented language, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3175">52:55</a>] But if you have no types, no classes, nothing, just I don&#8217;t know, S expressions, types are my design language. They&#8217;re the way that I start writing my designs.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3187">53:07</a>] I&#8217;m trying to understand the other mindset. Let&#8217;s say C, for instance. I remember a lot of stuff when I was learning it in college, for instance, many times, right. I&#8217;d add a character to a pointer or something, and it just works because it interprets the character as a number. So is there any value to having that kind of type system, or is that just strictly unredeemable?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3214">53:34</a>] Just use stronger, I think there&#8217;s no benefit to weaker.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3219">53:39</a>] Just off the top of my head, one thing I think of is there is a set of programs that will work but don&#8217;t satisfy the type system.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3229">53:49</a>] Oh, yeah, that&#8217;s why.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3231">53:51</a>] But those are. I mean, I don&#8217;t know if they&#8217;re good. That&#8217;s subjective.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3234">53:54</a>] Oh, no, they may be good. So we started, if you have Pascal and you write a function to reverse a list of integers, then if you apply it to a list of characters, the same machine instructions would work, but it is rejected, right? So we have rejected a perfectly decent program. Bad. Right. Our goal is to expand the collection of programs that satisfy the type system to include as many as possible of the programs we want to run without including any of the bad programs that we don&#8217;t want to run.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3272">54:32</a>] Okay? Parametric polymorphism is a big step in that direction. Other type system innovations are a big step in that direction. But there will always be some programs that would run perfectly well that the type system rejects. Imagine a tree that contains integers at every node. But if you are 17 deep in the tree, or 34 or 51, if you&#8217;re in a multiple of 17 deep, the integers can be characters instead, or the integers all turn out to be characters, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3317">55:17</a>] Now, you could write a program that generated such trees, and you could write a program that consumed such trees, knowing that every 17th layer we switched characters. But most static type systems would make it pretty hard for you to accept that program. And yet it will run. Now you might say, &#8220;Oh, but I really want to write that program, guys. Don&#8217;t get in my way.&#8221; Well, then we should provide a way for you to bail out into dynamic typing, right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3349">55:49</a>] What I&#8217;d like to do is say, okay, so if all else fails, then at least you can, as it were, pair up a value with its type representation. There&#8217;s one reason we don&#8217;t want to interpret an integer as a double precision float, for example, is that they don&#8217;t even have the same representation, which is just nonsense. One possible way untyped languages let you do this is to tag every integer and every double precision float.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3374">56:14</a>] With the fact I&#8217;m an integer, I&#8217;m a double precision float. But that has a lot of overhead. So one merit, I think it&#8217;s not the biggest single merit, but it&#8217;s a major merit of static type systems is you have no tags. You know that if it says it&#8217;s an integer, it&#8217;s going to be an integer. You know that if it&#8217;s a double precision float, it&#8217;s going to be a double precision float, right? But if you&#8217;re not sure, maybe we could make a way to make a pair of a type representation.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3402">56:42</a>] And this value, the type representation, is now like a runtime tag. It&#8217;s like a little runtime data structure that describes the type. And then in your program you could say, now I want to say, oh, I&#8217;ve got this type dynamic. We&#8217;ll call this pair a value of type dynamic. Now when I want to take a value of type dynamic and treat it as a character, I want to say, ah, look, look at the type dynamic.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3424">57:04</a>] See if it says it&#8217;s a character. If it is, return the character. If not, crash.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3428">57:08</a>] Right?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3428">57:08</a>] Runtime failure. That&#8217;s fine, you can do that. So <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> has good support for dynamic typing where necessary. So my story would be static typing should expand to carry as much as possible, and where you absolutely cannot do it, sorry, then use dynamic typing. And we provide facilities to support that.</p><h3>57:30 &#8212; How the Haskell compiler works</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3450">57:30</a>] One thing I wanted to talk with you about is the compiler. How does GHC work on a high level?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3457">57:37</a>] So GHC takes a string like any other compiler. The source code of the program parses it, and then it type-checks, it figures out, is this a type-correct program? Then it converts it to <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>. Now <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, the <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> AST, the original source tree, has 50 different data types, 50 different kinds of nodes, some of which have 30 or 40 different variants. So it&#8217;s a really big, diverse, complicated data structure.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3495">58:15</a>] The AST <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> has this variant of the <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>. It has eight WANDA data, maybe two or three data with eight constructors. So it&#8217;s like taking a gigantic language and squeezing it down into a tiny one. And that tiny one we can then optimize, right? That&#8217;s what the optimizer works on. So the front end does parse, rename, type check, desugar into <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>. That&#8217;s the front end. The <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> particular language is called GHC Core language.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3532">58:52</a>] I&#8217;m quite proud of it because it&#8217;s been very, very stable. It&#8217;s 35 years old, and it has barely changed since birth. That&#8217;s amazing, right? Because <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> has changed a lot. A lot. So almost all of the innovation in <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> has been in the front end. Very little in core. Now the back end, the core optimizer, has changed a lot too. But all of the changes that were useful there would have been useful 30 years ago.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3565">59:25</a>] Right. So they&#8217;re two completely separable things. So I&#8217;m quite proud about that. Core then. We do a lot of core-to-core passes that simply take core programs. We&#8217;ll use core programs, lots and lots, long pipeline. Then we convert it to C, which is a prototypical imperative language. Think of it as a portable assembly code. So that bit is meant to be platform independent. So it&#8217;s simply. That&#8217;s the compiler that takes.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3594">59:54</a>] Remember I said if you take <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> and compile it, that&#8217;s that step. Right. I want to compile the <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> into machine instructions, really. But I don&#8217;t really mean machine, I mean portable machine instructions. That&#8217;s called C. Then I want to convert C into actual machine instructions for various platforms. And there we could either do that directly with the native code backend or go via LLVM.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3618">01:00:18</a>] Interesting. I&#8217;ve never heard of C. Why not just go directly to it? I would have thought maybe assembly or something like that.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3625">01:00:25</a>] Well, because. What happens in assembly? In which processor? Please?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3630">01:00:30</a>] Oh, I see. I guess it&#8217;s the. I would have thought the <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> part was already portable.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3636">01:00:36</a>] So you just. It is, yeah. You could go straight, but, but, but. So there&#8217;s work to go from <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>. You could go all the way to x86, then throw all that away and now go from <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> to PowerPC. Oh dear. I&#8217;ve just duplicated a lot of work by going from <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> to C-- and then from C-- to x86, x C--. We&#8217;ve avoided duplicating the work that went from <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a> to C--.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3665">01:01:05</a>] When you see that, it&#8217;s pretty obvious, isn&#8217;t it? You got to. You want to make the platform-specific bit as small as possible. You would like to have, as it were, a generic architecture, one that can do addition and has a program counter and a stack and so forth. That&#8217;s all C--. It&#8217;s just a portable assembly language. And then you say, oh, the nitty-gritty of whether you have double-precision add and set, the floating-point bit here and there, that.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3691">01:01:31</a>] Well, that&#8217;s platform specific. The core is itself statically typed, but in some ways it&#8217;s surprising because no other compiler has this property. No other production compiler by core is statically typed. I don&#8217;t just mean that the initial program was type correct. I mean that a core program, you could run a type checker on that. I might say, why do you need to? Because after all, if GHC is correct, it started with a type correct core program because it came from a type correct <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> program.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3717">01:01:57</a>] Assuming the desugaring was right, and all the optimizations, if they&#8217;re right, will generate a type-correct Core program. So why do you need to type check Core to discover bugs in GHC? Now, these are serious bugs, right? If you ever take a type-correct Core program and an optimization pass produces a type-incorrect Core program, what will happen if we don&#8217;t have the type checker for Core? We&#8217;ll generate machine code, and we&#8217;ll run it, and we&#8217;ll get a segfault.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3749">01:02:29</a>] Now we have to backtrack from a particular test program that now crashes all the way back up the pipeline. Up the pipeline, up the pipeline, up the pipeline. Oh, it was this pass of GHC that was faulty. That&#8217;s super hard to do because you&#8217;re getting out GDB on some runtime failure. That is an indirect and perhaps distant consequence of the fact you just generated a type. You just made a.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3776">01:02:56</a>] You had a bug in the optimizer. So it is amazing to have a type checker for Core. Now, why does nobody else do this? Well, it&#8217;s because their intermediate language, typically, and this I really am talking typically, because I know of no other compiler that has this property, none. Production compiler, typically. Then they&#8217;re complex syntax trees decorated with all sorts of pragma information and things hanging onto it here and there.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3807">01:03:27</a>] There&#8217;s no type checker for it at all, and there&#8217;s no hope of one. So I&#8217;m very proud of the fact that Core is statically typed. And I also think it&#8217;s a. The most delightful thing is that the way that it is statically typed, it is an implementation of something called System F. So System F, when I said <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>, <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>, as <a href="https://en.wikipedia.org/wiki/Alonzo_Church">Alonzo Church</a> had, it was untyped, had no type system at all.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3835">01:03:55</a>] But Girard defines something called System F, which is a statically typed <a href="https://en.wikipedia.org/wiki/Lambda_calculus">lambda calculus</a>, a rather powerful one. And GHC Core is essentially System F. So he literally adopted something from the nerdy theoretical computer science, logic community, logic of mathematics community, and adopted it directly in a production implementation. So I&#8217;m very proud of that. I think GHC Core is. And the fact that we can do we have 35 years worth of development that has not just not been impeded, but actively aided by statically typed intermediate language is really a big marker in the ground.</p><h3>01:04:35 &#8212; Why Haskell is talked about more than used</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3875">01:04:35</a>] Watching all your talks, reading everything, one of the interesting data points that you brought up was that <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> is talked about more than used. When you compared Stack Overflow volume and actually <a href="https://en.wikipedia.org/wiki/GitHub">GitHub</a> volume, like who&#8217;s actually using the programming language, why do you think that is?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3895">01:04:55</a>] So <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> embodies one key idea: immutability changes everything. There&#8217;s a quote from Pat Helland&#8217;s talk that I think you also looked at or read. So it says programming with values changes everything about the way you think about programming. It&#8217;s just mind changing. It&#8217;s not necessarily better, but it is different. And so <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> takes that idea and runs with it. Everything is driven by that one idea.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3923">01:05:23</a>] Everything else is incidental. In the early days, that meant we just said, well, guys, suck it up. We&#8217;ll keep changing the language, and if it breaks your program, too bad. So it is a bit peculiar and therefore also it felt a bit academic because initially it was really not very powerful. It was taking the key idea, but you couldn&#8217;t do very much with it. We talked about that. Right.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3944">01:05:44</a>] So over time, GHC and <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> in general has become more and more powerful. The type system has become less and less in your way and more and more useful. All the obstacles that make functional programming harder become better. The compiler generates faster code, it can browse faster and so forth. So it has become less peculiar. So we&#8217;ve become more and more taking into account the needs of our users.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3972">01:06:12</a>] But in a way, the sort of cultural heritage is we never give up on the one core principle. We&#8217;re just not going to give you unrestricted side effects. Sorry, you want to say unsafePerformIO and put up with the consequences. So we&#8217;re going to stick to one core principle and then we&#8217;ll do lots of work around the edge to make that better. Right. So that does limit our community somewhat. Right?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=3994">01:06:34</a>] It does mean you really have to think in a different way. Immutability changes everything. That means you&#8217;d have to think a different way about programming. Maybe you don&#8217;t want to think in a different way. That&#8217;s fine. Then don&#8217;t use <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4004">01:06:44</a>] So in a way, we started from a very small user community, a very sort of pure and nerdy one, and growing larger and larger. But all slowly, slowly, while all the time maintaining faithfulness to this core principle.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4018">01:06:58</a>] I thought that was very unique about <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> because I feel a lot of the other programming languages are user-centric. I mean, if people want something, they work on it, they add it, whereas <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> feels more principled. Or it&#8217;s all starting from these ideas. And if you don&#8217;t satisfy these ideas as a user, yeah, well, that&#8217;s fine. For instance, in one of your talks, you mentioned somewhere that there was a release of the compiler where if a file wasn&#8217;t type-correct, then the compiler would delete the file.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4057">01:07:37</a>] Oh, wait, it reported the error message first.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4059">01:07:39</a>] Yeah, it reports there. But I thought that was absurd. I mean, very hostile, I guess, to the. I mean, well, if you&#8217;re type safe, no problems. But.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4069">01:07:49</a>] Oh, it was a mistake, right? It was a bug; it wasn&#8217;t deliberate, and it only happened, you know, how did the bug get out? Because, of course, if it always did that, we&#8217;d have noticed. How did it get into a release? Well, it was because it was only on Windows and only when you compile a module that was not in the current directory. But at that stage, our users were very forgiving. And, you know, somebody wrote to us and said, well, by the way, Simon, you might like to know that, you know, GHC does this, but, hey, don&#8217;t worry about it, you know, I just copy all my files somewhere else before I compile and then I copy them back.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4101">01:08:21</a>] So, of course, those days are long gone. We pay a lot more attention to our users and have much more rigorous CI testing than ever we did. Right. So that&#8217;s a story from a long time ago, but it&#8217;s a good cultural story because it suggests that we care about our users very much, but we care about users who want, in their hearts, want to be principled. We&#8217;re trying to appeal to. One of the things I like best about <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> is people often say, I just enjoy writing <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4128">01:08:48</a>] Right. It&#8217;s fun, right? My boss doesn&#8217;t allow me to because it somehow doesn&#8217;t fit with my production shop. But for me, I would go for it. I love writing this stuff. Every time. Every time. Yeah, that&#8217;s very rewarding to me.</p><h3>01:09:07 &#8212; Avoiding success at all costs</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4147">01:09:07</a>] There&#8217;s also this interesting&#8212;I don&#8217;t know if it&#8217;s a cultural value&#8212;but it&#8217;s a statement that you say often in the context of these older talks, that you say that you avoid success at all costs. Could you explain what you mean by that phrase?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4161">01:09:21</a>] Oh, yeah, this was just a little play on words. It was in a retrospective on <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>. I gave an invited talk at POPL a long time ago, probably 20 years ago. So it&#8217;s a little play on words because you can read it as either avoid success at all costs. And that&#8217;s what we&#8217;ve been discussing. Success at all costs means compromise your principles in order to satisfy your users or think that you&#8217;re satisfying users, give them what they say they want, if we build it, they will come kind of deal.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4195">01:09:55</a>] So avoid success at all costs. Or if you parenthesize it the other way, it says, avoid success at all costs, at all costs. Avoid success. And that&#8217;s saying, that&#8217;s a little joke. But it says if you&#8217;re too successful and have too many users, it becomes more difficult to make changes. And we experience that right now. So I devote many, many more of my personal cycles to backward compatibility issues than ever I did.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4228">01:10:28</a>] I&#8217;ve devoted hundreds of hours and hours, well, days and days, weeks and weeks in the last year or two to the following: what seems to be a very simple property. If you can compile a program, a package, a whole program with GHC 10.0 and we release GHC 10.2, you should be able to compile that same package unchanged with GHC 10.2. Seems reasonable, right? After all, 10.2 should just be better. But no, GHC has never had that property, and making it have that property has turned out to be very, very time consuming.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4265">01:11:05</a>] Previously we just never cared. Then we started to care, but thought it was a lot of work, and now we&#8217;re investing the work.</p><h3>01:11:12 &#8212; LLMs and programming languages</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4272">01:11:12</a>] I guess that was from a long time ago. I think nowadays software engineering, there&#8217;s been a major shift in the last year where a lot of code is being generated by these models or these LLMs. How do you see programming language design shifting to accommodate a world where a lot of the code is no longer written by humans?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4294">01:11:34</a>] I think it may be the best thing that&#8217;s happened to statically typed languages for a long time, because as we&#8217;ve been discussing with a static type system, you cut down the space of programs that the <a href="https://en.wikipedia.org/wiki/Large_language_model">LLM</a> can generate because it is perfectly capable of running the compiler and saying, &#8220;Oh darn, that was a bad program, better fix it,&#8221; right? So a zillion iterations get done behind the scenes, whereas in an untyped language, the first one it coughed up, you&#8217;d have had to run it against a test suite or who knows what, but it dramatically tightens up that cycle.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4331">01:12:11</a>] Right. So I think that statically typed languages are a huge boon for LLMs because it&#8217;s too easy to. And programs are just strings, right? It could just generate the next plausible word.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4351">01:12:31</a>] Away if there&#8217;s a slider on, I guess, the strength of a type system. And the other side of the week, what do you see as the absolute strongest type systems among programming languages?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4363">01:12:43</a>] Oh, <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>. I think <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> is exploring the bleeding edge. There is an exception, which is that module systems are a... And in particular, sort of functor-style module systems are explored much more deeply in the OCaml world and in the <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> world. We&#8217;ve essentially never gone there. But otherwise, I think <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>&#8216;s right up there. Now, of course, a language like Scala is also as... So Scala has almost everything <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> has, I think, not quite, but it also has subtyping and object orientation.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4404">01:13:24</a>] So that&#8217;s a lot more complicated. A lot more complicated, I think. And they pay a price for it. I think Martin Odersky would agree that they pay a price for it. So in complexity, it&#8217;s probably more complicated than <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>&#8216;s, and maybe in terms of power. So maybe I should have said <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> and Scala are the two leading <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>, Scala, OCaml, perhaps I&#8217;ll just put them in an equivalence class for now.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4432">01:13:52</a>] They&#8217;re not strictly comparable. They all have things which they&#8217;re more powerful than the others, probably.</p><h3>01:13:57 &#8212; New programming language design</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4437">01:13:57</a>] What do you think are the important problems to solve in the future of programming languages today? What are the unsolved problems in the domain that are top of mind for you?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4448">01:14:08</a>] I think it&#8217;s actually hard to identify, to say, here&#8217;s a problem we want to solve, let&#8217;s try to solve it. Well, I think another way to tackle it is to say, what are interesting new languages out there that are exploring very different parts of the design space? And there I think I do have a candidate. So the language that is my day job. I work for Epic, and we&#8217;re designing a programming language called Verse.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4471">01:14:31</a>] Now, Verse is a very exotic language. It&#8217;s really a functional logic language, so it&#8217;s yet more expressive than <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>. It has a path-? type system, but a very different one to <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>&#8216;s. So if you like, the way I think of it is like this. If you look at C and Fortran, they look pretty different if you&#8217;re an imperative programmer. But if you look at them, if you zoom out still, you can see functional languages.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4496">01:14:56</a>] Then C and Fortran are pretty close together, along with object-oriented languages. They&#8217;re all in a clump, right? And then there&#8217;s some functional languages, <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a> and ML. I know OCaml and Scala out here. If you zoom out still further, then the imperative languages and functional languages altogether, and Verse is way out here, right. So Verse is exploring a very new point in the design space.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4519">01:15:19</a>] But just like functional programming back in 1980, it seems sufficiently interesting and cool and unusual and weird that it&#8217;s worth exploring. Right? So back in 1980, nobody would have said, we&#8217;re definitely going to do functional programming and it&#8217;s going to be useful for practical applications. They said, that&#8217;s pretty weird. By all means, give it a try, guys. And that&#8217;s kind of where I am with Verse.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4540">01:15:40</a>] One difference is that back in 1980 we were purely academics, and now, Verse is being developed by Epic Games, so we got much more muscle behind it than was behind functional programming to begin with. So we&#8217;ll see. It&#8217;s a very interesting intellectual endeavor, adventure, I should say.</p><h3>01:15:59 &#8212; Should students continue to learn programming</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4559">01:15:59</a>] Yeah. I think a lot of people, like students, are maybe worried about AI or studying computer science. Would you recommend people learn how to program today, given that AI is starting to write reasonable code now?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4573">01:16:13</a>] Oh, yeah, yeah. So I think people are right to be worried in the sense that I think there&#8217;s going to be considerable dislocation, right? Because if you were in the Industrial Revolution, then lots of people lost their jobs as spinners and weavers, and it wasn&#8217;t easy for them to get a new job in the new economy. Now, the new economy had, in the end, had more jobs, but there was.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4596">01:16:36</a>] If you were one of the people who just lost their job, that was not a happy place to be. From our perspective, you know, from an Olympian perspective of a few hundred years later, we think, well, it&#8217;s just a blip, right? If you&#8217;re part of the blip, not a problem. So I think people are right to be worried. We don&#8217;t know how things will shake out. I&#8217;m actually optimistic that in the medium term, if we don&#8217;t destroy ourselves with some truly existential thing.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4620">01:17:00</a>] But from an employment market point of view, I&#8217;m optimistic that in the end we&#8217;ll just be in a higher place, that AIs will just be a bigger power tool. I mean, everyone likes using compilers, right? We don&#8217;t like machine code anymore. Compilers make us more productive. Maybe LLMs can make us more productive. That&#8217;s what I hope. I sort of believe, modulo dislocation effects. Now, should we teach children or even undergraduates how to program?</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4651">01:17:31</a>] So I think still yes. And the reason is because one way to say it is copilots who need pilots. I think Copilot was quite a good title that <a href="https://en.wikipedia.org/wiki/Microsoft">Microsoft</a> gave their tools because it encourages you to believe it&#8217;s your partner, not your boss. If LLMs spit out a pile of goop and we literally do not understand what it does, we just try it and it kind of works. That might be okay if we&#8217;re just throwing up a quick visualization.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4680">01:18:00</a>] It might be less okay if the quick visualization is going to drive our policy choices about us a nation, whether to go into lockdown because of COVID or if this program is going to run my aeroplane or train signaling system. So now those are extreme ends of the spectrum from quick and dirty things. It really doesn&#8217;t matter if it doesn&#8217;t work, but it kind of does a lot of the time, absolutely fine too.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4707">01:18:27</a>] This is a 30-year code base. It&#8217;s going to last a long time. I really want to make sure that it&#8217;s like putting new stuff into GHC. If somebody sends me a pile of AI-generated code to put into GHC, I&#8217;m not going to put it in unless I&#8217;ve reviewed it or somebody&#8217;s reviewed it. Because in 10 years&#8217; time, I&#8217;m going to want to change that code. How do I even know what it does? If it&#8217;s simply a magic incantation that somebody&#8217;s done that kind of worked on the test they did, but maybe won&#8217;t work in deployment, that&#8217;s no good.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4731">01:18:51</a>] So I really want long-lived, maintainable code to be well reviewed. Sorry. So. And to do that, I need reviewers who can write code, who know. Let me mention one other perspective. If you think about what every child should know. When I think about what every child should know about computing, I would include binary and bits, not, just as for physics, I would include atoms and molecules. Now it&#8217;s not that in real life anybody manipulates atoms or molecules or takes decisions which are based directly on their knowledge about knowledge, but somehow knowledge that all matter is made up of atoms, you know, constituted of a finite number of elements that atoms.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4778">01:19:38</a>] That knowledge underpins everything we understand about the natural world. If you literally have never been told that, you are sort of emasculated as a citizen, let alone as a scientist. So if you literally do not know that everything is composed of bits, that words and music and text and LLMs and everything is all just bits, I think you&#8217;re crippled. So I want every child to learn, you know, it&#8217;s like I want you to learn the bottom.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4807">01:20:07</a>] It&#8217;s all bits, nothing else. It&#8217;s all just bits. I even have a talk. The talk is called Bits with Soul. It&#8217;s so easy to grab for. It&#8217;s a talk I gave to an audience that was not a computer science audience at all. It was a completely lay audience ranging from 14-year-olds to professors of quantum mechanics. Pretty difficult audience to address. And it was meant to be about codes and coding and bits.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4833">01:20:33</a>] So it tries to get at the essence of why I think it&#8217;s important that every child, every person, every human being should understand something about the computational universe that surrounds them and that is founded in bits. Now, just to develop the analogy a bit further, I would then say, and it also, I think, I want them to also know about programming programs. I want them to know that computers fundamentally execute by following machine instructions blindly.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4860">01:21:00</a>] Right. That is not magic, it&#8217;s not hocus pocus, it&#8217;s just remorseless and very dumb. Right. It&#8217;s incredibly empowering then. And also to learn the basics about how neural networks work. In the same talk I explain how a one neuron neural network works, and that&#8217;s enough. Then it&#8217;s actually true to say, not distorting, but that&#8217;s to say <a href="https://en.wikipedia.org/wiki/ChatGPT">ChatGPT</a> is just a trillion of those wired together, and astonishingly, that very simple.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4892">01:21:32</a>] So all <a href="https://en.wikipedia.org/wiki/ChatGPT">ChatGPT</a> is, is a trillion floating-point numbers and a lot of floating-point arithmetic. That helps you make sense of a question like, can <a href="https://en.wikipedia.org/wiki/ChatGPT">ChatGPT</a> have feelings? Well, it gives you, I mean, of course that&#8217;s a philosophical question, but it informs your discussion about if you know that all it is is trillion floats and a lot of floating-point arithmetic. That&#8217;s all, nothing more.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4922">01:22:02</a>] Anyway, sorry, long answer to your question, but so I... So yes, basic programming, absolutely, yeah. Becoming fairly skilled in how to use, you know, Django framework, maybe not so much maybe. I think one thing that LLMs are very good at is knowing the arcane and complicated APIs that many of these frameworks present when there&#8217;s just 10,000 functions you&#8217;ve got to know.</p><h3>01:22:33 &#8212; Why Excel is is 2nd favorite programming language</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4953">01:22:33</a>] You mentioned somewhere someone asked you, you know, what&#8217;s your favorite programming language? And obviously <a href="https://en.wikipedia.org/wiki/Haskell">Haskell</a>&#8216;s got to be number one. Yeah, but for your second favorite programming language, you said it was Excel at that time. Why was Excel your favorite programming language?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4969">01:22:49</a>] Oh, because it&#8217;s the world&#8217;s most widely used functional programming language. The formula language is a functional language, isn&#8217;t it? Doesn&#8217;t have any side effects. You program entirely with values. So the formula language of Excel is a functional programming language, a very weak one. It doesn&#8217;t even let you define new functions. And it has a very limited collection of data types, namely just flat arrays and numbers and strings.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=4997">01:23:17</a>] So when I was working for <a href="https://en.wikipedia.org/wiki/Microsoft">Microsoft</a>, I took it as my war cry to say, let&#8217;s take that idea. Excel is the world&#8217;s most widely used functional language by three orders of magnitude. And oh, it&#8217;s the most widely used programming language by three orders of magnitude, not just functional language. Excel is used by many, many more programmers, users, domain experts than any imperative language.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5031">01:23:51</a>] Imperative language is a few million users. Excel, hundreds of millions of users. Even if you just restricted users who are using formulae. So how can we delight those users? Answer: take ideas from functional programming and use them to make Excel&#8217;s formula language more powerful. It took me 20 years, but Excel did finally add Lambda to Excel. Look it up, there are blog posts about it and many YouTube videos about it.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5065">01:24:25</a>] So you can now program in Excel using full lambda as <a href="https://en.wikipedia.org/wiki/Alonzo_Church">Alonzo Church</a> originally defined it. You can write anything, because lambda is computationally complete. You can write any computation in Excel now. It would be a bit slow, but you can. And much more practically, you can take formulae that previously you just copy-pasted here and there and wanted to make reusable, wrap them up in a lambda, and now you can just call the lambda.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5093">01:24:53</a>] And now it is a proper grown-up functional language that is Turing complete. Just search for Excel LAMBDA, those two keywords will get you lots of raw material.</p><h3>01:25:04 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5104">01:25:04</a>] Last question for you is, knowing everything that you know now from your career, if you could go back to when you just graduated from college and give yourself some advice, what would you say?</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5115">01:25:15</a>] All of these people who you see very successful wandering around, looking as if they&#8217;ve made it, I guess you might class me among them. Now, they are all just making it up as they go along. They feel insecure, uncertain, not sure what to do next, not sure what their next steps are, not sure what next big problem they&#8217;re going to tackle, unsure about whether what they&#8217;re doing is going to be successful or not.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5140">01:25:40</a>] And so all of their confidence is, I mean, they project confidence. Maybe that&#8217;s partly a life skill, but often they&#8217;re not. And so the fact that, in those days, of course, I felt very not confident. I would say, since all of these successful people are making it up as they go along, it&#8217;s fine for you to be as well. And they&#8217;ve been lucky. Moreover, they&#8217;ve been lucky. They&#8217;ve had.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5168">01:26:08</a>] But if you want to be lucky, you do need to put yourself in a position where accidents can happen to you, and that means taking risks. So if you want to be lucky, you need to put yourself in positions where lucky things could happen.</p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5188">01:26:28</a>] And that means taking some kind of risk. So if you&#8217;re very conservative and never take any risk, then it&#8217;s very unlikely that the accident that is life transforming will happen. That&#8217;s a balance, of course. But it means that accidents are not so bad. And of course, dying is bad. But lots of accidents may change your life in a way that might be surprising to you, but turns out to be not so bad in retrospect.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5210">01:26:50</a>] Awesome. Well, yeah. Thank you so much for your time. I really appreciate it, Professor Jones. We will.</p><p><strong>Simon:</strong></p><p>[<a href="https://youtu.be/I3DpfUhN5es?t=5214">01:26:54</a>] Nice talking to you. Thanks, Ryan.</p>]]></content:encoded></item><item><title><![CDATA[Turing Award Winner: P vs NP, Zero-Knowledge Proofs, Quantum Computation | Avi Wigderson]]></title><description><![CDATA[His field of study & life's work]]></description><link>https://www.developing.dev/p/turing-award-winner-p-vs-np-zero</link><guid isPermaLink="false">https://www.developing.dev/p/turing-award-winner-p-vs-np-zero</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 01 Jun 2026 10:02:09 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/199877077/0a9ebc30a395270c6d299fb4bcfc44b3.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Avi Wigderson is the only person in history to have won both a Turing Award (computer science) and Abel Prize (math). I interviewed him all about his field.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/5GUcvSAJcJw">YouTube</a>, <a href="https://open.spotify.com/episode/4JZrdA7ciMKLSarhx7m9Lt?si=EXZof0ERRgS3_wsRmjYEzg">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-5GUcvSAJcJw" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;5GUcvSAJcJw&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/5GUcvSAJcJw?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/199877077/0108-p-vs-np">01:08 - P vs NP</a></p><p><a href="https://www.developing.dev/i/199877077/1451-what-if-you-relaxed-correctness">14:51 - What if you relaxed correctness</a></p><p><a href="https://www.developing.dev/i/199877077/2538-why-np-complete-problems-are-equivalent">25:38 - Why NP complete problems are equivalent</a></p><p><a href="https://www.developing.dev/i/199877077/3033-space-vs-time-complexity">30:33 - Space vs time complexity</a></p><p><a href="https://www.developing.dev/i/199877077/4306-why-people-use-sat-solvers">43:06 - Why people use SAT solvers</a></p><p><a href="https://www.developing.dev/i/199877077/4553-randomness-is-a-resource">45:53 - Randomness is a resource</a></p><p><a href="https://www.developing.dev/i/199877077/5548-randomness-depends-on-computational-power">55:48 - Randomness depends on computational power</a></p><p><a href="https://www.developing.dev/i/199877077/012120-zero-knowledge-proofs-and-their-significance">01:21:20 - Zero knowledge proofs and their significance</a></p><p><a href="https://www.developing.dev/i/199877077/013830-quantum-computation-and-why-it-matters">01:38:30 - Quantum computation and why it matters</a></p><p><a href="https://www.developing.dev/i/199877077/015624-math-vs-computer-science">01:56:24 - Math vs computer science</a></p><p><a href="https://www.developing.dev/i/199877077/020816-major-breakthroughs-and-his-experience">02:08:16 - Major breakthroughs and his experience</a></p><p><a href="https://www.developing.dev/i/199877077/021231-advice-for-his-younger-self">02:12:31 - Advice for his younger self</a></p><h1>Transcript</h1><h3>01:08 &#8212; P vs NP</h3><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=68">01:08</a>] Well, in the simplest way, and I will talk at a high level, we are interested in various problems in life, in all sorts of problems: mathematical problems, scientific problems, medical problems, personal problems, intellectual problems. We are in the business, in computer science, of solving problems by computers. Now we would like to somehow classify those problems that we can solve, to know what we can know.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=103">01:43</a>] The problems we can solve are the things we will know, we will understand. There are all these problems that we want to understand. There are many of them, and there are problems that we can understand but can&#8217;t solve. In a very basic way, the first class is NP. All the problems we want to solve are really NP problems. It&#8217;s a class of problems, and a subset of it is the problems we can solve.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=133">02:13</a>] They are the problems we can currently solve, but we are interested in all the problems we can solve in principle. The question of <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a> is whether we can solve all the problems we want to solve, whether we can know everything we want to know. This is basically about the limits of our knowledge. Of course, I have to justify why these classes, which are mathematically defined, are actually captured by the intuitive meanings I&#8217;m giving them.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=172">02:52</a>] P is very easy to justify. What we can solve is what we can solve in our lifetime using whatever we have, let&#8217;s say all computers that we have using efficient algorithms. Problems we can solve are problems you see in our apps, in our phones. If there&#8217;s a navigation app, it means somebody invented an algorithm that&#8217;s efficient enough to solve any shortest path problem between any two places in any kind of map. All the problems we want to solve are NP problems.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=212">03:32</a>] What is NP? NP is a class of problems in mathematical definition, problems such that we don&#8217;t know whether they are easy or hard to solve. But if somebody hands us a solution, then we can easily check that indeed it is a good solution. Now, why are all problems humanity is interested in of this nature? You can think there&#8217;s no limit to what we may want to know. But I claim that essentially, in any human endeavor, if you are embarking on any problem, if you really seriously want to solve a problem, the least you want to know is that when you hit upon a solution, you will recognize it as a solution.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=259">04:19</a>] Why would you ever start looking for something if you will never recognize it as what you looked for? So you think mathematicians are looking for proofs of theorems? Certainly, if somebody gives a proof and writes a paper about it, we can verify it. If a scientist wants to explain data about the planets or about bacteria or whatever, they want to develop a theory. So that&#8217;s what you are searching for in this case.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=294">04:54</a>] And yeah, again, scientists write papers about their theories. They have to be consistent with the data. We have a way of recognizing that this is a good solution. Engineers are usually tasked with creating something, like a bridge or a phone, under some constraints. It can be monetary constraints, physical constraints, all sorts of limitations, such as what you can use but not this, and so on.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=324">05:24</a>] But anyway, if an engineer designs something, whoever gave them the task can look at it and say, &#8220;Well, you violated some constraints,&#8221; or &#8220;No, it&#8217;s good, you really delivered what we were looking for.&#8221; So I&#8217;m giving you examples. I mean, I can give many more. Detectives are supposed to solve crimes, and we know from detective books they eventually provide solutions. So these are examples of very fundamental human endeavors that encompass almost everything I can think of in all of them.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=358">05:58</a>] What people are searching for has the property that when a solution is found, it is easily recognized. Repeating in the beginning, NP are all problems that we can honestly say we really want to solve. NP are those that we can solve. If they are equal, then everything we would want to know, a cure for cancer, anything you can imagine, can be just the very fact that a solution can be easily recognized, which would imply that it can be efficiently found.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=398">06:38</a>] That means that we can know everything we ever want to know. It&#8217;s a fundamental question about human knowledge.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=404">06:44</a>] So I know this is one of those Millennium Prize problems. There&#8217;s a million-dollar prize if you can provide a proof for this. I can imagine you could prove that they&#8217;re equivalent. You could also prove that they&#8217;re not. If you had to guess when and if a proof comes, which direction would your intuition say it goes? And why?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=427">07:07</a>] I think that my intuition, and that probably holds for almost all members of the theoretical computer science community, is that they are different. I think there are several reasons for that, and I will already tell you now that they are not that convincing. One is the intuition that most of us have that finding something is really hard and just checking that it&#8217;s there.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=457">07:37</a>] If you lost your keys or your phone and have no idea where to look, but if somebody points out, &#8220;Oh, you left it on the windowsill,&#8221; you might say, &#8220;Ah, yeah, I did.&#8221; We have this experience from life that finding something is typically a harder task than just checking that it is what we look for. Another reason is that real NP problems occur all over the place. They occur in optimization, in logic, in other aspects, in mathematics, and in verifying that algorithms, protocols, and security systems actually work.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=502">08:22</a>] All sorts of. In this generality, these optimization problems that are NP problems, maybe <a href="https://en.wikipedia.org/wiki/NP-hardness">NP-hard</a> problems, people try to solve for completely egocentric reasons to make their company richer. There are thousands of these, and they manifest themselves in many different forms. Over the last 50, 60, or 70 years, people have seriously looked for algorithms for these very different ones and couldn&#8217;t find any.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=542">09:02</a>] This may seem like there&#8217;s no such solution. Getting a bit more technical, NP problems, <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems in particular, seem to require search over an exponentially large space, like all the possible solutions to some system of equations. Somehow, a solution is about having a general method for cutting down this exponentially large search space into searching over something much smaller in a clever way.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=588">09:48</a>] And this should apply to all these problems. So that would be equal. And people don&#8217;t think that there is such a way. But as I said, these are intuitions that are maybe pretty strong. And I think that&#8217;s the only, tomorrow somebody finds an efficient algorithm for <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems using some new idea that nobody ever thought of.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=622">10:22</a>] That would change the world. In software engineering, we use algorithms all the time, and they often have these very satisfying properties where the solution we use takes something where the brute force is much larger down to something that&#8217;s polynomial time or something very reasonable. But in all these NP problems, it&#8217;s pretty unsatisfying that the best we could do is brute force.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=655">10:55</a>] Am I understanding that correctly?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=657">10:57</a>] Yeah, you&#8217;re understanding it perfectly correctly. I think that maybe what you are getting at is that <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems are, a particular <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problem is really a family of instances. I mean, you want to find a <a href="https://en.wikipedia.org/wiki/Hamiltonian_path">Hamiltonian cycle</a>, some <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem">Traveling Salesman Problem</a> through some map. There&#8217;s this map and that map and this network and other network. And there are many, many instances when we talk about an algorithm for them.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=692">11:32</a>] Typically, we say an algorithm is efficient if it&#8217;s efficient and correct on all of them. In software engineering and many aspects of optimization in real-world problems, the instances are a much more restricted set. They come from trying to verify a particular protocol or, I know, protein folding. If you want to think about the biological example, the way it is phrased as an NP problem is that you want to minimize the energy of a system under various constraints that have to relate to the chemistry of the various molecules and atoms that appear in the protein.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=745">12:25</a>] And this kind of optimization problem one can easily prove is <a href="https://en.wikipedia.org/wiki/NP-hardness">NP-hard</a>. Nevertheless, our body folds proteins all the time, extremely efficiently. Now why is that? Of course, I don&#8217;t really know why that is. But it would seem that evolution designed proteins in such a way that this, you know, folding them, only them, we don&#8217;t have that many proteins. There are not exponentially many proteins in the body.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=777">12:57</a>] There are only a few that may be more prone to efficient energy minimization. More generally, I think in software engineering, at least in verification and testing, you often want to check that something meets the specifications. You usually translate it into a satisfiability question of Boolean formulas. The formulas that you get, the instances that you get out of these have some structure, and maybe for them, various greedy approaches or clever methods can be applied.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=818">13:38</a>] Not just greedy, but clever and efficient methods work. In other words, making it short. Instances that come up are not the worst-case instances. We have many examples of this that we can actually prove. For example, early on it was recognized that the <a href="https://en.wikipedia.org/wiki/Simplex_algorithm">Simplex method</a>, which is an algorithm to solve linear programming problems, on the one hand, requires exponential time for the worst-case system of inequalities.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=856">14:16</a>] But in practice, it seems to run in linear time. Evidently, the set of linear systems that we tackle in real life has some extra structure that allows this particular algorithm to solve them efficiently. Of course, today we know an algorithm that&#8217;s efficient for all linear programs, but it&#8217;s much more complicated, and I don&#8217;t know how much it&#8217;s used in practice. But the <a href="https://en.wikipedia.org/wiki/Simplex_algorithm">Simplex method</a> is very simple to run, and usually, it works.</p><h3>14:51 &#8212; What if you relaxed correctness</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=891">14:51</a>] You mentioned protein folding, and that&#8217;s an interesting one because it&#8217;s an NP problem, but it was solved to an acceptable extent. When I was reading about it, I found that it wasn&#8217;t solved for 100% of cases. It provides a solution and a confidence score, but it doesn&#8217;t give you the answer that is 100% accurate and fully computed. So when you think about these NP problems, what if you relaxed the criteria of being correct?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=927">15:27</a>] Could the asymptotic complexity be less than the exponential that we&#8217;re talking about?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=933">15:33</a>] Yeah, it&#8217;s a very natural and good question. So in the protein folding, you are talking about <a href="https://en.wikipedia.org/wiki/AlphaFold">AlphaFold</a>, which is an algorithm or heuristic that was learned from existing proteins and works very well on instances it didn&#8217;t see but are still proteins coming from the body. Even if it did perfectly on these, that would still be following the discussion I mentioned before because the instances it is trying to solve come from real life and probably have extra structure that allows efficient solutions.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=973">16:13</a>] But you are right that one of the things that people naturally do when they cannot solve an optimization problem exactly because it&#8217;s <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> or <a href="https://en.wikipedia.org/wiki/NP-hardness">NP-hard</a>. Maybe I should say <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> and <a href="https://en.wikipedia.org/wiki/NP-hardness">NP-hard</a> problems are those problems in NP that are as hard as all problems in NP. If you solved one efficiently, you solved all efficiently. If you prove one hard, then you prove all of them hard. So they somehow capture the complexity of the class.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1006">16:46</a>] The <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem">Traveling Salesman Problem</a> is an example. Portraying folding in this framework of energy minimization is one, and Boolean satisfiability and so on. Okay, so you want to optimize something, and it&#8217;s <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> or <a href="https://en.wikipedia.org/wiki/NP-hardness">NP-hard</a>. That&#8217;s a sign that you shouldn&#8217;t try to find an algorithm that works always. But one thing you can do is an approximation. That&#8217;s a very natural relaxation. You don&#8217;t want the optimum.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1036">17:16</a>] You are willing to live with a factor of 2 from optimum or 10% from optimum or some factor away from optimum. NP-completeness was discovered in the early 70s. In the early 90s, there was a breakthrough called the <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a>. The <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a> allows you to argue hardness of even approximation problems. For example, you can show that satisfiability of Boolean formulas&#8212;it&#8217;s not just, so you want to, let&#8217;s say, find an assignment to a bunch of constraints, let&#8217;s say Boolean constraints, let&#8217;s say on three variables, for simplicity.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1086">18:06</a>] So you want to satisfy all of them. The relaxation would be okay, I want to satisfy 90% of them, or as good a fraction as I can if I cannot get 100% of them. The <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a>, one way to phrase it, and suddenly one of the major consequences is that we know that you cannot even achieve a very good approximation. To illustrate how tight this understanding is for some problems, when there are only three variables per constraint, if you just guess at random the values to the variables in the assignment, you will satisfy 7 or 8 of the constraints.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1135">18:55</a>] This is because each particular constraint, usually the disjunction of three variables, will be true with probability seven-eighths. So if you randomly assign values to the variables without thinking or looking at the formula, you can satisfy seven-eighths of them. The <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a>, along with a significant strengthening by Johan H&#229;stad, tells you that if you want to satisfy seven-eighths plus epsilon, that&#8217;s already <a href="https://en.wikipedia.org/wiki/NP-hardness">NP-hard</a>.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1170">19:30</a>] So we know today to argue the difficulty not only of finding the perfect solution, the optimal solution, but even how close to optimal you can get for lots and lots of problems, large classes of problems, in particular constraint optimization problems, you know, of the type of satisfiability.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1196">19:56</a>] So even if you solve just the slightest epsilon for any trivially small epsilon, it&#8217;s just as hard as doing.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1206">20:06</a>] It&#8217;s as hard as finding the optimum source.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1209">20:09</a>] You mentioned <a href="https://en.wikipedia.org/wiki/NP-hardness">NP-hard</a>, <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a>, and P. I know there are other complexity classes. Maybe you could give some more context on the whole space of complexity classes.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1222">20:22</a>] Yeah, so I&#8217;ll just remark that we have a zoo of complexity classes. In fact, there&#8217;s a website called the <a href="https://en.wikipedia.org/wiki/Scott_Aaronson">Complexity Zoo</a>, which has in it hundreds and hundreds of complexity classes of all types. The website was started by <a href="https://en.wikipedia.org/wiki/Scott_Aaronson">Scott Aaronson</a>. Once we realize that there&#8217;s a whole zoo out there, we want to know the relationship between these classes. Okay, so what is the point about these classes like P and NP?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1262">21:02</a>] We want to classify problems by the amount of resources they take. So P (polynomial time) is a class of problems that can be solved in an amount of time that relates polynomially to the size of the data. Of course, you expect that as the data grows, the instance grows, and you&#8217;ll spend more time. But if it&#8217;s linear time, quadratic time, or cubic time, you say, let me call it at least theoretically efficient.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1295">21:35</a>] And NP, you classify not the time to solve, but the time to verify a solution if it was given. You want this to be polynomial time. So it&#8217;s very different. But first of all, there are many more time functions than just polynomial, exponential, and doubly exponential. And you can go to finite, and one fundamental result, starting with Turing&#8217;s paper, is that there are problems that are simply unsolvable by computers.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1336">22:16</a>] So really, the first complexity class is a class of solvable problems, decidable problems. Turing shows that these are not all problems. There are natural problems that are not decidable at all. But time is only one resource, and we are interested, both from practical and theoretical reasons, in lots of other resources. Memory is a costly resource, and we want to minimize the space invested in a computation.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1367">22:47</a>] In problems with several parties, you are interested in the amount of communication exchange, not the internal computational effort that they exert themselves, but how much. If you talk to a satellite, you want to minimize the communication. You can think about energy; there are plenty of other resources, like parallel time. How much can you speed up the computation of a problem if you work on it not with one computer, but with n computers?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1401">23:21</a>] If your data is of size, then does it allow it to solve it immediately? Or maybe it doesn&#8217;t help at all? Complexity classes classify problems according to how much resources they need. There are many of these, and one important part of that is a major theme in the methodology of complexity theory. Coming with it are attempts to understand complexity classes as problems that relate to each other, even if you don&#8217;t know their complexity.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1442">24:02</a>] So, for example, NP is a class, and we don&#8217;t know the complexity of all problems in this or <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems. We don&#8217;t know whether they are all easy or hard, but we do know we have efficient algorithms to translate one into the other. It&#8217;s not obvious that if you want to solve a satisfiability problem, you don&#8217;t know how. But you have an algorithm to solve Sudoku problems, not just three by three, but also four by four. If you had an efficient method to solve Sudoku problems, P equals NP, because you can efficiently take an instance of satisfiability, the <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem">Traveling Salesman Problem</a>, or factoring integers, and from the solution of the Sudoku problem, you can translate back and get the best solution for your original <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem">Traveling Salesman Problem</a>.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1504">25:04</a>] So we are interested in efficient reductions between problems whose complexity we don&#8217;t know, but we want to relate them to each other. We build some kind of partial order of the hardness of different problems. There are really, you don&#8217;t want to know how many problems we have summarized for constraints that real-world technology may impose or cause for. Some are naturally arising mathematically because they are interesting.</p><h3>25:38 &#8212; Why NP complete problems are equivalent</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1538">25:38</a>] You mentioned that these <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems are all equivalent in some way. What&#8217;s the proof to equate a SAT solving problem to a graph coloring problem or something like that? Are they all similar in nature? Are they kind of bespoke to the problem you&#8217;re going to and from?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1559">25:59</a>] That&#8217;s a very good question. You will find that in most of these, they call them reduction algorithms to translate one problem to another. Most of them are relatively simple, but not all. I talked about the <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a> before, showing that approximation is hardest is very highly non-trivial. But most <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems prove equivalence, like between graph coloring and satisfiability. This goes both ways; they are both complete.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1592">26:32</a>] So it goes both ways. It is simple. The first one was the satisfiability problem. The original papers of Steve Cook and Leonid Levin, defining NP-completeness and proving that <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems exist, both focused on this. The first problem they proved complete was satisfiability. Why is this so? Why can all these other problems be reduced to satisfiability? The reason is really that computation is local. Computation is local.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1630">27:10</a>] I mean that if you think about your computer, your laptop, or any computational device, usually it manipulates bits by some local operations. You look at these two registers and you add them, or you take these two bits and exclusive OR them or AND them or something, and you do a sequence of simple operations and you arrive at a conclusion. This locality can be translated to a bunch of constraints or what would be a consistent sequence of states of your machine.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1668">27:48</a>] If you look at the time evolution of any computation, memories in some states and in another state change locally. If you could guess, and that&#8217;s the NP part, if somebody provided you the table of computation, you could check that it&#8217;s consistent by writing a bunch of local constraints or some conjunction of very few variables all over this table of computation and write down a satisfiability problem.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1705">28:25</a>] I want this to be true, this to be true, and this to be true for some assignment. What the assignment has to satisfy should be a table like this. All these constraints should be satisfied, should be true, and it has to be consistent with the input given, right? Some of the inputs have to match the first time zero content of the machine. This locality allows for many of these translations.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1736">28:56</a>] If you realize this, you will quickly find a reduction from coloring to satisfiability. It&#8217;s also not clear why coloring is an evolution of computation, but it starts already with local constraints. You want a few colors and that every constraint is satisfied. In some cases, it&#8217;s even easier. But the reduction from any NP computation&#8212;that&#8217;s what <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> means. Anything in NP can be translated to satisfiability.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1769">29:29</a>] NP is just a computation of a Turing machine, say only that you don&#8217;t know what the computation is. If somebody guessed it or showed it to you, then all you need is to verify this verification is local. And that&#8217;s the source of many simple NP-completeness reductions. Let me give you a really simple example. Why is factoring integers reducible to satisfiability? Because if I gave you factors of an integer, you could just multiply them and check that they equal the input.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1815">30:15</a>] This multiplication is a simple algorithm, right? I mean, we know how to do it from second grade or something.</p><h3>30:33 &#8212; Space vs time complexity</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1833">30:33</a>] You really, the factors you mentioned, time complexity and space complexity. Intuitively, in software engineering, we often trade those off for each other. Is there general theory on that, on how these two trade off?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1850">30:50</a>] Yeah, we have all these questions. They are natural questions for complexity theorists. How do two resources relate to each other, and can they trade off? Or maybe you can minimize them both at the same time. It depends on the problem. There are problems for which we know results, like multiplying time and space. It has to be at least the square of the length of the input. So you can either do it with very small space, like logarithmic space, but you need to pay maybe quadratic time.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1892">31:32</a>] And if you want linear time, you have to pay linear space or close to linear space. There are results of this type in various models of computation. That&#8217;s another thing you play with. Not all of them are equivalent in principle, but if you care about exact time or exact space, they are not equivalent. So there are problems for which there is a trade-off. There are problems where you can solve them in linear time and logarithmic space.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1925">32:05</a>] One very important general result that is the breakthrough from last year is a result of Ryan Williams. I&#8217;ll tell you what it is, but first, I need to describe what we knew about time and space. There&#8217;s a clear inequality, right? If you run in time T, you will never use more than space T, because you will never visit so many cells or registers in your machine. So space is at most time. Fifty years ago, Valiant, Paul, and Pipin improved this a little bit.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1961">32:41</a>] They said that if you run in time T, there&#8217;s an equivalent computation that will do this in slightly less space than T over log T. That was a big result. The running time, of course, will blow up. It will be very, very expensive time-wise, but at least you can save on space a little bit. This was believed for almost 50 years to be the best you can do. In fact, we had arguments that in certain models, in stylized models, models of computation, you cannot improve that.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=1999">33:19</a>] I will not describe this restricted model, but in some way, natural restricted models, you cannot beat this. What Ryan Williams found out last year is that, in fact, much better can be done. Any computation that runs in time T can be simulated by another algorithm that uses only the square root of T space, far less than before. The algorithm is quite sophisticated and uses an earlier result of James Cook, the son of Steve Cook, known for defining NP-completeness, and Ian Meltz, which was an essential technical ingredient.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2047">34:07</a>] But anyway, there&#8217;s a really interesting way to save space. A very non-trivial way to save space. Again, this algorithm will run in a lot of time, but at least you have a sense that the two parameters are related in a highly non-trivial way.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2069">34:29</a>] Is this for a general problem?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2071">34:31</a>] General problem for Turing machines? Okay, it may not work on random access machines or.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2077">34:37</a>] Yeah, what&#8217;s the trick? If you could explain intuitively, or is it too deep to explain?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2085">34:45</a>] It is really technically explaining it. It&#8217;s too deep. But I&#8217;ll give you a much earlier result which indicates that really mysterious things can be done in small space. Again, it&#8217;s probably over 40 years ago, people discovered the following. Dave Barrington discovered the following really interesting phenomenon. So suppose all you want is to count. I give you a sequence of bits, and you want to count.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2120">35:20</a>] Say you want to know whether there are more zeros than ones, like the majority problem. Who wants the vote, zeros or ones? Okay, well, you can count. You can just add them up, and this takes logarithmic space; it seems the best you can do. You want to count up to N. To represent N takes log N bits, right? Any number between 1 and N takes log N bits. It seems essential. It turns out that there&#8217;s an algorithm I have to define exactly how it works.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2158">35:58</a>] I will not define exactly how it works, but it solves this problem. In constant space, it seems like you can count arbitrarily high. All you need is access to whatever bit you like, whenever you like. I want the 17th one, I want the 81st one. If you can have random access to the bits, even if you have constant space, you can tell whether there are more zeros than ones or ones and zeros, regardless of how long the input is.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2193">36:33</a>] The trick is that somehow you use noncommutative algebra. Noncommutative algebra is not something everybody&#8217;s familiar with. I mean, we usually put the cars behind the horse and not in front of the horse. It matters. In software engineering, we do this before that; it&#8217;s very important that the order of things matters. So you can think about applying permutations one after the other.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2230">37:10</a>] If I rotate a circle and then take a mirror image, it will give me the... So these are two permutations, right? I mean, say I have endpoints in a circle. I can shift it by one, or I can, let&#8217;s say, flip it around some diameter. There are two permutations, and they don&#8217;t commute. If I first flip and then rotate, I&#8217;ll get something else than if I first rotate. Think of all the points as colored, so they don&#8217;t commute.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2265">37:45</a>] Barrington is using permutations to encode the bits in the input, specifically permutations of size five. When he sees a one, he may rotate, and when he sees a zero, he flips. The non-commutativity of these operations allows him to carry out a general formula, a formula of ANDs, ORs, and NOTs. Any formula of some size S enables him to simulate the ANDs, ORs, and NOTs in this formula through rotations and flips of these five-sided pentagons.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2325">38:45</a>] And so just to remember the configuration of this pentagon, you need five bits, right? So you need constant space. How this captures the computation, I can tell you one more sentence. Maybe it will not be clear to everybody, but these non-commuting things allow you to do the following type of operation: do a rotation, do a flip, then rotate back and flip back. This is called the commutator, and it can simulate an AND gate.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2373">39:33</a>] I can. It&#8217;s too much to describe in words without how it does it. But there&#8217;s a very famous analogy, which is a riddle that captures this <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problem. You want to hang a painting in the following way: you have a painting, it has a string connecting the two sides, but you want to hang it not on one nail, but on two nails.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2408">40:08</a>] Okay. There are two nails on the wall, and you can do with the string whatever you want. The property you want is that if the two nails are there, it&#8217;s hanging, and everybody&#8217;s happy. If you pull out one nail, it doesn&#8217;t matter which, the picture falls to the floor. How would you loop the string around these nails so that this happens? Clearly, this is an AND gate or an OR gate. Right? If one... Yeah. And this has to do.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2443">40:43</a>] I mean, if anybody finds a solution, they realize what non-commutativity I&#8217;m talking about. It&#8217;s a nice fiddle. Anyway, this type of trick, where you can really do this type of result in small space, is something you wouldn&#8217;t imagine possible. It&#8217;s a striking example. When I heard this result for the first time, I was a postdoc, and somebody told me, and I just didn&#8217;t believe it was possible.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2478">41:18</a>] You cannot count arbitrarily high with. The trick that Cook and Mertz have in their algorithm is a solution to a natural problem in much less space than you would think. It uses some sense tricks of this nature.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2504">41:44</a>] If you&#8217;re counting arbitrarily large, that is information. You&#8217;re saying maybe the intuition is that information is encoded in the sequence of operations.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2515">41:55</a>] It is encoded. Of course, you are not delivering the final count. You just say whether there are more zeros than ones. If you have to write it down, and if the answer takes some number of bits, then you need this number to write it down. If you have a decision problem, say like yes or no, like are there more zeros than ones? Then you can do it for any size input in constant space.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2546">42:26</a>] That&#8217;s incredible.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2548">42:28</a>] Pretty incredible, yeah. And by the way, this highly applicable result used in cryptography in fundamental ways is used in various places, and it&#8217;s an extremely useful result here. Unlike the Ryan Williams result, if you have a formula of size S, you can do it in constant space. The time of this algorithm does not blow up really a lot; it&#8217;s just quadratic. So it&#8217;s quadratic time.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2580">43:00</a>] So this is something actually doable, useful, efficient, and magical.</p><h3>43:06 &#8212; Why people use SAT solvers</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2586">43:06</a>] We talked about the equivalence between these <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems. In practice, a lot of people solve other problems using SAT solvers. I would have thought that would be less efficient, though, because you have to translate it and then you&#8217;re doing it in almost like a different problem space.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2605">43:25</a>] Yeah, you usually also enlarge the instance. In translation, you enlarge the instance. So what your question is, why do people use SAT solvers? I would say that there&#8217;s no problem other than satisfiability that people thought so hard about really optimizing the heuristics that efficiently work on many instances. There are very clever ways in which you can try to start. I mean, you are not going to guess all the N bits, but you want to start by guessing some bits that seem more pivotal. If you like in dominoes, maybe when you set them to one value, they force many other values to be set.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2662">44:22</a>] And if that happens, you cut down your subspace. There are many heuristics of this type and also more clever than this that allow solving such satisfiability problems if they have such structure. Again, in the worst case, it will not help you. There is, in fact, a conjecture that is much stronger somehow than NP-completeness, you know, <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems taking exponential time. It says that we don&#8217;t expect any savings.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2696">44:56</a>] We expect satisfiability problems to require really true to some constant times N. It&#8217;s not going to be two to the square or N to the log N or something like this. The worst case may be hard, but people optimize attacks on many such formulas that somehow have all sorts of structural properties arising maybe in practice. I think that&#8217;s the main reason they are used. It&#8217;s also convenient.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2733">45:33</a>] I mean, it&#8217;s very common. People do it for testing specifications that programs or protocols meet. The specifications are usually easily translated into simple constraints, and that&#8217;s almost a satisfiability problem.</p><h3>45:53 &#8212; Randomness is a resource</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2753">45:53</a>] We talked about all the different types of resources in an algorithm, and in one of your talks, you said something where you consider randomness another resource for an algorithm. What do you mean when you say randomness is a resource for an algorithm?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2770">46:10</a>] In the early 70s, of course, randomized algorithms existed since antiquity, and everybody was tossing coins for a lot of reasons. Statisticians do sampling and use randomness. But when algorithmics, designing efficient algorithms, became big&#8212;once we had computers&#8212;people realized that it can really enhance all sorts of computation. For example, we had no idea how to test the primality of a number.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2806">46:46</a>] And in the 70s, both Michael Rabin and Sulwin Slauson found probabilistic algorithms, which are fast to test primality. Okay, so what does it mean, a probabilistic algorithm? It&#8217;s an algorithm that&#8217;s allowed to make random choices. You can think that there is an internal little person or device inside that tosses coins. Of course, that&#8217;s not what happens. There&#8217;s no little person sitting in your laptop.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2835">47:15</a>] So the question is, where do you get these random bits? It&#8217;s very important to stress that in all these probabilistic algorithms, the underlying assumption is that the bits you get are perfect. They are half, half each one and independent of each other. It&#8217;s like a uniform distribution on all possibilities. Now, where do you get this? I mean, where seriously do you get this? If you run a public algorithm on your laptop, since it doesn&#8217;t have this person inside tossing coins, it does something well.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2872">47:52</a>] High-quality randomness of this type costs money, time, and memory. What do I mean by &#8220;cost money&#8221;? You can have a very cheap solution. You can just measure the thermal noise in your computer or use one of the Intel chips. You can measure Internet traffic and sample it, believing it&#8217;s random, and all of these things are used. You can do something mathematical, have some simple procedure that is actually deterministic, like a linear congruence generator or something like this, and believe it&#8217;s random.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2912">48:32</a>] Or you can take the digits of &#960;. It also looks random in some sense. There are many things you can use, but you don&#8217;t know they are random. If you want them to be random, one source&#8212; even this is not a perfect source&#8212; but we have quantum mechanics. People believe it works in life. It seems like a true theory of nature. There are all sorts of arguments about it, but let&#8217;s put them aside.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2941">49:01</a>] They predict. If you measure photons coming out from some source and you measure their spin, whether it&#8217;s up or down, the prediction is that each one is half, half, and it&#8217;s independent of each other. That&#8217;s very nice. But if you are going to build this device, it&#8217;s going to cost you a lot of money, and let alone that it will not be perfect. But let&#8217;s leave this aside. Anyway, since you want high-quality randomness, you have some way of guaranteeing, I mean, you are running it really on your laptop.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=2974">49:34</a>] It&#8217;s not okay. The paper was written; we can test primality with a probabilistic algorithm. Now we want to run it. What do you use? It makes sense to ask lots of questions about randomness. What guarantees the quality of the randomness? Maybe you can minimize the use of randomness. By the way, another issue with randomness is that the outcome is a random variable, and it&#8217;s not always correct. Right?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3002">50:02</a>] The whole point, in most of these algorithms, is that you just have some small probability of error. If you have a deterministic algorithm, there&#8217;s no error, so you also don&#8217;t like the error. Treating it as a resource is simply a convenient, complex theoretic way of saying how do we understand the amount of this resource we have to invest, or the number of bits we have to invest, their quality, and so on.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3030">50:30</a>] So it&#8217;s almost automatic. If you think like a complexity theorist, how do we minimize for a particular algorithm, like primarily testing? Do you really need this? Do you need them to be independent? Maybe you can generate them in a, you know, maybe you need n bits, but you can start from squared n bits or from log N bits that are truly random and make from them in some deterministic way, a sort of pseudo-random sequence you can call it, which is a good name actually, that will, for the purpose of this algorithm, look as if it was random.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3073">51:13</a>] If you could do that, you don&#8217;t need all these bits; you can use much fewer. This whole theory of reducing randomness, derandomization, and removing randomness is a huge field, and there are many problems and many ways of doing it. The story with primality is actually fascinating. I mentioned these two algorithms that were invented, and people were wondering about the deterministic algorithm for primality.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3105">51:45</a>] It&#8217;s a problem that has been articulated already by Gauss in the most complex theoretic way you can. Back in his days, hundreds of years ago, and maybe 150, I don&#8217;t know, he was asking for an indefatigable calculator. Calculator, of course, is a person. But he wanted this to be efficient. That&#8217;s basically what he was looking for, a primality test for large numbers. Because they really wanted to know about numbers, maybe only a few tens of digits.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3143">52:23</a>] They wanted to know whether the numbers are prime or not. There was no efficient algorithm. You can wonder about the Miller-Rabin or Solovay-Strassen algorithms; maybe you can use less randomness or structures, randomness that you can generate from fewer bits, but nobody has any good idea. Then, in the early 2000s, Agarwal, Kayal, and Saxena devised a different probabilistic primality test, and it&#8217;s different.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3175">52:55</a>] So the analysis of randomness in it is different. Once you understand how randomness is used, you can say, &#8220;Ah, we don&#8217;t need to have totally independent bits. It&#8217;s okay if it has some structure.&#8221; They found, using number-theoretic methods, a tool to generate pseudo-randomness from very few bits. That&#8217;s how it works. Sometimes, deterministic versions of probabilistic algorithms are discovered simply by understanding how the algorithm uses randomness, analyzing the algorithm, and realizing it doesn&#8217;t use all that much.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3229">53:49</a>] You mentioned a few times the quality of the randomness. How do you quantify the quality of random bits?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3236">53:56</a>] This is basically a question about what pseudorandomness is. The general answer is that it depends. You want to fool a particular algorithm, let&#8217;s say, for primality. You want the randomness to fool this algorithm; you want it not to notice that you switched from perfect randomness to something that&#8217;s really far less random, has far less entropy, but the analysis works nonetheless. For another algorithm, maybe you need a completely different type of pseudorandomness for it.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3275">54:35</a>] There are a set of examples of algorithmic problems for which, when you look at the analysis, they are much simpler than this primality testing. It seems to use not the independence of all the n bits. You really need only every pair of them to be independent, or every triple. Spaces of random variables that have this property are much smaller. You can generate them from log N bits, and so you can fool them with this.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3308">55:08</a>] So the quality of randomness is a phrase. I like that. The quality of randomness is in the eye of the beholder or in the computational power of the beholder. You really need it to be just as good as the tests that are applied to it. You just want to be completely pragmatic. You don&#8217;t care whether it&#8217;s random or not. You just care that an observer of a particular structure or particular computational power will not distinguish the pseudo-random distribution, which may have much less randomness in it than the perfect one.</p><h3>55:48 &#8212; Randomness depends on computational power</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3348">55:48</a>] In one of your lectures, actually, you mentioned that, and you gave a good example. I was wondering if you could give the intuitive example of why randomness is a function of the observer&#8217;s computational power.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3360">56:00</a>] Yeah. So if you watch this talk, the example I give is taken from this fundamental paper of Manuel Blum and <a href="https://en.wikipedia.org/wiki/Silvio_Micali">Silvio Micali</a>. They tell you to consider three experiments, and the experiments go as follows. They are always between you and me. You are the observer, I am the cause. I have a coin on my finger, and I toss it. Just as it leaves my finger, you are supposed to predict what the value will be when it falls on the floor, like in two seconds.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3398">56:38</a>] You have to immediately say, heads or tails, okay? Before you have to predict, before it falls. Well, this is the first experiment. And you know what I ask and what they ask? What do you think is a success, your success? What are your chances of predicting it? And the obvious answer is, you know, one half. You know what, how can it help? You know, what can you do? The second is when you sit there, but you have a laptop like you have now.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3430">57:10</a>] And, yeah, what can you do? I don&#8217;t know how fast you type, but the coin will be on the floor in a second. The third experiment is where your laptop is connected to a Cray supercomputer, and the Cray supercomputer is connected to a bunch of sensors and cameras and whatever devices you want. They are all trained on my finger, okay? And so as it leaves my finger, the coin. This apparatus certainly is more than enough to calculate all the angular momentum of the coin and the distance to the floor and the humidity in the air and whatever parameter that completely determines its motion.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3477">57:57</a>] In particular, how it will land in a split second, far less than the time needed. So the real point in this example is that the experiment, the random coin toss, did not change in all of them. It is the same what masses of people in math, physics, and philosophy have defined randomness in various ways. There are many definitions of randomness, and they all focus on this event, on the chronos or sequence of coin tosses.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3517">58:37</a>] We in computational complexity theory, starting from this paper, don&#8217;t care about this event. The event stays the same, and all it focuses on is the observer. The only thing that changed in these three experiments is the computational power. We want to know how much entropy is in the coin. If you don&#8217;t have enough computational power, it seems to be full entropy. It&#8217;s half. Half. You don&#8217;t know what it will be; if you have enough computational power, you can predict it completely, and then it has zero entropy.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3552">59:12</a>] So what changed is the observer. The observer is this algorithm we talked about before. Any test that&#8217;s applied to a distribution to test the quality of randomness, depending on the test, you want to make sure to use as little true randomness in a way that the observer will not notice. This is the source of many of the important theorems that show you can remove randomness or reduce randomness in probabilistic algorithms with or without assumptions.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3595">59:55</a>] And really, they are behind this understanding that we have today. Randomness in algorithms is not as powerful as we thought. It&#8217;s like if you know that P is different from NP or you have a <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem">Traveling Salesman Problem</a> that is exponentially hard or sustainable. If you know that, then in fact, I can give you a pseudorandom generator that will derandomize any. We know that under this assumption, we have what we call P equals BPP.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3628">01:00:28</a>] Anything that has an efficient probabilistic algorithm also has an efficient deterministic algorithm. You just need to know that there is a hard function somewhere. Under what assumptions do we know P equals BPP? The very natural assumption is that one of these <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problems, or in fact even problems in higher classes, requires a lot of hardware and requires exponential size circuits to solve. We believe that it&#8217;s like the <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a> problem in strength, and you cannot count down the exponential subspace.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3674">01:01:14</a>] And so maybe people are happier with this assumption, but this assumption about time complexity has no randomness in it. At first, it&#8217;s shocking that it&#8217;s actually related to the problem of removing randomness from algorithms. So that&#8217;s one fundamental connection in this hardness versus randomness paradigm. But we know even more. We know that it goes both ways. We know that if you are trying to remove randomness from some algorithms, if you can do that, then you&#8217;ve found the hard function.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3722">01:02:02</a>] So there&#8217;s really an almost. It&#8217;s not an exact if and only if, but again, there are many variants of this. In some variants, if and only if it&#8217;s stronger, but we really know that it&#8217;s one or the other. Since it&#8217;s hard to believe that all these hard problems are easy, or the seemingly hard problem like <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a>, we tend much more to believe the other alternative, which is that randomness in algorithms is weak and you can remove it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3783">01:03:20</a>] Is there an intuitive explanation for the relationship between problem hardness and randomness?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3805">01:03:25</a>] Yeah, there&#8217;s almost always an intuitive explanation for this. So what&#8217;s the hard problem? I give you the input. You are a limited computer. You are a polynomial time algorithm. I give you the input. Let&#8217;s say it&#8217;s a <a href="https://en.wikipedia.org/wiki/Travelling_salesman_problem">Traveling Salesman Problem</a>, or you don&#8217;t know the answer. So there&#8217;s some entropy in the answer, right? In the same sense we discussed before, there&#8217;s some entropy, a tiny entropy, maybe exponentially small entropy, because if the input is random, maybe only a few instances are hard, and all the others you can solve. But at least you see a hint of a relationship between hardness and entropy.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3852">01:04:12</a>] This, of course, is not satisfactory because we want half. We want the answer to be like a coin toss, not like a very biased coin toss. So we need to find ways to amplify this uncertainty for you. Amplify the hardness. We want not just that some instances will be hard, but since they are random instances, whether the answer is yes or no, for polynomial time, the observer will be half and half.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3886">01:04:46</a>] It will not be able to gain an epsilon advantage over a random guess. For this, we developed all sorts of methods that amplify randomness. Now, this doesn&#8217;t solve the problem at all because I managed to take n bits of a random instance of a problem and manufacture one bit. That&#8217;s hard for you to guess. But I could have taken the first random bit I picked.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3920">01:05:20</a>] What you want to do is the opposite. You want a method that will take a few and generate many. That&#8217;s a pseudorandom generator. The pseudorandom generator starts with a few truly random bits and generates many. For this, we need other tools. There&#8217;s something that I developed with Noam Nisan called the NW generator. I like to say that people say making the first million dollars is easy, and afterwards, you can make many more millions.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3957">01:05:57</a>] You can think of it this way. The hardness in the way I describe it allows you to make $1 million. But once you can make one, there are methods to make many more, in fact, more than the number of bits you started with. But still, their quality depends on the hardness of the function you use. We still use this and your limitation of being in polynomial time. So you can also solve this hard instance.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=3990">01:06:30</a>] You build many instances from a short seed. You start from maybe a logarithmically long seed. You take many subsets of this, like N. You will need n of them. I ask you for the value of the solution to each one. Each one is hard, but we want to say that they are simultaneously hard. You cannot tell them apart. There is no correlation that you can detect between them, even though they are extremely correlated.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4020">01:07:00</a>] So, we have methods to do that as well. The connection you embed, having a hard problem to a limited observer, means there&#8217;s some uncertainty about the answer. That&#8217;s the key. That&#8217;s a starting point.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4034">01:07:14</a>] So when you say that the quality of the randomness is a function of the computational power of the observer, one thought that comes to mind is, imagine I have maybe infinite compute. Then nothing is truly random. Is that accurate to say? Like, you know, if I had infinite compute, the weather is not random. Nothing is random.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4062">01:07:42</a>] Okay. So it points to the fact that you have to really be careful about what question you are asking about randomness. If you want to apply this to probabilistic algorithms, then it&#8217;s really important that you are limited computationally. If you have infinite compute time, you will be able to distinguish a distribution with full entropy from one coming from a generator with low entropy.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4099">01:08:19</a>] So you could do that. But one thing you cannot do with infinite compute is something that&#8217;s information theoretic. There are many other things we need to do with random bits than just run probabilistic algorithms. For example, we want to generate passwords for our cryptography for security systems. The very demand is that they are random, right? I mean, Shannon&#8217;s theorem tells you the quality of your password is as good as the entropy in it.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4138">01:08:58</a>] So the notion of a secret rests on the true randomness of the bits. If I ask you to produce a random bit, or you ask me to produce a random bit, whether you have infinite computational power or not doesn&#8217;t matter. To generate this random bit, it has to be random. Your demand is not that it will succeed in some test; you really want the probability of heads to be half and tails to be half.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4174">01:09:34</a>] Then this definition or this task of producing randomness is not related to your computational power. Lucky or unlucky, I don&#8217;t know. For us, many times we do have implicit or explicit tests for this randomness. You say, &#8220;I can break this system or something.&#8221; Then you can maybe use pseudorandomness. But if your very demand is to have a random event, then you need to produce a random event.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4208">01:10:08</a>] I saw in my research that there are ways to create higher quality randomness by aggregating weaker sources. How does that work?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4222">01:10:22</a>] Well, it&#8217;s another theory I talked about before, the theory of pseudorandomness. There&#8217;s a whole different theory. They are related in nontrivial ways, but it&#8217;s called the theory of randomness extraction or randomness purification, maybe. And this is exactly what you asked about. We imagine that the world may not give us perfect randomness, but we have all these events we cannot predict, like the weather, various quantum phenomena, or sunspots. We cannot predict the stock prices, right? Otherwise, the market will be.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4264">01:11:04</a>] But these are not, even though these are unpredictable events, they are somewhat predictable. I mean, the weather tomorrow is more likely to be similar to the weather today than the opposite. So there are correlations. If you sample this weather, for example, there are also biases. I mean, sometimes in the spring it&#8217;s more, or in the summer it&#8217;s more likely to be hot than cold.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4293">01:11:33</a>] So there are biases and correlations. These are called weak random sources, and there&#8217;s a mathematical quantification of how weak they are. Basically, we talk about the amount of entropy in them. You have N bits; potentially, you can have entropy N, but maybe they were generated from a generator or they came from some source. It has some entropy in it, but you have no idea where. Maybe half of them are fixed and half of them are chaotic, and you don&#8217;t know which half.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4330">01:12:10</a>] Maybe they are each half, three-quarters zero and one-quarter heads or tails, have a virus that also has lots of entropy, but not full. The correlations may be even more complicated. You can imagine all sorts of situations like this, and you mathematically model it by saying, okay, there are N bits. It&#8217;s a probability distribution of N bits which has some entropy, let&#8217;s say the square root of N.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4359">01:12:39</a>] You don&#8217;t know where, and you want to use it in a probabilistic algorithm. So it&#8217;s a basic question: can we use physical events, weak sources coming from nature, maybe in probabilistic algorithms? It&#8217;s certainly not obvious. I mean, just feeding them to the algorithm as is is not going to work. There are very simple algorithms that will succeed on perfect randomness and will fail, making an error.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4394">01:13:14</a>] But the theory of randomness purification wants to take this sample of n bits with some amount of entropy, which is not full, and massage it to create from it maybe a shorter string that is of higher quality. Ideally, it would be perfect random bits. So, ideally, you can imagine that if I have n random bits and I have entropy root N, maybe I can massage out of there square root N, or maybe just the fourth root of n bits that will be essentially uniformly distributed.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4439">01:13:59</a>] Then if I have an algorithm that just needs this amount, that&#8217;s what I feel. Turns out you cannot do that; it&#8217;s impossible. But what you can do is not produce one string of length, let&#8217;s say, the square root of N, but you can produce N to the hundred of them, okay? And what you are guaranteed is that this randomness purification device is an official algorithm that takes any distribution with entropy in it and produces many blocks, polynomially many blocks, of the length roughly the entropy.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4481">01:14:41</a>] What you would hope to be perfect and what you are guaranteed is that 99% of them are truly perfect. So you have many, 99% of them are as good as perfect. And there&#8217;s 1% that is bad. You don&#8217;t know which it is. But this already solves your problem because you can run your algorithm on each one of them and take a majority vote. Doing this is extremely complicated. There are many ways of doing it. There are variants of various assumptions you can make about the entropy.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4521">01:15:21</a>] Maybe you have several weak sources that are not related to each other. There are various variants, and this theory is very well developed. But we know that the statement I made essentially is accurate. If you have one source with some entropy in it, you can generate polynomially many samples of the length of almost the entropy, and most of them will be perfect. So that&#8217;s as useful as having one.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4555">01:15:55</a>] Yeah, I vaguely remember skimming a bunch of papers, and one of the papers had this figure with a two-dimensional array of numbers. I think they were drawing rectangles or something like that. Is that one of the ideas?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4571">01:16:11</a>] So it&#8217;s a notion of pseudorandomness, which is related to one particular variant of this extraction problem where you have several weak sources, not just one. One is the hardest because that&#8217;s... Yeah, but maybe you have a few that are independent, and each of them has some entropy in it. I think what you are referring to is this sum product theorem. I cannot draw the pictures of that, but you don&#8217;t really need to.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4605">01:16:45</a>] So let&#8217;s just think about this problem. You have three sources of randomness; they are each weak, so each has just a little bit of entropy in it. All you want to produce is one source with somewhat larger entropy. You are losing the number of sources, but you are gaining entropy. If you can repeat this, you eventually get to full entropy. So that&#8217;s the idea. What combination of which sources would you take?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4637">01:17:17</a>] It&#8217;s not obvious. And the solution? Yeah, there certainly is one. Maybe you mean this one. There&#8217;s a paper I have with Barack and Impagliazzo about this particular problem, and we are using a result in what&#8217;s called arithmetic combinatorics. I can explain it very simply. I think that we learn about addition in second grade and about multiplication in third grade, maybe. The only motivation for multiplication is that it&#8217;s a way to shortcut repeated addition.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4676">01:17:56</a>] And that&#8217;s all we talk about. Then if you go to college, you learn that sums and products are the basic operations of fields. You can do it with integers, rational numbers, complex numbers, and finite fields. And so you remember these are the basic operations. But how do they relate to each other? It&#8217;s not clear. Maybe there are many ways to ask this question. But one way to ask this question that was suggested by Erd&#337;s and was solved for the first time by Erd&#337;s and Semer&#233;di, and then in a much more applicable form we really need by Bourgain and Katzentau, said the following.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4718">01:18:38</a>] Just think of a set of integers and add all pairs. So you start with, let&#8217;s say, K integers and add all pairs. How many new integers do you get? This you should think of as entropy increase. If you get many more somehow. So you have K integers. Well, it depends on what they are. I mean, if they are the first K integers and you add all pairs up, you get the numbers between 1 and 2K. That&#8217;s not much larger; that&#8217;s a factor of 2 larger.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4751">01:19:11</a>] If you want to increase entropy, you want to get some power of K bigger than one. Of course, if you take a random set of integers, you&#8217;ll get K squared. They&#8217;ll all be distinct because K squared integers. So somehow you want to say, it would be great if, for any set, when you take all pairs, you group. But it&#8217;s not true. By this example of the interval, you cannot take sums; you can take products, but also products don&#8217;t always increase.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4788">01:19:48</a>] If you take 1, 2, 4, 8, you take a geometric progression, you multiply all pairs, you just get twice as many as you started with. So that&#8217;s also not good. The magic in this sum-product theorem is that sums and products are orthogonal to each other. Somehow, if one of them fails to grow a set, then the other will grow this set. This is an amazing result. In this context, you think of the outcome of your sources as numbers.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4831">01:20:31</a>] You multiply the first pair and add them to the third. You mix the sum and product. This guarantees growth. This is not obvious, but if you do this, it guarantees that you grow. The number of different values you get is significantly more than K. Maybe it&#8217;s K to the 1.5 or something. Entropy does increase, and that&#8217;s the source. You need to prove it. Distributionally, it&#8217;s not just the size.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4863">01:21:03</a>] The entropy is not just size; it&#8217;s more than that. Anyway, this is behind one solution to one of the problems about purification. It does not solve the one source problem. For this, you need other tools.</p><h3>01:21:20 &#8212; Zero knowledge proofs and their significance</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4880">01:21:20</a>] I saw that you had done some work in zero-knowledge proofs. I was wondering if you could explain what a zero-knowledge proof is. Maybe we can talk about its significance.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4890">01:21:30</a>] Sure, zero-knowledge proof. It&#8217;s pretty amazing that it became a household word. I mean, it was in the domain of theorists for a long time. The original definition of zero-knowledge proof came in a seminar paper by Goldwasser, Micali, and Rakoff, which also contains the definition of interactive proof. So even before zero-knowledge, they conceived of the notion that proofs don&#8217;t have to be written down like in mathematical papers.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4926">01:22:06</a>] People can have a discussion, a randomized discussion, in which I try to convince you of something I want to prove to you. Something like, I know the proof of the Riemann Hypothesis, or I can solve this Sudoku puzzle, and we can do it interactively with the random. We are randomized. In particular, you, the verifier of my claim, are allowed to be randomized. So it&#8217;s like in randomized algorithms. But now there&#8217;s a prover.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4957">01:22:37</a>] It&#8217;s not just an algorithm; it&#8217;s a prover, like in NP. Someone who knows the solution. But the convincing has this interactive form. This model was suggested in this paper and also in a paper of Babai, parallel at the same time from different motivations. Basically, it offers a generalization of the notion of NP. NP is just when I send you a message, and it convinces you; you verify it and it convinces you.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=4989">01:23:09</a>] Now, we allow an interaction and we allow a small chance because you are randomized. We allow a small chance that I will convince you of a false claim. But this error can be reduced, like in probabilistic algorithms. You want one in a billion? You can get one in a billion, whatever. Anyway, so there&#8217;s a notion of an interactive proof. In the Goldwasser-Micali-Rothblum paper, they suggested another notion of interactive proof, which is more restricted.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5026">01:23:46</a>] You want to prove something, but the zero-knowledge proof means that you want the verifier to learn nothing, absolutely nothing about the proof except that it&#8217;s true. Now, this sounds really totally ridiculous. I mean, if you think about the last time you convinced somebody to change their mind about anything without providing them any knowledge, any new things they didn&#8217;t know, say, what are you talking about?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5057">01:24:17</a>] Such proofs don&#8217;t exist for anything. There&#8217;s no zero-knowledge proof for anything. They were not thinking about convincing someone of a political opinion; they were thinking about cryptography. Of course, they&#8217;ve created the foundation of cryptography in many other papers, but they are imagining cryptographic protocols in which you have secrets. You use these secrets in your computation, and the protocol tells you to do things that, if you don&#8217;t, then you&#8217;re violating the protocol.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5100">01:25:00</a>] So the others don&#8217;t want you to cheat. They want to make sure you perform the right operations on your secrets. For example, you are supposed to pick a public key by multiplying two prime numbers. If you multiply three or something else, then you are violating the protocol, and maybe security is not guaranteed. So I would like to convince you that the number I give you is actually a product of two primes.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5130">01:25:30</a>] I certainly don&#8217;t want to give you the two primes. What I really want to convince you of is that I computed this number by multiplying two primes. You learn from this interaction absolutely nothing except that you are convinced with very high probability that I did multiply two primes and not any other number, and I didn&#8217;t do anything else that I shouldn&#8217;t. You can think about lots of other cryptographic protocols where people are doing things like multiparty computation, very complex things.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5166">01:26:06</a>] They are confused with their secrets and don&#8217;t want to reveal them, whereas the others want to make sure that they did what they should. There are many applications for this idea. The only problem is that it sounds ridiculous because it seems impossible in mathematical terms. If someone came here and said that they proved <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a>, I would want to see the proof and then tell me, okay, I&#8217;ll prove it to you in zero-knowledge proof.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5200">01:26:40</a>] How can anybody convince me that they have a proof of <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a>? I come out congratulating them and amazed by them, and nevertheless, I know absolutely nothing about the way they proved it. I just know that they did this. So it really sounds ridiculous. And yeah, certainly one of my favorite papers, maybe my favorite, is the zero-knowledge proof paper, which came a year later, co-authored with Omer Goldreich and <a href="https://en.wikipedia.org/wiki/Silvio_Micali">Silvio Micali</a>.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5237">01:27:17</a>] Well, we showed that it&#8217;s not only not ridiculous, it&#8217;s universal. Namely, anything that has a mathematical proof also has a zero-knowledge interactive proof. Anything like <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a> or that I multiply two primes, or anything that you can prove revealing your secret, you can prove without revealing your secret and be convinced beyond any reasonable doubt. So that&#8217;s possible.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5266">01:27:46</a>] What&#8217;s the intuition behind that? Let&#8217;s say I have a proof for <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a>, and we want to convert it to a zero-knowledge proof. How does that work?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5275">01:27:55</a>] How does this work? Well, first of all, it assumes cryptography. We assume we have some one-way functions. We assume that some problem, like factoring integers or discrete logarithms, or any number of one-way functions believed to be one-way, exists. One-way functions, if people don&#8217;t know, are functions that are easy to compute in one direction but hard to invert. For example, multiplying numbers is easy. Finding the factors of a number, which is the inverse problem, is believed to be hard.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5312">01:28:32</a>] Of course, we can never know any hard problems. That&#8217;s the pre-first entry question. We don&#8217;t know, but we believe many problems are hard, and this belief is actually shared by the whole world because the entire world is using cryptographic systems that rest on this assumption. All electronic commerce assumes this. So, we assume we have one-way functions. One-way functions allow you to create basically garbled message commitments.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5346">01:29:06</a>] I have a number in my head. I don&#8217;t want to tell you what the number is. It&#8217;s a number between 1 and 100. I can write down another number that looks like a random number to you. On the one hand, you have no idea. I claim this encodes my secret, okay? This commitment scheme, which is built very simply for one-way functions, guarantees two properties. A) You cannot tell what my secret is, even though you can see this other number I gave you.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5388">01:29:48</a>] And on the other hand, I cannot change my mind about my secret. It really commits me to it. So I can later provide you with a certificate that I was thinking about 17, and I can only do it for 17. I cannot do it for any other number. In fact, a very simple example is really using factoring in some sense the product of two primes. This number commits to its factors.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5427">01:30:27</a>] It uniquely defines its factors, right? The only problem is this is not exactly random products of primes. Yeah, but you can do it, so you can do this. Okay? So now that we have to take commitments, that are possible, that&#8217;s very important. I&#8217;m describing very high level; I&#8217;m hiding lots of things. Even the definition of zero-knowledge proof, the formal definition, is quite intricate. The intuition is obvious, and I said it.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5458">01:30:58</a>] But actually, formally defining it is non-trivial. At a high level, I&#8217;ll give you some idea about how a zero-knowledge proof looks. Now we have to think about what theorems I am proving to you. It was very important for us to figure out what problem to think about. Even though today you can do it for others, we were thinking about theorems of the type where, in the graph, we can color it in three colors.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5487">01:31:27</a>] It&#8217;s also a formal mathematical statement; either it&#8217;s doable or not, right? We simply focus on proving zero-knowledge claims of this type. The graph we both know, I claim I can color it with three colors. You don&#8217;t believe me. You want to be convinced of this fact, and you don&#8217;t want me to cheat you. You don&#8217;t want me to be able to provide an interactive proof. Moreover, I want it to be zero-knowledge.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5518">01:31:58</a>] I don&#8217;t want you to have the slightest idea of what my coloring is or what anything you didn&#8217;t know before is. Okay, so roughly the way it works. The honor is proof for this particular set of claims that are certainly not all claims. They are very structured claims. We look like the following. We iteratively repeat the following procedure. I put commitments for the coloring on every vertex. I tell you, you know, I don&#8217;t tell you it&#8217;s green, red, or blue, but I put a commitment to one of them.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5558">01:32:38</a>] On each vertex, you will choose at random an edge of the graph and ask me to open these two envelopes to decommit. You will check that the colors you see are in this set. They are not gray or orange; they are either red, green, or blue, and they are different. This should give you some slight advantage or support to the belief that maybe I&#8217;m not cheating you.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5593">01:33:13</a>] Of course, it&#8217;s a very limited one because I can cheat you in some corner. We have to establish two things. We will repeat this again and again. We have to establish that it&#8217;s a proof, an interactive proof that I cannot cheat you. And we have to argue that zero-knowledge part. Okay, so let&#8217;s do one at a time. The correctness that I cannot fool you is very simple, is the following.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5629">01:33:49</a>] If the graph is not three-colorable, whatever I commit for there is one place which is an arrow. Either it has the wrong color and not allowed color, or two colors are equal. You have some non-trivial chance of catching this with your random guess. It&#8217;s one over the number of edges. It&#8217;s not so small. It&#8217;s a graph with a hundred edges. It&#8217;s one in a hundred if thousands.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5656">01:34:16</a>] If we repeat it, not a thousand, but 10,000 times, the probability that you don&#8217;t catch me in any of them drops exponentially to zero. So, of course, this establishes that I cannot fool you. The zero-knowledge proof is a more serious problem because if I keep using the same coloring, you will ask me about this edge and this edge, and then eventually you&#8217;ll know the coloring of all colors.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5690">01:34:50</a>] Here&#8217;s something that&#8217;s really special to the coloring that is being used. If I have one coloring of the graph, I really have six because I can permute the names; I can replace red and green, and it&#8217;s another valid coloring. So what I do in each one of these iterations is not use the same coloring, but use a random one of these possible six. They are all legal, and I just use one of these six.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5721">01:35:21</a>] What&#8217;s the advantage of this? When you open a pair of vertices under this distribution, one of the six, what you will see, if I do have a coloring&#8212;and that&#8217;s the only thing I want to stress&#8212;is that we only have to establish zero-knowledge proof if I really can prove the theorem. So if I do know the solution, the proof, I want to protect my knowledge. What happens when I reveal to you two of these colors on the adjacent vertices of the graph?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5752">01:35:52</a>] It will be true in this distribution. When you are given two vertices, it will simply be two different random colors. This is what you get by all permutations in this experimentation. What did you learn from this? Nothing. You could have picked two random different colors. You didn&#8217;t need me for that. So you didn&#8217;t learn anything. In each iteration, you learn nothing. This is the idea of the proof.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5780">01:36:20</a>] Well, this is the end of the proof that I can show there are zero-knowledge proofs for all graph coloring, three-coloring problems. What about all the Riemann Hypotheses and the <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a> problem and factoring and all these other things? I want to claim to you and prove with zero-knowledge. Here it&#8217;s very simple. You use NP-completeness. This is an <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> problem. Anything that can be proved is really something in NP, right?</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5812">01:36:52</a>] This is the definition. So you reduce it to three-coloring, proving it in zero-knowledge. The main point about reductions in NP is that they don&#8217;t only convert the yes/no answer in a consistent way&#8212;if this is solvable, then this is solvable. But actually, if you have a witness, if you have a proof for, I don&#8217;t know, whatever, it will become a legal three-coloring of the graph you generate. So if you have a proof, you can also have the three-coloring.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5846">01:37:26</a>] It&#8217;s very important that the reduction also provides translation not just between the instances, but also between the proofs. NP-completeness theory gives you for free that if you solve the problem for <a href="https://en.wikipedia.org/wiki/Hamiltonian_path">Hamiltonian cycle</a> instances, you solve it for any. You can prove anything in zero-knowledge proof.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5867">01:37:47</a>] So with the zero-knowledge proofs, you can never be 100%.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5872">01:37:52</a>] No.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5873">01:37:53</a>] Okay, but practically, I mean exponentially approaching.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5878">01:37:58</a>] You can make the completeness 100%. Namely, if I do have a proof, you will be. Yeah, there&#8217;ll be no error in your proof. But there is a slight possibility that the graph is not three-colorable, and you will not catch me. You can make this exponentially small. You cannot make it zero.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5898">01:38:18</a>] When I think of cryptography and one-way functions, there&#8217;s this idea of <a href="https://en.wikipedia.org/wiki/Quantum_computing">quantum computing</a> that&#8217;s kind of changed complexity theory.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5907">01:38:27</a>] bit and big time.</p><h3>01:38:30 &#8212; Quantum computation and why it matters</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5910">01:38:30</a>] And I wanted to ask your thoughts on how <a href="https://en.wikipedia.org/wiki/Quantum_computing">quantum computing</a>, or that model of computation, is changing complexity theory. What are the big takeaways?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5922">01:38:42</a>] Okay, let me say what it is. First of all, quantum mechanics is a theory of nature that seems to be universally accepted. So, like with randomness, we can ask, why not enhance computers with this physical knowledge? We allow our computers to operate in the ways that quantum mechanics dictates, namely, manipulate bits in superposition using unitary operations, whatever this means.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5956">01:39:16</a>] But according to the rules of quantum mechanics, really strange things happen. I&#8217;m sure many people know about the interference patterns. Basically, you are working with probability theory. With negative numbers, events cannot aggregate; they can only cancel each other. Okay, so it&#8217;s a model of computation.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=5991">01:39:51</a>] It&#8217;s a generalization of Turing machines. In fact, it&#8217;s a generalization of randomized Turing machines. It&#8217;s very easy to see that a quantum computer is at least as strong as a probabilistic computer. How do you see it? You just measure the quantum bit before you start. You measure them. This is what I mentioned about the photons in the beginning. If you have some basic superposition on a quantum bit, if you measure it, you get a random bit.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6023">01:40:23</a>] So because of that, quantum computers are at least as strong as probabilistic computers. Okay, so it&#8217;s a model of computation. It was suggested in the 1980s. Richard Feynman, along with others, suggested letting algorithms use these quantum mechanical operations, mainly originally for simulating quantum systems rather than building bigger parallel systems, like we simulate other things, such as turbulence. I don&#8217;t know what the power of quantum algorithms is, again, let&#8217;s say running into polynomial time or efficient ones.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6068">01:41:08</a>] Can they do more than efficient classical ones, deterministic or probabilistic? It wasn&#8217;t clear for a while. There were a few examples that were very stylized but were not for concrete natural problems we care about. Then in 1994, <a href="https://en.wikipedia.org/wiki/Peter_Shor">Peter Shor</a> sort of created an earthquake or avalanche. He found quantum algorithms that are efficient, that factor integers and also compute discrete logarithms, the two most basic underpinnings of all security systems that exist.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6108">01:41:48</a>] And this sets the world on fire. Right. So lots of people try to do a lot of things. Of course, people want to have these algorithms they implement; maybe they want to break other people&#8217;s cryptosystems. Since then, billions were invested by companies, by governments, by lots of people trying to build the technological infrastructure. This is extremely complicated. Holding bits in superposition is extremely complicated.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6145">01:42:25</a>] These things are called noise. When people built classical computers like von Neumann, noise was one of the serious problems because the bits were really in vacuum tubes, and they had to contend with it. In fact, it built a nice theory of classical computers that have errors. They have to cope with errors; some of their components can be faulty. But today&#8217;s hardware has no errors to speak of.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6182">01:43:02</a>] We don&#8217;t, there are error-correcting mechanisms, but we don&#8217;t need them for classical computing. Intel chips don&#8217;t have error correction in them. Hardware is very reliable. When you move to quantum, there is this decoherence noise in quantum mechanics. Everything depends on everything. The world can influence the computation in your laptop, and protecting from this is very hard.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6213">01:43:33</a>] There are quantum error correcting codes, and that&#8217;s part of the solution. That&#8217;s only one of the problems. Just holding bits in superposition is hard, and there are many hard technological issues, and there&#8217;s progress on that. So this is one line of huge investment. The other line comes from cryptography because, of course, everybody should be worried. Forget quantum computers.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6239">01:43:59</a>] If tomorrow, I mean really tomorrow, somebody finds even a classical factorization algorithm in polynomial time, I think there&#8217;ll be chaos in the world because nobody can do any transactions since most security systems still rely on factoring. Of course, we want to change this. We want to change the underlying assumptions of security. The whole revolution in cryptography was that we risk cryptography on computationally hard assumptions.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6278">01:44:38</a>] And with this, we build all the wonderful public key systems and all the magical things you can do by assuming that players are computationally limited. But now, if the adversary is a quantum computer, suddenly they can break this assumption. You want to find other mathematical problems, computational problems that are somehow hard even for quantum computers. So that&#8217;s a whole field, this change in complexity theory and cryptography.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6319">01:45:19</a>] There is an army of people who are just trying to invent problems. I maybe should stress one-way functions are easy to find. Most problems, most processes in nature are not easily reversible. You make an omelet from an egg. Reversing this doesn&#8217;t take the same amount of time; that&#8217;s the usual example of a physical one-way function. But trapdoor functions, like factoring problems, are what you can use to build public key systems.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6355">01:45:55</a>] And that&#8217;s the most really basic thing for electronic commerce. We don&#8217;t know many. So we know this. I mentioned factoring and discrete logarithm. In the 90s, Itay and Roark created another type of trapdoor function from problems on lattices in high dimensions. I will not describe it, but it&#8217;s another problem. Then people refined and got a few more of similar nature. It turned out when <a href="https://en.wikipedia.org/wiki/Peter_Shor">Peter Shor</a> discovered this, people immediately tried to solve other problems with quantum computers.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6391">01:46:31</a>] In fact, even today we cannot solve too many other problems with quantum computers. These are special. The special thing about them is that somehow you can reduce them to finding periods in a signal. Periods are like fluorescence form. A Fourier transform turns out to be in exponential space. But you can somehow perform a Fourier transform with quantum computers using interference with lattice problems and problems related to it.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6422">01:47:02</a>] Some call it learning with errors. Similar to this, to this day, nobody has found an efficient quantum algorithm for them. So there&#8217;s not even a theory. Forget building quantum computers; we don&#8217;t know how to solve them. The world is not just complexity theory. The whole physical world of security systems and also governments like the <a href="https://en.wikipedia.org/wiki/National_Security_Agency">NSA</a> is supporting or asking the world to produce assumptions that may be resilient to quantum attacks.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6464">01:47:44</a>] And so this is a huge change. There is a major change in the interaction between computer scientists and physicists, which grew tremendously since its discovery. It&#8217;s rich in many ways that are not the influence of algorithmic thinking on physical theories, including today&#8217;s theories in quantum gravity, black holes, and so on. The impact is immense. We have new sources of problems, new models, and new complexity classes, et cetera, et cetera.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6499">01:48:19</a>] And there&#8217;s a fantastic interaction. It&#8217;s also enormous complexity theory in that it turns out you can discover quantum algorithms and maybe then dequantize them in special cases. Like I mentioned factoring before, de-randomizing. Sometimes it&#8217;s a way, it&#8217;s a road to discover new algorithms. There are connections between problems. It&#8217;s extremely rich. But one of the most amazing consequences is that we, being what we are, make up models and study them.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6545">01:49:05</a>] And the interactive proofs I mentioned before, it turns out that even before quantum, they were generalized to interactive proofs not with one prover, but with many provers, which seems weird but turns out to be very important in itself because it led to this <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a>. Then people said, okay, let&#8217;s allow quantum verifiers, quantum provers, and see what they can do. So one amazing result, which is about five years ago, is the acronym MIP* = RE.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6580">01:49:40</a>] Of course, we have acronyms for all these complexity classes: MIP*, RE. You may have seen them, maybe you didn&#8217;t, and they look weird, but I&#8217;ll tell you what they say. It says that there is a really weird proof system with quantum provers trying to convince efficient verifiers. And it turns out, you know, you ask for which problems can they do it? Forget their own knowledge, just convince.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6612">01:50:12</a>] And it turns out they can do it for the halting problem, for problems that are not computable. But things that are not computable are verifiable by efficient verifiers if the provers are quantum and they are entangled. It&#8217;s a weird proof system, very weird, but it does something that looks totally ridiculous. Things that are uncomputable by any classifiable component are verifiable in this interactive probabilistic sense by efficient verifiers.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6651">01:50:51</a>] So what I like to say in talking about this is that it seems the best hypothetical reaction of anybody who hears this is, &#8220;Okay, you complexity theorists, you play in your sandbox and you build all these sandcastles and make up all these models that have nothing to do with anything just because you can.&#8221; Once you get weird enough, you get weird enough consequences.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6680">01:51:20</a>] So one message which I think is very powerful is that this result has absolutely fundamental impact on mathematics and physics. It turns out that it implies, and this was already done in the initial paper, resolution of well-known conjectures in mathematics and physics. It turns out that, weird as it is, it&#8217;s a new mathematical technique to solve problems that nobody had any idea about. Famous problems, important problems that fields were dedicated to, are resolved by this result, by the techniques of this result.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6725">01:52:05</a>] So you ask about the impact of <a href="https://en.wikipedia.org/wiki/Quantum_computing">quantum computing</a>. The impact spans many generations with different motivations and developments, but all of them following the methodology of complexity theory, understanding the power of computational models, proof systems, and so on, has magically led to such a consequence. We are just at the beginning of this, right? This type of proof technique is now being explored and used, and there are more results using this type of technique to address long-standing problems.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6764">01:52:44</a>] Pretty amazing.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6765">01:52:45</a>] That&#8217;s incredible. Yeah, I mean, in complexity theory there are these Venn diagrams of all possible problems. The implicit assumption in this picture is that these are decidable problems.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6782">01:53:02</a>] Yeah, yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6783">01:53:03</a>] In some of these diagrams, there&#8217;s a little in the corner. Undecidable.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6789">01:53:09</a>] Yes, unreachable.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6790">01:53:10</a>] Yeah, right. And it&#8217;s just, I can&#8217;t, I don&#8217;t even understand how you could verify an undecidable problem.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6799">01:53:19</a>] It&#8217;s a 200-page paper. It builds on ten years of understanding, which involves a lot of development in quantum algorithms and quantum proof systems, but also relies on techniques from classical proof systems related to coding theory and various algebraic methods used to prove, for example, the <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a>, as I mentioned. It&#8217;s a huge body of work, and on top of this, they wrote this 200-page paper in which they had to develop many more tools.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6836">01:53:56</a>] And yeah, there you have it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6838">01:53:58</a>] Wow. I mean, when someone produces 200 pages of such complicated work that makes such an outrageous claim, how does that get verified by people?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6852">01:54:12</a>] I mean, it&#8217;s a very good question. This tool is for any mathematical result that is complicated. Of course, proofs of <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a> and the Riemann hypothesis are generated very frequently, but some of them were generated by very serious people and took a long time to refute in these two cases. Others, like the Perelman proof of the Poincar&#233; conjecture, one of the Clay Millennium Prize problems, was another one like that.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6893">01:54:53</a>] And this took several years to verify and fix small bugs in. Books expositing this proof were written, and eventually, this particular paper is for some reason still in the referring stage of the Annals of Mathematics now, probably almost six years; it will be done. It&#8217;s robust in the sense that already new papers were written with this type of tools, in fact giving somewhat alternative proofs of the same statements and stronger statements in order to resolve other mathematical conjectures.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6929">01:55:29</a>] But yeah, it&#8217;s a serious thing. In fact, the original paper had a bug, like the original paper with Fermat by Wiles. Fermat&#8217;s Last Theorem also had a bug, and it was fixed. This was very early on, just when it came out, and it was fixed very quickly. So any mathematical claim&#8212;your question is very important. In general, mathematics is a mathematical truth that is a social construct.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6964">01:56:04</a>] That&#8217;s what mathematicians believe. Maybe we are moving into a world in which we have lean proofs. We have formal ways of writing proofs, and you can maybe formally verify them. But anyway, I think that this community is quite certain about.</p><h3>01:56:24 &#8212; Math vs computer science</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6984">01:56:24</a>] Yeah, in complexity theory, it&#8217;s very mathematical in nature when I read the papers, but obviously it has implications in computer science. What&#8217;s the relationship between mathematics and computer science to you?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=6999">01:56:39</a>] Well, the theory of computer science, my field, complexity theory and algorithms, is really lucky to have these two parents. It lives in both spaces. It is a mathematical field in the sense that most of what we generate are theorems and proofs in the mathematical sense. On the other hand, it relates to computation because the kind of questions we ask ourselves, the problems we are trying to solve, are partly motivated by trying to understand computation.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7039">01:57:19</a>] So you can think of theoretical computer science very much like you can think about analysis, algebra, and topology. There are notions in algebra where you are trying to understand equations or systems of equations. In analysis, you are trying to understand, very generally speaking, inequalities and continuous spaces. Right? So there are these notions you are trying to understand. Computation is one of these notions where you are trying to understand what you can produce by an evolution of simple local steps through a given environment.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7079">01:57:59</a>] The input can be a sequence of bits, or it can be the DNA of a person, from which you produce proteins using computation, or you produce a new baby using the evolution of a fertilized egg, or the weather. Computation is sort of everywhere, and we are trying to understand it in ways that are different as we care about resources&#8212;how much resources are exerted in any such computation. We are trying to model it, understand the algorithms, and let the underlying natural phenomena inform our understanding.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7128">01:58:48</a>] So we live in both spaces. We have a lot of input of problems and models from industry technology systems and so on. And we have all the mathematics, so we have the rigorous side coming from and the aesthetic side, I would say, like creating models of proof systems because they are nice, because they are interesting, not because they are implementable necessarily.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7161">01:59:21</a>] So this living in these two spaces is extremely beneficial to this theory of computation.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7172">01:59:32</a>] You mentioned earlier that some people might have the perspective of complexity theory that it&#8217;s kind of solving problems for problem&#8217;s sake. I read in another interview you did that you were never motivated by application. My natural thought was, what motivates you to solve all these really tricky, complicated problems?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7194">01:59:54</a>] Okay, so let me say one thing about the beginning of your question. It says about solving problems. I think that what we do more, much more, is modeling things. Modeling things then gives rise to problems that you want to understand. So I think the modeling part in the theory of computation, modeling various forms of computation, is a large part of theoretical computer science and manifests itself in particular in cryptography.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7223">02:00:23</a>] Well, there are models of adversaries in distributed computation. There are many. I think modeling, just asking questions, and creating definitions is a very central part of the field. It happens more than in mathematics, maybe because they are more ancient and definitions happened earlier. But I want to stress this; it&#8217;s a very important thing. For example, we discussed randomness, and our definition of randomness is totally different, which gives rise to very surprising and interesting practical theorems.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7266">02:01:06</a>] Okay, now that we said that, what motivates me or what motivates other people? Of course, everybody has their own motivation. I am a product of computer science education. All my undergrad, grad school, postdoc, and everything were in computer science. I certainly regret not taking many more math courses because then I wouldn&#8217;t have to learn these later in life. But that aside, I think that the focus on computation, which is what computer science education gives you, is different. Different systems and different issues are, of course, algorithms in databases and algorithms in programming languages, and in fact, famous algorithms in other fields.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7322">02:02:02</a>] There are models and algorithms. Computation is something that I&#8217;m interested in intrinsically. Over the years, I&#8217;ve realized that computation, you know, the field expanded to interact with all the sciences, and that computation happened everywhere in various forms, in physics, biology, and so on. It makes it a fundamental object of study. For me, given the way I was brought up, I guess it is particularly fascinating in itself.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7354">02:02:34</a>] I know from experience that lots of the proofs we develop, not many, but probably with much higher proportions than in other areas of math, are impactful in the world, in real systems, in security systems, in blockchains, in the real world. But this particular side of seeing exactly how you translate your algorithm into a system or your zero-knowledge proof, I predicted when we came up with the zero-knowledge proof that this would never be implemented, because the protocol that I described more or less to you is very costly.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7400">02:03:20</a>] I mean, you want to prove that I&#8217;m producing a product of two primes, and I convert it to a map, and then I do all this complicated procedure many times. It doesn&#8217;t seem that anybody would ever use such a thing. But yeah, I was wrong. I didn&#8217;t realize how motivated people can be and how important applications of zero-knowledge proofs can be in the real world, not in the theory of protocol design. They did simplify, maybe using more assumptions, different assumptions.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7434">02:03:54</a>] There&#8217;s a recent breakthrough of a postdoc here, Ilango, you may have heard, because it gets some publicity in Quanta and so on, where he introduced into the assumptions of cryptography not just hard computational problems, but also things of the nature of G&#246;del&#8217;s theorem, that something is unprovable in some mathematical proof system like formal frameworks, whatever mathematicians use. Somehow using that, they can get zero-knowledge that&#8217;s non-interactive.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7468">02:04:28</a>] You can get. Yeah, it&#8217;s an amazing thing. It gets richer. What I want to say is that, again from experience, I have 45 years of experience in this field, which has been fascinating. I mentioned to you in the email that there are extra benefits to this field. I think the community is amazing. Not just that it has so many brilliant minds, but young brilliant minds are entering the field all the time. It&#8217;s also very lively, interactive, and collaborative.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7514">02:05:14</a>] Yeah, many of my best friends are also colleagues, so it&#8217;s fantastic. The theoretical understanding of many things that we may ask ourselves for aesthetic reasons that are mathematical, we generalize something for generalization&#8217;s sake, which may not have a counterpart in industry. In fact, <a href="https://en.wikipedia.org/wiki/Peter_Shor">Peter Shor</a>&#8216;s work on quantum algorithms raises the question, why do that? There are no quantum computers.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7549">02:05:49</a>] Maybe let&#8217;s wait until somebody builds one and we understand why. So, no, the answer is no. You should try to understand whatever is natural for you to understand. This field has already, maybe it was not clear 40 years ago, but it is clear now that lots of theoretical understanding is not just a product of mathematical results, but because it is about computation, it is meaningful.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7585">02:06:25</a>] I don&#8217;t know often enough in the real world. There are many other examples besides cryptography and <a href="https://en.wikipedia.org/wiki/Quantum_computing">quantum computing</a>, including theory. The field has revolutionized coding theory mainly because of the <a href="https://en.wikipedia.org/wiki/PCP_theorem">PCP theorem</a> tools needed for it. There are lots of examples, and this eventually went into systems, like memory schemes. Look, I&#8217;m interested in <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a>.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7617">02:06:57</a>] This is a question about impossibility, right? This is a problem. We still haven&#8217;t gotten closer to this, at least in the years I&#8217;ve been at it. We are not much closer to showing hardness for anything. We don&#8217;t know that multiplication is harder than addition. It&#8217;s a basic question. So this kind of question by itself is certainly not practical. I mean, it&#8217;s not clear. Well, it is a little clear because if you find R functions, maybe you can substantiate cryptography on a theorem rather than on an assumption.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7655">02:07:35</a>] But anyway, there are questions in the field that don&#8217;t directly relate and will not directly relate to implementations of any system, but they are all part of trying to understand what efficient computation can do and what it cannot. Or when can you minimize resources of some type and when you cannot. And how do different problems relate to each other. This basic methodology of the field has created some wonderful edifice.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7690">02:08:10</a>] And I would say that we are still in the embryonic stage of understanding computation.</p><h3>02:08:16 &#8212; Major breakthroughs and his experience</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7696">02:08:16</a>] You mentioned a few times in this conversation that some people made a major discovery, which kind of broke some assumptions that were maybe 50 years old. Researchers make these advances, and I know in your career you&#8217;ve made a few as well. The time span between breakthroughs is sometimes decades.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7718">02:08:38</a>] a major discovery sometimes because a lot of</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7721">02:08:41</a>] people&#8217;s careers, like maybe if you&#8217;re just an engineer, you got your shipping projects every year. But in your case, let&#8217;s say you discovered <a href="https://en.wikipedia.org/wiki/P_versus_NP_problem">P versus NP</a> or something like that.</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7736">02:08:56</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7736">02:08:56</a>] How do you feel when you make those discoveries, those sparse discoveries in your career?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7742">02:09:02</a>] It&#8217;s great. Yeah, it happens. The big ones happen. The biggest, rarely I think of science&#8212;I mean realistically, science and math is a community of ants working. Most progress comes from these conferences, theory conferences, and folks, and then we have all sorts of satellite conferences. There are hundreds of papers in them, satellite, I mean, focused on concrete areas and learning theory equipped.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7773">02:09:33</a>] So I know online algorithms. There are many, many thousand researchers working in this, I don&#8217;t know, maybe. And they are producing many papers a year. Most of my papers are, you know, we make a little progress in understanding something. Usually, it&#8217;s not a big problem; we discover a variant of a technique or we can strengthen a bound on some. I find this essential.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7805">02:10:05</a>] I think this is true in science in general. Bigger understandings come more early, and they send a shockwave to everybody who learns them and uses them. But of course, those bigger understandings don&#8217;t have to be a resolution of 50 years of papers. It can be something that, when Barrington discovered his algorithm for counting that I mentioned, he was trying to actually prove that it&#8217;s impossible.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7839">02:10:39</a>] And it was not like somebody asked this question; the answer was obvious. It&#8217;s impossible. Right? So when you have an insight of this type, it&#8217;s amazing. Whenever you realize something really new for you and for the community, it&#8217;s a phenomenal result. It&#8217;s rare. I tell all my students and postdocs that, yeah, it&#8217;s not, you know, you don&#8217;t work for the million dollar. The million dollar is nothing, of course, for some of these problems.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7872">02:11:12</a>] But yeah, you work because you enjoy the practice of it. You enjoy thinking about the problems. In fact, most days in the life of a mathematician, unlike a systems person, you go in the morning, you come back in the evening, and you fail to do what you wanted to do. You just couldn&#8217;t. You just thought more. And I think that it&#8217;s really important. It&#8217;s not for everybody.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7905">02:11:45</a>] Clearly, it&#8217;s not satisfying if this happens every day and every week. It&#8217;s not for everybody, but it&#8217;s for the people for whom this activity of trying to think, of throwing ideas, of failing, but learning from the failures, is meaningful. People don&#8217;t realize that often you learn. The fact that you failed is not just a wasted day. There is something that you gain from it, maybe subconsciously, that will help you later.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7937">02:12:17</a>] So unless you enjoy this activity, maybe this field is not for you. Yeah, and then you see something, and even if it&#8217;s small, sometimes it&#8217;s very satisfactory.</p><h3>02:12:31 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7951">02:12:31</a>] Last question for you. I think people in the field might be curious because you have so much experience. If you could go back to the beginning of your career when you just started becoming a researcher, is there any advice that you&#8217;d give yourself?</p><p><strong>Avi:</strong></p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=7968">02:12:48</a>] I think I was lucky enough not to think that I would change anything. I think I was lucky enough, and many people are lucky in this field because the field is so accommodating to young people. It&#8217;s completely leveled; there are no hierarchies. People would go to conferences and meet. I remember my first conference meeting Dick Harp, who was in the field and invented, you know, did all these <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a> things.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=8003">02:13:23</a>] And I was a first-year graduate student, and somebody introduced me to him. He immediately asked me what I was doing, and I said I proved that some problem was <a href="https://en.wikipedia.org/wiki/NP-completeness">NP-complete</a>, and it was actually interesting. It amazed me. I was lucky to have phenomenal mentors as an undergrad. As a graduate student, I was lucky to have unbelievable collaborators over the years. You learn from all this.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=8032">02:13:52</a>] So it&#8217;s not very informative advice to tell people to be lucky. I think this environment exists. One piece of advice I give everybody is that in the early stages, they should work on things they enjoy the most. When you are discovering your talents as a researcher, one direction may be these are all problems. If you solve them, then you. But maybe those aren&#8217;t your problems; maybe it&#8217;s not your affinity to them.</p><p>[<a href="https://youtu.be/5GUcvSAJcJw?t=8068">02:14:28</a>] You have to experiment with the type of problems. It&#8217;s good to have a variety of areas and papers to read in these areas or problems to understand. It&#8217;s always good to start with a few to better understand your capabilities. Often, what you like most is what you are better at.</p>]]></content:encoded></item><item><title><![CDATA[3 Top Takeaways From Dropbox’s Former Most Senior Engineer | James Cowling]]></title><description><![CDATA[Advice for the AI era, fixing broken incentives, simplicity vs complexity]]></description><link>https://www.developing.dev/p/3-top-takeaways-from-dropboxs-former</link><guid isPermaLink="false">https://www.developing.dev/p/3-top-takeaways-from-dropboxs-former</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 25 May 2026 13:15:50 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/41eb2847-5e92-44ac-a4b0-77bbe11a71a2_2560x1440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/jcowling/">James Cowling</a> was the most senior engineer at Dropbox (Senior Principal) before he left to start his own company, <a href="https://www.convex.dev/">Convex</a>. I interviewed him recently digging into all the technical work of his career, learnings he had, and advice tailored towards the new &#8220;AI era&#8221; we&#8217;re in now.</p><p>The conversation was a lot of fun and I&#8217;m glad a lot of his takes are refreshingly not &#8220;doomer&#8221; takes. Below are the top three takeaways I had from the conversation to save you time.</p><p>You can find the full conversation on <a href="https://youtu.be/3XkmNSuHFmY">YouTube</a>, <a href="https://open.spotify.com/episode/1Xt2SfdlM8huFQERnsknqP?si=qU-6R9T4QTiwYlpMeppmzg">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>. The <a href="https://www.developing.dev/p/dropboxs-former-most-senior-eng-building">transcript is on Substack</a> if you prefer to skim.</p><div id="youtube2-3XkmNSuHFmY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;3XkmNSuHFmY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/3XkmNSuHFmY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="callout-block" data-callout="true"><h3><strong>Brought to you by:</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fNjA!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fNjA!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 424w, https://substackcdn.com/image/fetch/$s_!fNjA!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 848w, https://substackcdn.com/image/fetch/$s_!fNjA!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 1272w, https://substackcdn.com/image/fetch/$s_!fNjA!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fNjA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png" width="212" height="40.47802197802198" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:278,&quot;width&quot;:1456,&quot;resizeWidth&quot;:212,&quot;bytes&quot;:128843,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.developing.dev/i/198909775?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fNjA!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 424w, https://substackcdn.com/image/fetch/$s_!fNjA!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 848w, https://substackcdn.com/image/fetch/$s_!fNjA!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 1272w, https://substackcdn.com/image/fetch/$s_!fNjA!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8bf5c97b-aa65-43c6-b11a-3e02c94acad9_3520x672.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em><a href="https://workos.com/">WorkOS</a>: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code</em></p></div><h1><strong>Takeaways from the conversation:</strong></h1><p><strong>1) Career advice for the AI era</strong> - His take was that software isn&#8217;t about syntax or algorithms. It&#8217;s all about conceptualizing problems and coming up with clean solutions for them. And to build that muscle takes experience. He urged that people shouldn&#8217;t stop exercising that muscle or you&#8217;ll atrophy be left behind. Use AI but also make sure you aren&#8217;t being passive in your learning.</p><p>The other major point he had was that using Claude Code isn&#8217;t that hard if you are a good engineer. The value isn&#8217;t in memorizing the details and learning all the latest AI tools. The important part is building things and solving problems that matter. He said you should just ignore Twitter for the most part and focus on what actually matters.</p><p><strong>2) Fixing broken team incentives</strong> - The problem we discussed is when a team&#8217;s identity, mission and name all revolve around a system they own. What happens is these teams end up trying to protect the system rather than doing what is best for the company.</p><p>The example fix James gave is when he was at Dropbox, he worked on a huge migration to move off of AWS. The resulting team was named after the system they built. He went out of his way to rename the team the &#8220;Storage team&#8221; instead.</p><p>The reason this was so important is he felt that the direction of the team should be oriented around the problem they are solving for the company. Otherwise, imagine if moving back to AWS turns out to be better for the business. The team named after the existing system would have natural incentive to battle doing the right thing. He called this phenomenon &#8220;system bias&#8221;</p><p><strong>3) Simple systems are the goal</strong> - To the untrained eye, simple systems can seem obvious but actually designing simple systems is much harder than building complex ones. And the key James mentioned is that simplicity reduces operational burden. Simple systems are easier to keep running and debug when they break.</p><p>I asked him for a concrete example and he shared how Dropbox managed the metadata for where files are actually stored. All they did was have a cluster of 1000 MySQL nodes that stored the block ID and its location. Many people would say it wasn&#8217;t sophisticated but all the alternative proposals would ruin observability and simplicity of querying this data.</p><p>The idea of complexity being incentivized in larger tech companies frustrated him. To him, the goal is to solve the problem not to check off the box for complexity.</p><div><hr></div><p>I am really excited about some of the future guests that are coming on the show. I love the interviews with the people who have a piece of computer science history in them.</p><p>Also, I&#8217;ll have some AI research folks on soon too. Many people have requested I bring them on so people can learn how to future proof their careers.</p><p>Lastly, I interviewed an award-winning complexity theory professor from MIT and asked him some Leetcode questions. His optimal solution was asymptotically faster than what Leetcode says is &#8220;optimal&#8221;</p><p>Thanks for reading,<br>Ryan Peterman</p><p></p>]]></content:encoded></item><item><title><![CDATA[Dropbox’s Former Most Senior Eng: Building Great Systems and Advice for the AI Era | James Cowling]]></title><description><![CDATA[Transcript & Audio]]></description><link>https://www.developing.dev/p/dropboxs-former-most-senior-eng-building</link><guid isPermaLink="false">https://www.developing.dev/p/dropboxs-former-most-senior-eng-building</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 25 May 2026 10:00:57 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/198900303/7228c016160f5e0b2e81e93a2ea30d39.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/jcowling/">James Cowling</a> is the CTO at Convex and was previously the most senior engineer at Dropbox. We discussed technical details of his past projects, simplicity vs complexity, and career advice given where AI is today.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/3XkmNSuHFmY">YouTube</a>, <a href="https://open.spotify.com/episode/1Xt2SfdlM8huFQERnsknqP?si=qU-6R9T4QTiwYlpMeppmzg">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-3XkmNSuHFmY" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;3XkmNSuHFmY&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/3XkmNSuHFmY?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/198900303/053-systems-work-during-his-phd">0:53 - Systems work during his PhD</a></p><p><a href="https://www.developing.dev/i/198900303/1305-dropbox-technical-deep-dive">13:05 - Dropbox technical deep dive</a></p><p><a href="https://www.developing.dev/i/198900303/2157-why-dropbox-migrated-from-aws">21:57 - Why Dropbox migrated from AWS</a></p><p><a href="https://www.developing.dev/i/198900303/3640-how-to-do-massive-migrations">36:40 - How to do massive migrations</a></p><p><a href="https://www.developing.dev/i/198900303/4431-simplicity-vs-complexity-in-promos">44:31 - Simplicity vs complexity in promos</a></p><p><a href="https://www.developing.dev/i/198900303/4923-what-technical-teams-should-be-focused-on">49:23 - What technical teams should be focused on</a></p><p><a href="https://www.developing.dev/i/198900303/10025-doing-the-right-thing-vs-promo-hypothetical">1:00:25 - Doing the right thing vs promo hypothetical</a></p><p><a href="https://www.developing.dev/i/198900303/10813-why-he-dipped-into-management-sometimes">1:08:13 - Why he dipped into management sometimes</a></p><p><a href="https://www.developing.dev/i/198900303/11136-why-you-shouldn-t-lead-by-example">1:11:36 - Why you shouldn&#8217;t lead by example</a></p><p><a href="https://www.developing.dev/i/198900303/12323-how-to-mentor-senior-staff-engineers">1:23:23 - How to mentor Senior Staff+ engineers</a></p><p><a href="https://www.developing.dev/i/198900303/12730-career-advice-for-the-ai-era">1:27:30 - Career advice for the AI era</a></p><p><a href="https://www.developing.dev/i/198900303/13721-why-he-started-his-own-company">1:37:21 - Why he started his own company</a></p><p><a href="https://www.developing.dev/i/198900303/14605-the-most-technically-challenging-work-of-his-career">1:46:05 - The most technically challenging work of his career</a></p><p><a href="https://www.developing.dev/i/198900303/14810-how-he-got-involved-in-silicon-valley">1:48:10 - How he got involved in Silicon Valley</a></p><p><a href="https://www.developing.dev/i/198900303/15216-career-regrets">1:52:16 - Career regrets</a></p><p><a href="https://www.developing.dev/i/198900303/15554-top-technical-book-recommendation">1:55:54 - Top technical book recommendation</a></p><p><a href="https://www.developing.dev/i/198900303/15636-younger-self-permanent-underclass-advice">1:56:36 - Younger self &amp; permanent underclass advice</a></p><h1>Transcript</h1><h3>0:53 &#8212; Systems work during his PhD</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=53">0:53</a>] Here&#8217;s the full episode. First off, your PhD thesis was huge. It&#8217;s 156 pages. I didn&#8217;t know theses were that long; I thought papers were maybe 10 pages or something like that. It&#8217;s its own book.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=72">1:12</a>] It&#8217;s very similar to <a href="https://en.wikipedia.org/wiki/Spanner_(database)">Spanner</a> ultimately. What&#8217;s funny is I did that work; it came out a little bit before <a href="https://en.wikipedia.org/wiki/Spanner_(database)">Spanner</a>, so I got a citation in the <a href="https://en.wikipedia.org/wiki/Spanner_(database)">Spanner</a> paper. But then <a href="https://en.wikipedia.org/wiki/Spanner_(database)">Spanner</a> came out, and everyone kind of forgot about my paper.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=87">1:27</a>] You know, about the research. If you could kind of describe the problem that <a href="https://www.usenix.org/system/files/conference/atc12/atc12-final118.pdf">Granola</a> was solving and how it solved it, those types of things. We can talk about that.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=98">1:38</a>] Yeah, absolutely. So my interest in my career has been two parallel threads. One has been abstractions in general, the idea about how to build simple models for complex problems. I find that a very difficult and intellectually stimulating design exercise&#8212;how to design APIs, basically. The other has been large-scale transactional systems. I&#8217;m a big fan of transactions. A transaction is doing a bunch of things at once, and I think transactions are just one of the most incredible abstractions we&#8217;ve invented because they allow us to manage probably the most difficult problem in computer science, which is concurrency.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=142">2:22</a>] <a href="https://www.usenix.org/system/files/conference/atc12/atc12-final118.pdf">Granola</a> was an algorithm for how to do distributed transaction coordination, particularly for transactions that I described at the time as one-shot transactions. I&#8217;m not actually sure if that was a standard term at the time or whether I made it up. A one-shot transaction means you send some code to the server and say, &#8220;Run this function, all these reads, all these writes on two, three, whatever nodes at once.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=175">2:55</a>] And how to make sure this commits atomically across multiple shards in a distributed system. That was my PhD thesis, and my master&#8217;s thesis was on Byzantine fault tolerance, a consensus protocol in the presence of malicious nodes. It focused on how to achieve agreement in state across multiple parties when there are malicious entities. I guess the most well-known work I did as part of grad school was on a paper called View Stamp Replication Revisited.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=207">3:27</a>] And that was a paper on redefining a protocol called View Stamp Replication Revisited, which predated <a href="https://en.wikipedia.org/wiki/Paxos_(computer_science)">Paxos</a>. It&#8217;s a very similar algorithm. <a href="https://en.wikipedia.org/wiki/Paxos_(computer_science)">Paxos</a>, <a href="https://en.wikipedia.org/wiki/Raft_(algorithm)">Raft</a>, and View Stamp Replication are all based on virtual synchrony; they&#8217;re all basically the same thing. That was a paper I wrote at the time, which ended up being influential to a few really great companies like Tiger Beetle.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=233">3:53</a>] You mentioned transactions, and I saw in the paper there&#8217;s this idea of an independent transaction. If I&#8217;m understanding correctly, a lot of the efficiency in a distributed system is lost by needing to get consensus and to vote for consensus. In your research, you found a way to avoid needing to vote to reach consensus. How did you do that?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=260">4:20</a>] Yes, I mean a lot of people think about performance maybe from the wrong angle because I think of performance as a factor of just this raw horsepower, how fast are your disks, how fast is your network, etc. No one has particularly faster disks or memory than anybody else. What really matters to performance in a large-scale system is eliminating points of coordination. So it&#8217;s how to allow systems to progress without having contention between parties.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=293">4:53</a>] Where you&#8217;re basically reducing parallel throughput to serial throughput across large numbers of transactions. In <a href="https://www.usenix.org/system/files/conference/atc12/atc12-final118.pdf">Granola</a>, we had this idea called an independent transaction. Again, that was the terminology at the time where there were two entities basically processing pure functions. They have independent state and they&#8217;ll both come to the same conclusion as a result.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=316">5:16</a>] And all they need to do then is serialize those transactions. They have to decide if it was to happen atomically across multiple nodes, what timestamp should it get. <a href="https://www.usenix.org/system/files/conference/atc12/atc12-final118.pdf">Granola</a>, the paper, was mostly about how to exchange these timestamps very efficiently. So, how to have multiple parties each propose a timestamp and then choose the maximum of these, basically so you could safely serialize the transaction.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=342">5:42</a>] And there&#8217;s a lot more complexity that goes into this. But really the focus there was about how to maximize throughput in a large distributed system without resulting in the alternative, which is two-phase commit and two-phase locking. Two-phase commit with two-phase locking is basically the standard approach for when you want to have multiple nodes agreeing on the same thing, where they both agree to lock their state, not process any other data, and then commit a transaction.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=369">6:09</a>] Two-phase commit can be quite low performance because you&#8217;re blocking basically the systems for the duration of the transaction. It can be high risk too because you are taking a dependency on another node; you&#8217;re basically blocked waiting for another node to return. And so that was what <a href="https://www.usenix.org/system/files/conference/atc12/atc12-final118.pdf">Granola</a> was. Now, it&#8217;s funny you asked about <a href="https://www.usenix.org/system/files/conference/atc12/atc12-final118.pdf">Granola</a> because I forgot about it.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=393">6:33</a>] That&#8217;s so far in my history, I kind of forgot about that work. I even forgot the phrase &#8220;independent transactions,&#8221; to be honest. It&#8217;s great to hear you bring it up again. But I guess all this stuff does feed into all the work you do later on in interesting ways.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=408">6:48</a>] When I think about distributed systems, I think about you&#8217;re at a big company and you got a bunch of machines. But when you were at MIT building this thing, how did you build and test it? Were there spare machines that the college had, or was this in the cloud?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=425">7:05</a>] Yeah, this was a long time ago. Now I&#8217;m showing my age. This is pretty early in the days of Amazon Web Services. We had a rack of servers in our office that we could use. I was fortunate enough to be at MIT where we could afford a rack. There was also a service called Planet Lab, which was a big communal set of nodes that academics could use to run tests. But Planet Lab was a communal system.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=454">7:34</a>] And so it was continually having problems. It&#8217;s just a free for all. For the longest time, I would just sleep next to my desk and wake up whenever. Planet Lab was free. Because you need to run some benchmarks these days, you just spin something up on Amazon Web Services. But then I would sleep next to my desk, and I would wake up in the middle of the night or at random times and check Planet Lab status and then kick off a benchmarking job.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=478">7:58</a>] Now this was right at the cusp of when, in some respects, Google ruined systems research. I say that with affection and respect to Google because before then, most of the research was coming out of academia. A lot of distributed systems research was done on smaller scales, and a lot of the value proposition was the ideas. So, like, hey, I wrote a paper, here&#8217;s an interesting new idea, and yeah, it&#8217;s all in theory.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=508">8:28</a>] And so the value that came out of it was the idea. Around this time, you started seeing papers out of Google, Amazon, and these various companies where it wasn&#8217;t necessarily a paper about an idea; it was a paper about a system. Hey, I built this giant system, it has a whole bunch of features, some of which are interesting, some of which are not, and by the way, it powers Gmail or whatever. That kicked off a pretty interesting transition because at that point, program committees reviewing papers started to expect to see realistic benchmarks that, frankly, grad students were not able to produce at least at the time.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=548">9:08</a>] I mean, I wasn&#8217;t running Gmail on my system, and I think it did, in some respects, obscure intellectual ideas. I&#8217;m more for papers about systems. But I think there&#8217;s also value in a paper about an idea. It&#8217;s not just, &#8220;We built this big thing, and it works, and it&#8217;s up to you to figure out what&#8217;s interesting about it.&#8221; Instead, it&#8217;s, &#8220;Here&#8217;s a new thing.&#8221; There&#8217;s a paper, an old paper just called Leases, where someone invented the idea of a time-based lock.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=577">9:37</a>] And it&#8217;s just a paper called Leases. That was a cool era of systems research. I think a lot of it now has shifted towards industrial research, where people are building stuff for practical purposes. Whereas I think it&#8217;s hard for academia to compete on pragmatism. Academia is really a great place to do impractical work.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=599">9:59</a>] When you look back on getting the PhD in academia, being enabled to completely explore an idea versus going into industry, maybe working on <a href="https://en.wikipedia.org/wiki/Spanner_(database)">Spanner</a> at Google or something like that, which path do you think would be better and why?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=618">10:18</a>] I think that&#8217;s a bit of a misconception a lot of folks have about PhD programs. A lot of students are high-achieving students in college, and they think that the PhD program is college. It&#8217;s like, hey, I like learning things, so I&#8217;m going to go do a PhD, but it&#8217;s not. A PhD is training to be a researcher, and for most people, they shouldn&#8217;t do that. If someone wants to be a professional software engineer, they probably shouldn&#8217;t spend their time training to be a researcher.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=646">10:46</a>] But with a really important caveat, I think there&#8217;s a really interesting and challenging developmental experience you go through in the PhD program at a top university, at least. You reach a certain point in time when you have a problem that you&#8217;re facing that no one else in the world knows the answer to. You have a problem that you are the world expert on, and you can&#8217;t chat about it with folks, but you can&#8217;t ask your advisor because your advisor doesn&#8217;t know either.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=672">11:12</a>] Right. So you face these difficult challenges where you can&#8217;t read a book, you can&#8217;t ask Claude. And so you&#8217;re forced to go through a quite difficult and, frankly, emotionally challenging experience of being unsure, being uncertain, and learning to think for yourself. I think that is really valuable for all engineers. I think that was really, really valuable in my career.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=699">11:39</a>] I do see a lot of folks early in their career think that all knowledge comes from reading or absorbing it from someone else, or that there&#8217;s a right way to do things. But I think being in a PhD program or being faced with really demanding, open questions does train your mind to be comfortable with that discomfort. I feel a little bit lucky that I went through grad school without large language models existing because I had to deal with this uncertainty.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=735">12:15</a>] There was no crutch to help me out, which I think was very valuable.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=738">12:18</a>] So, I mean, a lot of, if you want to be a researcher, go do a PhD. If you want to build stuff, go build stuff. Since leaving academia, I&#8217;ve done a lot of work that I guess one could call innovative. It advanced the industry in certain ways and did novel stuff. But our goal was never research. Our goal was just to solve problems.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=742">12:22</a>] I mean, a lot of, if you want to be a researcher, go do a PhD. If you want to build stuff, go build stuff. Since leaving academia, I&#8217;ve done a lot of work that one could call innovative. It advanced the industry in certain ways and did novel stuff. But our goal was never research. Our goal was just to solve problems.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=767">12:47</a>] And I think that&#8217;s the difference. In academia, your goal is to advance knowledge. In industry, your goal is to solve problems. I gravitate more towards just solving problems, and I find that a more comfortable environment within which to work.</p><h3>13:05 &#8212; Dropbox technical deep dive</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=785">13:05</a>] Going to your time in industry, at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, you became the most senior engineer at the company. Looking through all the projects that you did, I had a series of just technical curiosities. I saw this idea early in your career about multi-homing, and I wasn&#8217;t familiar with that concept. What is multi-homing? What&#8217;s the problem it solves?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=807">13:27</a>] Yeah, I mean, multi-homing is the ability to have data in two locations, two homes. Multi-homing can be valuable for a variety of reasons. One is called primary-secondary or lazily replicated multi-homing, whereby all writes commit authoritatively in one region and get replicated to a secondary region. This is normally used for business continuity. One thing we did at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> was to ensure that if the entire West Coast blew up, which hopefully wouldn&#8217;t happen, <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> would keep running because the data would be replicated in other regions, but with a window of vulnerability, with a window of time where there may be some data lost.</p><p>So that is, you know, that&#8217;s kind of primary-secondary replication or multi-homing. There&#8217;s something else called active-active multi-homing where there is truly an authoritative copy of the data in multiple locations. Basically, when you, for example, write to a system, you don&#8217;t externalize that write as having succeeded until it has landed in all the regions. For example, in the storage system at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, the block storage system, we truly had a multi-region replicated system where we could take down an entire region, say take down the region in Ashburn, Virginia, where everyone&#8217;s data centers are, and there&#8217;d be zero downtime for the company and the data was still safe in multiple regions.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=853">14:13</a>] So that is kind of primary-secondary replication or multi-homing. There&#8217;s something else called active-active multi-homing, where there is truly an authoritative copy of the data in multiple locations. Basically, when you write to a system, you don&#8217;t externalize that write as having succeeded until it has landed in all the regions. For example, in the storage system at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, the block storage system, we truly had a multi-region replicated system where we could take down an entire region, say take down the region in Ashburn, Virginia, where everyone&#8217;s data centers are, and there&#8217;d be zero downtime for the company, and the data was still safe in multiple regions.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=894">14:54</a>] I think multi-homing is something a lot of engineers aspire to work on because it seems like the right thing to do. But the reality is for most companies, it is not. Not because there&#8217;s very high cost, but because there are very high latency costs for this. The speed of light is fixed. If you have to synchronously write data across multiple regions in the United States, you&#8217;re going to have, say, 60 milliseconds in the commit path of your protocol, which for most applications is not tenable.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=932">15:32</a>] So there is a lot of desire; a lot of engineering teams reach out for advice on how to adopt active-active multi-homing for their company. I would normally say don&#8217;t do it. Frankly, if US East is down, if Amazon is down that day, that&#8217;s okay. If Amazon&#8217;s down that day, your company will be down. That&#8217;s a shame, right? But by avoiding that complexity, you&#8217;re going to be able to move much faster and build a much better product.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=960">16:00</a>] And so in my mind, systems are all about trade-offs and making the right ones. I would generally recommend most people do not make the trade-off to have partition tolerance or multi-region availability. Even though for a company like <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, yes, that does make sense. When your job is storing data and you have several exabytes of it and hundreds of millions of customers, I think that&#8217;s when it starts to make sense.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=986">16:26</a>] So it&#8217;s just another term for, I guess, data replication and having it available in other regions. I imagine also, I mean, the cost of storage is a concern. How many replicas would you keep for something like, let&#8217;s just say I stored something in <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>? It&#8217;s my document. Is that on the order of one or two, or are there multiple?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1007">16:47</a>] No, it&#8217;s on the order of many. Many. If you were to store a file in <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, I modeled the storage to be, as we advertise, at least 12 nines of durability internally. The models look around 24 nines of durability. That means the data is secure with 99.9999% where there&#8217;s 24 nines. Right? Which means, at least according to the model, the universe will be extinct before any data is lost.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1040">17:20</a>] And the way that is done is by a combination of what&#8217;s called erasure coding. Erasure coding is how you take several blocks of data and combine them together with an encoding scheme and spread them around in different locations. At that scale, at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> scale, you&#8217;re taking things into consideration, like putting data in different racks, different rows of a data center because they&#8217;re on different power feeds.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1061">17:41</a>] You&#8217;re taking into consideration different eras of hard drives and different manufacturers of drives because they could have correlated failure patterns and then replication across regions. So you could be looking at 27 fragments, for example. That doesn&#8217;t mean you&#8217;re storing 27 times the data. It&#8217;s kind of encoded in many regions. But the replication schemes get really quite sophisticated at that point.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1086">18:06</a>] And we actually had our own custom encoding matrix we had developed. It&#8217;s called a <a href="https://en.wikipedia.org/wiki/Vandermonde_matrix">Vandermonde matrix</a>, where you take a bunch of data and combine it together to produce outputs. We would plug in some variables like how much do disks cost? How much does network bandwidth cost? Because there&#8217;s a trade-off. You can either store, if you don&#8217;t want to lose your data, more copies on more disks, or you can store fewer copies.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1113">18:33</a>] Anytime a disk fails, you re-replicate it really fast. Re-replicating really fast costs disk cross network bandwidth. These kinds of variables go into this equation. It ends up being an extremely complex field of endeavor, but it&#8217;s kind of abstracted away into a part of the system that doesn&#8217;t leak into anywhere else.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1133">18:53</a>] So with erasure encoding, my document in <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> is fragmented into a bunch of different chunks of data and loaded potentially from many different machines.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1143">19:03</a>] Yes, absolutely.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1145">19:05</a>] I mean, the first thought I have is now I might be waiting there, and one of the 27 machines is slow, and I can&#8217;t look at the whole document. So how do you prevent against that?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1157">19:17</a>] It&#8217;s actually faster than not replicated. Because if you imagine, I&#8217;ll pick a simplified example. Imagine this is not the encoding scheme <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> uses, but to reconstruct a file, you have to read six out of nine fragments. So if you read six out of nine fragments, you can just ask all nine and reconstruct and return the data as soon as you&#8217;ve heard from the first six. It&#8217;s actually faster.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1186">19:46</a>] And you can construct these encoding matrices such that it&#8217;s actually faster to have a ratio-coded data than not.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1193">19:53</a>] I see. Okay. So you can oversubscribe, over-request, and then you complete on a portion of them being received.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1201">20:01</a>] Yes. Now in practice, it was a bit more complex than that. We&#8217;d often have a copy and a single disk to provide fast access. We&#8217;d often try to make sure that you could serve your data out of a region close to your home region. So we&#8217;d make sure that your data was mostly served with low latency. But if that region had failed, you could reconstruct it from the remaining regions. So there&#8217;s a lot of talk about building your own infrastructure.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1228">20:28</a>] And you can save money by moving off the cloud. Almost definitely you can&#8217;t unless you have very small requirements, very fixed requirements, or very heavy investment. Because if you want to compete with Amazon, if you want to build a more efficient storage system than Amazon, you have to have a supply chain team that&#8217;s working with Western Digital and Seagate, constantly negotiating on prices of disks and buying shipments at certain times, along with capacity teams and data center teams.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1260">21:00</a>] There&#8217;s a lot of work that goes into optimizing this because ultimately our desire was to use the disks to 90, 95% of their disk size to maximize storage efficiency. To put it this way, that was, you know, I guess a ballpark figure of a $1 billion project. And it was, as far as I know, the largest ever data migration in history at that time.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1288">21:28</a>] And so, an extremely large engineering project with very high technical investment. Yes, if you have that scale and you have the engineering team to do it, and you&#8217;re willing to keep innovating, if you&#8217;re willing to keep optimizing and investing effort in it, then yes, you can do it. But I think the real&#8212; I mean, the cloud has been an incredible innovation. Most people are not experts at this, and most people should not be experts at this.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1315">21:55</a>] Most people should focus on their applications.</p><h3>21:57 &#8212; Why Dropbox migrated from AWS</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1317">21:57</a>] When you say that most people shouldn&#8217;t, my immediate thought was, one of the big projects you worked on at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> was migrating away from Amazon Simple Storage Service. So why did <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> migrate away from S3?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1332">22:12</a>] Yeah, that was a desire at the company for a long time, from even before I was there. I started at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> in 2010, and I spoke to Drew, the <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> founder, about this project. There was a desire to control the destiny of the company from a strategic perspective. At the time, this was before <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> reshaped itself as being more about collaboration.</p><p>At that time, it was in the file sync and share category. Owning the file system was really valuable to the company. Ultimately, we saved a huge amount of money. And this was before the company went public. We really drove massive cost efficiencies through the project. But it was hard, in a way that I think would be very difficult to emulate without a huge investment.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1356">22:36</a>] At the time, it was a file sync and share category. That was the market sector, and owning the file system was really valuable to the company. Ultimately, we saved a huge amount of money. This was before the company went public. We really drove massive cost efficiencies through the project. But it was hard, in a way that I think would be very difficult to emulate without a huge investment.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1383">23:03</a>] And I do think there is a benefit to an organization from having hard problems to solve. If you have a company with extremely hard technical challenges, you can attract engineers who like working on those hard technical problems. When they&#8217;ve solved those problems, they cycle off and work on different parts of the system. After we all worked, we had such a great team.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1408">23:28</a>] It was a very, very small engineering team. After we shipped the storage system reliably, we all went off, and Jamie redesigned the sync protocol, the desktop client, and I worked on the file system and the distributed databases. There&#8217;s value to a business in having that level of technical investment. But it&#8217;s like having a baby; you have to raise the baby. You can&#8217;t just build a system like this and say, &#8220;That&#8217;s it, we&#8217;re done.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1439">23:59</a>] You own it, and you have to keep investing in it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1443">24:03</a>] Did S3 do any counter negotiation before you set out to leave them? Did they say, &#8220;Oh, we&#8217;ll cut you a deal?&#8221;</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1452">24:12</a>] I guess I&#8217;m allowed to talk about this now. It was a long time ago. For the longest time, I don&#8217;t think they were particularly aware that this was happening. But the data center folks talk, and certainly it was noticed that <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> was buying up a lot of data center space. So yeah, we had, obviously at the scales that we were at, we were negotiating very good rates with Amazon Web Services.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1478">24:38</a>] We weren&#8217;t paying sticker price. We were paying very, very, very good discounted rates. But at a certain point, they weren&#8217;t able to meet our cost efficiency because when we launched the system, it really was more efficient than Amazon Simple Storage Service. And that&#8217;s for a variety of reasons. One was that we were using kind of new experimental disks called Shingled Magnetic Recording. We were the first ones, I think, to use these disks at scale.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1502">25:02</a>] And two, we had a very tight understanding of our workload. We were able to design the system specifically optimized for our workloads, whereas S3 has to design the system for everybody. It got to the point where Amazon would not have been able to offer us a more competitive deal because we had a more efficient system. I wouldn&#8217;t recommend another company do this right now, but I think at the time it certainly made sense for us as a company.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1528">25:28</a>] Can you give an example of a tight understanding of your workload leading to something you could do that Amazon Simple Storage Service couldn&#8217;t?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1536">25:36</a>] Yeah, absolutely. So, for example, I know that, well, I&#8217;ll try not to leak any confidential data, right? But when you upload a file to <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, there is a pattern of access. Typically, people access the file very quickly shortly afterwards because you&#8217;re sharing it with someone, or maybe <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> is processing that file to generate an image preview, and then it decays at a certain rate. We understand in general the average block size, and we also understand the access pattern.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1571">26:11</a>] So we could do things like, at a certain point, we had these two clusters. One was designed for temporary storage that was kind of storage inefficient but access efficient. It was very cheap to read and write to, but it was inefficient to store. Data would get written to there first, and then in the background, it would get moved in bulk to this colder storage system. This cold storage was far more static.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1600">26:40</a>] And so it was able to have more efficient algorithms and be written to in bulk. If it went down for writes, that was no problem because it wasn&#8217;t in the live path. We were able to trade off again; like systems are all about trade-offs. We were able to trade off the live data write path from the long-term read path. That was one of many examples where knowing the size of your data, where it&#8217;s accessed from, how frequently it gets accessed, and how long it takes to delete that data, you can really tune a system to your workload.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1633">27:13</a>] You know, stuff like looking at even things down to knowing how much power to put in a rack. You have a rack of hardware; there&#8217;s a power distribution unit, a PDU. At the top of that rack, it has a circuit breaker which can handle a certain number of amps. We would have to figure out how many amps are required for that rack based on access patterns. There were times where we got it slightly wrong.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1657">27:37</a>] There was a time when we got maybe a bad batch of hardware, and disks were failing too frequently. As a result, we were re-replicating the data more regularly. I was getting messages from the data center team saying, &#8220;Hey, we&#8217;re running the racks really hot right now.&#8221; That&#8217;s the level of optimization you can make when you get to that scale. But again, that&#8217;s multi-exabyte scale&#8212;million hard drive scale.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1683">28:03</a>] Yeah. When I was reading about this migration, I saw somewhere in the migration you initially started with Go, and then the racks or something that you&#8217;re running on, the hardware itself was out of memory too much or requesting too much memory. And then you migrated to Rust.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1700">28:20</a>] So initially, the prototype was in Python, if you can believe that. To be fair, Python is actually pretty efficient for I/O. I think people give Python a bad rap for I/O-bound workloads. It&#8217;s pretty good at I/O, but obviously not great for concurrency, not great for memory management, and very hard to refactor. It was critical the system was correct. So we migrated everything to Go, and we built most of the storage system in Go.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1727">28:47</a>] This is before Go was in general availability. We built the system in Go. Go&#8217;s a great language for concurrency, a great language for proxies. It&#8217;s really well designed for servers that move from one place to another. At a certain point, though, we would have, let&#8217;s just pick a number, let&#8217;s say a million. Let&#8217;s say we have a million nodes in the system, and every node has some amount of memory, some amount of disk, some amount of sheet metal in the chassis.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1758">29:18</a>] Right. We would itemize all these things. You&#8217;d have a pie chart of how much money is spent on all the things. It would include items like sheet metal and screws. So you&#8217;re trying to optimize the storage. A big problem for us was the amount of memory these nodes were using. Not just the memory that we were using, but the unpredictability of it. With Go having a runtime, in a storage system, an out of memory error is pretty bad because if a node runs out of memory and restarts, that looks like a disk failure.</p><p>So that looks a lot like a disk has failed and has to be re-replicated. A batch of nodes running out of memory can lead to cascading failures throughout the system. I remember a time it was a band; it might have been De La Soul, I can&#8217;t remember. There was a band that released an album on <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, which caused a big spike in load to a few files. It was very high bandwidth and it caused the machines to run out of memory.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1794">29:54</a>] So that looks a lot like a disk has failed and has to be re-replicated. A batch of nodes running out of memory can lead to cascading failures throughout the system. I remember a time it was a band; it might have been De La Soul, I can&#8217;t remember. There was a band that released an album on <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, which caused a big spike in load to a few files. It was very high bandwidth, and it caused the machines to run out of memory.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1824">30:24</a>] So those machines, those disks oomed. As a result, no problems; the system went to try to recover that data from a whole bunch of other replicas. Now all of a sudden, you&#8217;ve taken one amount, one fire hose worth of load coming in, and you&#8217;ve turned this into seven fire hoses worth of load coming. Because now you have to do a more expensive reconstruction operation, right? So now you&#8217;ve 7x the load.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1847">30:47</a>] And these are the kind of cyclical behaviors that can lead to something called congestion collapse. Congestion collapse is when workload to a system crosses a threshold where it all kind of collapses. Designing against congestion collapse is really one of the hardest parts of Magic Pocket, which is the name of the storage system. Ultimately, we switched to Rust for the storage nodes themselves.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1873">31:13</a>] And this, again, this is before Rust was in GA. So that was a bit of a risky move. But we rewrote the switch to Rust, which coincided with getting rid of the file system entirely on the disks and directly addressing the disk heads. There&#8217;s an instruction set, I think it&#8217;s called ZBC, Zone Based Block Control, something like that. There&#8217;s an instruction set for accessing disks that we were using. The disk manufacturers gave us the draft specs of these new disks, and we were operating off the draft specs and directly controlling the disks.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1905">31:45</a>] And so all that product was tied up together into a product called Discotech, which was the disk technology project. Ultimately, if you look at that pie chart, congestion collapse stopped and reliability improved. But if you looked at the pie chart of where all the money was going, it really shifted to be almost all disks.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1936">32:16</a>] Metal, et cetera, the cascading failure you mentioned was there. That happened, and then there was a postmortem.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1943">32:23</a>] I don&#8217;t think we needed a postmortem. I think we knew as it was happening. When I was getting paged in the middle of the night on these things, it was pretty evident. This is, again, an argument in favor of the cloud. Imagine you&#8217;ve spent hundreds of millions of dollars on a storage system, and it&#8217;s out in production on physical hardware.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1967">32:47</a>] You can&#8217;t just go and put new memory chips in every one of them. I mean, you can, but you have to pay people to come in and swap them out. That&#8217;s a tricky place. This is what I love about the industry. Some of the more challenging moments on Magic Pocket were stuff like, in one week, just a weird coincidence, two trucks crashed that were delivering servers.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=1993">33:13</a>] So there are two trucks showing up to deliver racks, and they both crashed. I don&#8217;t know, the drivers were okay. So we lost capacity for two weeks. We lost capacity for more than two weeks, probably six weeks. What do you do? What happens is the equivalent of your disk filling up on your laptop, except it&#8217;s a million disks, and you can&#8217;t tell the customers to go away; you can&#8217;t delete their files.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2023">33:43</a>] A lot of tricky capacity work. Ultimately, what that led to was trying to build in all these protections against the unknowns, making sure we had the right amount of buffer planned out for anything bad that could happen, making sure we designed the system so there couldn&#8217;t be congestion collapse and so there wouldn&#8217;t be memory spikes. At one point, there&#8217;s a process called FMEA, which is a threat modeling process where you have a big spreadsheet and you kind of write down every bad thing that could possibly happen, and then you know how bad it would be if it happened. Existential risk does someone die? If there&#8217;s a fire in the data center, all these kinds of things get put into this spreadsheet, and you kind of do a bit of a pre-mortem to figure out all the potential failure modes and then design around them. I love that work. I really, I don&#8217;t know, I do like the firefight. I can&#8217;t say I like getting paged because I&#8217;ve spent my whole life on call, but I do like that rubber-hits-the-road stuff.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2061">34:21</a>] Existential risk does someone die? If there&#8217;s a fire in the data center, all these kinds of things get put into this spreadsheet, and you kind of do a bit of a pre-mortem to figure out all the potential failure modes and then design around them. I love that work. I really do like the firefight. I can&#8217;t say I like getting paged because I&#8217;ve spent my whole life on call, but I do like that rubber-hits-the-road stuff.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2092">34:52</a>] I like that. Wow. There&#8217;s congestion collapse and there&#8217;s no one that can help you. You&#8217;ve got to think through this problem.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2101">35:01</a>] When I worked on infrastructure at Instagram, we had this concept of defcon knobs, which are basically these configs that you could flip to gracefully degrade your system while still operating it. But maybe in the case of <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, you store fewer replicas, so you take on a temporary increase of risk in losing data because you need to. Did you have something like that, and did you flip it in that type of case?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2129">35:29</a>] Never. When it came to durability, we had absolute zero, non-negotiable standards; there was no room for negotiation on user durability. We had those knobs for background processes, for CPU and memory, for example. If there was a spike in load, you could turn off background processes and then turn off the test load on the system. Eventually, we built this system called Trampoline, and what Trampoline did was save us a ton of money.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2165">36:05</a>] If we ever got too close to the threshold, we would just start writing data to Amazon Simple Storage Service because it&#8217;s right there. You can run your capacity way closer to the edge if you&#8217;re willing, under worst-case scenarios, just to dump 30 petabytes on S3 and then move it back when it&#8217;s done. Now, that didn&#8217;t happen very often. We would do it to test it. We would do that just to make sure the system worked. But yeah, being able to have an escape hatch for worst-case scenarios was really nice.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2195">36:35</a>] I see. So S3 is kind of like elastic storage.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2199">36:39</a>] Exactly.</p><h3>36:40 &#8212; How to do massive migrations</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2200">36:40</a>] When I looked at this project, it&#8217;s such a massive migration, and my first thought is how do you coordinate this whole project without breaking the system as it&#8217;s running? What are your thoughts on doing such a large migration without breaking things?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2218">36:58</a>] Yeah. Now, in terms of the engineers that built the initial version of the system, it was a handful&#8212;three, four, five, six engineers. It wasn&#8217;t a team of a thousand; it was a very small team. So how do you build such a large system with a small number of people? And then how do you do a high-risk migration? One of the things you do is keep things simple. You try very hard to build cleanly abstracted, simple systems so that their failure modes are very understandable.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2253">37:33</a>] And so they&#8217;re decoupled, so they don&#8217;t have congestion, collapse, et cetera. Focusing on simplicity gets tricky, by the way, with people doing agentic development. They&#8217;re not the best at building simple systems. Simplicity is still the domain of human beings for now, but there&#8217;s a big focus on simplicity. The other was this very thick layer of validation checks during this migration.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2278">37:58</a>] And in fact, when we did the migration off of Amazon Simple Storage Service, we had something called the dark launch where we would be moving data off of S3, but we&#8217;d keep it in both locations. We had to demonstrate to the <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> founders that we would have to keep this system running with no incidents, no downtime, and no data loss for six months before we would delete any of the data from S3.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2306">38:26</a>] So we have double routed, and there&#8217;s one point in time, halfway through this process, where a bug got through to production. Nothing bad happened with the bug, but it was like bugs slipped through our multiple layers of the release process, etc. I went to the VP and I said, &#8220;Hey, a bug made it through to production, and we&#8217;re going to reset the launch clock. As a result, it&#8217;s going to launch later, and it&#8217;s going to cost us some amount of money, let&#8217;s say double-digit millions.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2345">39:05</a>] And they were like, great, thank you, that&#8217;s good, I trust you. That was the cool thing. I mean, <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> had a lot of incredible cultural values, but that was like, okay, cool. If you&#8217;re prioritizing user safety, that&#8217;s the right thing to do. No one was mad about that. It was almost like they were proud, you know? It was just like, yes, you&#8217;re operating in accordance with the principles of this company.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2371">39:31</a>] Okay. So it was double writing both systems for a while and then some subset of data.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2374">39:34</a>] for a while and then some subset of data.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2376">39:36</a>] Yeah, okay. And then you switched over reads once.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2379">39:39</a>] We were sure that the system was durable and we had all the validators running in production 24/7. We were just migrating as fast as we could. I think at some point we got to 764 gigabits per second of peering bandwidth between Amazon servers and ours. Certainly, someone on the network team over there noticed that there was that much data moving out. At one point, I got a slightly nasty email from someone saying it was super weird.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2408">40:08</a>] I think the phrase &#8220;super weird&#8221; is like, it&#8217;s super weird that you&#8217;re doing so many reads and not that many writes. I didn&#8217;t respond to that email. But to be fair, Amazon was a great partner for <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>. So <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> still uses Amazon Web Services. There was no concern that they would do the wrong thing by us as a company. I mean, we only had an excellent experience with Amazon Web Services. But yeah, it was a moment for us.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2436">40:36</a>] It probably strained the relationship somewhat.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2441">40:41</a>] You mentioned simplicity and intuition; it makes sense. Do you have a concrete example, though?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2448">40:48</a>] Yeah, I&#8217;ve got a concrete example for you. Maybe it shows the difference between academia and industry. The storage system is a giant distributed system with files stored in various locations. You need a mapping from the file to where it lives on these disks. All we did was have a cluster of 1,000 MySQL nodes, a big giant database. It was indexed by the block ID and indicated that this block is on these disks.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2481">41:21</a>] And that&#8217;s pretty simple. It&#8217;s not sophisticated. Every time we&#8217;d hire someone out of academia or maybe from other companies, they would say, &#8220;Oh, this is not very sophisticated because you could use a Patricia trie or you could use a distributed hash table, and that would map a block to a set of locations.&#8221; I think that&#8217;s optimizing for the wrong thing because the really nice thing about dumping a list of files and the locations in a giant database is that it is written in one location.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2517">41:57</a>] If I want to validate what happened, if I want to check all the data is where it&#8217;s meant to be, I just walk over the table and check. We had services constantly walking over the table and checking. Whereas if it was a distributed hash table or some giant complex data structure, it&#8217;s very hard to validate. Designing for validation is very important. Designing for understanding is very important.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2539">42:19</a>] It&#8217;s not about getting a system to work. It&#8217;s what do you do when it doesn&#8217;t work. Right. And so having a very simple boundary, that&#8217;s a very basic example. There are more sophisticated examples that take more time to explain. But something like that is a lot of engineers will feed, a lot of engineers will want to do interesting work, will want to advance in their career. They want to be seen as an intellectual problem solver.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2569">42:49</a>] And so the tendency can be to design complex systems. My argument is always that simple systems are way harder to design than complex systems. Simplicity is so hard. And I think to the untrained eye, a simple system can seem obvious. The best compliment you could ever get about anything you design is when people say, &#8220;Oh, isn&#8217;t that the obvious way of doing it?&#8221; It&#8217;s the same as <a href="https://www.convex.dev/">Convex</a>; people say, &#8220;Oh, isn&#8217;t that just the obvious way of structuring?&#8221; Great, because it wasn&#8217;t obvious when we did it. No one else was doing it. Everyone thought we were idiots. If after the fact people think it&#8217;s obvious, then you really nailed it. But I think it requires an understanding that simplicity is the hardest thing in systems. And because simplicity is scalable. Yes, simplicity is scalable in terms of numbers of queries per second.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2600">43:20</a>] What&#8217;s that? That&#8217;s just like the obvious way of structuring. Great. Because it wasn&#8217;t obvious when we did it. No one else was doing it. Right, right. Everyone thought we were idiots. If after the fact people think it&#8217;s obvious, then you really nailed it. But I think it requires an understanding that simplicity is the hardest thing in systems. And because simplicity is scalable. And yes, simplicity is scalable in terms of numbers of queries per second.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2628">43:48</a>] But what I really mean about scalability is you can take a simple system and have it run for five years, have people work in it for five years, have all sorts of features added to it, and have requirements changed because the company realized the product didn&#8217;t work the way it wanted to work and it wants to change things. It still stands the test of time, whereas a complex, over-optimized system will not.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2651">44:11</a>] I think that&#8217;s the tough thing about distributed systems design, especially LLM-augmented distributed systems design. Just because something works doesn&#8217;t mean it&#8217;s maintainable over a long period of time, doesn&#8217;t mean it&#8217;s understandable, and doesn&#8217;t mean it&#8217;s cleanly architected and abstracted. That stuff&#8217;s really very hard.</p><h3>44:31 &#8212; Simplicity vs complexity in promos</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2671">44:31</a>] Absolutely. And I agree with you. I think it&#8217;s the long-term beneficial thing to do. One unusual thing, though, in the industry that I&#8217;ve seen is the incentive system for engineers. I mean, you mentioned the desire for an engineer to want to be seen as someone who can do something difficult. There&#8217;s that, but there&#8217;s also the incentive system of promotions. I&#8217;ve had many friends whose promotions were rejected because their work wasn&#8217;t complex enough.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2701">45:01</a>] And so that kind of forces complexity, which is kind of unusual. I wanted to know what you thought about that.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2708">45:08</a>] Yeah, I mean it almost angers me. I just like it so much. Partly why I started my own company. I think the ideal for anyone is to be doing work where you&#8217;re being appreciated for solving the problem. If we get philosophical, this is what it was like going back to the farming days, right? There was no incentive to make it really complicated to milk a cow because the goal is to milk the cow, and then the reward is you got milk.</p><p>At a startup, that&#8217;s the same thing. The goal is to build the system, have it work, have the users like it, have it grow, and everyone gets rewarded and celebrated for solving the problem. It gets hard to scale that. So at large companies, you end up with so many layers of organization that people end up building alternative incentive structures.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2742">45:42</a>] Right. I think it sounds so silly, but at a startup, the goal is to build the system, have it work, have the users like it, have it grow, and everyone gets rewarded and celebrated for solving the problem. It gets hard to scale that. So at large companies, you end up with so many layers of organization that people build alternative incentive structures.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2768">46:08</a>] Right. It&#8217;s like I&#8217;m so far away from whatever the hell we&#8217;re trying to do over here that my goal now is to get all green check marks on my OKR plan. But who cares about your OKR plan unless it solves the problem? The thing that really drives me insane is when people try to chase artificial goals. I understand that if you&#8217;re in a company like this, you may have no choice in the matter.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2799">46:39</a>] But what I want to tell people is there is a better way. That better way may not be available to you; you may not have job opportunities near where you are, for example. But if you do have the ability to work at a company where you are being appreciated for problem solving, that will make you so much better as an engineer. I see this when I interview people.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2827">47:07</a>] If I do a deep dive with them, they&#8217;ll say they built a system, and I&#8217;ll ask, &#8220;Why did you build it?&#8221; and they&#8217;re like, &#8220;I don&#8217;t know, the VP told me to.&#8221; I&#8217;ll ask, &#8220;How&#8217;s the system used?&#8221; and they&#8217;re like, &#8220;I don&#8217;t really, I think ads use it.&#8221; I&#8217;m not sure. This is a caricature, but I think it&#8217;s very, very hard to do good engineering in that environment. You can do competent engineering, but the best engineering comes from a deep understanding of why. This is something we just drill into the team here at <a href="https://www.convex.dev/">Convex</a>; the team embodies this so strongly at <a href="https://www.convex.dev/">Convex</a>: everything exists for the why. Don&#8217;t build a fancy load balancer unless it&#8217;s needed.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2852">47:32</a>] I&#8217;m not sure. This is a caricature, but I think it&#8217;s very hard to do good engineering in that environment. You can do competent engineering, but the best engineering comes from a deep understanding of why. This is something we just drill into the team here at <a href="https://www.convex.dev/">Convex</a>. The team embodies this so strongly: everything exists for the why. Don&#8217;t build a fancy load balancer unless it&#8217;s needed.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2877">47:57</a>] Turns out we do need a fancy load balancer. We&#8217;re building it right now. But you should always start with, why are we doing this? What&#8217;s the point? I feel for people stuck in environments that are not like this. But you know what? Try to fight the system a little bit. I do see a lot of nihilism, a lot of defeatedness sometimes amongst junior engineers, a lot of this cynicism, like, what does it matter? Who cares? It&#8217;s just a big organization and nothing matters. But I think it does matter. If I think of the happiest times in my life, it&#8217;s been dedicating myself to a cause, trying really hard, and trying to do the right thing. I felt good when I went home, not trying to get promoted, just trying to do the right thing and then assuming I&#8217;m going to get promoted. If not, go somewhere else.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2906">48:26</a>] Who cares? It&#8217;s just a big organization and nothing matters. But I think it does matter. If I think of the happiest times in my life, it&#8217;s been dedicating myself to a cause and trying really hard to do the right thing. I felt good when I went home, not trying to get promoted, just trying to do the right thing and assuming I&#8217;m going to get promoted. If not, I&#8217;ll go somewhere else.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2933">48:53</a>] I know it does sound quaint when I&#8217;m saying this, but I think it&#8217;s possible to do this, and especially possible if you surround yourself with people like this. If someone is in a big company and they&#8217;re feeling frustrated by politics, look around and see if there&#8217;s a team of folks who just seem to want to do the right thing, just seem to want to do good stuff. I don&#8217;t think that&#8217;s selling out. I think that&#8217;s being true to yourself. That&#8217;s what real engineering is. Not trying to make a complicated fancy thing to get promoted. Just build the coolest thing that solves the problem.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2953">49:13</a>] I think that&#8217;s being true to yourself. That&#8217;s what real engineering is. Not trying to make a complicated, fancy thing to get promoted. Just build the coolest thing that solves the problem.</p><h3>49:23 &#8212; What technical teams should be focused on</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2963">49:23</a>] This really reminds me of something you had written. I thought it was really good writing. In the writing, there was this idea of system bias. You have this quote you&#8217;re writing. It says, here are some examples: the team is spending six months to improve performance by 10% when it was completely fine to begin with, or the team is trying desperately to force their tooling on clients who don&#8217;t need it.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=2989">49:49</a>] Or the team is riding their outdated system to the grave like the captain going down on the Titanic. I&#8217;ve definitely seen examples of all those types of things in industry. And so, yeah, I think it was in the context of your writing about what you should orient your team around. Not systems, but actually missions. And maybe that&#8217;s a way to fight system bias.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3020">50:20</a>] Yeah, I mean, one of my jobs at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> wasn&#8217;t the most fun job, but it might have been one of the most impactful jobs. It was shutting down projects. You know, looking around and being like, huh, that thing over there that has had 60 people working on it for two years doesn&#8217;t seem to make a lot of sense to me. And then I, you know, it wasn&#8217;t a hostile thing, but I&#8217;d go and chat with a team and I&#8217;d say, hey, what are you all doing?</p><p>Do you believe in what you&#8217;re doing? Does this make sense? And the team in private would say, I don&#8217;t really know. But inertia is so strong. You know, this whole desire to not get in trouble, to just keep doing what you were previously doing is so strong, and talented people can end up doing things that don&#8217;t make a lot of sense. One of the things I said in that article is it&#8217;s kind of a cheesy story, but when we started building the storage system at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, the team was called the Magic Pocket Team because that was a silly code name for the system we built.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3044">50:44</a>] Do you believe in what you&#8217;re doing? Does this make sense? The team, in private, would say, &#8220;I don&#8217;t really know.&#8221; But inertia is so strong. This whole desire to not get in trouble, to just keep doing what you were previously doing, is so strong, and talented people can end up doing things that don&#8217;t make a lot of sense. One of the things I said in that article is it&#8217;s kind of a cheesy story, but when we started building the storage system at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, the team was called the Magic Pocket Team because that was a silly code name for the system we built.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3077">51:17</a>] The team was oriented around building that system, but as soon as we shipped it, I renamed the team to the Storage team. That actually took a bit of work because you had to rename all the email addresses, the channels, the repos, and the things. It seems like a waste of time. But my argument to the team was that the responsibility of the storage team is not to advocate for Magic Pocket, the storage system. It&#8217;s to solve the needs of storage for the organization. Because who else in the company knows more about storage than the storage team? If there was a point in time where S3 was a better idea, it would make sense to move back. Or maybe there was a different kind of storage system that meant to use. Right. It&#8217;s the job of the storage team to advocate for moving back. Right. And so I&#8217;ve seen this before.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3106">51:46</a>] It&#8217;s to solve the needs of storage for the organization. Because who else in the company knows more about storage than the storage team? If there was a point in time where Amazon Simple Storage Service was a better idea, it would make sense to move back. Or maybe there was a different kind of storage system that meant to use. Right. It&#8217;s the job of the storage team to advocate for moving back. Right. And so I&#8217;ve seen this before.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3132">52:12</a>] You have a team called the Puppet team. People don&#8217;t really use Puppet that much anymore, but for the job manager, Puppet versus Chef. They&#8217;d be kind of advocating for their team&#8217;s thing when really a team should be oriented around what problem they solve. They should not care about the system that survives. Because if you are on the Magic Pocket team and someone says we should move back to S3, that&#8217;s pretty threatening to your identity and your career.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3164">52:44</a>] But if you&#8217;re on the storage team and it turns out it makes sense to move back, I don&#8217;t think that&#8217;s the case. But then that&#8217;s an exciting new product for you to own. I think it seems like such silly management philosophy, but I think it&#8217;s really, really important to orient a team and an identity around solving a problem and not owning and defending a system. You just see this in big companies. Inertia is so strong.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3187">53:07</a>] Inertia is so strong.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3190">53:10</a>] Yeah.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3190">53:10</a>] And you see people doing things they don&#8217;t believe in because that&#8217;s just what they do.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3194">53:14</a>] If inertia is so strong, how did you fight it and close down all those projects?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3200">53:20</a>] I think I got lucky insofar as I was there pretty early on and I worked hard enough. I was putting in probably 16-hour days at the start. I&#8217;m not advocating for that, but I was dedicating my life to the company, and I think it became pretty obvious to people that I cared. This is a guy over here that really wants to do the right thing and cares about the company.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3222">53:42</a>] At that point, you build up enough confidence, capital, that you feel comfortable saying things. I wasn&#8217;t afraid for my career; I was afraid of the wrong decisions getting made. So I felt psychologically comfortable making observations. Then at a certain point, there were a lot of engineers. I would mentor many of the staff plus engineers at the company.</p><p>People would sometimes get grumpy because they felt we weren&#8217;t doing the right thing or that something was inefficient. Every engineer listening to this has a story like this; they&#8217;re annoyed about some inefficiency at the company. My response was generally, do you think we should solve this problem right now? Because if we should, let me know the team to take some engineers off and the product to shut down, and I can redirect resources so we can solve this problem right now.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3256">54:16</a>] And people would sometimes get grumpy because they were like, &#8220;Oh, we&#8217;re not doing the right thing over here,&#8221; or &#8220;This is inefficient.&#8221; Every engineer listening to this has a story like this. They&#8217;re annoyed about some inefficiency at the company. My response was generally, &#8220;Do you think we should solve this problem right now? Because if we should, let me know the team to take some engineers off and the product to shut down, and I can redirect resources, and we could solve this problem right now.&#8221;</p><p>And they&#8217;d be like, &#8220;Oh, well, we shouldn&#8217;t shut down any other stuff.&#8221; I&#8217;m like, &#8220;Cool, well, we just have this many engineers right now. If there&#8217;s anything lower priority, let&#8217;s stop doing the lower priority thing and do the higher priority thing.&#8221; Oftentimes the answer was, &#8220;Oh no, nothing else is lower priority.&#8221; Then the answer is we just have to accept it. Just have to accept it, right?</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3282">54:42</a>] And they&#8217;d be like, oh, well, we shouldn&#8217;t shut down any other stuff. I&#8217;m like, cool, well we just have this many engineers right now. If there&#8217;s anything higher or lower priority, let&#8217;s stop doing the lower priority thing and do the higher priority thing. This thing. Oftentimes the answer was, oh no, nothing else is lower priority. Then the answer is we just have to accept. Just have to accept, right?</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3306">55:06</a>] There&#8217;s no point in being angry or upset that we&#8217;re not doing the right thing all the time. I think there&#8217;s a dimension to &#8220;you break it, you bought it.&#8221; I don&#8217;t think, when I said part of my job was shutting products down, it was just going around causing problems. Ideally, it&#8217;s about solving problems, like, &#8220;Oh, this product is not going in the right direction, let&#8217;s redirect it and do this alternative thing.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3328">55:28</a>] And so I think the thing that helped me, I guess, was having a sense of ownership that instead of complaining, I just wanted to go fix problems. That was part of the culture. I mean, when I started at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, the infrastructure team was, I don&#8217;t know, seven, eight, nine people. We&#8217;d have someone join from Google, for example, and they&#8217;d say, &#8220;Well, someone should go build.&#8221; I can&#8217;t do anything without this logging framework. I couldn&#8217;t possibly do anything with this logging framework. I&#8217;m like, &#8220;Well, we&#8217;re going okay without it.&#8221; And then someone needs to build this thing. Everyone would be like, &#8220;Well, who is someone?&#8221; Right? Because it&#8217;s just us. It&#8217;s just us. We build it or we don&#8217;t build it. They&#8217;d pretty quickly come to understand, &#8220;Oh wait, it&#8217;s just us.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3355">55:55</a>] I can&#8217;t do anything without this logging framework. Couldn&#8217;t possibly do anything with this logging framework. I&#8217;m like, well, we&#8217;re going okay without it. And then someone needs to build this thing. And everyone will be like, well, who is someone? Right? Because it&#8217;s just us. It&#8217;s just us. We build it or we don&#8217;t build it. And they&#8217;d pretty quickly come to understand, oh wait, it&#8217;s just us.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3377">56:17</a>] There&#8217;s no other idiots out there. We&#8217;re the idiots, right? So that was, I don&#8217;t know, I loved that time because it was just a time of accountability. Life gets easier and harder when you realize that everyone else is not an idiot. When you realize that everyone else is just dealing with their own stuff, right? I do not think someone will have good luck going around complaining about stuff and just saying this is a dumb idea and being negative.</p><p>I think people will have&#8212;everyone wants problems solved, though. So if you&#8217;re someone in an organization who is willing to put their head up and say, you know what, I think this thing over here is a bad idea, but here&#8217;s a different idea and I&#8217;m willing to own it and put the effort behind it, I think that&#8217;s a recipe for success.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3410">56:50</a>] I think people will have&#8212;everyone wants problems solved, though. So if you&#8217;re someone in an organization who is willing to put their head up and say, &#8220;You know what, I think this thing over here is a bad idea, but here&#8217;s a different idea, and I&#8217;m willing to own it and put the effort behind it,&#8221; I think that&#8217;s a recipe for success.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3431">57:11</a>] From that article, you had a great quote or a great question to think through this. It said you went to everyone or a bunch of people, and you would say, if we could be spending these resources working on any project at the company right now, would this still be the best use of time? I feel like it frames exactly what you just described really cleanly.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3452">57:32</a>] Yeah, I mean, I guess this is like maybe a trick for being a tech lead or a manager. Nothing&#8217;s a yes or no question. It&#8217;s a prioritization question. It&#8217;s not like, should we redesign the database? I don&#8217;t know, maybe, I guess. Is it the most important thing to do right now? No. Cool, let&#8217;s not do it. I think it&#8217;s much easier to have those conversations than to think about it as a yes or no.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3474">57:54</a>] I often hear, &#8220;Oh, my VP won&#8217;t let me do blah.&#8221; Okay, well, it could be that your VP is uninformed, but it&#8217;s probably not. It could be your VP has a different set of priorities. Maybe their VP knows that you need to ship these features, and if you don&#8217;t, then the company is going to struggle. I don&#8217;t know. But to really frame it around prioritization, the way I think about the career ladder for engineers is that some people&#8212;maybe it&#8217;s not common&#8212;think that becoming a senior engineer means you get better at programming.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3507">58:27</a>] But I don&#8217;t know, I think my programming abilities went down from level four onwards. I think once I got to level four, that was peak programmer for me. Then I probably went downhill from there, and I got wiser, whatever. But I think the real thing that happened is the scope that I cared about increased. At a certain point, you&#8217;re just thinking about what matters most at the company for the next five years.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3532">58:52</a>] And I don&#8217;t think a junior engineer in their first year on the job should try to do this because you probably don&#8217;t yet have the wisdom, insight, or knowledge to make a good assessment. I think it would be a mistake to try to come up with redirecting company strategy. But as you grow, the real key part about growing is that the IC 6, 7, and 8 engineers are not necessarily the best programmers. They&#8217;re just getting better at having a broad perspective in decisions within a company.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3562">59:22</a>] They&#8217;re just getting better at having a broad perspective in decisions within a company.</p><h3>1:00:15 &#8212; Doing the right thing vs promo hypothetical</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3615">1:00:15</a>] You mentioned this idea of doing the right thing and then, you know, the byproduct, you also get promoted. I think that&#8217;s the dream, you know, do the right thing, get promoted.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3625">1:00:25</a>] But in reality, oftentimes people would have to make the trade-off. Imagine a two-by-two matrix of doing the right thing, doing the wrong thing, getting promoted, and not getting promoted. Obviously, do the right thing, get promoted&#8212;great. Do the wrong thing, don&#8217;t get promoted&#8212;obviously bad. But I&#8217;m curious about the other two quadrants. Which one would you have picked when you were earlier in your career?</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3650">1:00:50</a>] Let&#8217;s say I came to you, I said, hey, you can do the wrong thing, but you&#8217;re going to get promoted, or you can do the right thing and I guarantee you&#8217;re not going to get promoted. Which one?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3660">1:01:00</a>] Absolutely the second one. I&#8217;m going to say a really tacky thing, right? There are a set of engineers who at a certain point just make infinity money. The amount of money they can make, you know, going to work at <a href="https://en.wikipedia.org/wiki/Anthropic">Anthropic</a> is a huge amount of money. Right? And so there&#8217;s a certain point where it just doesn&#8217;t matter anymore. The money is whatever. But if you really want to maximize long-term income, I don&#8217;t think you should try to do that.</p><p>If you get to a certain level of experience, skill, and seniority, you&#8217;ve made it; that&#8217;s it, you&#8217;re done, the money&#8217;s fine. I think there&#8217;s this desire amongst junior engineers early in their career to be kind of over-optimizing for promotion and salary, etc., as opposed to investing in themselves.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3691">1:01:31</a>] But if you wanted to maximize long-term income, if you get to a certain level of experience, skill, and seniority, you&#8217;ve made it. That&#8217;s it, you&#8217;re done; the money&#8217;s fine. I think there&#8217;s this desire among junior engineers early in their careers to be kind of over-optimizing for promotion, income, and salary, etc., as opposed to investing in themselves.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3719">1:01:59</a>] They probably don&#8217;t want to hear me say this because it&#8217;s easier for me as an old guy to say this, right? But I think, for the longest time at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, there was a time at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> where we just didn&#8217;t have our level system. I was tech leading the team and I was making the least amount of money on the team because I was at some point a technical manager. I saw everyone&#8217;s salary, so I was making the least money, but whatever, right?</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3740">1:02:20</a>] It all worked out in the end, right? Now that was a happy story. But I do really think I benefited so much from working with the best people. If you have two choices&#8212;making 20% more money now or working with the best people in the world&#8212;just be around the best people because that&#8217;s going to set you on the ship to success. Now, not everyone wants to do that. Not everyone wants to go on that. There&#8217;s no shame in just wanting to have a regular job and just be chilling and getting paid. Fine, there&#8217;s nothing wrong with that. But if you do want to maximize your career growth, then the way to maximize that is to maximize your skills. Hopefully, you&#8217;re not so cynical to think that there is no correlation between talent and compensation.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3769">1:02:49</a>] Not everyone wants to go on that. There&#8217;s no shame in just wanting to have a regular job and just be chilling and getting paid. Fine, there&#8217;s nothing wrong with that. But if you do want to maximize your career growth, then the way to maximize that is to maximize your skills. Hopefully, you&#8217;re not so cynical to think that there is no correlation between talent and compensation. I don&#8217;t. If you think that&#8217;s the case, okay, I don&#8217;t know what to say, but there is a correlation between talent and compensation and growth. So my advice to people early in their career is to land at the best company with the best people doing the most important problems. Your life will be great because we are so lucky as engineers. Where else can you work solving problems for a job, solving puzzles for a job, and getting paid so well? Engineers get paid so well compared to most jobs.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3799">1:03:19</a>] I don&#8217;t. If you think that&#8217;s the case, okay, I don&#8217;t know what to say, but there is a correlation between talent, compensation, and growth. So my advice to people early in their career is to land at the best company with the best people doing the most important problems. Your life will be great because we are so lucky as engineers. Where else can you work solving problems for a job, like solving puzzles for a job and getting paid so well? Engineers get paid so well compared to most jobs. The real privilege that we get is to work on something cool. That&#8217;s what I advocate for.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3833">1:03:53</a>] The privilege, the real privilege that we get is to work on something cool. And that&#8217;s what I advocate for.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3842">1:04:02</a>] I love the idea you mentioned earlier. That&#8217;s kind of counter to the common opinion I often hear. The common opinion I hear is that someone working at a big company is in this machine, and it&#8217;s kind of defeatist. They&#8217;re going, &#8220;I ship this thing, but I hate this&#8221; or &#8220;I don&#8217;t believe in this.&#8221; I really liked your perspective on doing the right thing and basically giving a damn that someone outside of you is doing the right thing too and expanding your sense of ownership.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3875">1:04:35</a>] And I want to know what is your motivation for that? Because there are so many other people who are faced with the same inputs, and they come to a very different conclusion. So what motivates you to actually do the right thing when the machine doesn&#8217;t necessarily incentivize you to do so?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3891">1:04:51</a>] Yeah, well, I think the machine does incentivize you to do so, but I don&#8217;t think it&#8217;s visible immediately. I think people who do less job hopping really do grow the most. Because I would say very strongly, if you&#8217;re not in a job for three years, you&#8217;re not going to see whether your decisions were good. You can get more money as a junior engineer, but you cannot become a very talented senior engineer without being around for long enough to own the consequences of your decisions.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3923">1:05:23</a>] It&#8217;s like playing a basketball game and leaving before the game&#8217;s over. You&#8217;re just not learning. I do think there&#8217;s an actual structural incentive towards staying in a job now. If you&#8217;re in a bad job, leave the bad job. Right? But there&#8217;s a structural incentive to be able to stay long enough to have an impact. But also, I don&#8217;t know, I guess it&#8217;s easy for me to say. I joined the tech industry when it wasn&#8217;t a very lucrative field.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3950">1:05:50</a>] It wasn&#8217;t like it is now, but I just like it. The reason I left academia was because I wasn&#8217;t confident I was making the right decision. So what would happen, how I was in academia&#8212;I&#8217;m not saying everyone was like this, but you don&#8217;t know what to do. So you have to make up a problem to solve. You make up a problem, and then you make up a solution, hopefully a good one.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=3978">1:06:18</a>] And then you write a paper where you try to convince everyone that it was a really good idea. I hated it because I didn&#8217;t want to convince people. I just wanted to build it and see if it was good. I just wanted to build it and ship it and see; I didn&#8217;t want to play pretend and argue about whether it was good. That&#8217;s what makes me feel good. I don&#8217;t know. Obviously, if you&#8217;re an engineer who&#8217;s living paycheck to paycheck, you should maybe ignore what I&#8217;m saying.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4010">1:06:50</a>] I don&#8217;t want to come across as unempathetic to anyone who&#8217;s really struggling financially. But if you are not struggling financially, the best thing you can do for your quality of life is to enjoy what you do every day. I don&#8217;t know, you could have a fancier car or you could enjoy what you do every day. I love cars. I&#8217;m a motorhead. But I promise that enjoying what you do every day is going to have a much bigger impact on your life.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4042">1:07:22</a>] Personally, I don&#8217;t enjoy going to work and working on products that I believe in. Jamie, my co-founder, is the same way. We really get along well in this respect. We can only put up with doing things we actually care about and believe in. I think that&#8217;s the luxury&#8212;it&#8217;s more luxury than taking a first-class flight.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4069">1:07:49</a>] That&#8217;s more luxury than going to a three-million-star restaurant. The luxury is you don&#8217;t get up and have to do a terrible job. You get up and go to a place where you like your coworkers, and you solve cool problems, and you go home and feel proud of yourself. If you can construct your career that way&#8212;and it&#8217;s not easy, it requires very active effort&#8212;then you&#8217;re going to have a good life.</p><h3>1:08:13 &#8212; Why he dipped into management sometimes</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4093">1:08:13</a>] I saw in your career journey it said that you&#8217;re an occasional manager, and you seem like someone who really enjoys the technical aspects of things. So how did you decide to occasionally dip into management?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4107">1:08:27</a>] I feel like most people should not want to be managers, and I sometimes think it&#8217;s a bit of a red flag if someone wants to be a manager too much. Right. Because being a manager is a hard job. I think most people should go into management because they need to, because it&#8217;s necessary. What happened every time I went into management&#8212;I&#8217;m in a management role now as well&#8212;was because you have to.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4130">1:08:50</a>] Right. But someone needed to manage the team, and so I do genuinely enjoy accountability. I like responsibility; I like having weight on my shoulders, I suppose. I went into management several times, but as soon as I had the opportunity to get out, as soon as someone else would come in and manage the team, I would bounce out of that role back into engineering. Now, going into management is tremendously educational.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4162">1:09:22</a>] Being a manager really lets you see the world in a different way. You realize companies are more complicated than you thought. You realize the engineers are more complicated than you thought. You realize everyone on the team is going through something, and you realize, oh wow, now I understand why that thing happened. So being a manager is very educational. One thing I would say, I would strongly caution people against is going into management too early.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4184">1:09:44</a>] In their career. I see this happen a lot with well-intentioned people who want to push others into management as a means of career advancement. I think it&#8217;s doing people a disservice. You should let folks take their time in an organization, in a career journey. I don&#8217;t think you should be going into management under most circumstances in the first three years of your career.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4208">1:10:08</a>] I think you should ideally get to staff engineer before you do that. That&#8217;s not going to happen for everybody. But ideally, you take the time because if you go into management before you&#8217;re an excellent technician, it will limit your ability to influence strategy later in your career.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4224">1:10:24</a>] How does that play out?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4225">1:10:25</a>] It plays out with people who are stuck or have roles as people managers where they see their job as making a team happy or maybe coordinating a team or dealing with all the day-to-day challenges of people on a team. But they&#8217;re not organizational leaders. They&#8217;re not pushing the team towards excellence. They&#8217;re not asking, &#8220;How can we reframe what this team is about? How can we help influence technical strategy?&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4259">1:10:59</a>] And again, people management is a fine job. But I think the best companies are ones where all the managers are very technical, so they&#8217;re able to make sure the company&#8217;s doing well at a certain point. If you&#8217;re not a particularly technical manager, you&#8217;re not going to be able to evaluate the work of your team. You&#8217;re not going to know whether your team is even doing well. I guess maybe you might contribute to some of the stuff you were saying about cynical organizational attitudes where my manager doesn&#8217;t understand me.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4289">1:11:29</a>] Maybe your manager doesn&#8217;t understand you if they haven&#8217;t spent enough time developing technical skills and struggling.</p><h3>1:11:36 &#8212; Why you shouldn&#8217;t lead by example</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4296">1:11:36</a>] Yeah, there&#8217;s another piece that you wrote I thought was really good about leading by example, and you actually say it&#8217;s bad to lead by example. But there&#8217;s a quote in there that says modern tech workers can be an anti-authoritarian bunch at the best of times. Let&#8217;s say you&#8217;re a tech lead or manager. How do you strike that balance so you don&#8217;t lose credibility as a tech lead?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4323">1:12:03</a>] Yeah, there are command and control companies where the manager just tells people to do things, and they just do them. Those typically are not excellent companies, and not every company needs to be excellent. But if you want to have a company where your team is really innovating, where the engineers feel very personally responsible for making high-quality decisions, you have to have them believe in what you&#8217;re doing.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4350">1:12:30</a>] And so, at <a href="https://www.convex.dev/">Convex</a>, I&#8217;m the founder and CTO. I can&#8217;t really go to someone&#8217;s desk and say, &#8220;Do this thing.&#8221; Now, they might do it just because they like me. There&#8217;s a good chance they would do it, but not because I&#8217;m the boss. They&#8217;d be like, &#8220;Well, why?&#8221; And that&#8217;s because that&#8217;s our culture. We don&#8217;t just do things because we&#8217;re told. If I want someone to do something, I&#8217;ll spend time with the team talking about why we&#8217;re doing it, where the market&#8217;s trending, where the gap in our product, what, you know.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4377">1:12:57</a>] And then once we&#8217;ve really well articulated why something matters, people are just going to do it anyway. Sometimes you have to have hard conversations, but I think about it in terms of conflict in an organization. There&#8217;s this kind of hierarchy of the values you have and then why, what, and how. Engineers are very often debating the how. They&#8217;re often debating what algorithm we should use for this and whether we should use this container service or that container service. These are kind of like the implementation details. Most times when I see organizational conflict, it&#8217;s because well-intentioned people are debating as best they can about how to do something, but they don&#8217;t agree on why we&#8217;re doing it. If one team thinks the most important thing we can do right now is get more features out to expand our customer base, and the other team thinks the most important thing we can do is increase reliability because there&#8217;s a risk to the business.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4404">1:13:24</a>] And should we use this container service or that container service? These are kind of like the implementation details. Most times when I see organizational conflict, it&#8217;s because well-intentioned people are debating as best they can about how to do something, but they don&#8217;t agree on why we&#8217;re doing it. If one team thinks the most important thing we can do right now is get more features out to expand our customer base, and the other team thinks the most important thing we can do is increase reliability because there&#8217;s a risk to the business, they&#8217;re both very valid perspectives. However, it&#8217;s going to lead to them doing very different things. Within an organization, I&#8217;m a strong believer that everyone needs to have 100% alignment on why. The stuff we argue about or debate or talk about ad nauseam is why. Largely, I just trust the team to do the right thing. I think that&#8217;s the case for any tech lead. If you want to have credibility on a team, if you think that you can just tell someone to do something and they&#8217;ll listen to you because you&#8217;re the senior guy, no, they won&#8217;t.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4434">1:13:54</a>] They&#8217;re both very valid perspectives, but it&#8217;s going to lead to them doing very different things. Within an organization, I&#8217;m a strong believer that everyone needs to have 100% alignment on why. The stuff we argue about or debate or talk about ad nauseam is why. Then largely, I just trust the team to do the right thing. I think that&#8217;s the case for any tech lead. If you want to have credibility on a team, if you think that you can just tell someone to do something and they&#8217;ll listen to you because you&#8217;re the senior guy, no, they won&#8217;t. They won&#8217;t listen to you. If they listen to me, it&#8217;s because I&#8217;ve come in and explained it in a way that resonates with them. Again, one of my jobs at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> was to resolve situations. Someone would say, &#8220;Oh, that team&#8217;s an idiot; they won&#8217;t do blah.&#8221; Then I&#8217;d go talk to that team. That team was not an idiot. We talked through it, and they would decide to do the project. It wasn&#8217;t because they were scared of me.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4470">1:14:30</a>] If they listen to me, it&#8217;s because I&#8217;ve come in and explained it in a way that resonates with them. Again, one of my jobs at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> was to resolve situations. Someone would say, &#8220;Oh, that team&#8217;s an idiot, they won&#8217;t do blah.&#8221; Then I&#8217;d go talk to that team. That team was not an idiot. We talked through it, and they would decide to do the project. It wasn&#8217;t because they were scared of me.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4491">1:14:51</a>] I hope they weren&#8217;t. At least it was because I took the time to figure out what their motivations are. That&#8217;s something you really have to learn. If you&#8217;re a tech lead, you don&#8217;t really have that much authority over people, and you have to encourage them and get them to believe in what you&#8217;re doing. If you are leading through authority, you&#8217;re not going to have a culture where good ideas arise from within the organization.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4517">1:15:17</a>] People are just going to do what they&#8217;re told.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4519">1:15:19</a>] Influence without authority is huge. Even big companies like Meta technically don&#8217;t have titles; everyone&#8217;s just a software engineer. Is that also how <a href="https://www.convex.dev/">Convex</a> is run?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4532">1:15:32</a>] I mean, we&#8217;re a very flat organization. There are people in tech lead roles. I don&#8217;t completely buy that everyone&#8217;s a software engineer thing. It&#8217;s like, you know, <a href="https://en.wikipedia.org/wiki/Anthropic">Anthropic</a>. Everyone&#8217;s a member of technical stuff because it&#8217;s kind of like a wink-wink thing. You kind of know, it&#8217;s like no one&#8217;s mentioned the title, but you kind of know if the most senior person in the company comes to your desk, you&#8217;re probably going to notice. I think there&#8217;s no point in playing pretend. People know. But I will say that you should have an organizational culture where you don&#8217;t do something just because a senior person says something. Now, I do think that reputation matters. I certainly think that if a very experienced person at a company comes and tries to explain something to you, you probably should listen to them because they probably have some wisdom.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4563">1:16:03</a>] People know. But I will say that you should have an organizational culture where you don&#8217;t do something just because a senior person says something. Now, I do think that reputation matters. Like, I certainly think that if a very experienced person at a company comes and tries to explain something to you, you probably should listen to them because they probably have some wisdom. There might be something to be learned there. You should be open to it. But ultimately, even the most senior person, I don&#8217;t think should be leading through authority. They should use the benefit of their experience to be able to articulate, to win the hearts and minds. And that&#8217;s how your engineering culture is so important. And if you want a culture of ownership and innovation and drive and enthusiasm, and people trying to do the right thing, not get promoted, you have to have a culture where everyone believes in what they&#8217;re doing, and no one&#8217;s going to believe in what they&#8217;re doing.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4587">1:16:27</a>] There might be something to be learned there. You should be open to it. But ultimately, even the most senior person, I don&#8217;t think should be leading through authority. They should use the benefit of their experience to be able to articulate, to win the hearts and minds. And that&#8217;s how your engineering culture is so important. If you want a culture of ownership, innovation, drive, and enthusiasm, where people are trying to do the right thing and not just get promoted, you have to have a culture where everyone believes in what they&#8217;re doing, and no one&#8217;s going to believe in what they&#8217;re doing.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4620">1:17:00</a>] If the senior principal engineer comes to the desk and says, &#8220;I&#8217;m not going to tell you why, but you have to delete this database and do this other thing,&#8221; that&#8217;s not an empowering statement. What the empowering statement is, &#8220;Hey, let&#8217;s spend some time together to talk about where this product&#8217;s trending and how this is probably not going to work out and how there might be a different way we can solve this problem.&#8221;</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4640">1:17:20</a>] On the topic of tech leadership, in that article I mentioned, the title was &#8220;Don&#8217;t Lead by Example.&#8221; I think that might be confusing for people. Can you explain why you think you shouldn&#8217;t lead by example?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4653">1:17:33</a>] Yeah, leadership by example is a very passive thing to do. Engineers are passive people at the best of times. I think that&#8217;s stereotypically a little bit part of that personality. The very concrete example is when I first started becoming an engineering leader, I was trying to lead by example. I wanted to demonstrate the behaviors I wanted everyone else to have. Very specifically, with regards to on-call and people getting paged, I wanted people to have high ownership. I wanted people to jump on issues as soon as they happened. So I would do it. I&#8217;d be the first one to respond to a page. I would always be writing up the reports. I would always be jumping on all the bugs and stuff, really falling over myself to show how I wanted people to be. But from their perspective, all they see is that the lead is just doing all these jobs, and they don&#8217;t know. They&#8217;re like, &#8220;Oh, maybe that&#8217;s James&#8217;s job,&#8221; or &#8220;Maybe James knows how to do it, and I don&#8217;t know how to do it.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4685">1:18:05</a>] I want people to jump on issues as soon as they happen. I would do it. I&#8217;d be the first one to respond to a page. I would always be writing up the reports. I would always be jumping on all the bugs and stuff, really falling over myself to show how I want people to be. But from their perspective, all they see is that the lead is just doing all these jobs, and they don&#8217;t know. They&#8217;re like, &#8220;Oh, maybe that&#8217;s James&#8217;s job,&#8221; or &#8220;Maybe James knows how to do it, and I don&#8217;t know how to do it.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4717">1:18:37</a>] Turns out I didn&#8217;t know. I was just kind of figuring out, or maybe he likes doing those things. At a certain point, being a leader is about understanding human psychology. I don&#8217;t think you can just act a certain way in front of people and wait for them to copy you. I think you should act with integrity and values, and you should own the values of the team.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4741">1:19:01</a>] But you sometimes have to explain stuff; sometimes you have to tell people very, very specifically. There&#8217;s a trajectory almost every high-achieving leader goes through. They become a tech lead and care so much that they become a micromanager. They review every line of code and are involved in every decision, and at a certain point, they become the bottleneck for the team.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4766">1:19:26</a>] So this person is so overwhelmed; you might have gone through this yourself. They&#8217;re so overwhelmed, and they&#8217;re like, &#8220;Wait, my team doesn&#8217;t even seem busy right now. And I&#8217;m so busy. I&#8217;m reviewing all this code. I&#8217;m doing the strategy, what&#8217;s going on?&#8221; Then a manager will come along and say, &#8220;Hey, you&#8217;re micromanaging. You got to let your team have more ownership.&#8221; So the tech lead says, &#8220;Okay, sure, whatever.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4789">1:19:49</a>] I&#8217;ll let them own stuff. And they just take their hands off the wheel. Then the team falls apart because you can&#8217;t just stop doing the things you&#8217;re doing. You have to go and have a conversation with people. I see leadership as this kind of slider between oversight and accountability. When someone&#8217;s new to the team, when they&#8217;re very junior, they&#8217;re in a mode of oversight, like you&#8217;re checking their work. But at a certain point, you have to dial down the oversight and, very importantly, dial up the accountability. Instead of saying, I&#8217;m not going to look at what you&#8217;re doing anymore, you say, okay, cool, you&#8217;ve got this project. Let me know when it&#8217;s going to get done. Next Thursday.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4817">1:20:17</a>] Right. But at a certain point, you have to dial down the oversight and, very importantly, dial up the accountability. So instead of saying, &#8220;I&#8217;m not going to look at what you&#8217;re doing anymore,&#8221; you say, &#8220;Okay, cool, you&#8217;ve got this project. Let me know when it&#8217;s going to get done. Next Thursday.&#8221;</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4834">1:20:34</a>] Cool.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4835">1:20:35</a>] All right. What&#8217;s the plan? This is going to happen. How are you going to know it&#8217;s correct? Great, great, great. It&#8217;s on you. I expect you to do that. Let me know if there are any issues. The ownership relationship is explicitly on them. What you want to do is basically encourage ownership within teams. You can&#8217;t go from owning something to not owning something and expect that to develop.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4860">1:21:00</a>] You have to go have those conversations. You have to go and give people accountability. Now, what I have found, even though that can feel like an awkward conversation, most people genuinely like accountability. Most people like to own their work. Most people like to say, &#8220;Hey, this is on you. We&#8217;re all going down with the ship, right? I&#8217;m not going to leave you high and dry.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4883">1:21:23</a>] I&#8217;m the tech lead. I still take responsibility for this project. That&#8217;s how you can develop people within your team. A tech lead shouldn&#8217;t be about you as the boss and the team as the people who do the work. It&#8217;s about this kind of flow where you&#8217;re the more experienced person, typically maybe the more organized or more strategic person, and you&#8217;re working on developing your team members so they can take your job and then you can do something else.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4915">1:21:55</a>] That slider you mentioned, what if you give someone accountability and they blow it? Do they go back down the slider to where you start micromanaging?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4926">1:22:06</a>] You have to recognize it. Right. So this is growth. I mean, this is growth. Right. It doesn&#8217;t always work. I had another article about paper cuts or something. So we&#8217;d call these paper cuts. Some decisions don&#8217;t matter that much. You get them wrong, and maybe it sets you back a week. You get them wrong, and maybe something&#8217;s a bit suboptimal. These are great candidates to give people accountability for because they do it.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4953">1:22:33</a>] And if it doesn&#8217;t work, they get to experience it, and it will feel bad. I guess that&#8217;s good. It&#8217;s good to feel bad. You shouldn&#8217;t be demoralized, but it&#8217;s good to try something. It doesn&#8217;t work, and you&#8217;re like, oh, wow, that didn&#8217;t work. Then you feed that back into your little LLM in your brain, and you get better next time. Right? That&#8217;s a growth experience.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=4976">1:22:56</a>] I think what you don&#8217;t want to let people do is lose their arm. Paper cuts are fine, but I would not let someone, a junior person especially, design the replication system at <a href="https://www.convex.dev/">Convex</a>. You have to have safeguards. One of the arts as a CTO, a leader, or tech lead is figuring out the right level of altitude for how to know whether you can trust someone to take on ownership for something.</p><h3>1:23:23 &#8212; How to mentor Senior Staff+ engineers</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5003">1:23:23</a>] You mentioned that, because you were the most senior engineer at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>, at some point you had to mentor other very senior engineers. When I think about mentoring a junior engineer, it&#8217;s relatively straightforward patterns. But when I think about, let&#8217;s say, needing to mentor a senior staff engineer, maybe even a principal engineer, how do you mentor someone like that who&#8217;s already so polished and knows how to take ownership?</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5031">1:23:51</a>] Yeah. How do you mentor someone so senior?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5033">1:23:53</a>] Yeah. I mean, there&#8217;s in two ways. One is there is still just a whole bunch of commonality. Everyone goes through the same problems. They don&#8217;t know how to deliver harsh feedback. There is a bunch of just standard stuff people are working on. But I do think that at a certain point everyone needs to become the best version of themselves. Sounds so cheesy, right? But there is not an archetype for what. According to me, there&#8217;s not an archetype for a senior principal engineer. You&#8217;ve got to be your own brand of engineer, right? So you might be. For me, I&#8217;m like the strategic kind of collaboration, simplicity, abstraction engineer. And my coding just fell off a cliff. You know, some engineers are like the deep science fiction, you know, the super hardcore science, you know, problem-solving engineer.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5058">1:24:18</a>] According to me, there&#8217;s not an archetype for a senior principal engineer. You&#8217;ve got to be your own brand of engineer, right? For me, I&#8217;m like the strategic kind of collaboration, simplicity, abstraction engineer. My coding just fell off a cliff. Some engineers are like the deep science fiction, the super hardcore science, problem-solving engineer.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5082">1:24:42</a>] So everyone&#8217;s going to find their own brand. Oftentimes, what I&#8217;ll be working on is a combination of two things. One, finding their strengths and helping them be more spiky&#8212;helping them really excel in the area that makes them special. At the same time, I&#8217;m almost always working on the personal side of being an engineer, like the organizational and personal understanding, people understanding the why. I don&#8217;t know, we&#8217;re so mathy as an industry. We think that somehow, even silly things, like for example, I have to tell so many senior engineers that you can&#8217;t change someone&#8217;s mind in a meeting.</p><p>You just can&#8217;t do it. You can disagree with someone, and they&#8217;re going to be mad or whatever, right? But to change someone&#8217;s mind involves going through a complex series of neurological processes that don&#8217;t happen live in front of ten people in a meeting. If you force someone to agree with you about them being wrong, they&#8217;re just going to go along with it, and their ego is going to get bruised and whatever.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5123">1:25:23</a>] You just can&#8217;t do it. You can disagree with someone, and they&#8217;re going to be mad or whatever, right? But to change someone&#8217;s mind involves going through a complex series of neurological processes that don&#8217;t happen live in front of ten people in a meeting. If you force someone to agree with you about them being wrong, they&#8217;re just going to go along with it, and their ego is going to get bruised.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5152">1:25:52</a>] So, one thing, you know, firstly, meetings generally aren&#8217;t for decision making. Most of the time when you identify a disagreement, I would point out the disagreement and why I don&#8217;t agree or where the problems are, provide enough information, and then let it sit. Let them go and reflect on it and come back and have a conversation a week later after they&#8217;ve thought about the why.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5176">1:26:16</a>] Right. And so this is a lot of very psychological, but it makes no sense to be like, well, they should be able to change their mind. I mean, well, they won&#8217;t, right? That team should do this. Well, they didn&#8217;t, right? You know, people should like my API? Well, they don&#8217;t, right? I think it&#8217;s like that whole, it&#8217;s almost like a capitalist attitude towards interpersonal behaviors.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5201">1:26:41</a>] Right. It&#8217;s like capitalism rewards success or impact. It doesn&#8217;t matter how well-intentioned you were. If you didn&#8217;t manage to convince, you could be the smartest person in the world. But if you can&#8217;t change someone&#8217;s mind, then you are kind of useless. Right? And so I think a lot of seniors still struggle with this. It doesn&#8217;t matter how smart you are, it doesn&#8217;t matter how right you are; are you effective?</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5227">1:27:07</a>] And a lot of being effective at that level is about uncertainty, project management, and simplicity, but also kind of interpersonal dynamics because most hard problems happen with a team. Not always, but generally when you&#8217;re at that level, you&#8217;re going to have to have 10 or 20 people working with you to get something done. And that&#8217;s a whole different ball game.</p><h3>1:27:30 &#8212; Career advice for the AI era</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5250">1:27:30</a>] On the topic of career advice, the industry&#8217;s changed a lot in the last five years because of all these agentic tools. I wanted to know if you thought there is any career advice that has majorly changed in the last five years. Is there something that you used to say five years ago that you don&#8217;t say anymore, or vice versa?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5272">1:27:52</a>] No, I don&#8217;t know if I&#8217;ve changed my perspective much, but I think the industry has changed this perspective dramatically. I mean, let&#8217;s just be honest about it. There is incredible demand in <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a> for senior engineers, and it is getting harder for junior engineers to succeed and grow for a variety of reasons. Why is there demand for senior engineers? Well, because large language models can&#8217;t do everything.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5297">1:28:17</a>] Well, the architecture and simplicity in design are still the domain of human beings, despite what you might hear on Twitter. Every company, including the labs, is desperately hiring senior engineers. But junior tasks are getting a little bit commoditized, and that worries me because I do think that learning&#8212;wisdom is kind of facts put into practice and then synthesized. People would argue that it&#8217;s easy to learn now because of ChatGPT; you can just go ask it a question about how two-phase commit works or what&#8217;s the difference between snapshot isolation and serializability, and it will give you probably a pretty good answer. But I think growth as an engineer does require wisdom, and wisdom only really happens when you synthesize it, in my opinion. I&#8217;m still very bullish on young people. We&#8217;re hiring junior engineers at <a href="https://www.convex.dev/">Convex</a>, and I&#8217;m very excited about it. I love working with junior engineers who are really hungry to grow.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5336">1:28:56</a>] Or what&#8217;s the difference between snapshot isolation and serializability? It will give you probably a pretty good answer. But I think growth as an engineer does require wisdom. Wisdom only really happens when you synthesize it, in my opinion. I think I&#8217;m still very bullish on young people. We&#8217;re hiring junior engineers at <a href="https://www.convex.dev/">Convex</a>. I&#8217;m very excited about it. I love working with junior engineers who are really hungry to grow.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5368">1:29:28</a>] But what I would say is train your mind. Do not listen to anyone who tells you that there is an advantage to having less knowledge. I&#8217;m not sure if you&#8217;ve seen people say these ludicrous things, like, oh, maybe in the future, not knowing engineering will be an advantage because you won&#8217;t have biases and you&#8217;ll just use Claude. I think these are ludicrous statements. Software engineering is an intellectual discipline that helps you think. The best software engineering is not about knowing syntax and it&#8217;s not about knowing an algorithm; it&#8217;s about being really good at conceptualizing problems, breaking them down into building blocks, and coming up with clean solutions. That requires experience. It&#8217;s like doing weights with your mind. Just like if you went to the gym and it never hurt.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5396">1:29:56</a>] The best software engineering is not about knowing syntax, and it&#8217;s not about knowing an algorithm. It&#8217;s about being really good at conceptualizing problems, breaking them down into building blocks, and coming up with clean solutions. That requires experience. It&#8217;s like doing weights with your mind. If you went to the gym and just picked up really light weights, you&#8217;re not growing. Also, if you went to the gym, picked up a heavy weight, and let the robot pick it up for you, you&#8217;re also not really growing. You have to do the reps. It&#8217;s tough, but find a way to stress your brain every day.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5417">1:30:17</a>] If you went to the gym and just picked up really light weights, you&#8217;re not growing. Also, if you went to the gym and picked up a heavy weight and thought, &#8220;Okay, cool, I think I can do it,&#8221; but let the robot pick up the weight for you, you&#8217;re also not really growing, right? You have to do the reps. It&#8217;s tough, but find a way to stress your brain every day. Find a way to.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5447">1:30:47</a>] To avoid. Now, obviously, agentic coding is here, right? Obviously, that&#8217;s. I could never tell someone to never use a coding agent, because that would be silly. But I can say that it is easy to fall into a passivity trap, where you&#8217;re just being passive about your learning. I do think you need to spend some time in the intellectual wilderness of not being able to solve a problem and struggling.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5476">1:31:16</a>] I would say if you&#8217;re running into a new problem, try to think of a solution yourself and then go check with a large language model. It&#8217;s going to be hard for you. It&#8217;s almost like, for example, I&#8217;m not very good at reading anymore. I got to be honest, I find it hard to sit down and read a book because my brain has been fried by the stimulation economy, right? I find that I go home and I&#8217;m tired, and I watch a YouTube video. I don&#8217;t tend to go home and read a novel. I should be better at that, but it takes discipline to do that. I would say similarly, it&#8217;s getting harder to solve a difficult problem without reaching for help. It&#8217;s getting harder and harder every day to be faced with a very difficult intellectual problem and not be like, well, I&#8217;ll just do a Google search or I&#8217;ll just ask Claude.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5505">1:31:45</a>] I find it hard. I go home and I&#8217;m tired, and I watch a YouTube video. I don&#8217;t tend to go home and read a novel. I should be better at that, but it takes discipline to do that. I would say similarly, it&#8217;s getting harder to solve a difficult problem without reaching for help. It&#8217;s getting harder every day to be faced with a very difficult intellectual problem and not think, &#8220;Well, I&#8217;ll just do a Google search or I&#8217;ll just ask Claude.&#8221;</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5530">1:32:10</a>] You&#8217;re whatever, I&#8217;m still doing the work. I don&#8217;t know. I would really encourage people to practice using your brain every day.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5539">1:32:19</a>] If I was just playing devil&#8217;s advocate or thinking from the junior engineer perspective, I might think, well, the proof that Claude can do this work today means that I don&#8217;t need to know it today or tomorrow or in the future. So why even build that skill in the first place? Also, these agentic tools have positive trajectories too.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5563">1:32:43</a>] Yes. So firstly, the agents are not particularly good at a lot of parts of engineering currently. Probably everyone should agree Claude is not good at designing distributed systems protocols right now, for example, or managing a 3 million line code base. There are parts of engineering where engineers are valuable. And like I said, you know this because the labs are all hiring engineers.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5590">1:33:10</a>] No matter what they say, they&#8217;re still hiring engineers, right? Desperately hiring engineers. Really, really aggressively hiring engineers. So engineers still have value. And maybe they won&#8217;t in the future, but I doubt it. I really do think there&#8217;s a role for human ingenuity in engineering. And so here&#8217;s the trade-off I would pose to people. I mean, there&#8217;s kind of three paths. One, get out, get out of engineering, go mow lawns and do whatever if you want.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5621">1:33:41</a>] That&#8217;s the most nihilistic attitude. I don&#8217;t believe in that. I really love engineering. I believe that there&#8217;s promising roles for human beings in engineering. So the second is to realize that there&#8217;s value right now for humans in engineering. And maybe one day AGI will be here. Let&#8217;s say in a year&#8217;s time AGI will be here. And there&#8217;s two people. One person just gave up on problem solving right now and they&#8217;re just feeding the machine. They&#8217;re running 17 coding agents in parallel, accepting everything Claude says, and they&#8217;ve given up.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5655">1:34:15</a>] Right. And one person said, you know what, I still want to have an active role in my learning. I want to understand what it&#8217;s doing. I want to think hard about problem solving, right? Played out one year, AGI arrives. Who is going to be better placed for the future, right? The person who&#8217;s been training their mind, right? You don&#8217;t&#8212;engineering is not a means to an end. It&#8217;s a mechanism for improving your mental processes.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5681">1:34:41</a>] It&#8217;s like, I still do whiteboard coding interviews, and by the way, <a href="https://en.wikipedia.org/wiki/Anthropic">Anthropic</a> still does whiteboard coding interviews, just in case you were wondering. They don&#8217;t say, just use Claude. So I still do whiteboard coding interviews with candidates. Candidates are getting worse at coding. That&#8217;s absolutely true. But I don&#8217;t know any better vehicle for evaluating someone&#8217;s intellectual capacity for problem solving than seeing them solve an engineering problem.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5708">1:35:08</a>] It&#8217;s a great mechanism for doing so. If you were doing a math degree, a big part of doing advanced mathematics is proving theorems. By the way, the theorems are already all proven. Part of the exams is proving a theorem that has already been proven. You might say, well, what&#8217;s the point of proving that theorem? It&#8217;s already been done. The point is that the act of proving that theorem improves your mind, and then you can go and do more innovative stuff. I would say, sure, you may not. I still think that there is a very promising role for human beings in engineering. Maybe not in coding, but coding and engineering are very different things. Even if you don&#8217;t believe me, you can either give up now, but.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5731">1:35:31</a>] It&#8217;s already been done. Well, the point is that the act of proving that theorem improves your mind, right? And then you can go and do more innovative stuff. So I would say, sure, you may not. I still do think that there is a very, very promising role for human beings in engineering. Maybe not in coding, but coding and engineering are very different things, right? But even if you don&#8217;t believe me, you can either give up now, but.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5756">1:35:56</a>] Or you could just keep trying to improve your brain, and you&#8217;ll be better off anyway. Imagine if you&#8217;re wrong. Imagine if you take the defeatist view. Imagine if you say, &#8220;Well, AGI is coming next week, why bother doing anything?&#8221; And imagine you&#8217;re wrong. Oh my God, you just got off the ride. You get off the ride, and there&#8217;s so much cool stuff. I mean, this is a cool time for engineering, right? This is a really cool time. There&#8217;s so much cool stuff happening. And I hate this talk about how AI means humans don&#8217;t have a role anymore. AI means no one&#8217;s going to have a job. AI means we&#8217;re not going to do anything new. What I like is, hey, look at this. All this new cool stuff we can build. Look at the ways we can make people&#8217;s lives better.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5779">1:36:19</a>] This is a really cool time. There&#8217;s so much cool stuff happening. I hate this talk about how AI means humans don&#8217;t have a role anymore, that AI means no one&#8217;s going to have a job, or that AI means we&#8217;re going to do nothing else new. What I like is, hey, look at this&#8212;all this new cool stuff we can build. Look at the ways we can make people&#8217;s lives better.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5802">1:36:42</a>] And to be honest, I really wish my peers and my cohort would stop it with the real doomer, human elimination kind of narrative. I think there is a little bit of a psychological anchoring. As part of <a href="https://www.convex.dev/">Convex</a>, we didn&#8217;t start <a href="https://www.convex.dev/">Convex</a> to eliminate jobs; we started <a href="https://www.convex.dev/">Convex</a> to make it easy for people to build cool stuff.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5830">1:37:10</a>] I think the more we as an industry get behind, let&#8217;s do everything we can to make it possible for people to do more cool things. I think it&#8217;s a really exciting future we have ahead of us.</p><h3>1:37:21 &#8212; Why he started his own company</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5841">1:37:21</a>] I wanted to talk about what you&#8217;re working on now at <a href="https://www.convex.dev/">Convex</a> and why you quit <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> to build <a href="https://www.convex.dev/">Convex</a>.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5847">1:37:27</a>] <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> is a great place. At a certain point, I was there eight years. I don&#8217;t know if I outgrew the company, but I&#8217;d been the most senior engineer for a while. At a certain point, I wanted to grow and do my own stuff, so I left the company very amicably and started <a href="https://www.convex.dev/">Convex</a>. Why <a href="https://www.convex.dev/">Convex</a>? <a href="https://www.convex.dev/">Convex</a> started pre-agentic era because my observation was that the real differentiator in the success of a project, especially a large project, is the quality of the abstractions, the quality of the design, the quality of the architecture. Systems that thrive over time and are extensible are systems that are architected well. In my mind, the most difficult challenge in engineering is distributed state management. How do we store state reliably and reason about it, modifying it concurrently with other users? We designed a platform for application building based on our experiences building large-scale systems.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5888">1:38:08</a>] Systems that thrive over time and are extensible are systems that are architected well. In my mind, the most difficult challenge in engineering is distributed state management. How do we store state reliably and reason about it while modifying it concurrently with other users? We designed a platform for application building based on our experiences building large-scale systems.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5914">1:38:34</a>] So <a href="https://www.convex.dev/">Convex</a> is a transactional database where the transactions are written in TypeScript; they run as stored procedures. TypeScript stored procedures are serializable. There&#8217;s automatic reactivity, so what the client sees is a consistent view of what&#8217;s on the server. I would say <a href="https://www.convex.dev/">Convex</a> is a very designed platform because <a href="https://www.convex.dev/">Convex</a> is designed to be very composable and fit together well. We designed <a href="https://www.convex.dev/">Convex</a> for developers to use.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5939">1:38:59</a>] In particular, we wanted to make it so that application developers were able to build complex full-stack applications. That was the goal of <a href="https://www.convex.dev/">Convex</a>. Now all of a sudden, a coding agent development came along. That&#8217;s been really interesting for us because it turns out that what humans find hard is also what agents find hard. The coding agents are not particularly good with large code bases.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5964">1:39:24</a>] They&#8217;re not particularly good at reasoning about action at a distance, race conditions across services. They&#8217;re not particularly good at simple architectures over time. And these are the things that <a href="https://www.convex.dev/">Convex</a> gives you as a developer. So the idea now, and almost everyone using <a href="https://www.convex.dev/">Convex</a> is using <a href="https://www.convex.dev/">Convex</a> because they have the coding agent doing their front end. But they need a backend abstraction, a higher-level abstraction than something like Amazon Web Services or something like hosted PostgreSQL, which makes their problems go away.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=5996">1:39:56</a>] So this is a layer of abstraction on top of those types of primitives that makes it easier for an application developer.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6011">1:40:11</a>] It ties into a lot of the stuff I said earlier about making problems go away. Frankly, I watched the interview you did with <a href="https://en.wikipedia.org/wiki/Barbara_Liskov">Barbara Liskov</a>. Barbara was my advisor in grad school, and we worked a lot together on abstraction and the value in clean designs that minimize complexity. AWS is a fine tool. PostgreSQL is a fine tool, although none of the mainstream databases are that great, frankly.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6036">1:40:36</a>] But they&#8217;re fine tools, but they don&#8217;t make problems go away. Right. And so the idea of <a href="https://www.convex.dev/">Convex</a> is a higher level set of abstractions that you can use and not reason about state management, not reason about concurrency, not reason about scheduling, not reason about transactions, not reason about polling and data sync and type safety and all those things. So <a href="https://www.convex.dev/">Convex</a> is a, if you think about, you know, the history of engineering over time, the abstraction floor raises.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6065">1:41:05</a>] You know, when <a href="https://en.wikipedia.org/wiki/Barbara_Liskov">Barbara Liskov</a> was first starting, she was using punch cards. I don&#8217;t know if she mentioned it to you, but when she started as a programmer, she never heard the word &#8220;programmer&#8221; before. That was the first time she heard the word. And then you went from punch cards to having proper operating systems, and then languages like C, and then higher-level languages, and then you had cloud computing.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6091">1:41:31</a>] And over time, the abstraction floor raises, and you largely forget about what&#8217;s going on beneath the surfaces. Most people don&#8217;t think about how Amazon Simple Storage Service is implemented. I do, but that&#8217;s what I used to work on. Most people just use it, and it stores your data and gives it back. That&#8217;s great; that&#8217;s a successful abstraction. But I do strongly believe that the world is and has been overdue for a new abstraction one level up the stack.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6115">1:41:55</a>] And especially now that people are doing agent development, they don&#8217;t want to own a PostgreSQL instance. They don&#8217;t want to think about Kafka versus RabbitMQ. They don&#8217;t want to think about what set of tools to use. They want it just to work so they can focus on building their application.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6131">1:42:11</a>] When you talk about the abstraction, there&#8217;s obviously a lot of stuff going on behind the scenes in <a href="https://www.convex.dev/">Convex</a> and the technical side. What is it that <a href="https://www.convex.dev/">Convex</a> is building behind the scenes that you&#8217;re most excited about and why?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6147">1:42:27</a>] Basically, <a href="https://www.convex.dev/">Convex</a> is a new operating system in some respects. We have the primitives: queries, mutations, actions, subscriptions. What I think is cool is how we built this. We have our own distributed database that tracks read ranges and write ranges and does very efficient subscriptions over WebSockets, et cetera. So that&#8217;s the current operating system set of primitives.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6176">1:42:56</a>] But <a href="https://www.convex.dev/">Convex</a> is getting much larger workloads now and much more interesting workloads and more high-performance workloads. So we&#8217;re in the process of developing a slightly lower-level API for doing very efficient background processes, singletons, and APIs like fork, like operating system primitives. I&#8217;m pretty excited about launching these and how much faster it&#8217;s going to make various <a href="https://www.convex.dev/">Convex</a> components like the workflow system.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6208">1:43:28</a>] And to be honest, the thing I find exciting every day, challenging every day. I still find <a href="https://www.convex.dev/">Convex</a> very hard. I struggle every day. I don&#8217;t find my job easy. I feel confident at my job, but it&#8217;s not easy. Designing the new API for this is super hard. I can&#8217;t just go ask Claude; it&#8217;s not going to give a good answer, right? Because it&#8217;s innovation, it&#8217;s new ideas. I really enjoy it.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6236">1:43:56</a>] I find it stressful sometimes. I find it challenging and tiring, but I also find it exciting. I would encourage engineers to try to find this kind of stuff to work on, where it&#8217;s like you&#8217;re on that edge of, &#8220;I&#8217;m really liking this, but also it&#8217;s a bit tricky.&#8221;</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6256">1:44:16</a>] You mentioned fork, and in operating systems, I&#8217;m familiar with it. You take the existing process and kind of split it. What&#8217;s the idea of fork in a distributed system?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6267">1:44:27</a>] So <a href="https://www.convex.dev/">Convex</a> almost never has scale issues with regards to live traffic. Live traffic is typically bound by user-facing interactions, people clicking on stuff, running a website, acting on a website. Every now and then, someone will come to <a href="https://www.convex.dev/">Convex</a> and want to kick off a million background jobs to do some background processing. It&#8217;s a big workload. You can programmatically trigger huge workloads, right?</p><p>And so one of the things we have to scale is these background workloads, and a lot of them involve things like scheduling. There are a lot of workloads in <a href="https://www.convex.dev/">Convex</a> that would be very efficient if you had a background singleton process to perform things like aggregates. I&#8217;ll give a very silly example, right? If you&#8217;re building an election on <a href="https://www.convex.dev/">Convex</a>, a voting system, and every vote is a new row in the...</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6290">1:44:50</a>] And so one of the things we have to scale is kind of these background workloads, and a lot of them involve things like scheduling. There are a lot of workloads in <a href="https://www.convex.dev/">Convex</a> that would be very efficient if you had a background singleton process to perform things like aggregates. I&#8217;ll give a very silly example. Let&#8217;s say you&#8217;re building an election on <a href="https://www.convex.dev/">Convex</a>, a voting system, and every vote is a new row in the table. You want to show a tally of the votes. One way of doing this is having a bunch of background processes or cron jobs adding these things up. One way is doing a table scan, which is the obvious way to use PostgreSQL, which doesn&#8217;t scale. The other is to have a background job, which, if there are new votes, adds them all up and keeps a tally. If there are no new votes, it goes to sleep and waits on a condition variable to wake up again when there is a new job to perform.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6319">1:45:19</a>] In the table, you want to show a tally of the votes. One way of doing this is having a bunch of background processes or crons adding these things up. One way is doing a table scan, which is the obvious way to use PostgreSQL, which doesn&#8217;t scale. The other is to have a background job that, if there are new votes, adds them all up and keeps a tally. If there are no new votes, it goes to sleep and waits on a condition variable to wake up again when there is a new job to perform.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6345">1:45:45</a>] And so these are the kind of primitives that we&#8217;re working on right now. Most people won&#8217;t even know they exist, but they allow us to build this very high-performance primitive for scheduling, aggregates, background aggregations, et cetera. I&#8217;m pretty excited about the next generation of workloads we can support.</p><h3>1:46:05 &#8212; The most technically challenging work of his career</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6365">1:46:05</a>] As a result, when you reflect on your career, it sounds like you&#8217;ve done a lot of gnarly technical work across your PhD. <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> seemed like pretty intense systems work, and <a href="https://www.convex.dev/">Convex</a> is also doing a lot of cool stuff. When you look back on your career, what was the most technically stimulating work you&#8217;ve ever done? Why was it hard, and what did you learn from it?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6389">1:46:29</a>] There were certainly times in grad school where we were formally modeling consensus protocols and stuff. I&#8217;d be on the phone with <a href="https://en.wikipedia.org/wiki/Barbara_Liskov">Barbara Liskov</a> on weekends, talking through and trying to reason about this in our heads. That was pretty intellectually stimulating and fun. But I think the stuff I found most stimulating was working on a very large storage system with a team where things were going wrong.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6413">1:46:53</a>] Where the rubber hits the road, that&#8217;s where I find, and this is every day at <a href="https://www.convex.dev/">Convex</a>. The rubber hits the road. We have a compaction process that runs in the background, but it&#8217;s running into issues. We might have to redesign it using partitioning, etc. I feel most intellectually stimulated where there&#8217;s a really clear constraint in front of me.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6436">1:47:16</a>] And that to me is engineering. If I don&#8217;t actually know what the definition of engineering is, I&#8217;m just going to make it up in my mind. Engineering is science with constraints. It&#8217;s like, how do you solve problems in the presence of resource constraints? I&#8217;m not particularly interested in constraint-free environments. That&#8217;s art. I like craft and engineering. The more visceral and difficult the constraints, the more fun that is for me.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6467">1:47:47</a>] And I&#8217;ve been lucky enough to, whether it&#8217;s luck or intention, I don&#8217;t know, but I&#8217;ve always placed myself in those environments. You know, let&#8217;s go get on the hardest team and own the hardest problem and then put the effort in to survive.</p><h3>1:48:10 &#8212; How he got involved in Silicon Valley</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6490">1:48:10</a>] This question might be a little bit off topic, but I know you were a consultant for the TV show <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a>. I love that show, and I gotta hear, how&#8217;d you get involved with that?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6501">1:48:21</a>] Yeah, that was a lot of fun. A lot of folks might not know this: I had nothing to do with season one. Many TV shows don&#8217;t know whether they&#8217;re going to survive as a series. Mike Judge, who wrote <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a>, is also known for Beavis and Butt-Head and Office Space. He started his career as a software engineer at, I think, Lockheed or something. So he actually was a software engineer, which a lot of people don&#8217;t realize.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6528">1:48:48</a>] And so <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a> was like a throwback to the kind of work he did. If anyone&#8217;s seen the movie Office Space, you would get this. That&#8217;s really a dystopian cubicle era tech industry film. They did season one of <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a>, and then it was very popular, so they got picked up. They had to figure out what to do for season two, but they didn&#8217;t know what to do because they had written a storyline that gets to the point where there&#8217;s a compression algorithm, and then what happens?</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6558">1:49:18</a>] And so they needed to find an expert on compression. I guess ostensibly that was me. I don&#8217;t know whether I was an expert on compression; I guess I was an expert on storage at least. They came to the office, and we just chatted. It was so much fun. I was pretty heavily involved in the show. A lot of it was storyline. So first, like, yeah, sure, what would you do with the compression algorithm?</p><p>What would you design for a storage system? Coming up with story ideas that were technically accurate, you&#8217;d be surprised to know how much they care about accuracy. A lot of people I know can&#8217;t watch that show because it&#8217;s just so creepily accurate. They find it so cringy. Partly why <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a> can be so cringy is because it&#8217;s real. Those stories are almost.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6587">1:49:47</a>] What would you do? Could you design a storage system? Coming up with story ideas that are technically accurate, you&#8217;d be surprised to know how much they care about accuracy. A lot of people I know can&#8217;t watch that show because it&#8217;s just so creepily accurate. They find it so cringy. Partly why <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a> can be so cringy is because it&#8217;s real. Those stories are almost...</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6614">1:50:14</a>] Almost. Maybe not everyone. So many of the stories in <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a> are just real stories. They went to a bunch of companies, just farmed everyone for stories of crazy things that happened in the tech industry, and they wove them into the series. All the characters are based on real people and real archetypes. But they also cared very much about technical accuracy. So I would also do technical consulting.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6637">1:50:37</a>] And then they&#8217;d say stuff like, &#8220;Oh, we&#8217;re building a data center in our house. What should the rack look like? And what should the diagram on the wall look like?&#8221; Part of me wanted to say, &#8220;Oh, well, it doesn&#8217;t really matter. No one&#8217;s going to care.&#8221; But they were like, &#8220;No, no, no, it matters.&#8221; They really cared to get it right. So, yeah, I love the show, but it can be hard to watch just because of, oh my God, how real it can feel. Yeah.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6661">1:51:01</a>] How real it can feel. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6665">1:51:05</a>] Are there any Easter eggs where you look at that and go, that&#8217;s unusually accurate? Or, you know, that system diagram actually is very spot on.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6675">1:51:15</a>] I can&#8217;t. I don&#8217;t think I can even say them because there were stories of early <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a>. There were stories of having ideas ripped off by other companies and being tricked into having meetings with folks, only to find it may be the competitor&#8217;s team there to steal the information. A lot of those stories are real. And so there are people who watch <a href="https://en.wikipedia.org/wiki/Silicon_Valley_(TV_series)">Silicon Valley</a> and think, oh, wow, that was something I went through.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6703">1:51:43</a>] And probably it was because it was about that situation.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6708">1:51:48</a>] That&#8217;s such a cool experience. Did you get paid for that, or was it just for fun?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6712">1:51:52</a>] Yeah, that&#8217;s a complicated question. I got paid because I had to get paid; it was like a Hollywood union thing. I didn&#8217;t want to get paid because it made my visa more complicated. So I&#8217;ve got a green card now; I&#8217;m all good. But there was something where they had to pay me $400 anyway. I made a grand sum of $400 off that show.</p><h3>1:52:16 &#8212; Career regrets</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6736">1:52:16</a>] Looking back on your career, is there any regret that comes to mind that maybe other people can learn from?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6743">1:52:23</a>] Yeah, I mean, I think I underinvested in my personal life, to be honest. People don&#8217;t probably say that much because I think you can be all about growth, and sure, I could have grown more. I could have dropped out of grad school, say, three years in or four years in. I probably would have learned just as much. I could have taken a job at <a href="https://en.wikipedia.org/wiki/Dropbox">Dropbox</a> two or three years earlier and made a lot more money.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6768">1:52:48</a>] Everyone who has been in the industry long enough has been offered the chance to co-found several billion-dollar companies. Everyone has a story about the times they could have been a billionaire several times over. I don&#8217;t really regret those. Yes, it&#8217;s been a lot of sacrifice, to be blunt. I&#8217;ve been on call my whole career. I&#8217;ve carried a laptop almost every day. There are many dinners, parties, and events I&#8217;ve had to skip, and there are people in my personal life who have suffered as a result.</p><p>I really appreciate these people; they love and care about me, and they know that I have a passion for this, so they accept me for who I am. I think this is old person talk, but everyone has to decide how much they want to really drive their career because there&#8217;s a trade-off. Absolutely. I made a tremendous amount of sacrifices in my career, and I really prioritized building as probably the number one.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6801">1:53:21</a>] And I really appreciate these people. They love and care about me, and they know that I have a passion for this, so they accept me for who I am. I think this is old person talk, but yeah, I think everyone has to decide how much they want to really drive their career because there&#8217;s a trade-off. Absolutely. I made a tremendous amount of sacrifices in my career, and I really prioritized building as probably the number one.</p><p>I mean values first and then building. But if I went back in time, I would have had a good life, but I probably would have done more vacations and just had a bit more of a balanced life. I really do think. I see that with all the 996 stuff and this kind of performative photos of being in a bar with a laptop, and I&#8217;m like that&#8217;s not real.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6832">1:53:52</a>] I mean values first and then building. But if I went back in time, I would have had a good life, but I probably would have done more vacations and just had a bit more of a balanced life. I really do think&#8212;I mean I see that with all the 996 stuff and this kind of performative photos of being in a bar with a laptop and stuff, and I&#8217;m like that&#8217;s not real.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6856">1:54:16</a>] That&#8217;s not real. I mean, sure, I was working more than I do now back then, but I probably still work more than I did then. But I don&#8217;t do it as a checkbox; I do it because I really want to be doing stuff. I would caution people against that hustle culture. That&#8217;s not, firstly, like, you&#8217;re only young once; you should have fun. You know, I&#8217;ve got quite a few grays in here.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6886">1:54:46</a>] But that&#8217;s acting. I mean, focus on solving problems, work hard, be passionate. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6895">1:54:55</a>] When I studied your career, there are mentions of you working 16 hours a week in various places. But you like being on call, you like fires, you like ownership; all those things are a recipe for working obscene hours.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6913">1:55:13</a>] Yeah. I go home and I&#8217;m tired, and I wind down by building stuff. I&#8217;m lucky enough to have a little workshop at home, so I go home and make things with my hands. You become an infra person; you become an engineer in all aspects of your life. But yeah, I would just say the cool thing is doing cool stuff that humans use.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6941">1:55:41</a>] The cool thing is not working long hours, the cool thing is not showing off that you were running a coding agent all night. Who cares? The cool stuff is enjoying doing important things.</p><h3>1:55:54 &#8212; Top technical book recommendation</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6954">1:55:54</a>] Do you have a best technical book recommendation for people?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6960">1:56:00</a>] I have to be honest, I haven&#8217;t read almost any technical book. I was in academia for a long time, so I read a lot of papers. Learning is awesome, reading is great, but balance it, right? Read something and then go put it into practice. Most of my career has been about doing. Sure, I did a PhD, so I guess that is like the academic side. But after that, most of my learning has been by doing because there&#8217;s nothing like being faced with a real problem to really develop as an engineer.</p><h3>1:56:36 &#8212; Younger self &amp; permanent underclass advice</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=6996">1:56:36</a>] Yeah, I think if I answered the question, I&#8217;d probably say the same. I think learning by doing is really where it matters most. And then the last question for you is, if you could go back to the beginning of your career and give yourself some advice, what would you say?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7011">1:56:51</a>] I&#8217;d say, it&#8217;ll be okay. Don&#8217;t sweat the small stuff as much. It&#8217;s hard because my whole engineering brand is about caring about details, and I love design, so being obsessive is a little bit part of my DNA. But I think I would go back and say careers are long. I mean, there&#8217;s just any story anyone reads about a 22-year-old billionaire, blah, blah, blah. Just ignore that story. That&#8217;s not real. That&#8217;s not repeatable. That&#8217;s not normal. And it&#8217;s not that healthy. And it&#8217;s not that good for the people either. You probably won&#8217;t, ideally, max out your growth for 20 plus years as an engineer. I&#8217;m still learning all the time. I&#8217;ve been an engineer for several decades. So my advice would be don&#8217;t sweat it. There&#8217;s time to grow. And I do think that, again, this is a little bit of a modern phenomenon, but there is a feeling right now, oh my God, AGI has come and better max out my growth in the next three months.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7046">1:57:26</a>] That&#8217;s not real. That&#8217;s not repeatable. That&#8217;s not normal. And it&#8217;s not that healthy. And it&#8217;s not that good for the people either. You probably won&#8217;t, ideally, max out your growth for 20 plus years as an engineer. I&#8217;m still learning all the time. I&#8217;ve been an engineer for several decades. So my advice would be don&#8217;t sweat it. There&#8217;s time to grow. And I do think that, again, this is a little bit of a modern phenomenon, but there is a feeling right now, oh my God, AGI has come and better max out my growth in the next three months.</p><p>Well, guess what? You ain&#8217;t going to do it. It&#8217;s not going to happen. You can&#8217;t max your growth out in the next three months. It won&#8217;t happen. You don&#8217;t have to be running 17 agents at the same time. All you gotta do is orient your career around learning every day, getting better at what you&#8217;re doing, and trying to solve things in the most simple ways.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7084">1:58:04</a>] Well, guess what? You ain&#8217;t going to do it. It&#8217;s not going to happen. You can&#8217;t do it. You can&#8217;t max your growth out in the next three months. It won&#8217;t happen. You don&#8217;t have to be running 17 agents at the same time. All you gotta do is orient your career around learning every day, getting better at what you&#8217;re doing, and trying to solve things in the most simple ways.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7106">1:58:26</a>] I mean, on Twitter, I see this take on the idea of a permanent underclass, where if you don&#8217;t make it in time for AGI, then you&#8217;re going to be part of this permanent underclass.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7119">1:58:39</a>] Yeah. I mean, look, it&#8217;s a bit challenging economic times for a lot of folks. I don&#8217;t want to be unsympathetic to people who are having financial difficulties. At the same time, it&#8217;s just not an instructive attitude. There&#8217;s not much you can do with that information other than feel bad about yourself, and I don&#8217;t. Someone will argue back.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7140">1:59:00</a>] No, what you can do is get really good at using Claude. Well, guess what? It&#8217;s not very hard to use Claude. Sometimes people tell me, &#8220;Oh my God, I&#8217;m finding it hard to keep up with all the new models.&#8221; The new model drops, and I don&#8217;t even know what the new models are. I use them, but I forget the latest model because it doesn&#8217;t matter. Right? Like there was this thing called Ralph.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7163">1:59:23</a>] Right. I guess it&#8217;s still RALPH. It&#8217;s like a loop thing. I don&#8217;t really know what RALPH is, and I haven&#8217;t heard anyone mention RALPH in the past few weeks, but it was the biggest thing on Twitter for like a month. And it just doesn&#8217;t. This is noise somehow. Sometimes I feel like it&#8217;s like tech tabloids. It&#8217;s like people think that they&#8217;re learning by somehow knowing, like listening to what Jensen said today or like, oh my God, Boris said that Claude writes itself.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7193">1:59:53</a>] I don&#8217;t think people&#8212;look, that&#8217;s like&#8212;it&#8217;s just like reading about Beyonc&#233;, but you&#8217;re a nerd, and so you&#8217;re reading about Jensen, right? But it doesn&#8217;t matter, you know? Growing&#8212;like, you don&#8217;t have to know. It&#8217;s okay. The new coding agent could come out, and you could miss it. And then next year, if it turns out it&#8217;s the big one, you&#8217;ll just use it. It&#8217;s not hard. I haven&#8217;t seen any skill so far.</p><p>I guess there&#8217;s some skill, but it&#8217;s not a hard skill. If you&#8217;re good at engineering, you can figure out how to use Claude code, right? Or open code. So just watch out for tech tabloidism. It doesn&#8217;t matter. Just be building stuff. Just do real work.</p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7219">2:00:19</a>] I guess there&#8217;s some skill, but it&#8217;s not a hard skill. If you&#8217;re good at engineering, you can figure out how to use Claude code or open code. Just watch out for tech tabloidism. It doesn&#8217;t matter. Just be building stuff. Just do real work.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7237">2:00:37</a>] I love that mindset. Yeah, well, thank you for your time.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7242">2:00:42</a>] I&#8217;m on Twitter, too. I&#8217;m part of the thing, but just ignore me.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7251">2:00:51</a>] Oh, God. All right, well, thank you so much for your time, James. I really appreciate it. This was a lot of fun.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/3XkmNSuHFmY?t=7256">2:00:56</a>] Ryan, it was great. Thank you.</p>]]></content:encoded></item><item><title><![CDATA[Takeaways from Bjarne Stroustrup (Creator of C++)]]></title><description><![CDATA[What made Bell Labs special, negative overhead abstraction, C++ garbage collection]]></description><link>https://www.developing.dev/p/takeaways-from-bjarne-stroustrup</link><guid isPermaLink="false">https://www.developing.dev/p/takeaways-from-bjarne-stroustrup</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 18 May 2026 13:15:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/ee791b3e-12fd-4342-88c7-32bb5da4d1ac_2560x1440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Bjarne_Stroustrup">Bjarne Stroustrup</a> is the creator of the C++ programming language and a former researcher at Bell Labs. I got to interview him about his career and programming language design.<br><br>This conversation was a lot of fun. I brought my equipment to his office and we shot it right there. That&#8217;s why the background of his shot is almost entirely C++ books (many of which he wrote).</p><p>In addition to language design questions, I asked him for his personal anecdotes since I felt only he could tell those stories. Below are my top three takeaways to save you time.</p><p><em>You can find the full conversation on <a href="https://youtu.be/U46fJ2bJ-co">YouTube</a>, <a href="https://open.spotify.com/episode/52pEgoAglP6iPSNCxNeEvi?si=20L-_ZwnQyK_PzqaK0zNZQ">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>. The <a href="https://www.developing.dev/p/creator-of-c-bell-labs-negative-overhead">transcript is on Substack</a> if you prefer to skim.</em></p><div id="youtube2-U46fJ2bJ-co" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;U46fJ2bJ-co&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/U46fJ2bJ-co?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="callout-block" data-callout="true"><h3><strong>Brought to you by:</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!32cf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!32cf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 424w, https://substackcdn.com/image/fetch/$s_!32cf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 848w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1272w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!32cf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png" width="450" height="81.28434065934066" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:263,&quot;width&quot;:1456,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:250860,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.developing.dev/i/197216250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!32cf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 424w, https://substackcdn.com/image/fetch/$s_!32cf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 848w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1272w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em><a href="https://www.developing.dev/p/cursor.com">Cursor3</a>: a unified workspace for building software with agents. I used it to build tools for the podcast and shared the process in this episode&#8217;s ad read.</em></p><p><em><a href="https://workos.com/">WorkOS</a>: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code</em></p></div><h1>Takeaways from the conversation:</h1><p><strong>1) How Bell Labs did research </strong>- When I asked Bjarne about how project selection went, he talked about two ways of doing research.</p><p>In one way, you have a well-designed project that is carefully chosen by management. Then the project is staffed with many researchers. This was not the Bell Labs way.</p><p>The other way was to hire the best people on the planet and don&#8217;t tell them what to do. Each year, the researchers would be asked to explain what they did in 9pt font or larger on a single page. If you can&#8217;t explain what you&#8217;re doing concisely, it probably isn&#8217;t that interesting.</p><p>If the work was interesting enough, then you could continue to work on it. Even though this was unusual, the results speak for themselves as much of the technology we take for granted today was invented at Bell Labs.</p><p><strong>2) Negative overhead abstraction - </strong>Coming into the conversation, I assumed that more abstraction meant you&#8217;d lose performance but Bjarne corrected my naive assumption.</p><p>A simple example is to look at C vs C++. Because C++ encodes more information in the language itself, the compiler has more it can use to optimize the final result. Therefore, the abstractions in C++ can be used to get better performance actually.</p><p><strong>3) There was a garbage collection API in C++</strong> - I had always assumed that where there was C++, there was manual memory management. I was wrong. </p><p>In 1995, Bjarne introduced a standard interface for garbage collection due to user requests. However, C++ developers tended to prefer manual resource management so the garbage collection API never got much use. Later, this garbage collection interface was removed from the standard. This is probably why you don&#8217;t hear too much about this.</p><div><hr></div><p>By the way, thanks for the input last week on where to place ads. It looks like most people prefer the ads grouped together instead of multiple shorter breaks. I would have picked the same personally. I factored in that feedback for this episode.</p><p>Looking at other podcasts, is it seems like some creators like to lump their ads together at the beginning instead of in the middle of the episode. I can see arguments for both sides:</p><ol><li><p>Beginning &#8594; get the interruptions out of the way so the episode can be interruption free</p></li><li><p>Middle &#8594; reading ads before delivering value could make people bounce </p></li></ol><p>Curious your thoughts on what you&#8217;d prefer:</p><div class="poll-embed" data-attrs="{&quot;id&quot;:512104}" data-component-name="PollToDOM"></div><p>Thanks for reading,<br>Ryan Peterman</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.developing.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support my work:</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Creator of C++: Bell Labs, Negative Overhead Abstraction, Mistakes | Bjarne Stroustrup]]></title><description><![CDATA[Transcript & Audio]]></description><link>https://www.developing.dev/p/creator-of-c-bell-labs-negative-overhead</link><guid isPermaLink="false">https://www.developing.dev/p/creator-of-c-bell-labs-negative-overhead</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 18 May 2026 10:02:48 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/197420708/c47e40c8b1a8d8fc5fdc3ec277f2e12a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/bjarnestroustrup/">Bjarne Stroustrup</a> is the creator of the C++ programming language and a former researcher at Bell Labs. We talked about what Bell Labs was like, programming language design, and interesting anecdotes from his experience.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/U46fJ2bJ-co">YouTube</a>, <a href="https://open.spotify.com/episode/52pEgoAglP6iPSNCxNeEvi?si=20L-_ZwnQyK_PzqaK0zNZQ">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-U46fJ2bJ-co" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;U46fJ2bJ-co&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/U46fJ2bJ-co?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/197420708/050-the-origin-of-c">0:50 - The origin of C++</a></p><p><a href="https://www.developing.dev/i/197420708/846-what-bell-labs-was-like">8:46 - What Bell Labs was like</a></p><p><a href="https://www.developing.dev/i/197420708/1724-dennis-ritchie">17:24 - Dennis Ritchie</a></p><p><a href="https://www.developing.dev/i/197420708/2400-when-to-build-a-programming-language">24:00 - When to build a programming language</a></p><p><a href="https://www.developing.dev/i/197420708/3159-bootstrapping-a-language">31:59 - Bootstrapping a language</a></p><p><a href="https://www.developing.dev/i/197420708/3358-c-is-not-object-oriented">33:58 - C++ is not object-oriented</a></p><p><a href="https://www.developing.dev/i/197420708/3732-discussing-type-systems">37:32 - Discussing type systems</a></p><p><a href="https://www.developing.dev/i/197420708/4620-memory-safety">46:20 - Memory safety</a></p><p><a href="https://www.developing.dev/i/197420708/4926-standards-committee-anecdotes">49:26 - Standards committee anecdotes</a></p><p><a href="https://www.developing.dev/i/197420708/10940-adding-automatic-garbage-collection-to-c">1:09:40 - Adding automatic garbage collection to C++</a></p><p><a href="https://www.developing.dev/i/197420708/11825-template-instantiation-is-turing-complete">1:18:25 - Template instantiation is Turing complete</a></p><p><a href="https://www.developing.dev/i/197420708/12157-abstraction-and-performance">1:21:57 - Abstraction and performance</a></p><p><a href="https://www.developing.dev/i/197420708/12851-ai-writing-code">1:28:51 - AI writing code</a></p><p><a href="https://www.developing.dev/i/197420708/13554-his-motivation">1:35:54 - His motivation</a></p><p><a href="https://www.developing.dev/i/197420708/13918-famous-quotes">1:39:18 - Famous quotes</a></p><p><a href="https://www.developing.dev/i/197420708/14648-reflecting-on-building-c">1:46:48 - Reflecting on building C++</a></p><p><a href="https://www.developing.dev/i/197420708/14912-top-c-book-recommendation">1:49:12 - Top C++ book recommendation</a></p><p><a href="https://www.developing.dev/i/197420708/15059-advice-for-his-younger-self">1:50:59 - Advice for his younger self</a></p><h1>Transcript</h1><h3>0:50 &#8212; The origin of C++</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=50">0:50</a>] What is the origin story behind <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=54">0:54</a>] Well, let&#8217;s start from the real beginning. I got a job at <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>, which is a really great place in New Jersey. It&#8217;s not like that anymore, but at the time it was the best applied math, applied engineering place in the world. I looked around at the great people who were there; they built <a href="https://en.wikipedia.org/wiki/Unix">Unix</a>. They did a lot of the theory behind it, and I realized I had to do something important; otherwise, it didn&#8217;t belong.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=90">1:30</a>] So I decided I was going to build a distributed <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> because it was clear that computers were getting better, networking was getting better, so we needed one of those. If I had succeeded, we would have had <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> clusters ten years earlier or something like that. But of course, I couldn&#8217;t do it. That&#8217;s not a one-person job. The first thing I realized was there wasn&#8217;t a language in the world that could do what I needed.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=125">2:05</a>] It needed two things: low-level access to hardware, such as memory managers, process implementations, process schedulers, network drivers, and device drivers. Then it needed high-level features that indicate, well, there&#8217;s a module here on this computer and there&#8217;s a module there on that computer, and here&#8217;s the communication protocol they&#8217;re using, things like that. There are lots of languages that could do either, but none that could do both.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=163">2:43</a>] The obvious language for the low-level stuff was C because <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a> and <a href="https://en.wikipedia.org/wiki/Brian_Kernighan">Brian Kernighan</a> were down the hall, and I said distributed <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> because I was in the home where <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> was invented and still being built. For the high-level languages, there were a fair number, but they were all too slow and they couldn&#8217;t manipulate hardware. But I learned to use <a href="https://en.wikipedia.org/wiki/Simula">Simula</a>. I knew Kristen Nygaard and Ole-Johan Dahl, who invented object-oriented programming and <a href="https://en.wikipedia.org/wiki/Simula">Simula</a>.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=202">3:22</a>] And so I decided I had to merge these two. The way that was practical was to take the class concept from <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> and stick it into C so that it could run much faster and be used for systems programming. At the same time, I made the type system a bit more regular. User-defined types and classes were handled the same way as built-in types. That&#8217;s basically the start of what neither C nor <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> could do, which gets us to generic programming.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=243">4:03</a>] Eventually, many years later, I had to add overloading. We have always had overloading. You can add two integers, you can add two floating-point numbers, you can add a floating-point number to an integer with a plus. That&#8217;s a single name, right? So I had to generalize that to be able to have a unique set of rules for both built-in and user-defined types. That&#8217;s where it came from.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=276">4:36</a>] In one of the lectures that I saw that you gave, you talked about rewriting a simulator in <a href="https://en.wikipedia.org/wiki/BCPL">BCPL</a>. Is that the distributed <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> work?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=286">4:46</a>] No, that&#8217;s before that. I went to Cambridge, England, to get a PhD, and at some point, I decided I needed a simulator of software on a distributed system to do the PhD work on distributed systems. Of course, the idea of distributed <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> three or four years later came out of the same way of thinking. What I did was I wrote a really nice simulator in <a href="https://en.wikipedia.org/wiki/Simula">Simula</a>. <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> is very good at that. It&#8217;s misnamed because it was a general-purpose programming language, and its bad name didn&#8217;t help it at all.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=337">5:37</a>] But anyway, I wrote this simulator and I wrote little examples, test cases, etc. It all worked nicely. Then I tried the first real run full scale and I took the department&#8217;s mainframe and used it for a very significant time. Well, PhD students can&#8217;t do that. The chemists and the astrophysicists would never accept it. So I was kicked off the machine, and it was clear that <a href="https://en.wikipedia.org/wiki/Simula">Simula</a>.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=379">6:19</a>] I could write the program in <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> very well, but I couldn&#8217;t afford to run it. So I took the ideas and moved them to a little-used experimental computer, which was the <a href="https://en.wikipedia.org/wiki/CAP_computer">CAP computer</a>, which had hardware protection and capabilities and great stuff for hardware. It was somewhat unusual, so the astrophysicists couldn&#8217;t use it. They weren&#8217;t computer scientists as such, but I could. The only problem was I couldn&#8217;t run <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> there because <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> was never ported to that kind of machine; it was being used on mainframes and it was proprietary, and everything was wrong in the context of the <a href="https://en.wikipedia.org/wiki/CAP_computer">CAP computer</a>.</p><p>So I basically rewrote my simulator in <a href="https://en.wikipedia.org/wiki/BCPL">BCPL</a>. <a href="https://en.wikipedia.org/wiki/BCPL">BCPL</a> is a language that will make C look like a high-level language and has only one data type, the word. It was a very painful exercise, but once I&#8217;d done it, my program ran, I guesstimated about 50 times faster. I got my data and I got my PhD. So that was good. But I was convinced I would never again attempt a problem with tools that inadequate as I had tried on the mainframe in Cambridge.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=433">7:13</a>] So I basically rewrote my simulator in <a href="https://en.wikipedia.org/wiki/BCPL">BCPL</a>. <a href="https://en.wikipedia.org/wiki/BCPL">BCPL</a> is a language that will make C look like a high-level language and has only one data type, the word. It was a very painful exercise, but once I&#8217;d done it, my program ran, I guesstimated about 50 times faster. I got my data and I got my PhD. So that was good. But I was convinced I would never again attempt a problem with tools that inadequate as I had tried it on the mainframe in Cambridge.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=487">8:07</a>] And so I had a list of things that my ideal language should have, and, well, C didn&#8217;t have all of that, but it came closer than any other language that existed. C++ came out of there.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=505">8:25</a>] Yeah, in that lecture you said something like that. Writing that program in <a href="https://en.wikipedia.org/wiki/BCPL">BCPL</a> was so difficult you lost half your hair debugging.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=515">8:35</a>] That&#8217;s almost exactly true. And I lost the other half getting <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> going over the years. But anyway, it worked.</p><h3>8:46 &#8212; What Bell Labs was like</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=526">8:46</a>] You mentioned <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>, and I think there&#8217;s a lot of curiosity about that topic just because it&#8217;s such a legendary place. When you graduated from your PhD and were thinking about where to work, what was <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> known as at that time?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=544">9:04</a>] <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> was the place to go if you wanted to do practical engineering at a large scale, at sort of world class. I think it was easily the best. We probably had twice as many computer scientists as MIT at the time, things like that. The Computer Science Research Center had great people, and some of them had come from Cambridge. One day, in my last year in Cambridge, one of the people from <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> came along to give a talk.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=594">9:54</a>] And the tradition in England and in the computer lab is, after a day&#8217;s work, you go to the pub and you chat with other people to see what has been going on. He said, &#8220;Well, when you need a job, give us a buzz.&#8221; So I did, and I flew over to New Jersey on my own tab, actually. My later boss, Sandy Fraser, a great guy working with networking, told me that I&#8217;d come at a wrong time. They didn&#8217;t have any jobs. This is not what you want to hear when you&#8217;ve just flown over the Atlantic. Anyway, the next day I gave a talk to a development group, not the research group, and then they changed their minds and took me up to the research group, and I worked there for the next couple of decades.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=634">10:34</a>] This is not what you want to hear when you&#8217;ve just flown over the Atlantic. Anyway, the next day I gave a talk to a development group, not the research group, and then they changed their minds and took me up to the research group. I worked there for the next couple of decades.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=653">10:53</a>] What was the interview process like?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=656">10:56</a>] You just talk to some people. I remember having a long chat with <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a>, for instance, and I talked to people doing networking mostly. There wasn&#8217;t an interview process as such. They hadn&#8217;t actually hired anybody new for five years. So no, they just did it by the seat of the pants.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=687">11:27</a>] So it&#8217;s kind of like the belief and credibility that other people say that you have. Like <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a> talked to you and he knew that you knew what you were talking about?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=698">11:38</a>] Sandy Fraser and such. They just talk to you, see what you know and don&#8217;t know. At the end, they go to the director and say, in this case, we&#8217;ve got a good guy; can you let us have him? I, of course, didn&#8217;t know anything about that. I wasn&#8217;t there. I was out talking to somebody in California, and I get a phone call from the director saying, would you like to come and work here a week later?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=730">12:10</a>] What gave you the conviction to fly on your own tab to go? And there wasn&#8217;t even a promise of a job yet?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=737">12:17</a>] No. Well, it was the best place in the world, right? Do you need any more? If it worked, it was the best. And if it didn&#8217;t work, so what? You can&#8217;t succeed at everything.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=755">12:35</a>] Today, there are more industries that have a stronger pull than at that time. Would it have been IBM or something? That would have been the best industry.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=763">12:43</a>] I talked to IBM; they weren&#8217;t as good as the <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> Computer Science Research Center. I was up at Yorktown Heights, and I talked to the researchers and the young researchers. I just didn&#8217;t think they were doing the right stuff and not in the right way. They were much more controlled and directed than the researchers at <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=792">13:12</a>] At a place like <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>, how does project selection go?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=799">13:19</a>] I think still there are two philosophies about how to get good research. The one is that you have a well designed project chosen carefully by management and higher management, seriously funded and maybe you do put 20 or 30 people at the problem and you solve it and you have something great. The other philosophy is you hire the best people you can find and don&#8217;t tell them what to do.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=841">14:01</a>] My job was described as do something interesting in a year&#8217;s time, tell us what you did, and if we like it, we&#8217;ll extend. We will give you the same deal next year. By the way, the way you tell us is you write one sheet of paper using more than a nine-point font or more. Because if you can&#8217;t say what you did fairly briefly, you probably haven&#8217;t done something interesting enough, very unusual. So there they were actually worrying when they built <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> because it eventually involved five or seven people, and it was getting too big for that model of the world of individuals doing interesting things.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=903">15:03</a>] Very different. I would say that on average, this fairly anarchic organization did better than the well-organized one. Most of the things you&#8217;ve heard of from <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> came out of there. In another part of the building, they were doing hardware things. So fibers, as we use them today, came out of there. A lot of the wireless technology came out of there. The charge-coupled devices that are our cameras came out of there.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=943">15:43</a>] They tried to do videophones and couldn&#8217;t get it to work because hardware hadn&#8217;t grown up to it, but they were trying to do it. The system of cells for cell phones came out of not that building, but another building. For <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>, it was just a great place. The computer science people tended to talk to people doing other things. I remember when I was doing simulations, I was helping somebody build a simulator for some networking stuff.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=978">16:18</a>] A lot of early <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> had to do with doing things like what happens when a network get overloaded, how do we handle the overload protocols. And in this particular case, they did a good job. And they called me back and they had a slightly bigger problem. They wanted to simulate the computer traffic of Manhattan. Even then, my answer was no, we don&#8217;t have the compute power to do that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1022">17:02</a>] Back then, though.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1024">17:04</a>] Now they probably could, but of course the computer traffic has become much more. So maybe they can&#8217;t; I don&#8217;t know. I don&#8217;t have the numbers now. Then they gave me the numbers. That was why I declined to help them because it was impossible.</p><h3>17:24 &#8212; Dennis Ritchie</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1044">17:24</a>] I saw somewhere when I was doing research that you said you had gotten lunch with <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a> once a week for like 16 years or something like that. And you know, he&#8217;s also a very legendary name. And I was curious, you know, if there&#8217;s anything that you, you learned from him or anything that impressed you about him that maybe influenced you or <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1069">17:49</a>] He was a great guy and we talked about a lot of things. He never said anything rude or negative about <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. Actually, in his Hubble paper, he points to <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> as the obvious successor to C. So all of these C versus <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> language wars are ridiculous. They should never have happened, and they certainly didn&#8217;t happen because, well, I knew Dennis. We were not fighting. I still know <a href="https://en.wikipedia.org/wiki/Brian_Kernighan">Brian Kernighan</a>. I was talking to him this Friday.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1113">18:33</a>] We&#8217;re good friends. And yeah, language wars are silly. Dennis helped me design Const, for instance, for <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. It used to be called Read Only and Write Only, but the C guys couldn&#8217;t handle two words and they were too long. So we got what we got. But that&#8217;s one specific thing I remember Dennis being helpful with. He was a bit worried. Worried about overloading because you had to look at the declarations of functions before you knew what the meaning of a call was.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1161">19:21</a>] But that&#8217;s a very reasonable way of thinking. It just happens that it works. Anybody who writes see today are using my handiwork essentially all of the time, because the modern syntax for function definitions and function declarations and the call semantics came out of the early <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, early serial classes work of mine. So when people start ranting, they should remember that they&#8217;re actually using my handiwork every day.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1204">20:04</a>] You had written these almost like historical accountings of the history of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, like maybe three really long papers. I think for some conference I forgot the exact. And so in there, there was one anecdote about <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a>. It was about this concept where he proposed to the C Standard committee this idea of a fat pointer where it also has. It stores its size as well. You mentioned the C Committee didn&#8217;t approve.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1243">20:43</a>] Dennis did see, but he didn&#8217;t take part in the Standards Committee. I&#8217;ve even heard people from the C Standards Committee say, no, Dennis isn&#8217;t a C expert. He&#8217;s never come to meetings. Very strange attitude. But anyway, we knew the problem about buffer overflow and range errors. The obvious solution is to use what Dennis called a fat pointer, which is a pointer with its number of elements it points to attached to it.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1284">21:24</a>] But that&#8217;s two words. And that&#8217;s probably&#8212; no, that is why it wasn&#8217;t used in early <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, because then they had 48 kilobytes of memory. When I had this discussion with Dennis, I think we had a whole megabyte. When I started with <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, we had 256 kilobytes. I knew that we were going to get a megabyte. We were talking about it, and he called them fat pointers. Today in <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, they&#8217;re called span.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1324">22:04</a>] And the span came out of my work with others on the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> core guidelines. We needed something like that. We couldn&#8217;t provide the degree of control and safety that we needed. So we built span, and it came into the standard a bit later. But some of these ideas are very old.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1350">22:30</a>] When you put together really impressive people, like the world&#8217;s greatest people, you look around and see how great the others are. Even though each individual is great, just the greatness of others can give people this feeling of imposter syndrome that&#8217;s not necessarily founded. Is that something that you ever felt or saw at <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1372">22:52</a>] Definitely, maybe I still have a bit of it, but certainly when I came to <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> and saw the names on the doors and I had read the papers, they had created the fields I like to work in. Yeah, I thought I have to up my game. I have to do something bigger and better than what I had imagined. Also, you talk to them and you learn things. I learned a lot over lunch where there were a bunch of them talking about what they&#8217;re doing and why they&#8217;re doing it.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1410">23:30</a>] There are some places that have that effect on people and have the density of talent. Cambridge University was one of those places. I learned a lot there. The doors were always open. It was almost a policy that we kept the doors open because of Howells.</p><h3>24:00 &#8212; When to build a programming language</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1440">24:00</a>] And when we talk about a programming language and just generally about language design, if I wanted to build a programming language today, what are all the pieces that I&#8217;d need to create to make a programming language?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1457">24:17</a>] Well, that&#8217;s a relatively easy question to answer. Everybody asks that question, and I think it&#8217;s the wrong question. What you need is a problem that needs a solution. A lot of people just want to build a language that is better at what they are doing now and what they particularly are doing. Most of the time, that can be done reasonably well with existing languages. If you build a very specialized language, that&#8217;s fine.</p><p>But if we&#8217;re talking about more general-purpose languages, you&#8217;re then building something that, when you want to work with somebody else, it&#8217;s not ideal for them. I&#8217;m sometimes asked why <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is so big and complicated. There are two reasons. One is history. I could not build the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> I wanted back in the 80s for a variety of reasons&#8212;partly technology, partly computers, and partly because I didn&#8217;t know enough and I had to learn.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1495">24:55</a>] But if we&#8217;re talking about more general-purpose languages, you&#8217;re then building something that, when you want to work with somebody else, it&#8217;s not ideal for them. I&#8217;m sometimes asked why <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is so big and complicated. There are two reasons. One is history. I could not build the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> I wanted back in the 80s for a variety of reasons&#8212;partly technology, partly computers, and partly because I didn&#8217;t know enough and I had to learn.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1537">25:37</a>] So you do the standard engineering thing, you do the best you can, then you see what works and what doesn&#8217;t work and try to fix the problems. Then you repeat. That&#8217;s how <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> grew. There are some leftover things that just get in people&#8217;s way now. You have spans, you very rarely use pointers, and you should certainly not use pointers for resource handling. That was already built in with your classes in &#8216;79, but people didn&#8217;t get it, so there&#8217;s teaching to do.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1579">26:19</a>] But anyway, once you figure out that you have a problem that requires a new language, then you start looking at what there is, and you have lots of help, lots of books about analysis and about code generation. You have frameworks like <a href="https://en.wikipedia.org/wiki/LLVM">LLVM</a> that most of the modern languages use to generate decent code. So most of the languages that compete with <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> do it by using a C infrastructure. It&#8217;s highly amusing.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1622">27:02</a>] But anyway, focus on the problem and don&#8217;t think you&#8217;re the only user. If you think you&#8217;re the only user, you build a special-purpose programming language, and that&#8217;s fine. Domain-specific languages are great when you find the right solution to the right problem, but identify the problem first. In my case, the problem was I needed high- and low-level facilities in the same language. Otherwise, I had to use two languages, and I had to have them communicate properly.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1661">27:41</a>] High-level languages at the time tended to use interfaces that took away performance. Quite often, they required garbage collection, which is not very good for device drivers, for instance, or for building garbage collectors. So yes, identify the problem and try to solve it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1686">28:06</a>] Back when you were creating <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> and you had identified the problem, you went off to build <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, and there were all these pieces, right? There&#8217;s the compiler, there&#8217;s a linker, and in the implementations of those, there&#8217;s a parser and all those things. When you were building the original thing, what was the most technically challenging part to implement?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1713">28:33</a>] I don&#8217;t think any part was particularly challenging. It was more those many parts, as you point out. One of the things I decided that caused trouble later was that I wasn&#8217;t going to touch the linker. It came simply because I asked around and realized people were using about 25 different linkers at <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>, just in <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>. If I wanted to serve my obvious initial uses, I would have to write interfaces or modifications to 25 linkers.</p><p>And nobody wants you to touch their linker because if you make a mistake, everything breaks. So I decided on a rule: don&#8217;t mess with a linker. Later, people have messed with the linkers and made them better for <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. But that was after C became a major issue. The other thing was that there were many different optimizers. Every computer from different sources had a different optimizer, and again, I couldn&#8217;t write a dozen optimizers.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1754">29:14</a>] And nobody wants you to touch their linker because if you make a mistake, everything breaks. So I decided on a rule: don&#8217;t mess with a linker. Later, people have messed with the linkers and made them better for <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. But that was after C became a major issue. The other thing was that there were many different optimizers. Every computer from different sources had a different optimizer, and again, I couldn&#8217;t write a dozen optimizers.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1796">29:56</a>] I mean, I&#8217;m going to write a language here, right? And I can&#8217;t write. If I wanted to be an optimizer specialist for deck computers, I could become that. I have the background, I have the training, but that wasn&#8217;t what I wanted to do. I wanted to build first a distributed system, and then when my friends and colleagues started using <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> classes, I wanted to help them. They were doing things like network simulations, hardware layout, positioning of satellites, all kinds of interesting stuff.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1839">30:39</a>] So that was worth doing. I decided that actually there was a common interface to all these optimizers and code generators. It&#8217;s called C. So let&#8217;s use C as the assembler, and that worked nicely. C was very good at the low level, part of the reason I chose it. So let&#8217;s use it for the low level. I could have hidden C and recreated probably a better interface, but I decided that I&#8217;ll just use C and have C compatibility.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1881">31:21</a>] At the time, what I said was that we can have <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a>&#8216;s mistakes, which we know, and we can have my mistakes, which we don&#8217;t know yet, so we&#8217;ll take Dennis&#8217;s. That&#8217;s much more manageable and understandable, and I don&#8217;t have to teach people how to write a for loop and things like that. So that&#8217;s how C compatibility came in, partly as an implementation technique and partly to get into the culture and tool support and such.</p><h3>31:59 &#8212; Bootstrapping a language</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1919">31:59</a>] I saw somewhere in my research that <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> was used to write some part of the language toolchain, and immediately I had this thought of a chicken and egg problem. How do you use this language to build something that it is using itself? How does that work?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=1943">32:23</a>] This is bootstrapping, and it was not an unusual thing. So I started with <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. I wrote a preprocessor that did some of the fundamental things in what became <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> classes, including fairly simple inheritance and overloading. Then, in that, I wrote a simple compiler for a subset of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. Now I can use operator overloading and overloading in general classes, so I can build a scope class that handles lookup and naming and things like that.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2002">33:22</a>] And then you work from there, just writing the next version in the previous version. You keep going, and after a couple of years, you have something that became known to the world as <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. I wrote a book about it, and a compiler came out in the world. But I didn&#8217;t invent this technique. This was known as bootstrapping. I think I was taught it as an undergrad that you could do things like that.</p><h3>33:58 &#8212; C++ is not object-oriented</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2038">33:58</a>] Most people look at <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> and think that&#8217;s an object-oriented language. I&#8217;ve heard you say multiple times that that&#8217;s not the case or that&#8217;s not your immediate thought. Why is that?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2050">34:10</a>] Yeah, I never called it an object-oriented programming language. If you look at the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> programming language, the first edition, the closest I come is to say some people call these techniques object-based. Actually, it&#8217;s more focused on classes; it&#8217;s type-oriented, class-oriented. It actually supports the techniques of object orientation very well. In particular, it follows <a href="https://en.wikipedia.org/wiki/Simula">Simula</a>&#8216;s model of defining types, defining classes, and defining class hierarchies to handle groups of related classes.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2100">35:00</a>] But that was never all it was. For instance, I do not want object-oriented complex numbers. I don&#8217;t want to say 2 dot something to get to some parts of numbers. I really want to say two plus Z, and I want that to end up being roughly the same as Z plus 2&#8212;no dots, no arrows. Math has developed a notation over the last 300 years or so. Descartes was, I think, the first one to use this notation, and it is very good.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2154">35:54</a>] I didn&#8217;t want everything to be object-oriented. Furthermore, I wanted things that did not require inheritance, that did not require runtime resolution, not to use it. So for arithmetic and for complex numbers and such, I wanted Fortran compatibility. I was rather keen on what&#8217;s called reuse in those days. But I saw it slightly different from a lot of researchers. A lot of researchers wanted to build a language, a system that allowed reuse.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2198">36:38</a>] I wanted to reuse things that existed. Fortran was there with some great software, C was there with some great system software, and actually helped with compilers and such. There was a <a href="https://en.wikipedia.org/wiki/Simula">Simula</a> that was used a fair bit too. So I wanted to reuse that, and I wanted to make sure that worked. And that meant I couldn&#8217;t go too far away from the hardware. I couldn&#8217;t build all of the things that were considered ideal, or even the things I would consider ideal.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2239">37:19</a>] This is the real world; this is the real set of problems you are attacking. You have to respect the constraints that come with that view of what you&#8217;re doing.</p><h3>37:32 &#8212; Discussing type systems</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2252">37:32</a>] At the time that you wrote <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, C was already there and it had a weaker type system than what <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> eventually had. Just give your thoughts on the trade-offs behind that. Why did you choose to make the typing system stronger in <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2267">37:47</a>] Because we needed it. The weakness in the type system is one of the most obvious sources of errors, and it&#8217;s certainly one of the sources of endless testing and debugging. I hate debugging. I would much rather do design. You can&#8217;t really have either design or debugging. Some people claim they can, but they can&#8217;t. So I want to move the arrow towards more design that helps the debugging and makes fewer mistakes at runtime.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2313">38:33</a>] And the type system is one of them. And actually what you get and see today to a large extent is much stronger. Well, no, it is a much stronger type than it was in those days, and partly because of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. Also, there are things you can&#8217;t express unless you have a strong type system. I mentioned overloading before. Overloading is essential for generic programming. And if you want to write, say, a vector of T where T is a parameter type, you have to have overloading because you can only operate on T&#8217;s, providing all the T&#8217;s have the same interface for what you need.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2357">39:17</a>] So you need the type system to resolve those things, and that can be resolved at compile time. The compiler gets a bit more complicated, probably a bit slower, but you don&#8217;t need to do so much debugging. There was a large-scale experiment done at <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> in Chicago where they had some groups using C switching to <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, and they wanted to know whether they were more or less productive. Some people claimed that the slower compilation slowed them down.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2404">40:04</a>] Somebody simply measured how much compile time was used before and after switching to <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, and they found that the amount of compilation time on compute power was roughly identical. That is, <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> was slower by about a factor of two at that time. But the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> people compiled twice as often. This is just one experiment. The factor of two is just one experiment, but I wanted to move towards using more compile time resolution.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2451">40:51</a>] Still doing that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2453">40:53</a>] I mean, for every language there&#8217;s this dichotomy of having it being statically typed versus dynamically typed. And <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is one of the most famous statically typed languages. Why did you choose a statically typed language?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2469">41:09</a>] Because of the problems I wanted to attack. What do you do when you get a runtime error in something like Smalltalk? You go into the debugger, and that makes a lot of sense. If there&#8217;s a programmer sitting at a screen getting the error, it doesn&#8217;t make any sense. If a telephone switch finds a runtime error, then you have to resolve it. Furthermore, you want performance, and you want small programs to fit into memories.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2508">41:48</a>] This is true even today because I think 99% of all computers are embedded systems, and they tend to be memory constrained. Again, if you do runtime resolution, you need to have enough information, enough data to do the runtime resolution. I wanted to fit into small memories&#8212;small meaning 120k, 250k, 1 megabyte, things like that. I think it&#8217;s still relevant for many systems.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2552">42:32</a>] You can build a camera like that; it can still have several megabytes of memory. But if you put in a lot of memory, it gets bigger, costs more, and the battery runs out quicker. So we don&#8217;t do that. Phones, cameras, and things like that are still memory constrained. Statically typed languages, languages optimized for memory consumption, are just better at that. That&#8217;s why we use it; we&#8217;re using it right now.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2590">43:10</a>] I suspect that the microphones have chips in them too. There&#8217;s a lot of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> in that world. The composition there is C and assembler.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2604">43:24</a>] And you mentioned the research that was done on the compile time on</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2612">43:32</a>] If you catch things earlier, you compile less often, but maybe it takes longer in this case. I could see a similar analogy where you catch errors way earlier if you have a statically typed language because the compiler is yelling at you before you put together that final thing. Whereas in a dynamically typed language, the errors may come later.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2612">43:32</a>] You catch things earlier, you compile less often, but maybe it takes longer in this case. I could see a similar analogy where you catch errors way earlier if you have a statically typed language because the compiler is yelling at you before you put together that final thing. Whereas in a dynamically typed language, the errors may come later.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2640">44:00</a>] I don&#8217;t know any solid research on that, but you can look at it. <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a> and Python are very popular, and they are runtime checked and they run much slower. I mean, raw Python runs something like 70 times slower than raw <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. The reason it&#8217;s viable is that a lot of key Python libraries are written in C or <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> to get the performance. So you get the performance by actually getting to the point that I was starting out with.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2683">44:43</a>] You need high-level stuff, and you need the thing that can manipulate hardware. Here they are using two languages, but still the same fundamental needs. It&#8217;s easier to try out things in a dynamically typed language because you don&#8217;t have to know enough about the language; you don&#8217;t have to know about type systems. Your average web developer or astrophysicist is not a computer scientist and doesn&#8217;t want to become one.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2720">45:20</a>] So there are advantages there. But the problem is that errors found by the type system in a statically typed language are discovered at runtime later. As systems grow, performance problems start. Furthermore, it becomes harder to write reliable software. You need much more unit testing, for instance, in a dynamic language because the compiler doesn&#8217;t do it for you. If you want things to guarantee to work&#8212;like the telephone switch mustn&#8217;t crash, your car mustn&#8217;t crash, your plane mustn&#8217;t crash&#8212;you want guarantees, and they&#8217;re harder to provide in a very flexible dynamic type system.</p><h3>46:20 &#8212; Memory safety</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2780">46:20</a>] One thing that I think <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is infamous for is memory safety issues or foot guns that exist there.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2791">46:31</a>] I&#8217;m so tired of that. I haven&#8217;t had those problems for years. Somebody did a study of the obvious problems with buffer overflows and people hacking in using that kind of stuff. Almost all of these cases involve people writing C-style code or in C. Herb Sutter has a talk with actual numbers, and they are quite significant. It&#8217;s sort of that kind of problem. More than 90% are from people who don&#8217;t write modern <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>.</p><p>They use raw pointers to pass things around without the number of elements. No fat pointers, no spans. You have them in <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>; you can use them, you can use vectors. We have hardened libraries; everybody has hardened libraries that do the runtime checking. Apple has it, Google has it, Microsoft has it. It&#8217;s just not standard until now. C26 has a hardened option that is standard. The work I&#8217;m doing on profiles will give you a way of guaranteeing that you don&#8217;t do the stupid things.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2844">47:24</a>] They use raw pointers to pass things around without the number of elements. No fat pointers, no spans. You have them in <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>; you can use them, you can use vectors. We have hardened libraries; everybody has hardened libraries that do the runtime checking. Apple has it, Google has it, Microsoft has it. It&#8217;s just not standard until now. C26 has a hardened option that is standard. The work I&#8217;m doing on profiles will give you a way of guaranteeing that you don&#8217;t do the stupid things.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2892">48:12</a>] So anyway, fundamentally, theoretically, the problem was solved many years ago, and people just do what they&#8217;ve always done and get the problems they&#8217;ve always had. That makes me sad. It&#8217;s one of the things that makes me work on coding guidelines, enforced profiles, and education.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2920">48:40</a>] I mean, education is one way to solve the problem. Is there a way to get the compiler to just prevent people from doing all those risky things? And is that enabled by default in modern <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> today?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2933">48:53</a>] No, but it should be. I&#8217;m proposing that for C++29, the simpler versions of that should have been in C++26. But there are still a lot of people, even in the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> Standards Committee, that are very devoted to their old code and their old ways of doing things. There are people who say you should only standardize what is common in industry, but when the bugs are common in industry, you should do something else.</p><h3>49:26 &#8212; Standards committee anecdotes</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2966">49:26</a>] The Standards Committee is a topic I want to talk about. It&#8217;s interesting. I mean, the language is now run by a democracy. One question I wanted to ask you is if it was a dictatorship, and you had full say over what language features would be included, would that make it harder to get by?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=2988">49:48</a>] First of all, it never was a dictatorship. I never had full control. Once you have some users, in my opinion, you gain some responsibility for making sure that they&#8217;re helped and their stuff works. You can&#8217;t keep breaking the language. That&#8217;s what academic language development does. They break to improve all the time, and then they can&#8217;t maintain a user population. I didn&#8217;t actually choose to have a standards committee.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3023">50:23</a>] I chose responsibility to the community. But one day, two guys came in representing IBM and HP, and I can&#8217;t remember if it was Sun or DEC that was the third thing they represented. But anyway, the biggest computer and software suppliers in the world at the time came into my office in SH9 and said, &#8220;Well, Bjarne, do you want to help us standardize <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> under <a href="https://en.wikipedia.org/wiki/International_Organization_for_Standardization">ISO</a> rules?&#8221; I said, &#8220;No, I can&#8217;t do that.&#8221;</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3070">51:10</a>] I&#8217;m still doing experiments. It&#8217;s still not complete. So they said, &#8220;No, Bjarne, you don&#8217;t get it. Our organizations cannot use a language that&#8217;s not standardized. They cannot use a language that&#8217;s owned by a corporation that we might compete with. And we do sometimes, okay, we trust you, of course, but not your employer. We compete with them sometimes. And you can get run over by a boss. No, no, no.&#8221;</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3109">51:49</a>] We need a standard, and we need a standards committee. So this goes on for about an hour. They twist my arm. Ow, ow, ow. In the end, they said, okay, I will standardize <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> under ANSI rules just like you suggest. The computer community needs that. By the way, what&#8217;s the ANSI rule for standardization? They told me, and we started a year later. But this was the way it came about.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3145">52:25</a>] Some very important organizations wanted that standardization. <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> was on track to get standardized, and AT&amp;T, being primarily a user of software, was also in favor of standardization. I found out, and so they supported it. The documentation I had written was based on it. Actually, I rewrote the documentation that became the ARM, the Annotated <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> Standards Manual, which provided the definition, the manual of the language, and for every feature, some rationale and some way it could be implemented or was implemented.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3196">53:16</a>] And that became the foundation document for the standardization.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3201">53:21</a>] When they were strong-arming you, what if you had just said no? What would have happened?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3206">53:26</a>] Well, I think <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> would have faded into becoming an academic cube language that was loved by some small community, and it would have disappeared out of the mainstream of computing. There are people who say this stronger than I do. They say that C is spread and its usage is that it has a standard; it&#8217;s not owned by a corporation. It is one of the things that sometimes blocks the wannabe <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> killers.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3257">54:17</a>] I remember the ads for Java and people standing up saying, &#8220;We&#8217;ll kill, absolutely kill <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> in two years.&#8221; I thought that was rude. Anyway, we have 10, 12 times more <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> developers today than we had when they said it, so it didn&#8217;t work.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3283">54:43</a>] How is it that <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>&#8212;not exactly that it&#8217;s a war&#8212;but just if we looked at adoption, clearly <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> gained a lot more adoption than Java. Yet I know Java had the backing of a big company that was putting a lot of marketing dollars in, and C was kind of, I think you&#8217;ve said that it had almost zero, next to zero marketing done for it.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3313">55:13</a>] Next to zero was $5,000 to be used over three years. Sun used much more money on advertising and marketing Java than was ever used in <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> development. To this day, the standards committee has a problem. It has no funding, and that means it&#8217;s hard to do extra experiments; it&#8217;s hard to deploy things. Other language communities keep sort of stealing <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> compiler and tool developers because they&#8217;re good.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3359">55:59</a>] But it makes it hard to predict how fast we can implement things today. Last I checked, the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> standards committee had 527 members. We work on consensus because if you don&#8217;t have consensus, then you get dialects. We don&#8217;t want to have a feature that&#8217;s voted in say 60 to 40 or even worse, 52 to 48. No percent. We don&#8217;t do that. And that&#8217;s painful and tedious and good.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3405">56:45</a>] When you say consensus, that 100% need to approve is not necessary. We don&#8217;t need unanimity. We need a massive majority. And basically, I would like to see 90%, and we often do 80%. I start to worry.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3407">56:47</a>] To approve 100% is not necessary. We don&#8217;t need unanimity. We need a massive majority. And basically, I would like to see 90%, and we often do 80%. I start to worry.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3428">57:08</a>] What&#8217;s the lower bound that&#8217;s coded into the rules?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3430">57:10</a>] There&#8217;s no lower bound coded into the rules. The rule says that the convener of the <a href="https://en.wikipedia.org/wiki/International_Organization_for_Standardization">ISO</a> committee determines what is consensus. Pure numbers don&#8217;t say it. Could you imagine you had a vote, 95% versus 5%? But the implementers of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> compilers and standard libraries from Google, Apple, Microsoft, and others were all in the 5%. Is that consensus? I can reassure you that no convener would call that consensus.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3482">58:02</a>] And that makes sense intuitively. I kind of wonder, with democratic decisions, there need to be objective rules. So what if the convener made the wrong decision?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3493">58:13</a>] It happens. But you can&#8217;t just have numeric rules. Not everybody cares for the whole language. Not everybody understands what&#8217;s going on. You can vote at your third meeting. So you might have somebody with a vote that has eight months of experience with the standardization and doesn&#8217;t understand standardization and knows only what they know from their development organization that they have been part of, which might be a small one.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3535">58:55</a>] You need some judgment, and you hope that the convener has that judgment. The convener always asks the national representatives. I mean, the other way of getting a consensus is that you have a massive consensus, but you have ten countries where the representatives didn&#8217;t agree. That&#8217;s not consensus. And even when there looks, if there is a look, if everybody is for it, if it&#8217;s massive and all of that, there&#8217;s not a problem.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3575">59:35</a>] But if there&#8217;s a problem, the convener asks the national body heads, he asks the implementers, sort of key people that are necessary for getting the voted change into real use. Sometimes educators also before they make that decision. Not everybody weighs equally once there&#8217;s a disagreement.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3705">1:01:45</a>] I saw in some of your writing you said one of the most negatively received ideas you&#8217;d ever presented was Auto. I know Auto eventually made its way in there, but what&#8217;s the story behind why it was so negatively received?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3722">1:02:02</a>] At that time, it was just unusual. People thought it was weakening the type system. It also opened the door to fairly general generic programming that is not heavily syntax-based. Auto is the beginning of concepts, which is the ability to put constraints on generic code. Auto is just the simplest constraint; it must be a type as opposed to seven. Maybe I didn&#8217;t explain this well enough, and there&#8217;s a variety of backgrounds in the committee. Maybe they didn&#8217;t know languages of the generic types, such as ML and Haskell.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3784">1:03:04</a>] So it was a horrible ache. Anyway, we still got it because we needed something like that, but it wasn&#8217;t enough. I have looked at industrial software and problems with the overuse of Auto. You should only use Auto when you have an idea about what is needed there. It&#8217;s good in generic code where you go and eventually check that the type is correct, that Auto has resolved to something that supports the operations that you&#8217;re going to do on it.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3830">1:03:50</a>] And that&#8217;s what concepts formalize. But it was always checked at the end, and I noticed a group of people that was overusing auto, actually in a framework for networking. They were saying that they were being slowed down, not so much with bugs, but they had to look up the functions being called to see what that auto could possibly bind to. And then they had to put in comments that said what the auto was meant.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3871">1:04:31</a>] So you have auto, and the comment says must be an input channel. Now you simply define input channel, and then instead of saying auto, you say input channel auto. Fine. That&#8217;s what the system is. My design of that simply said that auto is the simplest concept, and you should simply only set input channel <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> equals blah blah blah. But anyway, the committee wanted an indicator that this was going on.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3910">1:05:10</a>] Oh well, I saw another anecdote about the standards committee being heated at times. You mentioned there&#8217;s this thing about shuttle diplomacy between two corners of the room. I think it was IBM and <a href="https://en.wikipedia.org/wiki/Intel">Intel</a>. They both needed different support. What&#8217;s the story behind that?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3930">1:05:30</a>] I was actually talking to Brian McKnight, who was the IBM representative at the time. We were discussing some of the things that were happening then, and it&#8217;s still remembered. So basically, IBM was doing the... What&#8217;s that architecture called?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3954">1:05:54</a>] PowerPC. And <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> was doing well. They had different models of the underlying hardware, especially coordination with the caches and things like that. The guy representing <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> wasn&#8217;t actually an <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> guy. Anyway, also a good guy. I used some of his slides in my presentations. I knew these guys, but they were totally deadlocked.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3955">1:05:55</a>] PowerPC and the x86. The <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> was doing well. They have different models of the underlying hardware, especially coordination with the caches and things like that. The guy representing <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> wasn&#8217;t actually an <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> guy. Anyway, also a good guy. I used some of his slides in my presentations. I knew these guys, but they were totally deadlocked.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=3996">1:06:36</a>] I mean, these are massive organizations with massive amounts of code out there. Basically, some things could be done. But the IBM guy, Brian, said that they had a lot of software, mostly in the lowest level, even down in the microcode, that was relying on the way they had done it. The people who had done it had left the company a long time ago, and they just couldn&#8217;t rewrite all of that code and get it right, even if the <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> guys were right.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4058">1:07:38</a>] Okay. And the <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> guys had similar arguments and similar points. This is better. We are using it. I was shuffling; they were in different corners of a large room. So I go up to the <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> guy, the guy representing <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> here, and what&#8217;s the problem? Tell me about it. Explain it. I go down, explain. He&#8217;s saying this. They say, well, there&#8217;s this, this, this. I go back again and I spent a couple of hours literally doing shuttle diplomacy, walking from one corner of the room to the other.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4098">1:08:18</a>] And we reached an agreement. That&#8217;s in <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. A couple of years later, they both agreed that they were now using a combination of what they had before and what the other guys brought in. So actually, the result was improvement, cross-pollination.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4125">1:08:45</a>] That&#8217;s funny. Why did you have to do shuttle diplomacy? Why not just a group conversation?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4130">1:08:50</a>] Because they&#8217;ve been trying that for days and probably for meetings before that, and it didn&#8217;t work. So I guess I was just translating and asking questions. I mean, those were experts. I don&#8217;t consider myself an expert at that level. I&#8217;ve done hardware, I&#8217;ve done microcode, so I&#8217;m not an amateur, but these guys are really good. So the IBM guy is now the guy doing most of the synchronization on the Linux.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4170">1:09:30</a>] We&#8217;re still using his stuff today. He has a <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> version of it, so he can get it into the bottom of the Linux kernel.</p><h3>1:09:40 &#8212; Adding automatic garbage collection to C++</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4180">1:09:40</a>] When I was reading your writing in these papers, there&#8217;s this part where it seems like in 1995 you had this idea to introduce some form of automatic garbage collection into <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. That kind of surprised me because when I think about <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, one of my immediate thoughts is, no garbage collector. We&#8217;re going to manage the memory ourselves. How would that even work?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4210">1:10:10</a>] There&#8217;s two things there. One, I wanted to automate resource management in general, not just garbage, not just memory. For that, you have constructors, destructors, and the techniques later known as RAII&#8212;Resource Acquisition Is Initialization&#8212;which is probably my worst naming ever. But I was busy at the time. So in the standards committee, those people insisted that we needed to be able to do garbage collection.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4250">1:10:50</a>] And there were garbage collectors out there. Oh, there was Hans Boehm here. He was the one representing the <a href="https://en.wikipedia.org/wiki/Intel">Intel</a> model of stuff. He has a conservative garbage collector still used today. We thought we needed an interface so that it could be standardized how you used such a garbage collector. Basically, I was listening to the users, expert users, and they thought it was necessary. I thought that support for memory management and resource management was important.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4292">1:11:32</a>] I&#8217;ve thought that from the beginning. I didn&#8217;t think garbage collection was appropriate for a lot of what I was doing. But certainly, automating the management was ideal. After a long set of discussions, we found an interface that people agreed on, and we put it into <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. What we found was that over the next 10 years, the amount of usage of garbage collection decreased as RAII, the resource management that had been there all the time, got more and better understood and was used more.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4344">1:12:24</a>] Furthermore, the people who still used garbage collectors didn&#8217;t use the standard interface because they had figured out ways of doing it better. Today, there are still a few people doing garbage collection, but it&#8217;s not part of the standard.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4363">1:12:43</a>] How does that work? Is it kind of like a wrapper around the memory allocation methods?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4368">1:12:48</a>] Yeah, okay. You have a different implementation of new or malloc or operate a new or whatever it is you&#8217;re using at your lowest level, and then delete becomes something slightly different too.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4391">1:13:11</a>] There&#8217;s this cautionary tale in the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> community about this ship, Vasa, and I was kind of curious why that&#8217;s popular.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4401">1:13:21</a>] Oh, we had a meeting in Stockholm at some point, and they have a wonderful ship that, if you ever get to Stockholm, you should see: the Vasa. It&#8217;s a battleship from the 1600s. There&#8217;s a story to that, and that&#8217;s the one I tell people. The King was ordering a battleship that should be the best and most beautiful battleship around. It was going to be a good fighting battleship and used for diplomatic visits. So it should be beautiful. They laid down the keel and started building it. Then they heard that a likely opponent was building battleships with two gun decks. This was an old-fashioned battleship with only one gun deck. If you put a one gun deck battleship next to a two gun deck battleship, the highly predictable result is a lot of holes in the one gun deck battleship, and it&#8217;s gone.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4445">1:14:05</a>] So it should be beautiful. And they laid down the keel and they started building it. Then they heard that a likely opponent was building battleships with two gun decks. This was an old-fashioned battleship with only one gun deck. If you put a one gun deck battleship next to a two gun deck battleship, the highly predictable result is a lot of holes in the one gun deck battleship, and it&#8217;s gone.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4482">1:14:42</a>] So the King orders that this ship should now have two gun decks. And they&#8217;ve already started building it. So they add another gun deck; they add cannons up there. And the King also watched. Now the ship is bigger, they want more statues and beautiful things. So it becomes a bit top-heavy. And rumor has it&#8212;I&#8217;ve never checked this rumor, so it might be wrong&#8212;that the ship designer committed suicide out of horror.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4523">1:15:23</a>] Also, a thing that I don&#8217;t believe is just a rumor was when it was built, they tested it for stability. The way you test a ship like that for stability is you take the whole crew and you run them from one side to the other back and forth, creating harmonic sway. If you can do that 14 times, then it will stand up to the Baltic and the North Sea. Rumor has it&#8212;actually, as I said, I think it&#8217;s a fact&#8212;that they did it seven times and then they stopped because it looked dangerous.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4568">1:16:08</a>] So this was 1624, I think the ship gets finished. It&#8217;s sailing out, the most wonderful ship you&#8217;ve ever seen. It&#8217;s sailing out in Stockholm harbor, trumpets blaring, flags flying, families of crew on board, the whole thing. It gets halfway across the harbor, a gust of wind comes, it kills a roar, and it&#8217;s gone. And it ends down in some place where there&#8217;s not much oxygen. So it was well preserved, and they fished it up again, and you can see it.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4616">1:16:56</a>] And so I tell this story to the standards committee and I point out there&#8217;s something they did wrong. They built more features on top without improving the foundation. Always improve the foundation to make sure that it&#8217;s not just a random set of features that you have added, because that&#8217;s complexity. Furthermore, do not compromise your testing. That&#8217;s really dangerous. And furthermore, you&#8217;ve all noticed when your high bosses say something should be done, and the high bosses don&#8217;t always know what&#8217;s right. Sometimes the professional thing is to say, no, we are not doing this.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4663">1:17:43</a>] We have to take it easy. If they had said, okay, we&#8217;ll build a one-gun deck battleship, we&#8217;ll just not call it the Vasa, call it something neutral. Then next year, you can have a battleship that&#8217;s been designed from the bottom up to be a two-gun battleship. You wouldn&#8217;t have any problems with that. But the high management, meaning the king who was in Poland at the time, so he couldn&#8217;t even see it, says, nope, must be delivered on time.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4697">1:18:17</a>] And so they delivered something on time that just couldn&#8217;t do the job. But go see the ship. It&#8217;s great.</p><h3>1:18:25 &#8212; Template instantiation is Turing complete</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4705">1:18:25</a>] At some point, someone demonstrated that the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> template instantiation mechanism was Turing complete. So what the compiler is going to do to kind of preprocess that <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> program can actually be used for computation. I was just trying to understand how that is possible. It was mentioned something about calculating prime numbers at compile time. How does that work?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4737">1:18:57</a>] Well, the prime number thing was just a curiosity. It used the error messages to report the result. But when you build something, you can get Turing completeness. You need some form of iteration or recursion, and you need a comparison. That&#8217;s about it. Then you can achieve Turing completeness. At least some of the theoreticians say, &#8220;Hey, we can&#8217;t do that. It&#8217;ll run forever.&#8221; The guy who came up with the first example of this, Erwin Unruh, actually thought I should prohibit it somehow.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4790">1:19:50</a>] I should ban it. My reaction was, &#8220;This looks useful. Great.&#8221; I think I was right. Furthermore, nothing runs forever. If you have a Turing machine, you have the tape, and the tape has to be infinite. So if you imagine building a real Turing machine the way Turing designed it, you have to have a bunch of navigators building track all the time when it gets out there. Of course, we don&#8217;t do that. The point is that the compiler will run out of resources long before we get into real problems.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4830">1:20:30</a>] Machines are finite, so the problem doesn&#8217;t become real unless there are bugs and the bugs get caught. Guaranteed. So, it&#8217;s not a problem. What happened, though, was that people were misusing templates to do simple calculations like prime numbers or trustworthiness. Sieve or calculating factorials and such. It&#8217;s so awful, and it&#8217;s so expensive, and it uses up so much memory that it becomes a problem. So that was why I and Gabbitas Reyes built constexpr, which basically says you can calculate perfectly ordinary code at compile time. It is much simpler, much more what we&#8217;re used to, and much faster to compile, usually resulting in much faster code.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4897">1:21:37</a>] And you have that today, and you have Constexpr if you want to guarantee that this is done. That takes care of the obvious misuse of the idea of templates being true and complete. It turns them into ordinary functions.</p><h3>1:21:57 &#8212; Abstraction and performance</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4917">1:21:57</a>] Generally with programming languages there&#8217;s this high level intuition that the closer to the machine you are, the higher the performance is. And I tend to see C as closer to the machine than <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, for instance.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4938">1:22:18</a>] No, it&#8217;s not the case, it&#8217;s not the case. It&#8217;s not as good as compile time calculation that <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is. And anyway, we have exactly the same machine model because C borrowed the C11 machine model. So if you write the same code in both languages, you get the same result. Except the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> compilers can do more at compile time and so <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> runs as faster, faster than C. In most cases there&#8217;s more information. If you give Optimizer more information, it can do a better job.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4980">1:23:00</a>] Okay. Yeah, because that was what I was going to ask you. You had said somewhere that <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> can be more performant than C, but I tend to think that more abstraction costs you something.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=4992">1:23:12</a>] It&#8217;s compiled away. This is why I talk about zero overhead abstraction, and people are beginning to take me to task for that because that&#8217;s understating the ability of the <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> compiler. We can do negative overhead abstraction.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5014">1:23:34</a>] What if I was really good at writing assembly and I had all the time in the world to write it? How does that compare?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5022">1:23:42</a>] If you are very smart and you have infinite time, you can do better. By and large, we are not as smart as the optimizers anymore, and we don&#8217;t have infinite time. So if we are smart enough, we can only do a small piece of code. And now the question is, did we get enough time to use our smarts? This is even starting to affect clever code. I gave a talk to Slack last year, which is a group of very performance-oriented people from the finance industry.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5073">1:24:33</a>] My title was &#8220;Don&#8217;t Be Clever.&#8221; Actually, the written title was &#8220;Don&#8217;t Be (Too) Clever,&#8221; but I can&#8217;t pronounce parentheses. I got out alive. My main point was that <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is good enough for more than 98% of your code. So if you want time to be clever, you use these techniques, and I showed modern <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. That way, you get time so you can do all the clever optimizations. The problem is, clever optimizations these days tend to be machine dependent.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5115">1:25:15</a>] That is, if you get a new computer or if you get a new version of the compiler, you might actually have pessimized your code. I&#8217;ve seen this repeatedly ever since the 80s. There are people who do nothing but use different optimizations on the next generation hardware. My standard techniques for improving things actually are to first throw away the clever stuff and then see if you run faster or slower.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5158">1:25:58</a>] Usually, you run faster because clever stuff, at least 1990s store style clever stuff, which there&#8217;s a lot of it still today, because the techniques carry on in people&#8217;s heads and some of the code remains, tends to use a rats nest of pointers, and that gives the compilers and optimizers problems. They also sometimes use more allocations, which is not good. You want to minimize memory access, you want to maximize your cache performance and things like that.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5201">1:26:41</a>] And compilers are getting very good at that. I have seen this kind of thinking. I wrote a paper about it together with a friend of mine in Spain doing fluid dynamics, and we threw away the clever stuff&#8212;actually a performance test suite example. So it was not a toy, and we got only a 20% improvement by reducing the code to about 80% of what it was before. Some people didn&#8217;t think that was significant.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5246">1:27:26</a>] I thought it was a significant proof that the technique was appropriate. You apply optimizations only when you need them. Knuth says don&#8217;t do premature optimization, but he also pointed out that 2 to 3% is where you should optimize, which is exactly the number I&#8217;m using. First, build the stuff using high-level facilities, see if it&#8217;s good enough, and if it isn&#8217;t, and you have to time it, you don&#8217;t guess your time. Then you figure out where the time is spent and then you optimize that.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5290">1:28:10</a>] But a lot of the time, you don&#8217;t need to go to that stage; it&#8217;s fast enough.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5295">1:28:15</a>] I see. So when you say cleverness here, it&#8217;s like human-level manual management to eke out performance.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5303">1:28:23</a>] Yes.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5304">1:28:24</a>] And you&#8217;re saying that actually if you don&#8217;t do that, you&#8217;re giving the compiler more to optimize, and it can do a good job. It&#8217;s much, much better than it used to be. Code that was cleverly and correctly optimized in the 1990s is often pessimized today because machine architectures have changed and the compilers have improved.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5311">1:28:31</a>] A good job, and it&#8217;s much, much better than it used to be. Code that was cleverly and correctly optimized in the 1990s is often pessimized today because machine architectures have changed and the compilers have improved.</p><h3>1:28:51 &#8212; AI writing code</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5331">1:28:51</a>] When I look at the industry today, more and more code is being written by machines than by humans. I feel like a lot of programming language design is thinking about how to make it amenable to humans solving problems and writing the code. I&#8217;m curious if you have any thoughts on whether you think programming language design will change if more and more of the code is written by models and machines.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5363">1:29:23</a>] I think that in the field I&#8217;m mostly interested in, code will still be written by humans, and they will use abstraction. The examples I&#8217;ve seen of attempts for AI to generate code in this domain have not been successful. They generate more bugs, more security holes. They have bloated code, which pessimize again because you use more memory, and it&#8217;s hard to validate. The senior developers that would be needed to validate it have started to retire because they don&#8217;t want to deal with the validation of something that changes every time you make a change in your code or your prompts. Furthermore, a lot of the things I think about involve regulatory bodies for this validation. You have to be able to validate what you changed. When you make a change and the AIs, the tools change, even if you make a slight difference in the prompt, a lot of the code will change, and you have to check it again.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5408">1:30:08</a>] I&#8217;ve seen some of them starting to retire because they don&#8217;t want to deal with the validation of something that changes every time you make a change in your code, in your prompts. Furthermore, a lot of the things I think about involve regulatory bodies for this validation. You have to be able to validate what you changed. When you make a change and the AIs, the tools change, even if you make a slight difference in the prompt, a lot of the code will change, and you have to check it again.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5447">1:30:47</a>] All of the code that was generated knows more code generated than if it was written by humans. When a human makes a change, it will make a change that&#8217;s localized. You can look for the effects of that localized change. If an AI writes it, you don&#8217;t actually know where it&#8217;s changed. You have to try and figure that out. So if you&#8217;re doing something that has been done many times before, like writing a standard web app, what you say is correct.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5482">1:31:22</a>] Also, AI is not useless. That&#8217;s not what I&#8217;m saying. It can be used to write documentation. Again, it has to be humanly validated, but it helps write things. It&#8217;s good at text. It&#8217;s not, at least now, good at safety-critical, performance-critical code. Now, let&#8217;s say that 70 or 80% of the world&#8217;s code doesn&#8217;t fit that pattern. But it&#8217;s that 10 or 20% of the code that I&#8217;m interested in. And there, it&#8217;s not there.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5529">1:32:09</a>] And I don&#8217;t see it coming with the LLM model. Furthermore, when fed with training data, it has to be trained with old code. My job, as I see it, is to make sure people write new things and use new techniques that are improvements over the old code. I find that LLM-based code is imitating old code and getting old performance and old bugs again. Maybe you can improve that. I hear rumors of Bjarne apps being written that fit my writings, but even that is problematic because I&#8217;m not saying exactly the same as I did 20 years ago.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5586">1:33:06</a>] But anyway, we&#8217;ll see. Also, even Dijkstra was looking into the possibility, and he claimed that the idea of having natural languages as the programming language was idiotic. He&#8217;s less polite than I am. I think that a language like English is very flexible, and what we say is often very ambiguous. We need a programming language that&#8217;s precise, that&#8217;s engineering, that&#8217;s math; it&#8217;s not English.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5628">1:33:48</a>] And for that code that is performance or safety critical, I imagine there will be some group of people using LLMs for that. Based on what you&#8217;re saying, the intuition is that you would foresee more breakages and bugs because it&#8217;s not valid.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5650">1:34:10</a>] People that are really good at that kind of stuff tend to not want to spend all their time validating. Another problem is that they want to eliminate junior programmers because there are lots of them. But if you do that, where do you get the senior programmers from? We&#8217;ll see. I mean, you can ask me the same question again in ten years, and there will be more knowledge. Undoubtedly, some of what I said will not be correct. And my guess is some of what I say will be correct in ten years. I&#8217;m always told by AI proponents that either the problem has already been solved or it&#8217;ll be solved in the next release. But I hear <a href="https://en.wikipedia.org/wiki/Anthropic">Anthropic</a> 4.7 is having more problems than 4.6 for reasons I don&#8217;t understand. The idea that the next version will solve the problem is always a dangerous assumption. Furthermore, it&#8217;s getting more and more expensive.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5682">1:34:42</a>] And my guess is some of what I say will be correct in 10 years. I&#8217;m always told by AI proponents that either the problem has already been solved or it&#8217;ll be solved in the next release. But I hear <a href="https://en.wikipedia.org/wiki/Anthropic">Anthropic</a> 4.7 is having more problems than 4.6 for reasons I don&#8217;t understand. The idea that the next version will solve the problem is always a dangerous assumption. Furthermore, it&#8217;s getting more and more expensive.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5723">1:35:23</a>] If you have to build a $100 million center and use and run the electricity for it, how many junior developers does it take to be cheaper? They&#8217;re starting to need money. It&#8217;s not unproblematic. And I&#8217;m in a subfield where it is probably more problematic than most.</p><h3>1:35:54 &#8212; His motivation</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5754">1:35:54</a>] One thing I saw in a profile that you did is they asked you what keeps you going on <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> or what motivates you, and you said one is the fun of kind of building the future. The second thing was the obligation to make sure <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> moves forward. When you started <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, I can&#8217;t imagine you knew that you were embarking on a journey for decades.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5781">1:36:21</a>] And so not decades, but I knew it was a longer journey because I knew I couldn&#8217;t build the language I wanted. I could build a subset of it. There were two reasons for that. One was, well, I was the team that did it. Secondly, there was a lack of resources and a lack of time. I didn&#8217;t have the input needed to make sure that what I designed was right. So we have the engineering issue: build what you can, see what works, improve it.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5819">1:36:59</a>] And so I knew I was getting into something like that. I knew I was building a language meant to evolve. And meant to evolve means that you make certain decisions in knowing that that is different. For instance, that&#8217;s one reason <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> wasn&#8217;t just an object-oriented programming language. Because I could see in the world that there were things that didn&#8217;t seem to fit that paradigm. And so I knew we would evolve.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5855">1:37:35</a>] The other half of that answer to that question, what keeps me going is applications. It&#8217;s really nice to see interesting uses and such. I was at JPL and I talked to the people who are doing the Mars rovers. That&#8217;s cool stuff. I&#8217;ve been to CERN. I&#8217;m going to CERN this summer to see how you do high-energy physics. I don&#8217;t know anything about high-energy physics. Well, probably more than the average, but nowhere near being a physicist.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5890">1:38:10</a>] And so you can go there and see they do interesting things, and there are things that surprise you. I was talking to a guy at CERN some years ago, and his job was to open and close doors. These doors weigh a couple of tons and are made of lead; they move across to close off an area to protect against radiation or something like that. I don&#8217;t know the details, but the point is he has to start up this door, which is not too hard. You have engines. But then you have to make sure you stop it. Because when you have a couple of tons this wide going into a wall, it will not stop. Normally, you have to write. And the code for that was interesting. I learned something. I still travel around and talk to people and see what <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is being used for, what it can be used for, and what it can&#8217;t be used for. Just learning and learning is fun.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5925">1:38:45</a>] You have engines, but then you have to make sure you stop it. Because when you have a couple of tons this wide going into a wall, it will not stop. Normally, you have to write. The code for that was interesting. I learned something. I still travel around and talk to people and see what <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is being used for, what it can be used for, and what it can&#8217;t be used for. Just learning is fun.</p><h3>1:39:18 &#8212; Famous quotes</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5958">1:39:18</a>] There&#8217;s a few quotes that you have which I thought would be interesting. If you could just give some context behind them. One of the quotes is, &#8220;<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> makes it easy to shoot yourself in the foot. C makes it harder, but when you do, it blows your whole leg off.&#8221;</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=5978">1:39:38</a>] Somebody asked a question at a talk I was given in Boston back in the 80s, and I shot that one back not thinking, but it&#8217;s a good quote and it&#8217;s correct. Arno Penzias got a Nobel Prize in Physics, so he&#8217;s not a nobody. I was trying to explain to a large group of <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> managers about <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, and he said, &#8220;You can&#8217;t have a power tool without knowing how to use it.&#8221; So if you have a saw, you saw like this.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6022">1:40:22</a>] If you have a power saw and you try to do that, it&#8217;ll bounce, and you will have to be very lucky not to get hurt. Notice it&#8217;s roughly the same story. What is behind that is if you get a power tool and you misuse it, you will encounter more problems. Get a car that accelerates faster, and it can wrap you around a tree in a way an old-fashioned, slow-accelerating car can&#8217;t. It&#8217;s fundamental to having power tools.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6063">1:41:03</a>] You also have this other great quote: nobody should call themselves a professional if they only know one language. Obviously, you&#8217;d recommend people learn <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, but if they had to know a second or a third language for the sake of being a better engineer or programmer, what would you recommend?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6082">1:41:22</a>] Yeah, and if you&#8217;ve heard, if you&#8217;ve seen that interview, you&#8217;ll know I waffle on that deliberately. It is not so much which other languages you know, but that you get a set of ideas that are embedded in those languages. So what you should do is learn languages that are different from yours. I&#8217;m not too fuzzy about which languages they are. I think I said learn a scripting language today that would be Python or <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6127">1:42:07</a>] Then I guess it was <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> shell or something like that. Have a look at a functional language. ML or Haskell would be obvious solutions. Or just pick something different. The point is that you mustn&#8217;t get stuck with just what&#8217;s in your language. It&#8217;s not good for you to be monoglot. I mean, you know what you call somebody who knows three languages? Trilingual. Who knows two languages? Bilingual. One language? American is a very popular joke, at least outside America. And it&#8217;s the same idea with programming languages. But it&#8217;s more important with programming languages, I think, because you&#8217;re building things, and you should broaden your mind with ideas and techniques.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6163">1:42:43</a>] American is a very popular joke, at least outside America. It&#8217;s the same idea with programming languages. But it&#8217;s more important with programming languages, I think, because you&#8217;re building things, and you shouldn&#8217;t. You should broaden your mind with ideas and techniques.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6188">1:43:08</a>] Another quote is, &#8220;People who think they know everything really annoy those of us who know we don&#8217;t.&#8221; I was curious about the context behind that or your thoughts on it.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6199">1:43:19</a>] Well, that&#8217;s. I mean, that&#8217;s very simple. There&#8217;s so many people who think they&#8217;re simple solutions to just about everything in the world. In this context, they&#8217;ll come and tell me how much simpler <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> could be. And this is true. If you only want to do one thing, usually the one they have in mind, you can make a much simpler language. But this is like if we threw away this part of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, it will be much simpler and nicer.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6237">1:43:57</a>] Usually, they want to throw away things like <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, but then you annoy a few million people, and you don&#8217;t actually succeed because they&#8217;ll stick to the old stuff. So it&#8217;s a way of expressing my frustration with people who oversimplify. People think they can program without learning to program. They think they can be engineers without learning engineering. They think they can be politicians without knowing how to run a company or a country.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6276">1:44:36</a>] Oversimplification annoys me, and I probably shouldn&#8217;t express annoyance. I very rarely do, but in this particular case, my frustration showed.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6290">1:44:50</a>] Yeah, I saw somewhere in response to <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> being difficult for some people, that programming should be approachable and anyone can learn programming. I think you expressed the opinion that <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is not necessarily for everyone; it&#8217;s for serious programmers.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6311">1:45:11</a>] Yeah, I mean, the first line of the C programming language, version one, first edition, was, &#8220;C is designed to make life more pleasant for the serious programmer.&#8221; I took away the first version, which was professional, because I saw amateurs, and it was really, really good. A serious programmer is probably programming for somebody else. If you program for yourself, it doesn&#8217;t matter; it&#8217;s you, and that&#8217;s your problem.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6356">1:45:56</a>] If you do it for your friends, you can lose friends. If you build something for a million people, you can do harm in the world. And so that&#8217;s what it&#8217;s for. I mean, Guido van Rossum built Python with the explicit aim of allowing many people, or even everybody, to program. And he succeeded. I designed <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> to be a really good tool for serious programmers, engineers, mathematicians, and such. And I succeeded too.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6398">1:46:38</a>] It&#8217;s just not the same problem. Remember where we started? I said the problem, look at the problem, and then learn from what worked and what doesn&#8217;t.</p><h3>1:46:48 &#8212; Reflecting on building C++</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6408">1:46:48</a>] Looking back on <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> and the whole journey, is there any part where you think, &#8220;Oh, that was a mistake,&#8221; or something that you learned from in the design?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6420">1:47:00</a>] Many, many times I learned something. I think most of the things never made it into <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. That is, this is what you have experiments for, and that&#8217;s what you have initial uses for. I think I got the major part of the language right, and I think I could improve every single detail. But stability and compatibility are essential. If you make an insignificant change, it will annoy a few people, and it wouldn&#8217;t matter. If you make a significant change, you will annoy a lot of people, and it will not work because, say, a million people will stick to the old way. So I try to grow the language without breaking it. I have this thing that happens again and again. I explain it. People come up and say to me, &#8220;<a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is too complicated. You must simplify it.&#8221; And I need these two features. I need them yesterday. You must, when you&#8217;re doing this, give me these two features.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6468">1:47:48</a>] If you make a significant change, you will annoy a lot of people, and it will not work because, say, a million people will stick to the old way. So I try to grow the language without breaking it. I have this thing that happens again and again. I explain it. People come up and say to me, <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> is too complicated. Yeah, you must simplify it. And I need these two features. I need them yesterday. You must, when you&#8217;re doing this, give me these two features.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6514">1:48:34</a>] Yes. And whatever you do, don&#8217;t break my code. I have a million lines of it that doesn&#8217;t work. That&#8217;s impossible. And so that is why I&#8217;m working on coding guidelines and on profiles, which are enforced guidelines. That way, you can design a profile that ensures you can use the libraries that you need and ensures that you don&#8217;t misuse the features that are unnecessary and dangerous in your field.</p><h3>1:49:12 &#8212; Top C++ book recommendation</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6552">1:49:12</a>] For anyone who wants to learn <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>, what is the top technical book recommendation you have?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6562">1:49:22</a>] There&#8217;s a book I wrote when I was teaching undergrads. This is accidental; I didn&#8217;t mean it to be there. Anyway, this is the second edition of Programming Principles and Practice Using <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. This is a big fat book written for undergrads. The third edition is not as thick because the language has improved, and I can actually get the ideas across better with less text.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6599">1:49:59</a>] But use the latest <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. Learn the modern way first. Don&#8217;t start learning all the bad ways of writing C as the starter. A lot of courses still say you learn C first, so you learn to misuse malloc and pointers. Then later, you can learn how to use a vector and a string and not have the problems. But yeah, profiles are there to enable compiler and static analyzer support for that kind of thinking.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6640">1:50:40</a>] And educators are asking for something like that too. A lot of people think profiles are simply to deal with memory safety and performance. No, it has to give people a better tool both for learning and for doing specific kinds of work.</p><h3>1:50:59 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6659">1:50:59</a>] And then the last question for you is, if you could go back to the beginning of your career and give yourself some advice, what would you say?</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6666">1:51:06</a>] Oh dear. Yeah, that&#8217;s the time machine question. I sometimes set that for my students. You have a time machine. Go back and give Dennis some advice. And once you&#8217;ve done that, step 10 years forward and give me some advice. It&#8217;s a good exercise. I usually get some really good stories out of it. Some suggestions. I think a lot of&#8212;I tried to avoid the two-way conversions of the building types in <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. I should have fought harder for that.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6718">1:51:58</a>] I tried but was stopped by the people in <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a>, and these were more experienced people than me. I should have gone further there. Furthermore, I should have delayed the release of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> until I could have something template-like so I could do a better standard library. It wouldn&#8217;t have been good enough, but it would have gotten people into the habit of using a standard. Everybody was building standard libraries, and we got saved by Alex Stepanov with the STL.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6761">1:52:41</a>] But that was real luck because I made a mistake in not delaying until I could have built a good vector and class hierarchy. And then finally, if I&#8217;d known what I know now about standards committees and bloated bureaucracies&#8212;and we have more subgroups now than we had members to start out with&#8212;I would have tried very hard to set up some kind of steering group so that people could make suggestions.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6807">1:53:27</a>] But we wouldn&#8217;t have a vote with, say, 500 people. We would have suggestions from a community of 500 people, and we would have maybe a group of five or six people with vast experience who cared for the whole language and made the decisions based on what was proposed. Something like that. But I did not have the experience or the knowledge to make such a suggestion. Notice that I did not mention tools.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6843">1:54:03</a>] <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> has a weakness in tools, and that was because it grew up early in a time with limited tools, limited compute power, and limited memory. One constraint on the exercise I give to the students for time machines is to try and make sure that it would be possible to follow your advice. If I just said I want this, then a lot of the things couldn&#8217;t be done until 20 years later and therefore would never have happened.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6889">1:54:49</a>] There&#8217;s a lot of languages designed to be perfect for the future computers and the future programmers. Most of them die because by the time ten years later they get the language, the world has changed.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6907">1:55:07</a>] On that first one, I imagine that would have been really tough to do because the <a href="https://en.wikipedia.org/wiki/Bell_Labs">Bell Labs</a> people were so senior.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6915">1:55:15</a>] I failed. I tried, but it&#8217;s obvious that you don&#8217;t want narrowing conversions. I even wrote a paper about how to get rid of them last year in a library. But it is a fundamental flaw in the type system of <a href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a>. It came because they needed, being people like <a href="https://en.wikipedia.org/wiki/Dennis_Ritchie">Dennis Ritchie</a> and the <a href="https://en.wikipedia.org/wiki/Unix">Unix</a> team, to handle both integers and floating point. They didn&#8217;t think of explicit type conversion and thought explicit type conversion was too clunky.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6959">1:55:59</a>] They didn&#8217;t actually get casts until about five years after they got floating point integers. And of course, you have to be able to turn a floating point into an integer, right? So that you get implicit conversions whenever you can. Also, things like integers into characters are problematic. But since you are writing fundamental software, you didn&#8217;t want to write something complicated, and you didn&#8217;t want to have runtime checking.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=6993">1:56:33</a>] You couldn&#8217;t afford that. It was established long before I came, and my attempts to deal with that failed.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=7007">1:56:47</a>] It sounds like it wasn&#8217;t for no reason. It saves resources, maybe, or is very limited.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=7013">1:56:53</a>] They didn&#8217;t have the resources to deal with it. They built lint, the static checker, to deal with some of it and small machines. Another thing was that that group of programmers was significantly smarter and significantly more experienced than the average developer. Today we have the law of large numbers. I think the latest estimate I&#8217;ve seen on the number of software developers in the world is 47 million.</p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=7048">1:57:28</a>] And at that time with <a href="https://en.wikipedia.org/wiki/Unix">Unix</a>, the number of programmers was probably a few dozen. The ones that didn&#8217;t have a PhD from a good university were geniuses. It&#8217;s easier to get a PhD than to be a genius. They offered a different set of problems with a different set of machines and a different set of people. Boy, it was a pain and still is.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=7082">1:58:02</a>] Awesome. Well, thank you so much for your time, <a href="https://en.wikipedia.org/wiki/Bjarne_Stroustrup">Bjarne Stroustrup</a>. I really appreciate it.</p><p><strong>Bjarne:</strong></p><p>[<a href="https://youtu.be/U46fJ2bJ-co?t=7085">1:58:05</a>] Okay, thank you.</p>]]></content:encoded></item><item><title><![CDATA[Takeaways from Harvard CS Professor David J Malan]]></title><description><![CDATA[Lecturing well, AI's downstream impact on students, why learn C in 2026]]></description><link>https://www.developing.dev/p/takeaways-from-harvard-cs-professor</link><guid isPermaLink="false">https://www.developing.dev/p/takeaways-from-harvard-cs-professor</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 11 May 2026 14:21:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/bB2o81DnKHk" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/malan/">David J. Malan</a> is a Harvard professor known for turning CS50 into a world-class, freely-available online course. I wanted to ask him about how he lectures since students always say that is what sets his course apart.</p><p>Also, since he&#8217;s on the ground floor of CS education I wanted to know how AI was impacting students outside of the rumors I see on social media.</p><p>Below are my top three takeaways to save you time.</p><p><em>You can find the full conversation on <a href="https://youtu.be/bB2o81DnKHk">YouTube</a>, <a href="https://open.spotify.com/episode/0ApdN6bBzzpiy4zHf9RvJA?si=ILpPmLL-TCqYMRmbhuPlDg">Spotify</a>, or <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>. The transcript is on <a href="https://www.developing.dev/p/harvard-professor-cs50-what-matters">Substack</a> if you prefer to skim.</em></p><div id="youtube2-bB2o81DnKHk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bB2o81DnKHk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bB2o81DnKHk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="callout-block" data-callout="true"><h3><strong>Brought to you by:</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!32cf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!32cf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 424w, https://substackcdn.com/image/fetch/$s_!32cf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 848w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1272w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!32cf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png" width="450" height="81.28434065934066" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:263,&quot;width&quot;:1456,&quot;resizeWidth&quot;:450,&quot;bytes&quot;:250860,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://www.developing.dev/i/197216250?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!32cf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 424w, https://substackcdn.com/image/fetch/$s_!32cf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 848w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1272w, https://substackcdn.com/image/fetch/$s_!32cf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fccff88b0-f9b7-4398-9c75-fb855fc5bbe1_9065x1635.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em><a href="https://www.developing.dev/p/cursor.com">Cursor3</a>: a unified workspace for building software with agents. I used it to build tools for the podcast and shared the process in this episode&#8217;s ad read.</em></p><p><em><a href="https://workos.com/">WorkOS</a>: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code</em></p></div><h1>Takeaways from the conversation:</h1><p><strong>1) How he lectures well</strong> - I was most curious about this since most professors don&#8217;t teach in a way that gets students excited like David does. He attributes his success to two main factors. </p><p>First, he makes sure to design a &#8220;memorable moment&#8221; in each lecture. This is usually some fun, visual exercise that gives students a unique moment to anchor their memory to. His classic example is ripping a phone book in half to demonstrate binary search. People often say to him years later that they still remember those moments and the concept he was teaching.</p><p>Second, he brings as much energy as possible often motivated by insecurity. He said that one of his worst fears is being in front of a bored audience. He also feels he owes it to the students to represent the subject in a way that makes them want to learn.</p><p><strong>2) AI&#8217;s downstream impact on enrollments and cheating - </strong>Less students are enrolling in computer science. Part of it is fear, but a stronger motive is that companies just don&#8217;t come to hire from Harvard like they used to. David said they just don&#8217;t seem to be hiring as many junior engineers as before.</p><p>The more interesting part to me though was how AI is impacting cheating. He said although cheating has stayed consistent at 5-10% of the student body each semester, what has changed is how hard it is to prosecute cheaters. When people cheat now using AI, they get answers that are difficult to attribute to a source. That makes it harder to hand a smoking gun to the adminstrative board.</p><p><strong>3) Why learn C in 2026 and the most challenging concept to learn</strong> - C is such an old language at this point so some people critique why you&#8217;d need to learn that today. His argument was that C is low-level so you can learn how the computer works without being too low-level like assembly code. </p><p>Also, since it is such a small language it forces students to reimplement basic data structures which is a great learning exercise. </p><p>He taught so many years of the same introductory courses so I asked him what concept gave people the most trouble. He answered immediately that it was pointers. If you understand pointers well you should feel proud!</p><div><hr></div><p>We talked about a bunch of other topics too but these are the three I figured would be most interesting.</p><p>As I experiment with ad reads, two things I&#8217;m sure of are:</p><ol><li><p>Only place an ad after value is delivered, say ~30 minutes of content before an ad is shown</p></li><li><p>Keep ads brief, ideally &lt;1min</p></li></ol><p>One thing I&#8217;m not sure of though is if people prefer ads to be placed all clumped together or spaced out. People who listen to podcasts, please vote below so I can get a sense of what you prefer:</p><div class="poll-embed" data-attrs="{&quot;id&quot;:510717}" data-component-name="PollToDOM"></div><p>As always, thanks for reading!<br>Ryan Peterman</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.developing.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support my work:</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan]]></title><description><![CDATA[David J.]]></description><link>https://www.developing.dev/p/harvard-professor-cs50-what-matters</link><guid isPermaLink="false">https://www.developing.dev/p/harvard-professor-cs50-what-matters</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 11 May 2026 09:01:28 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/197111000/703cbf8fbaeabbfd158b55ab272b5f3b.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/malan/">David J. Malan</a> is a Harvard professor known for turning CS50 into a popular online computer science course. We discussed the story behind CS50, how to lecture well, and how AI is changing CS education including in cheating/academic dishonesty.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/bB2o81DnKHk">YouTube</a>, <a href="https://open.spotify.com/episode/0ApdN6bBzzpiy4zHf9RvJA?si=ILpPmLL-TCqYMRmbhuPlDg">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-bB2o81DnKHk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bB2o81DnKHk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bB2o81DnKHk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/197111000/109-getting-into-computer-science">1:09 - Getting into computer science</a></p><p><a href="https://www.developing.dev/i/197111000/327-becoming-the-professor-of-cs50">3:27 - Becoming the professor of CS50</a></p><p><a href="https://www.developing.dev/i/197111000/1119-how-to-lecture-well">11:19 - How to lecture well</a></p><p><a href="https://www.developing.dev/i/197111000/1425-depth-vs-engagement-in-education">14:25 - Depth vs engagement in education</a></p><p><a href="https://www.developing.dev/i/197111000/1811-why-don-t-we-consolidate-educational-resources">18:11 - Why don&#8217;t we consolidate educational resources</a></p><p><a href="https://www.developing.dev/i/197111000/2320-why-start-with-c">23:20 - Why start with C</a></p><p><a href="https://www.developing.dev/i/197111000/3151-the-ideal-use-of-ai-in-education">31:51 - The ideal use of AI in education</a></p><p><a href="https://www.developing.dev/i/197111000/3454-cheating-and-ai">34:54 - Cheating and AI</a></p><p><a href="https://www.developing.dev/i/197111000/3821-should-we-really-learn-cs-still">38:21 - Should we really learn CS still?</a></p><p><a href="https://www.developing.dev/i/197111000/4524-college-vs-online-education">45:24 - College vs online education</a></p><p><a href="https://www.developing.dev/i/197111000/4706-the-most-difficult-concept-to-learn">47:06 - The most difficult concept to learn</a></p><p><a href="https://www.developing.dev/i/197111000/5100-growth-vs-fixed-mindset">51:00 - Growth vs fixed mindset</a></p><p><a href="https://www.developing.dev/i/197111000/5235-the-future-of-cs50">52:35 - The future of CS50</a></p><p><a href="https://www.developing.dev/i/197111000/5556-biggest-career-regret">55:56 - Biggest career regret</a></p><p><a href="https://www.developing.dev/i/197111000/10029-top-book-recommendations">1:00:29 - Top book recommendations</a></p><p><a href="https://www.developing.dev/i/197111000/10236-advice-for-his-younger-self">1:02:36 - Advice for his younger self</a></p><h1>Transcript</h1><h3>1:09 &#8212; Getting into computer science</h3><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=69">1:09</a>] Yeah, it&#8217;s a really good question. So I was that problem set. My first hello World program was in September of 1996 when I first stepped foot in a class called <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>. I was a sophomore at the time and hadn&#8217;t honestly gotten up the nerve until sophomore year to even consider taking the class. Like when I came into college first year. And this is a story I tell at the very start of <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>. Most years I really gravitated toward fields that were more familiar, more comfortable for me and I share with students that I really liked Constitutional law, like that was my favorite class in high school.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=101">1:41</a>] And I figured that meant when you get to college I should probably major or concentrate as we say at Harvard, in government. And so for the first year, year and a half, I was heads down focused on studying government. But when I finally got up the nerve to follow some friends, I think into the <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> classroom that day when this very well reputed computer scientist <a href="https://en.wikipedia.org/wiki/Brian_Kernighan">Brian Kernahan</a> was at the helm for just that one year, I was totally hooked.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=125">2:05</a>] And it was the first time in like 19 years that homework was fun. So much so that when the week&#8217;s problem sets or assignments would come out, I would look forward to going back to my dorm on Friday evenings to work through the night on my <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> problem sets. So I felt like that was a sign that I&#8217;m supposed to study computer science.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=142">2:22</a>] And I, I saw on that assignment it says minus two and this little there&#8217;s a little note there that I actually couldn&#8217;t quite quite make out. Looking back now as the teacher, why did you get a minus two there?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=155">2:35</a>] It was something stupid and very easily redressible. But I did not start off computer science or <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> on the best foot. I got -2 out of probably 2 points on hello World.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=166">2:46</a>] I transcribed it and I tried to compile your program and it didn&#8217;t compile interest.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=172">2:52</a>] Okay, so thanks, 30 years later I learn it should&#8217;ve been minus 3.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=175">2:55</a>] Actually I was able to compile. It&#8217;s kind of interesting, but you have to kind of force the compiler to do your bidding. It&#8217;s like void main and you&#8217;re supposed to be like int main typically.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=189">3:09</a>] Typically. Now it has since been standardized in <a href="https://en.wikipedia.org/wiki/C99">C99</a>, which was in my defense a version of C that did not exist in 1996. And nowadays we use C11 or newer in <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, so you probably had default compiler settings on that did not like that old fashioned main signature. In my defense, that part was correct.</p><h3>3:27 &#8212; Becoming the professor of CS50</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=207">3:27</a>] In 1996, what was the the story behind you going from a student to the teacher?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=214">3:34</a>] Eventually I had an opportunity my senior year of college to teach an introductory course in computer science at Harvard&#8217;s Extension School, which is the continuing ed program largely for adults. The course was literally called Introduction to Computers and the Internet, because in 1999 we were still in the habit of introducing people to computers and the Internet as opposed to taking it for granted more so nowadays.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=234">3:54</a>] And it was me. In a room full of hundred or so adults, I was easily the youngest person in the room at like 21 years old. The story I usually share is that that was the first and last time I wore suspenders because I was so determined to project being older even though I was still just a senior. But that really whet my appetite in turn not only for more computer science, even though that was very introductory and more technology focused for teaching.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=259">4:19</a>] And over time I real over the next few years I realized that doors would be closed to me if I wanted to teach at a place like Harvard College. And I eventually returned to Harvard to do my PhD for five years in computer science. And then in 2007 when I was finishing up, the former professor, my own advisor, was moving on to be dean of the school. And so there was this vacancy at the helm of <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> and I somehow talked my way into the job.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=283">4:43</a>] They were interested in having a senior faculty member take over the course. I guess they weren&#8217;t able to find someone that first year, so I was meant to fill in for just one year until they found someone else.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=297">4:57</a>] when you took over <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>. It feels like the course completely changed when you got into it. Was your first thought, I want to take this online and kind of make all these major changes, or was that a process over time?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=314">5:14</a>] Very much a process. And so what people see now is really a evolution of the class, as opposed to some overnight revolution, so to speak. The online aspect really started with Harvard Extension School, since I was fortunate right place, right time to be teaching that extension school course my senior year, when distance education, so to speak, was becoming a thing. And my mentor and boss, Henry Leitner at Harvard, offered me the opportunity not only to teach this class, but also to put it online, I think in the year 2000, give or take.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=343">5:43</a>] The very first year I taught it, spring of 1999, we were still filming the class, but on VHS. And fun fact, at the time, it was the course&#8217;s teaching fellows who were, in fact, my friends, who were also undergraduates at the time, who, who were doing the filming and operating a tripod with a camera. And I swear to God, we still have footage, probably on some VHS tape of one of the cameras going when one of my dear friends and teaching fellows fell asleep during the middle of class.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=368">6:08</a>] So we&#8217;ve aspired to higher production value since, but it was really, it happened very organically. So once we started participating in the extension school&#8217;s online education program for several years, Apple released the iPod around 2003 or 4, give or take. And so at the time, we were distributing the course&#8217;s video via real video and or real audio, which are older technologies now, but were state of the art for streaming at the time.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=395">6:35</a>] We figured out a way how to sort of download all of those bits for redistribution as MP3s initially and put them on itunes, which back in the day you could upload, and maybe still today, your own RSS file, which is a flavor of xml, which is kind of similar to HTML, but more custom, that just describes what and where your audio files are. And we made this available primarily for our own Harvard Extension School students, because at the time, even though it was very progressive to have streaming, it was a little annoying that you needed a constant Internet connection.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=423">7:03</a>] Buffering hadn&#8217;t really been invented yet. Certainly downloading those videos was, by design not possible. But with podcasting, of course, you could download the assets in advance. And for our own students, the vision was that they could listen to the class only on audio at the gym or during their commute and just generally make the educational Content a little more accessible. A year or two later, Apple released the video ipod.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=444">7:24</a>] And so we very much steered into that and downloaded those same assets, but in video form, to make them available on the video ipod and people&#8217;s Macs and later PCs. And we were fortunate around that time, early 2000s, where Wired magazine took notice and noted for us that we were among the most popular podcasts in some category. And it was kind of news to us that people cared. We did know that we were starting to see bandwidth problems at the very early days.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=470">7:50</a>] In the very early days, we were using <a href="https://en.wikipedia.org/wiki/DreamHost">Dreamhost</a> to host the MP3 files. And <a href="https://en.wikipedia.org/wiki/DreamHost">Dreamhost</a> had, I think, free accounts, but only up to some number of megabytes per month. And we kept hitting the threshold. And so what we would do is sign up for another <a href="https://en.wikipedia.org/wiki/DreamHost">DreamHost</a> account, another <a href="https://en.wikipedia.org/wiki/DreamHost">DreamHost</a> account, another <a href="https://en.wikipedia.org/wiki/DreamHost">Dreamhost</a> account. And we would use, like, DNS trickery to just reroute the URLs in the RSS file to the new web host to keep up.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=494">8:14</a>] And so that&#8217;s when all of our attention sort of was drawn to the possibilities and that we can make available this content not just for our own students, but for anyone else who either geographically, socioeconomically, couldn&#8217;t access that same kind of class.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=509">8:29</a>] I see. So the idea was it was a supplementary material for people who had paid for the Harvard Extension School and then. But other people just open on the Internet could listen if they wanted.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=521">8:41</a>] Yeah. And that alone was a touchy subject on campus at first, because here we were giving away the very thing that other people were paying for. But at the end of the day, what people are paying for is the additional support structure you get in a more traditional environment, the more traditional credentialing, the transcript and the credit and so forth. But the knowledge itself, it does society no good to withhold that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=541">9:01</a>] I think so. I think this is a brutal reality of making content on the Internet. There&#8217;s so much competition for attention that all the content has to kind of hook people. Let&#8217;s say you&#8217;re scrolling on. On Instagram. That first second&#8217;s really got to capture someone, otherwise you&#8217;re going to go to the next one. And I&#8217;m curious, because you are making content for the Internet with these lectures that you post online.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=567">9:27</a>] Do you think about, how can I, you know, hook the audience? Does that ever factor into your. Your lecture design lectures?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=575">9:35</a>] No. Some of our social content, yes. Insofar as we are producing, in addition to the courses traditional in classroom content, things that are designed clearly for social media, whether it&#8217;s interviews, for instance, whether it is excerpts from <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s Fair, this exhibition of final projects, whether it&#8217;s steering in the directions of some popular meme just to sort of catch the attention of our own students or new students.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=598">9:58</a>] But we have been very deliberate over the years from the beginning and especially since the age of the <a href="https://en.wikipedia.org/wiki/Massive_open_online_course">MOOC</a> in 2012 when <a href="https://en.wikipedia.org/wiki/Coursera">Coursera</a> and EDX and other platforms were coming around to not steer into this bite sized 3 minutes, 5 minute chunks that I know there is data to confirm that it drives engagement but not necessarily educational outcomes. We have fairly unusually in recent years stuck to the more traditional model of like <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=627">10:27</a>] Lectures are like three hours long. And there are downsides to that. Absolutely. But ironically, online you avoid some of the in person downsides because you can pause and rewind and fast forward, you can search for something, open another tab, go down this intellectual rabbit hole or rewind to figure out what it some detail you missed. I mean I, I can&#8217;t even count how many times in college, high school, more generally that I&#8217;m sure I zoned out.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=651">10:51</a>] And it&#8217;s too often the case that if you miss some detail you&#8217;re now you might as well leave the class at that point. And like online solves that for you. And I haven&#8217;t seen a need pedagogically for us to break up the content into such small pieces and to sort of take that ownership away from the students. I think we&#8217;d prefer that they meet us halfway. And if you need to take more than three hours to watch the lecture, that&#8217;s totally fine.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=675">11:15</a>] But it&#8217;s not designed for scrolling type consumption I would say.</p><h3>11:19 &#8212; How to lecture well</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=679">11:19</a>] Right. What about in the, in the idea of like a long video, there&#8217;s still this concept that you kind of want to keep people engaged. And so how do you keep people engaged for a three hour lecture?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=690">11:30</a>] Yes. So that we are very conscious of and the way we&#8217;ve generally described that is trying to create memorable moments. And this is not for social media. This is as much for the in person audience as it is for the online audience. And by memorable moments I mean in like <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s first lecture we do this bit where I&#8217;ll tear a phone book in half to demonstrate the performance of something called binary search and algorithm for finding information more quickly than linearly searching the phone book one page at a time.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=715">11:55</a>] And that&#8217;s really just to be dramatic. It has less and less impact these days because most students of school age are no longer familiar with the Technology known as a phone book. But it&#8217;s literally analogous to the digital form in iOS or in Android, of course. And so it doesn&#8217;t take a huge leap for someone to realize, okay, this is the physical incarnation of that, and it&#8217;s just kind of fun, even though it&#8217;s getting harder and harder to find the actual phone books.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=739">12:19</a>] When we get to searching algorithms and sorting algorithms, we very often have a student come up on stage, for instance, and for sorting or for searching, we have a whole bunch of like gym lockers, small versions thereof, that we put numbers in, either on printed paper or little plastic numbers. And the goal is to have a student like, find the number 50 or some other number that we&#8217;ve hidden behind the doors.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=758">12:38</a>] And it&#8217;s an opportunity just to talk about either searching the doors linearly, left to right, right to left, maybe randomly, maybe more methodically as via binary search. If the numbers are sorted, that then leads us to opportunities to talk about bubble sort and selection, sort and insertion sorts. Algorithms that you probably wouldn&#8217;t bother implementing or using in the wild because there&#8217;s more performant ones certainly.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=779">12:59</a>] But we use them as these pedagogical tools to explore the. The problem to be solved, which is, all right, I can only use binary search if the data is sorted, so how do I sort it? And how expensive is that going to be worthwhile, the whole process in the get go? And so we&#8217;ll have eight students come up on stage and sort themselves physically and really perform in certain ways. And there&#8217;s so many examples of that through <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, we try to do at least one such thing every class.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=805">13:25</a>] I mean, not unlike the way John Oliver, for instance, ends last week. Tonight we&#8217;re trying to do some big song and dance, which ironically is always at the end as the hook. We do try to put it maybe toward the beginning of lecture or in the middle, but that&#8217;s not just for engagement and not to make, to keep folks attention, but really to latch onto their memories so that even if you&#8217;re in the weeds of this introductory computer science course, there&#8217;s so much new information, it&#8217;s the proverbial fire hose hitting you in the face you can cling to.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=832">13:52</a>] Okay, all right. I remember like my. My roommate was literally the one on stage acting out bubble sort. And you can kind of picture in your mind&#8217;s eye what was happening. Or that phone book example is a perfect one that years after leaving Harvard, we have alumni coming up to us and saying, oh, I still REM the phone book demo. And those memorable Moments, ideally theatrical in nature, I think are what brings material, whether it&#8217;s CS or something else, to life.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=856">14:16</a>] But that is very much to engage any learner, present or remote, as opposed to being optimized for some technology.</p><h3>14:25 &#8212; Depth vs engagement in education</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=865">14:25</a>] One thing that I, I wonder because computer science is such a dense topic where I guess there could be a trade off with, imagine another style of lecture is, you know, there&#8217;s a chalkboard and you&#8217;re up there kind of blandly writing out all of the information. I, I could imagine you could go through much more depth in that case. Do you feel like there&#8217;s any trade off there?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=892">14:52</a>] Absolutely. I mean, this is a criticism we get from some students, particularly those with prior background or among those more comfortable where do we really need 10 minutes on linear search or you know, another 15 minutes on binary search? And the answer is quite clearly no for those students. And even for most students, I would say we do spend a disproportionate amount of time on certain cherry picked topics that we do think lend themselves to this theatricality for really getting students interested in fundamentally and excited by the material to help motivate them the rest of the week when they&#8217;re going to be spending 5, 10, 15, 20 plus hours on some weeks assignment and to help them see sort of the forest for the trees, like what is actually important and meaningful and fun about this.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=934">15:34</a>] Because it&#8217;s probably not the keystrokes and the debugging and the lower level implementation details. So we talk about this actually in a paper, in a talk we gave at a CS education conference a few years back, trying to find that balance between the theatricality and the density of material. But to your question about dryness, I mean, I would like to think that dryness really has no place in most forms of education because then it could have been a book or it could have been an email if it&#8217;s just someone reciting words, worse, writing things down in ways that aren&#8217;t at all interactive, like do we really need to be all in this room together?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=973">16:13</a>] design to me in my research. And looking at the reception of <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> and people&#8217;s perspective on how you are as an educator, they absolutely love your energy and like your delivery. Do you rehearse that or is that something that you always had as an educator?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=991">16:31</a>] Yeah, I think it&#8217;s just sort of the expression you got to bring your A game when you get up onto stage. And I think a lot of it honestly comes from a place of insecurity. Like I really don&#8217;t want to be the one on stage in front of a bored audience, like no one wants to be in that situation. And so I think a lot of the energy that I try to bring to bear and the excitement I show is really meant to one, make sure people want to be and stay there for the duration of the class, whether it&#8217;s short or long.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1016">16:56</a>] And also help them see the excitement in and the possibilities of, and the applicability of a field that I myself have fell in love with so many years ago. Because then they can decide for themselves if they feel that same emotion, if they too look forward to going home to their dorm or their home on Friday nights and working on programming assignments, of all things. But I feel like we certainly owe them, and I think teachers owe students more generally educationally, the opportunity to make that decision for themselves and to put forward our best foot, or to present the field in the most exciting, inspiring way that we can, if indeed we think it&#8217;s important that other people after us study and research and apply these fields.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1060">17:40</a>] I noticed this dichotomy in education when I was going to ucla, which was there were roughly two types of professors that I had. There was one type of professor that was beloved by the students and really passionate at educating and kind of involved. And then there&#8217;s this other type of professor which was really they might have been really incredible and impressive as researchers, but their classes were really poorly rated by all the students.</p><h3>18:11 &#8212; Why don&#8217;t we consolidate educational resources</h3><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1091">18:11</a>] And with the online education that we can do today, I mean, like <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, all the resources are available. I could imagine that objectively we could take the people who are most passionate about teaching and give it to everyone, rather than having some teachers that are not excited kind of consolidate. Imagine taking the world&#8217;s best instructor and giving that to everyone. Why doesn&#8217;t consolidation happen if we have all the technology for spreading literally the world&#8217;s best resources to every situation?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1121">18:41</a>] Yeah, that&#8217;s a good question, since I think our own goal is certainly not to put out of business other educators, other classes. However, as a computer scientist, I would be among the first to notice that there&#8217;s a huge inefficiency in the way education broadly works, not only in this country, but presumably internationally as well, whereby you have hundreds, thousands of teachers essentially all doing the same thing in parallel, and not necessarily the meaningful part of interacting with and uplifting and mentoring students, but like preparing their presentations or their lecture notes, or writing the assignments, or grading that work.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1157">19:17</a>] There&#8217;s so much meta work involved in education that probably doesn&#8217;t need to be borne by so many people that the computer scientist in me invariably wants to factor that out somehow. And so I absolutely think that we, educationally, as universities, as schools, should be leaning on each other much more. I&#8217;d like to think that&#8217;s a lot of what drives us in terms of <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s own mission and the work that we do.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1179">19:39</a>] But we too have encountered frictions along the way. It was very unusual, for instance, for 10 years that we were collaborating with our friends down the road in New Haven at Yale University where we were offering <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> on both campuses in parallel. And more recently we&#8217;ve been doing this with some of our friends at Oxford and lifelong learning group there. This is very much still the exception to the rule.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1199">19:59</a>] Unfortunately, even after 10 plus years of MOOCs massive open online courses, I dare say a lot of institutions, a lot of faculty are very set in their ways. In fact, one of my regrets of the COVID era was that we had this unprecedented opportunity now and almost mandate to move everything online. And we therefore had this opportunity to say, hey to Harvard students, why don&#8217;t you take this Stanford course or this UCLA course or this Yale course, or this <a href="https://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology">MIT</a> course that you couldn&#8217;t necessarily take in person for lack of transport or for lack of safety at the time.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1232">20:32</a>] And I could get no one on campus to, to get on board with this idea of maybe offering one computer science course on this campus and let the other students take it. Then you offer, as we did at Yale, like a digital humanities class on some other campus and let the Harvard students take it. And there&#8217;s just not much of an appetite, I dare say, in higher education, if not education writ large for that resource sharing.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1254">20:54</a>] And I think there should be, I don&#8217;t think there should be one computer science course, introductory course. I think some healthy competition is a good thing. I don&#8217;t think there need to be thousands, probably not hundreds, maybe dozens, from some of the best teachers. The best schools would probably benefit us all if those same teachers then were not put out of work, but then could lean on each other, use some of the materials we&#8217;ve created, adopt or as we say, adapt some of our own resources and treat education as a buffet of educational materials that you can then make your own without having to do so much of the same legwork and reinventing wheels across school and state lines.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1292">21:32</a>] The mindset that you said, the computer scientist mindset of getting rid of the redundancies and kind of consolidating resources, I mean, it&#8217;s immediately logically obvious to me. But what would like, let&#8217;s say there&#8217;s three top courses in America. There&#8217;s like <a href="https://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology">MIT</a>&#8216;s, there&#8217;s Stanfords and there&#8217;s Harvards and they want to give that to other institutions, like, I don&#8217;t know, other colleges. What would stop those colleges from taking an objectively better set of resources and giving that to their students?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1330">22:10</a>] I sense, but I would defer to others who hold these views that there is a concern that maybe we are putting ourselves out of business or there&#8217;s more of a school pride. And I definitely saw some of that on Harvard&#8217;s own campus where like, no, no, no, no. We should be offering courses to our students that we have created and that we are teaching and not lean, for instance, on our friends down the road at <a href="https://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology">MIT</a> who have and have for decades had a larger, richer course catalog than us, simply by nature of being a bigger place, at least for computer science.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1360">22:40</a>] And it seems silly to me not to lean on each other. Maybe each of us can specialize a bit more. Maybe each of us can offer slightly different modes of instruction for students. Maybe that&#8217;s a little more intimate on this campus versus that so as to really leverage shared resources. I mean, this is done endlessly in research, having cross campus collaborations and there&#8217;s something very personal about or very fundamentally threatening.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1387">23:07</a>] I think about leaning on each other educationally. And I wish people would move away from this mindset because it doesn&#8217;t mean some failure of the institution to offer these courses. It means we can do a better job offering what resources we do have.</p><h3>23:20 &#8212; Why start with C</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1400">23:20</a>] I would like to think in designing the curriculum for <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, how did you pick C for instance? Because I think a lot of people would look at that decision and think, I&#8217;m not going to use C in my day to day full stack job, so why do I need to learn this?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1416">23:36</a>] Sure. So it was not picked by me per se, but I chose to keep C in the course certainly since as far back as 1996 when Brian was teaching it, Professor Margo Seltzer before that and many other faculty prior to me and them. It is a wonderful foundation on which to build your understanding of how a computer works and how software is built. It&#8217;s about as close as you can get to the hardware before things devolve, at least aesthetically into assembly code, which is much scarier looking code.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1447">24:07</a>] I think for most people, almost everyone perhaps, and certainly beyond that is zeros and ones, which is not going to be fun for anyone. So C kind of strikes, I think pedagogically this really nice balance of having English like syntax and abstractions on top of lower level primitives that allow you to explore procedural programming in particular with some fundamental constructs that are now fundamental to those kinds of languages.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1474">24:34</a>] Loops and conditions and functions and variables and return values and so forth. It&#8217;s sort of got, it&#8217;s got everything, but it&#8217;s also a pretty small language and unless you download third party stuff, there&#8217;s not a very large standard library in fact. So most anything you want, you need to build yourself. And so we leverage this significantly in <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>. So much so that by mid semester in week five of the class, students are building their own hash tables.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1496">24:56</a>] And we&#8217;re talking about how you could construct singly linked, doubly linked lists, hash tables and tries trees, abstract data types like stacks and queues and so many more. And what I think is especially meaningful about C is that you can&#8217;t just instantiate one of those data structures if you want one, like you can in Java and C with STL and certain other libraries. Like if you want it, you&#8217;re going to have to build it yourself.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1518">25:18</a>] And I think that alone is a good educational exercise. Not because you&#8217;re going to need to build that thing again, but because there&#8217;s value, I think, in really understanding from the bottom up what is going on inside of that device. So that one, you can make more informed decisions as to how you want to engineer and design your own data structures down the line. Two, you can diagnose problems by reasoning through first principles what could possibly go wrong because you understand how the data is being stored and what the algorithms are that are performing on that data.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1550">25:50</a>] And three, it&#8217;s a wonderful scaffold to higher level languages because one of my favorite things from week 5 to 6 in <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> is students go from having written in week 5 like their own hash tables implementation for adding data, retrieving data and so forth, which is like this many lines of code for some font size and it gets whittled down in week six to one line where you just instantiate a Python dictionary and you can be productive with a dictionary.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1577">26:17</a>] And many courses do teach programming by way of Python alone. And we too have done it for some of our audiences. But you really never get around to understanding what&#8217;s going on underneath the hood. And our goal in CS50among them is not to output programmers, but engineers and educated citizens and folks who really understand from first principles how technology works. And so C for instance, strikes I think, just that right balance.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1602">26:42</a>] And for those students who want to go even deeper in a systems class, they can go learn about assembly and compilers and so forth. But those students who want to go on to web programming or data science stuff or AI nowadays can just build on top of the C and then in turn Python layers that we use in the class.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1670">27:50</a>] This is not my perspective, but I was doing research and I saw a YouTube video. It said, Whatever you do, don&#8217;t take <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, clickbait, whatever. Yeah. So I watched the video and the person. So it worked. Yeah, it got me. It got me. And the perspective of the author of this video was that <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> teaches you all this stuff that you don&#8217;t really need to know if you were like a full Stack engineer or something.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1695">28:15</a>] If you, if I was just going into the industry and I&#8217;m just making web apps that a lot of this underlying stuff you might not need and maybe it&#8217;s not a good use of time. And I&#8217;m curious what you would say to someone that has that mindset that you don&#8217;t need to actually know how the computer works.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1715">28:35</a>] I don&#8217;t want to get into a whole Internet fight here, but I think that is absolutely the wrong mindset, certainly for a full stack engineer. I mean, by definition a full stack, you should be understanding everything that&#8217;s happening among those layers. So I think the better formulation isn&#8217;t that you don&#8217;t need to know these things, but rather you won&#8217;t need to use these things. Use in a literal sense.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1736">28:56</a>] Like I don&#8217;t. My C is a very popular language, even according to some rankings each year it&#8217;s, you know, the number one, number two language in terms of its omnipresence still to this day because it&#8217;s very highly performant, albeit more challenging to write than some languages. I only use C for five weeks during <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> itself, but that doesn&#8217;t mean that it hasn&#8217;t helped me understand higher level languages.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1759">29:19</a>] What is going on inside of a system, how you can improve the performance of or the design of some system by understanding again those first principles. I don&#8217;t use Scratch except for one week out of the year. I do use Python more frequently and I use <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a> and some HTML and CSS. But I think if you&#8217;re going to call yourself an engineer, you should absolutely have mastery of and knowledge of those underlying building blocks if you want to not just output something that frankly AI could output nowadays, but you can understand and you can create the next thing or the solution to some other problem that we haven&#8217;t even yet solved.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1797">29:57</a>] I think that&#8217;s the better mindset to appreciate. Yes, I&#8217;m not going to need to use Scratch or C or maybe some of the other things we touch on in <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, but the knowledge and the principles that we extract from those implementation details are incredibly valuable if you want to be an engineer and not just say a coder, which is a distinction that some folks might make.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1818">30:18</a>] I was looking at the syllabus and there&#8217;s C obviously, and there&#8217;s all the amazing, you know, basic data structures, those types of things, bread and butter. And then in the end of the course there&#8217;s a week on artificial intelligence, which I was surprised to see in an intro course because it&#8217;s kind of like there&#8217;s no way that you could teach AI in a week. So I&#8217;m assuming it&#8217;s a more high level introduction.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1844">30:44</a>] It is. It&#8217;s only for an hour and it technically temporarily, it&#8217;s offered in the middle of the semester for the on campus students. It coincides by design with family weekend when first years and juniors students, parents come to town very frequently. And so we do it as a very broad introduction to what everyone is talking about nowadays in the AI space. There are full fledged classes of course at Harvard and other institutions that students can take and it&#8217;s really meant to whet their appetite but also give them some context for the very tools we&#8217;re using in <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1874">31:14</a>] We have this virtual rubber duck that&#8217;s built on top of <a href="https://en.wikipedia.org/wiki/OpenAI">OpenAI</a>&#8216;s APIs and Microsoft Azure&#8217;s web API service that they&#8217;re using every day or every week certainly throughout <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>. So among the goals pedagogically is to help them Understand how do the tools work that you yourself have been using. Two, to help them understand what is it that the world is talking about nowadays. And three, prepare them to use these tools more effectively by the end of the semester.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1898">31:38</a>] Because for instance, for <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s final project, students are encouraged and welcome to use Claude or ChatGPT or Gemini or any number of off the shelf AI tools, though we don&#8217;t allow those through policy for the course&#8217;s assignments.</p><h3>31:51 &#8212; The ideal use of AI in education</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1911">31:51</a>] Yeah, I had a conversation with another professor and specifically about, you know, is AI affecting how the kids are learning? And his perspective was it was kind of maybe he didn&#8217;t do it properly and the students were over relying on it. And I think that is a concern that a lot of people have, is that students these days can be more brain dead. Like you could just go to ChatGPT and say, honestly just solve the problem for me.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1941">32:21</a>] For you as an educator in computer science, what is the ideal relationship with AI for your students?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1948">32:28</a>] Yeah, so this virtual Rubber Duck at CS50AI, which anyone with a free GitHub account can use, is really meant by design to be a less helpful version of ChatGPT, one that is also more tuned to <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s own material and syllabus and so forth. And that&#8217;s because all of these tools off the shelf can pretty much do your homework for you. And this has been true for several years, even before the fall of 2022 when ChatGPT came out.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=1972">32:52</a>] I mean we were looking closely at GitHub Copilot for some time because if you created an empty text file in VS code called Mario C which is the file name we use for one of <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s problem sets. And if you so much as type I think hash and then I for include, you pretty much get a suggestion to autocomplete the entirety of that particular problem set. And that&#8217;s just because, I mean we, for better for worse are part of these models insofar as the OpenCourseWare has presumably been slurped up, as with the rest of the Internet, as part of the training data, so to speak, for these AI models.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2003">33:23</a>] So that has both good and bad. And that&#8217;s why we set out to make our own sort of duck themed version of these tools that puts downward pressure on that willingness of the tools to be too helpful. And we&#8217;ve tried to attune the duck to be more akin to a good teacher or tutor that leads you to the solution, but certainly doesn&#8217;t auto complete your whole way through it. I see.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2022">33:42</a>] So there&#8217;s like a system prompt or some scaffolding that says, don&#8217;t answer the question but help me figure it out.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2030">33:50</a>] Pretty much. And it&#8217;s much easier to do this now than it was in 2022 and 2023 when we first rolled this out. Which is to say there&#8217;s a lot of tools, even commercial tools, that faculty can use to do the same kind of thing for their own course. For us, it was important to draw a clean line in the sand to students because you could approximate this duck by just telling students, hey, everyone, go copy paste this system prompt as you describe into ChatGPT before you ask your homework question.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2056">34:16</a>] And no one&#8217;s going to do that. And like it&#8217;s going to drift out of date and it just feels too clunky. Students are just going end up typing into the prompt. Whereas I think it&#8217;s a lot cleaner, if not simpler to know. I cannot, through policy, go to ChatGPT, Gemini, Copilot, any of these things, but I can go to and use as much as I want CS50AI or the plugin we have in VS code of the same. And that to me is a very healthy line because, you know, if you&#8217;re crossing that line, if you&#8217;re pulling up chatgpt.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2030">33:50</a>] com or gemini. google. com and the like. And at that point, it&#8217;s a conscious choice to be academically dishonest, as we would describe it in <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s syllab.</p><h3>34:54 &#8212; Cheating and AI</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2094">34:54</a>] When I was going through my CS education, cheating was already pretty rampant. I mean, people put their code on GitHub and you kind of paraphrase someone else&#8217;s code. Well, not me, but other people. And I imagine with the new technology that actually, I mean, with anything with cheating, it&#8217;s adversarial. There&#8217;s people who are cheating and there&#8217;s people who are trying to catch the cheaters. Right.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2119">35:19</a>] I could imagine that the cheating tools are advancing faster than the ability to catch them because if you just generate the code, it&#8217;s not easy to say, oh, that was, you know, AI generated or whatever. So I&#8217;m curious if you see more cheating on your end.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2141">35:41</a>] of dishonesty, statistically, we are not catching more. I would like to think that the, the misbehavior has not markedly increased, if only because we, like a lot of intro courses around the world, have a tradition of looking for academic dishonesty, plagiarism, code that was copied and pasted off the Internet or YouTube video. And we within <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, like a lot of peer institutions are very good at catching that.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2168">36:08</a>] And like, we have tools that cross compare all of students submissions against each other against GitHub repositories of past submissions that we have of YouTube videos that have been just transcribed. So we have historically administratively disciplined, so to speak, between 5 and 10% of <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> student body every semester. And that&#8217;s kind of a norm among across peer institutions, you know, upper bound of roughly 10%.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2191">36:31</a>] There&#8217;s certainly probably some percentage of students who have been cheating in some form all these years and never have been detected. But just based on the rigor with which we go through this, the messaging throughout the course, like I&#8217;d like to think that a good 90% of students are behaving in the way that they should, at least when the boundaries are set through not only policy, but course culture and through the support structure that we provide to students.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2216">36:56</a>] That said, we&#8217;ve not seen an uptick in detections of academic dishonesty. What has gotten harder is the so called prosecution of those cases in the sense that it&#8217;s harder for us now to hand to the administrative board of Harvard or the Honor Council, so to speak, be a smoking gun. Like, here is the URL from which this code was copied, because it&#8217;s not really coming from a URL or a YouTube video, it&#8217;s coming from the composition of all of the URLs out there and all of the YouTube videos about <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s problem sets.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2246">37:26</a>] Because the AI, somewhat pseudo randomly is spitting out an amalgam of these various training inputs. That said, when you&#8217;ve been doing this long enough, like you can tell that this is not the work of this particular student either in comparison to past work that they submitted or, or the sophistication with which they&#8217;re solving a problem or the incorrectness with which they&#8217;re solving the problem.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2269">37:49</a>] And there&#8217;s often telltale signs like this is not this year&#8217;s problem set, this is last year&#8217;s. And so clearly this did not come from you alone. So we certainly are able to detect the easier to detect behaviors, right?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2282">38:02</a>] 5 to 10%. That feels spiritually like a lot like 1 out of 10 students doing something. But I mean, you have the.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2292">38:12</a>] Yeah, I mean, 20 years ago I probably would have agreed after seeing it year after year after year. I&#8217;m just glad it&#8217;s not higher than that.</p><h3>38:21 &#8212; Should we really learn CS still?</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2301">38:21</a>] On the topic of AI, a lot of students, they see where these, these agentic tools are going. They&#8217;re generating code that is superhuman in many cases. And I think it gives people this sense of dread. Like imagine you&#8217;re spending all this time getting better at programming and you think that maybe programming will be useless in the future. You know, if an anxious student comes to you and says, I don&#8217;t know if I should be learning computer science, what would you say?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2330">38:50</a>] I wouldn&#8217;t worry about getting better at programming. The whole point of so many of these courses has been about getting better at problem solving. And like that is a life skill, whether you&#8217;re going to stay in CS or tech more generally, or leave it for some other field in which there&#8217;s still going to be problems, just different types of problems. And there too is why we, we constantly tell students the course is not about Scratch and C and Python and <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2354">39:14</a>] Like these are all implementation details. And while they definitely have and consciously have pedagogical value, that&#8217;s why they&#8217;re in the syllabus. The goal is not to teach students Scratch and C and Python and <a href="https://en.wikipedia.org/wiki/JavaScript">JavaScript</a>, but how to solve problems and to give them representative tools with which they can solve those problems and also an understanding of those same first principles from which they can reason about some symptom they&#8217;re seeing or some problem they are ultimately trying to solve.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2379">39:39</a>] AI is pretty darn good already at generating code. It&#8217;s only going to get better. But that&#8217;s wonderful insofar as it&#8217;s going to save us humans from the stuff that was never very fun to begin with. Even I am guilty of never really writing as many like unit tests for my code to test the correctness automatically. That stuff can be very easily and robustly generated nowadays. What I don&#8217;t want the computer to take from me is sort of the fun part of that.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2403">40:03</a>] The fun part that&#8217;s always been there, which is the designing of the system itself. Maybe thinking about what the UX should be so that you can optimize for the user experience, or what the database design might be or what data you want to collect in pursuit of some business problem. Because you know you&#8217;re going to need to analyze or mine it for some valuable insight later on. Like that stuff&#8217;s probably not going away anytime soon.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2425">40:25</a>] And the other reassurance I would give students nowadays is like the world is only getting more technological. And we&#8217;ve kind of seen this pattern before. Where I took <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, for instance, at really the peak of the so called. com era era, so 1996. And then sort of the world started trending down when all the startups were going out of Business and students were exiting computer science. But like then, the pendulum swung back and I don&#8217;t think we have saturated the world in terms of technology.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2450">40:50</a>] Every business, small and large is probably going to keep using it more and more. We in our personal lives are only going to keep needing it more and more. And so, like, those are problems to be solved. And yes, I don&#8217;t think we&#8217;ll need as many humans to write HTML and CSS anymore, which was, at the risk of picking another fight, never that much fun anyway. And maybe we won&#8217;t really need to use C or Python anymore, but we can start programming like a pm, a product manager, using our voice, using our words in English or some other human language, but that alone would be wonderful.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2480">41:20</a>] Case in point, I was playing with Claude this morning to just help me prototype something, and it was wonderful for me to be able to just think about the problem and sort of the engineering side of it and say, all right, Claude, much like an intern, please go implement this for me. Because I really don&#8217;t want to go reading the documentation, which was never that intellectually interesting. I could if I wanted to, and I understand how it&#8217;s structured, but I don&#8217;t need to keep repeating that kind of exercise again and again.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2504">41:44</a>] But at least in the near term, case in point, Claude came back very confidently with a solution that was like 90% correct. And I had to convince Claude, so to speak, by chatting back with it that, like, no, no, no, no, like this is not possible per the API docs at this URL. So of course you get the apologetic response from the LLM and this kind of error rate or hallucination will decrease with frequency.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2528">42:08</a>] But, like, this is why the human should stay in charge for some time.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2532">42:12</a>] In today&#8217;s environment, we can relatively confidently say, these tools empower us and they don&#8217;t replace fully yet. But I think a lot of people are worried about, okay, but what if, you know, it gets. What if it gets even better? What if that 90% becomes 99% or maybe it becomes 100%? Then I think people get scared, but it&#8217;s hard to say exactly in the future.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2559">42:39</a>] But insofar as our goal within even a class like <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> has always been to output a more educated citizenry, to teach students how to teach themselves, to teach them how to be more methodical, more algorithmic and problem solving, like all of that is valuable, whether or not we have robots doing work for us in our future.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2579">42:59</a>] I think you talked about the enrollment rates and I have this little screenshot because you had written this, I think, this paper from long time ago about redesigning <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>. And you kind of, I&#8217;ll put this overlay this in the video, but you know, there&#8217;s this trend of kind of enrollment rates going up and then they tank with the top convobole and then they went up as well because of some adjustments that you&#8217;ve made.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2605">43:25</a>] Right now we&#8217;re kind of in this. You know, AI is really shifting things. How if you were to continue this graph forward, is enrollment and interest in computer science declining because of the AI?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2619">43:39</a>] Oh, lately that absolutely seems to be the case. And that was preceded, I think over the past few years really by the downturn in tech offerings. I mean, we were seeing this in the recruiting pipeline on campus where there were just fewer opportunities and there was less of an appetite among some of the big tech companies to even bother coming to campus if they just didn&#8217;t have many entry level roles for students.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2638">43:58</a>] And that was before ChatGPT and similar tooling was sort of omnipresent. So AI has only exacerbated, I think, that concern. But I think what we&#8217;re going to see if we sort of extrapolate out is that there&#8217;s going to be these ebbs and flows over the years, much like we&#8217;ve seen, or the pendulum swinging each different way, whichever metaphor you prefer. Just as humans have this tendency, I do think, especially in tech, to overreact to things both positively and negatively.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2664">44:24</a>] And while AI is absolutely here to stay, I do think it&#8217;s going to become equivalent in our minds to just what technology is. AI is a nice sort of buzzword and way to distinguish it from some of the more deterministic or predictable outcomes that like technology to date has maybe had. But. But I think back Even over my 19 years with <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> and AR and VR was to be all the rage. And then we had blockchain and bitcoin and Google Glass even excited the imagination like no other technology at the time.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2696">44:56</a>] And all of these things are still with us in some form or some future incarnation. And especially with blockchain and bitcoin. There&#8217;s some resiliency there. And AR and VR still very omnipresent in games. But it&#8217;s just been fascinating to watch the world, the tech world, especially the VC world, sort of react and overreact habitually to these kinds of things. Until we sort of find a healthier medium where people appreciate the real value and not just the opportunistic value of it all.</p><h3>45:24 &#8212; College vs online education</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2724">45:24</a>] You&#8217;re in a unique position because you teach the in person Harvard class and then you also do the massively online version as well. And I think it&#8217;s an interesting case study because some people have the opinion that, that the important part of college is actually not the education. And it feels like this in person version versus the online one is kind of proof of that, which is that you could not go to Harvard but get a world class education, yet the outcomes are very different.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2761">46:01</a>] So I&#8217;m curious your thoughts on going to college versus getting the world class education for free?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2769">46:09</a>] Yeah, I think it depends on your goals. I think there&#8217;s absolutely value of places like Harvard really because of that credentialing. And also it&#8217;s a filter from the get go. I mean these admissions departments are already identifying strengths among people and sort of the audience you then end up with is very similar along certain axes, certainly along academic abilities and whatnot. But the value of places like Harvard I do think has long been the networking opportunities, the connections you make, the life experiences you might have and academics sometimes to a fault like is often secondary.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2799">46:39</a>] But when it comes to knowledge and learning outcomes and practical skills, I mean I&#8217;d like to think that you&#8217;re getting as good, if not better an experience taking a class like <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> online, if only for the simple technological reasons that you can pause and fast forward and rewind and open multiple tabs, go down this intellectual rabbit holes in ways that a traditional campus is just not designed to support.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2822">47:02</a>] Unless those same students are are taking the class in their dorm rooms or at home.</p><h3>47:06 &#8212; The most difficult concept to learn</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2826">47:06</a>] Like during COVID You&#8217;ve taught so many years of this same material. What is the most difficult concept that you see? People consistently having trouble pointers in C.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2839">47:19</a>] And that was true for me 30 years ago. So much so that I&#8217;m always very weirdly excited to tell students in class nowadays that I still remember where I was on campus the day I finally got pointers and and I&#8217;ll share here. I was in one of the dining halls on campus with my teaching fellow or TF who himself was a student probably one or two years older than me. We were sitting at the back of the dining hall on these wooden tables in this beautiful old school sort of Harvard esque room.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2867">47:47</a>] And somehow or other something he said that day, after weeks of struggling, that light bulb went off for me and I&#8217;m like oh, it&#8217;s just an address which you know, never quite clicked. Even though I&#8217;m sure many people tried to hammer that into me previous to that. But. But it&#8217;s just hard like memory Stuff is hard, especially if computers to students from the get go is very much this black box, this abstraction itself.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2889">48:09</a>] To really go down to that level takes some, some new thinking. And it took me a while.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2895">48:15</a>] Let&#8217;s say someone is trying to help someone else grasp a difficult concept. Like, what&#8217;s your best tip on how to really teach someone something that they&#8217;re really struggling with?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2906">48:26</a>] My instinct is to say metaphors, or what we more broadly call memorable moments, where it&#8217;s a phone where you&#8217;re trying to teach binary search, or even a Screenshot of the iOS context app where you&#8217;re trying to introduce the same algorithm. It&#8217;s during COVID for instance, we worked with a local theater and we had seven physical doors on a stage that were from previous plays that they had put on. And we put fuzzy little numbers behind that the prop shop had kindly developed for us so that we could play that same game of using not lockers, but physical doors.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2936">48:56</a>] And creating those binary doors for students, I think helps them latch onto a visual that makes a very esoteric topic that, that frankly, who really cares about binary search day to day just kind of come alive and you realize, at least back in the day of actual phone books, like, oh, I&#8217;ve been using this the whole time. I just didn&#8217;t know what to call it. And I think that&#8217;s very empowering to use metaphors to create memorable moments that help students realize that even the seemingly most arcane topics are still very much within their grasp and perhaps not so dissimilar.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=2968">49:28</a>] Even when we talk about binary for students, we like to show them that, hey, here&#8217;s a number, like 123. Well, why is it 123? Because there&#8217;s the ones place, the tens place, the hundreds place, and so forth. Hey, guess what? Binary is the exact same methodology, but you just have the ones place, the twos place, the fours place, and so forth. And helping people realize, like, oh, like that&#8217;s all it is, I think is very empowering because suddenly they feel like they&#8217;re part of the conversation and they actually know what they&#8217;re talking about all the more, even when they thought that was a domain for those more comfortable only.</p><h3>51:00 &#8212; Growth vs fixed mindset</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3060">51:00</a>] I&#8217;m curious if you think that there&#8217;s anyone that&#8217;s just born that can&#8217;t learn computer science, and that&#8217;s not the world that I want to live in, but let&#8217;s just say you have someone and you explain a race to them a hundred times, and they kind of don&#8217;t get the concepts. Do you feel everyone can grow and learn computer science?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3085">51:25</a>] I think to an extent. I mean, if you, if it&#8217;s still not sinking in after 100 times, like, I mean, frankly, I think good educational advice would be like, maybe this isn&#8217;t the field for you, and this is how you&#8217;ve been empirically figuring that out. If it&#8217;s just not clicking in a way that&#8217;s exciting you, that&#8217;s making you happy, then, okay, stop beating yourself up. Like, find something else that&#8217;s of interest to you.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3103">51:43</a>] But if you&#8217;re struggling and you&#8217;re thinking of being up after 2 times, 10 times, 49 times, I&#8217;m not quite sure where the cutoff is. Like, you should probably continue to try to power through, not necessarily by taking that same approach, but find some other class, some other professor, some other teaching assistant, some other book to try a different perspective or angle on it. Because maybe you&#8217;re just not jiving with, like, the form of instruction or the style of the teacher, myself included.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3130">52:10</a>] So I wouldn&#8217;t give up thinking it&#8217;s you alone. And I do think, too, that&#8217;s really the secret ingredient. Is time. Like, fine, if you don&#8217;t. If you can&#8217;t quite finish the course in 12 weeks, take 24, take 52. Like, that&#8217;s perfectly fine. Especially if you&#8217;re juggling other things. This isn&#8217;t necessarily your primary focus. I think time is a perfectly reasonable knob to turn. And I think that puts it well within reach of so many other people.</p><h3>52:35 &#8212; The future of CS50</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3155">52:35</a>] <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> is beloved. People have. The reception online is so overwhelmingly positive, and you&#8217;ve been doing it for so long. What is next with <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>? Like, do you see yourself kind of of continuing the same curriculum for the next decade, or will things change?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3174">52:54</a>] Yeah, I think <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> itself will continue to evolve as it. As it long has. I do think it&#8217;ll continue to change both in terms of tooling and concepts, as AI sort of permeates our lives and technology all the more. That said, I think it&#8217;s always meant to be this introductory course in problem solving. So I think there will be this backbone that remains and has been there even since my day. Even though the problem sets are very different nowadays, the style of the lectures is very different.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3198">53:18</a>] If you really compare the syllabus from fall of 1996 versus now and what will be fall 2026 like, they&#8217;re not that fundamentally different. They&#8217;re just packaged very differently and stylized, I think very differently. But there&#8217;s a lot of knowledge and conceptual framework and practical skills that are very invariant over the years. What we have been doing in recent years, though, is steering in the direction of developing all the more of a complete curriculum.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3223">53:43</a>] So courses that students can take for free online through OpenCourseWare after <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>. Earlier courses, gentler courses that students can take before <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> itself, or even instead of <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> itself, depending on the goals that they have and the background that they&#8217;re bringing to bear. The plan in the near term is to branch out beyond computer science, working with a colleague of ours, Tom Crawford, at the University of Oxford, on courses in maths, or maths, as he says, in all sorts of fields, so as to help uplift students who are taking, say, computer science courses, but don&#8217;t have the requisite math background that might be ideal to have, so that you don&#8217;t struggle with certain things that, that we might otherwise just take for granted.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3262">54:22</a>] Beyond that, STEM more broadly is of interest. And while we&#8217;re not experts ourselves, working with colleagues of ours in the arts and humanities and trying to bring this form of theatricality and these memorable moments to a stage, but with far more people and subjects than me and mine.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3278">54:38</a>] When you mention math and these other subjects, it kind of reminds me, I mean, I haven&#8217;t been in the schooling system for a long time, but that Khan Academy was like a very popular resource. I, I imagine that&#8217;s still around. And so that would be, I guess, a competitor.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3293">54:53</a>] I do think some healthy competition is good, as if it drives different courses, different teachers to sort of try new things and teach differently. But I think the more the merrier. The world only benefits from more educational resources.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3305">55:05</a>] And so if those are, let&#8217;s say I&#8217;m okay, let&#8217;s say I&#8217;m a parent and I&#8217;m deciding, should I, I put my high schooler in the Khan Academy learning track of math or what you plan to offer?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3318">55:18</a>] From what I&#8217;ve seen, certainly of Khan Academy&#8217;s work is that they&#8217;re like ours, I think is more of a cast of characters, at least on video form, at least. I know the earliest of Saul Khan&#8217;s work was sort of the handwritten style for his niece or nephew, which was wonderfully compelling and engaging. I think we stylistically are just very different. And I think we try across <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s courses traditionally to have a shared aesthetic, a shared pedagogical style, a shared lecturing style.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3347">55:47</a>] So that when you take a <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> course, so to speak, you sort of know what you&#8217;re getting because it&#8217;s very similar in spirit to the others in the ecosystem.</p><h3>55:56 &#8212; Biggest career regret</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3356">55:56</a>] Coming to the end, when you look back on your career, what is your biggest regret?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3361">56:01</a>] I would say I wish someone had told me, or I wish I had known to just calm down. Like, at least when I was in university, I was one of these students who again came in thinking I was going to major in something else, government, in my case. I was one of those students who went to my first RA meeting, proctor meeting, advisor meeting with probably on a sheet of paper, all 32 courses I thought I was going to take at Harvard, which did not come to pass.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3385">56:25</a>] But it really led me astray in some way the first year and a half of school, and that I was really focused on crossing requirements off the list, taking the courses I thought I should. And it wasn&#8217;t till sophomore year that I took <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>, which was eye opening and allowed me to start to pivot. But even then I hadn&#8217;t broken out of that mold probably until senior fall, senior spring, when I finally took an Introduction to Latin course, which was just for fun and was just so interesting and eye opening.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3411">56:51</a>] And I finally understood aspects of English and Spanish retroactively that I never really had mastered when taking those same classes is I took a course on Dramatic Arts 101, which was a survey class on theater and writing and set design and acting. And pretty much every elemental aspect of theater was introduced in this class. And I wish I had thought to take a class like that. And even in graduate school I was Only gradually learning this lesson finally audited essentially a course in archeology which was so much fun, so much so I had this existential crisis, thinking maybe I should have gone to a PhD in archeology instead.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3446">57:26</a>] But I stayed with CS and I just wish someone had told me to calm down early on and sort of explore more, particularly areas in which I thought I&#8217;d be less comfortable. And that&#8217;s at least a message I try to give to students nowadays. As for professional regrets, thankfully relatively few come to mind, if anything. You know, I used to joke, even with some of our own TAs, that insofar as I&#8217;ve largely stayed in academia, you know, I&#8217;ve never had a like a real job, but as recently as a recent sabbatical, I spent a whole semester or essentially interning with GitHub as a professor in residence and learning the ropes of a real world software engineering company and having access to the internal issues and bug reports and feature requests and sitting in as a fly on the wall to some of the team meetings and design chats.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3494">58:14</a>] And it was so much fun to actually live the life that we&#8217;ve been teaching about for so long. And there too, I wish I had done that earlier or at least in parallel had done maybe more consulting opportunities or done a little bit more in the real world before coming back to school and then staying in school.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3512">58:32</a>] Did you ship a project or like what was that time at GitHub? Like, what was the.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3516">58:36</a>] It wasn&#8217;t. I don&#8217;t think I contributed code. I definitely contributed issues and bug reports and feature requests. My sort of role was to be this educational voice at the table, especially in the design of certain products and to at least speak up on behalf of of educational use cases. Give teachers a voice at the table when it comes to certain features that would really make the student experience better, particularly in tools like VS code, albeit on the Microsoft side, or some of the internal GitHub tooling.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3545">59:05</a>] So I don&#8217;t think you&#8217;ll find any code that I wrote, but hopefully one of my issues underlies some code that&#8217;s now in the code base.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3553">59:13</a>] What about looking back on your time doing <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>? Like if you were to just reflect on what went well and what didn&#8217;t go well, just the highlights of, you know, your time running the course. What, what would you say?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3568">59:28</a>] I think it&#8217;s been very meaningful. So much so that it&#8217;s become our mission organically to have this now tradition of OpenCourseWare that wasn&#8217;t certainly our own idea. It was really inspired by our friends down the road at <a href="https://en.wikipedia.org/wiki/Massachusetts_Institute_of_Technology">MIT</a> who really championed this decades ago, but very happy with how that has evolved because it&#8217;s made the work all the more meaningful in ways that go beyond just education, but helping, as we&#8217;ve heard anecdotally from some of our students out there, very professional impacts, life impacts, being able to better care for your family or to pivot professionally into a field that you didn&#8217;t think was for you like that has just been very meaningful and rather makes it all worthwhile.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3609">1:00:09</a>] And I hope too, in so far as we&#8217;ve been a bit unusual both with our production value and openness, trying to sort of offer an example that others could follow that, hey, maybe more people should be doing, doing this, more people should be sharing, leaning on us, us leaning on them. Because I do think that&#8217;s still a missed opportunity educationally.</p><h3>1:00:29 &#8212; Top book recommendations</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3629">1:00:29</a>] What&#8217;s your best technical book recommendation? If someone wants to learn programming or if there&#8217;s maybe some other topic that you recommend a book for, I&#8217;d love to hear it.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3638">1:00:38</a>] My favorite book is Hitchhiker&#8217;s Guide to the Galaxy and I think everyone should read that or play the terminal based video game that existed when I was growing up of it. It funny enough, within <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>&#8216;s courses it&#8217;s been a few years since we officially recommended any books. This is partly consistent with our commitment to openness and for everything being free so that there isn&#8217;t some financial barrier to someone out there to needing a textbook for the course.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3664">1:01:04</a>] That said, over the years and to this day, some of my favorite tech books, even though they&#8217;re increasingly outdated, are this brilliantly colorful, picturesque, easy to understand and accessible book called How Computers Work, which we used in that course I first taught in 1999 and how the Internet Works. And I think they eventually stopped updating them some years ago. But they were such wonderful educational tools.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3691">1:01:31</a>] I think every subject should have a book that looks quite like that. More arcanely, there&#8217;s a book that we still recommend to students unofficially or if they really want to go pursue something, something more arcane in C called the Hacker&#8217;s Delight, which is this wonderful hardcover book that just has really neat bit trickery and low level hacks, low level techniques you can use to make your C code especially all the more performant.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3716">1:01:56</a>] So there&#8217;s a lot of value in a book like that. But I think back years ago to when I was learning some stuff in technology and like the four Dummies books was great. I think for some time we might have recommended one of the Complete Idiots Guides or something like that, which doesn&#8217;t have the best semantics. But the reality is they are by design written for a very broad, accessible audience, and I think that has a lot of value as opposed to the more traditional textbook where you sort of have to have taken the class in order to understand the book.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3744">1:02:24</a>] Is there an official textbook for the Harvard <a href="https://en.wikipedia.org/wiki/CS50">CS50</a>? Not the open one. Okay, so that one also has the.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3751">1:02:31</a>] Other than having access to a computer and the Internet, there&#8217;s no. No financial requirements.</p><h3>1:02:36 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3756">1:02:36</a>] That&#8217;s great. I love that idea. Last question for you is if you could go back to the beginning of your career and kind of give yourself some advice, what would you say?</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3766">1:02:46</a>] Explore more. I do think I wish I had more jobs under my belt early on, which I think was the result of my being pulled back into choosing to go back into academia. I think it would have been healthy if I had allowed myself maybe another year or two in between undergrad and graduate school. Or it probably would have worked out well if <a href="https://en.wikipedia.org/wiki/CS50">CS50</a> hadn&#8217;t opened up for me right as I was finishing my PhD, because then I probably would have gone off to industry for some amount of time.</p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3796">1:03:16</a>] That said, not sure I would have gotten the job if I had wandered off campus at that point. So it probably worked out for the best. But I had such fun when I was interning, interning, so to speak, at GitHub, that it would be fun to live more of the lives that some of my friends in tech have lived.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3811">1:03:31</a>] Awesome. Well, thank you so much for your time. I really appreciate it. David.</p><p><strong>David:</strong></p><p>[<a href="https://youtu.be/bB2o81DnKHk?t=3814">1:03:34</a>] Yeah, thanks so much.</p>]]></content:encoded></item><item><title><![CDATA[Takeaways from PyTorch Eng Director at MSL]]></title><description><![CDATA[Promohacking, how big tech has changed, avoiding big company badness]]></description><link>https://www.developing.dev/p/takeaways-from-a-pytorch-eng-director</link><guid isPermaLink="false">https://www.developing.dev/p/takeaways-from-a-pytorch-eng-director</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 04 May 2026 13:10:51 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/334c12e9-4929-4e55-a9bd-64cd11aafae4_2560x1440.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/john-myles-white-115697180/">John Myles White</a> was an Engineering Director on PyTorch in MSL. Since he quit recently, we got to talk openly.</p><p>He ran promotions for AI infra and was refreshingly honest about promo culture, how big tech has changed, and org dynamics. We also went over the parts of his career that led him to Director at MSL.</p><p>Below are my main takeaways to save you time.</p><p><em>You can find the full conversation on <a href="https://youtu.be/aPfnP4iAIH8">YouTube</a>, <a href="https://open.spotify.com/episode/3PS3SC1If4Es1f99utMx9u?si=vSAMrGyCTUyK2t5dfCzFfA">Spotify</a>, or <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>. The transcript is on <a href="https://www.developing.dev/p/msl-eng-director-promo-hacking-industry">Substack</a> if you prefer to skim</em></p><div id="youtube2-aPfnP4iAIH8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;aPfnP4iAIH8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/aPfnP4iAIH8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="callout-block" data-callout="true"><h3><strong>Brought to you by:</strong></h3><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!RYtG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!RYtG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 424w, https://substackcdn.com/image/fetch/$s_!RYtG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 848w, https://substackcdn.com/image/fetch/$s_!RYtG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 1272w, https://substackcdn.com/image/fetch/$s_!RYtG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!RYtG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png" width="198" height="48.2625" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:234,&quot;width&quot;:960,&quot;resizeWidth&quot;:198,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;File:Cursor logo.svg&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="File:Cursor logo.svg" title="File:Cursor logo.svg" srcset="https://substackcdn.com/image/fetch/$s_!RYtG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 424w, https://substackcdn.com/image/fetch/$s_!RYtG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 848w, https://substackcdn.com/image/fetch/$s_!RYtG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 1272w, https://substackcdn.com/image/fetch/$s_!RYtG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff101ef46-0174-407b-ba0b-bcf2b06cba1e_960x234.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p><em><a href="cursor.com">Cursor3</a>: a unified workspace for building software with agents. I used it to build tools for the podcast and shared the process in this episode&#8217;s ad read.</em></p></div><h1>Takeaways from the conversation:</h1><p>1) <strong>Promo culture in big tech and its downsides</strong> - John mentioned that promo culture became so strong that every single engineer he&#8217;d meet had the primary goal of promotion. This caused people to ship bad software just because it was their &#8220;promo bar&#8221;.</p><p>For instance, in some of his stories engineers were incentivized to ship software they would delete weeks after it shipped. In another story, people made their projects detrimentally complex just to show their work was sufficient scope. Also, orgs would cannibalize each other by stealing engineers through promising faster promotion paths.</p><p>2) <strong>How employee power has weakened</strong> &#8211; Pre-COVID, big tech cared a lot about keeping employees even when it was at employer expense. Engineers had lots of perks and optionality. Now the sense is there are too many software engineers, and maybe way too many if you count AI costs and productivity gains.</p><p>This has a lot of downstream effects. For instance, in reorgs, employee retention is a major factor when management is making decisions. If it doesn&#8217;t matter if employees leave, then management can be much more bold in making decisions that don&#8217;t favor the employees.</p><p>3) <strong>How to avoid playing the game</strong> - The main power you have is in where you choose to work. Even at a big company where promotion is a natural incentive that impacts everyone, there are still many teams that focus more on engineering excellence. Your career may grow more slowly but you&#8217;ll enjoy the path more.</p><p>He shared an example of how the PyTorch org focused on engineering first. Because of that engineers were almost always under leveled. But the benefit of that was the engineers in that org were more skilled and had better career mobility because people respected their levels more.</p><div><hr></div><p>We talked about other topics too but these were the three I figured would be most interesting.</p><p>I&#8217;m going to start sharing quick summaries of the most interesting takeaways. If you don&#8217;t have time for the full conversation but want the key points, these should help. Let me know if you have feedback.</p><p>Also, a couple of operational updates:</p><ol><li><p>Cursor is sponsoring the podcast! Huge milestone towards this podcast supporting itself so I&#8217;m not spending my savings to chase this dream.</p></li><li><p>I rebranded the newsletter to &#8220;The Peterman Post&#8221; so I can focus more on what&#8217;s useful and interesting to software engineers instead of just how to get promoted.</p></li></ol><p>If you&#8217;ve been here since &#8220;The Developing Dev,&#8221; thanks for sticking with me. I&#8217;m keeping the domain the same for now, since I haven&#8217;t found a better one yet. Maybe someday if the podcast earns more I can grab a nice one.</p><p>Thanks for reading,<br>Ryan Peterman</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.developing.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Subscribe for free to receive new posts and support my work:</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[PyTorch Eng Director: Promo Hacking, Industry Shifts, Regrets | John Myles White]]></title><description><![CDATA["You have to play the game, it's totally irrational to not play the game"]]></description><link>https://www.developing.dev/p/msl-eng-director-promo-hacking-industry</link><guid isPermaLink="false">https://www.developing.dev/p/msl-eng-director-promo-hacking-industry</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 04 May 2026 09:02:24 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/196062061/7c5011615eebaaa274d4dedf9e463b05.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/john-myles-white-115697180/">John Myles White</a> recently left his role as a director of engineering at Meta Superintelligence Labs (MSL) so we spoke freely about promo culture, how big tech has changed, and how his career grew.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/aPfnP4iAIH8">YouTube</a>, <a href="https://open.spotify.com/episode/3PS3SC1If4Es1f99utMx9u?si=vSAMrGyCTUyK2t5dfCzFfA">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-aPfnP4iAIH8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;aPfnP4iAIH8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/aPfnP4iAIH8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/196062061/054-is-he-bullish-on-msl">0:54 - Is he bullish on MSL</a></p><p><a href="https://www.developing.dev/i/196062061/523-running-promotions-at-meta">5:23 - Running promotions at Meta</a></p><p><a href="https://www.developing.dev/i/196062061/1515-growing-at-meta">15:15 - Growing at Meta</a></p><p><a href="https://www.developing.dev/i/196062061/2222-julia-core-language-contributor">22:22 - Julia core language contributor</a></p><p><a href="https://www.developing.dev/i/196062061/2924-academics-failing-into-industry">29:24 - Academics failing into industry</a></p><p><a href="https://www.developing.dev/i/196062061/3148-stats-book-recommendations">31:48 - Stats book recommendations</a></p><p><a href="https://www.developing.dev/i/196062061/3802-biggest-career-regret">38:02 - Biggest career regret</a></p><p><a href="https://www.developing.dev/i/196062061/4105-advice-for-his-younger-self">41:05 - Advice for his younger self</a></p><h1>Transcript</h1><h3>0:54 &#8212; Is he bullish on MSL</h3><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=54">0:54</a>] Oh, this is I guess like a more radical question. But I guess I will be honest. I am very bullish on Meta as a company that I am now a stockholder of, but not an employee. I am very bearish on Meta if you&#8217;re an employee who&#8217;s not a stockholder which just turns out to not be really anyone. But I think you can think of yourself as mostly employee if you&#8217;re mostly getting cash and mostly not equity. The more senior folks are the ones who are more mostly stockholder than employee.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=87">1:27</a>] And I think that&#8217;s the tension. I do think, like my sense is that it&#8217;s enforced with. I don&#8217;t get the perception it&#8217;s unique to msl. My perception is that I think just Meta as a place to be an employee is less enjoyable than it used to be. But it actually is being run very effectively if what you care about is the bottom line of the business. And so I continue to invest in Meta and I suspect I will continue to invest because I do think it&#8217;s actually from a business perspective run quite well.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=115">1:55</a>] But I do think pretty uniformly, I think it&#8217;s not unique to msl. I do think it&#8217;s a much more stressful time to be an employee there than before.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=123">2:03</a>] What&#8217;s the part that makes it where you&#8217;re saying employees might not enjoy working there as much as they used to?</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=132">2:12</a>] I think that, I mean, I think this is true of all of Silicon Valley. I think in general there was a lot of sense that it was incredibly easy to lose your glute employees and so you had to do everything impossible to sacrifice to retain them. And you are constantly constrained by an undersupply of employees. And I think basically everyone in Silicon Valley&#8217;s view, as far as I can tell, is that that&#8217;s mostly not true outside of a small set of AI researchers in Frontier Labs, where I think people do still behave this way.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=159">2:39</a>] In fact, maybe behave this way more than ever before. But I think for everyone else, the general perception is the supply of engineers is way oversupplied. And especially I think, actually people&#8217;s concern is with AI, maybe they&#8217;re really oversupplied. I think what happens is a new market dynamic, which is like, I think as an employer, you&#8217;re thinking, I don&#8217;t actually have to make so many sacrifices to acquire and retain talents, and so therefore I&#8217;m going to make fewer of them.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=186">3:06</a>] And this can play out in a million ways, but it can be like compensation, but it can also be things of like, do we do things that upset the employees or do we not? And how hesitant are we? How much do we give them a voice, and how much do we not give them a voice? I think that stuff has changed a lot in the years I was at Meta, but my impression is Meta is not in any way unique here. This is just a general property of all of Silicon Valley.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=210">3:30</a>] But I do think as an employee, I think the labor supply and demand situation is super different from when I started. And I think it is a thing that is going to make generally being an employee rougher, period.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=224">3:44</a>] It feels like it can be subtle as well. Like what you described of, I guess, employees having less leverage. You could see that affecting maybe even reorg decisions or things like that, where it&#8217;s like, if people leave, that is part of the calculus of the reorg and that is less of a downside now and maybe in the future. So I can see there being a lot of downstream effects where things just don&#8217;t go as well for employees.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=252">4:12</a>] Oh, yeah. I mean, there&#8217;s just so much stuff that in the previous versions of Meta, was done that arguably was a bad decision for the business, but made sense from the context of retaining talent. And I think that the company is just doing less of that. But on the flip side, I guess, to be clear, I didn&#8217;t say as explicitly before, I do think for most people, fundamentally, just the possibility might get laid off is the number one emotional thing that causes people stress.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=277">4:37</a>] And living in a world where, you know, that has both happened recently and may happen again in the future, I think sort of probably beats out all the other questions of sort of lifts and food and stuff. I think prior to the layoffs, when those Things got taken away, people freaked out and were like, this is unforgivable. But then once they&#8217;re like, oh wait, actually you guys might just fire me. So now I&#8217;m much more tolerant of you taking away my food away.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=304">5:04</a>] But I do think that fundamentally it probably drives for most people, the vast majority of it. And actually this probably is one of the things that makes say MSL more stressful than the other Frontier Labs is the sense that it might have layoffs in the sense that I think so far there have been fewer rounds or at least perceived to be fewer rounds.</p><h3>5:23 &#8212; Running promotions at Meta</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=323">5:23</a>] and I think another thing that is oftentimes used for retention is the promise of growth or I guess career growth for an employee. And I know you ran promotions in AI Infra for a long time. I was curious if you saw things change over the years.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=341">5:41</a>] I observed a lot of divisions of Meta would really stop talking about, well, your comp is why you&#8217;re here and we pay you good money and you enjoy the work and that&#8217;s why you stay. And a lot of people are like, the only reason you do anything is because there&#8217;s a clear story about how it&#8217;s going to get you a promotion and you would like especially. This was really striking when I moved from Data Infra, whereas one of the places I was in earlier in Infra, moving to AI infra and I was in AI infra for a while before I came into sort of Pytorch, part of AI Infra and then later MSL.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=373">6:13</a>] One of the things that blew my mind is there was not a single person I would meet on any team in AI infra whose first and foremost goal wasn&#8217;t promotion. This was a thing that came up in Data Infra but was not 90% of people&#8217;s attention. And when I started at Meta, it was just not ever a thing. Actually I used to manage one of your previous guests, Adrien, and Adrien and I were talking about career growth back in the day and one of the things that was really amazing was we started in this org growth that actually had never had anyone above IC7 ever in history.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=408">6:48</a>] On the SWE side, to be clear, there were some other rules that had it, but at least this is what we were told. I actually don&#8217;t know for a fact it was objectively true, but we were told this by several people. I think in that world you weren&#8217;t focused on promotion, so it wasn&#8217;t a big thing. But then it became a thing where it was like this is the thing like you will one get more money, more promoted, but also you&#8217;ll have a title that you can use for your next job.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=433">7:13</a>] And everything is driven by promotion dynamics. Actually, I would say the org I sound that&#8217;s by far most strong in was monetization, which is like when monetization would hire people out of AI infra, it would always literally be like, here is a very detailed plan of work you will do in order to get promoted. And. And that was a thing that worked very effectively. But it also my experience wrecked tons of teams and I managed a bunch of those teams now to fix them.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=462">7:42</a>] But they were teams where basically everyone agreed the thing we were working on was bad. No one thought it would succeed, but people were like, oh, but I have to ship it because that&#8217;s my promo bar. And you get into the state where it&#8217;s sort of just impossible to even make good decisions about software anymore because the promotions were so important. And then I think what happened as the market became less pro employee is that people were like, oh, no, no, no, you should be afraid of being laid off.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=488">8:08</a>] You should not be worried about the positive chance of a promotion. But I don&#8217;t think that was a good cultural fix. But I do think it&#8217;s been a bit of an attempt to undo some of the damage from before. But I do think that promotion mindset was incredibly intense everywhere. And ironically, it led to this thing which I found really troubling, which was the thing that would actually let you develop real skills that would do better in your career going forward.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=514">8:34</a>] Increasingly got decoupled from the promotions. And I&#8217;ve seen a lot of people on Twitter over the years say this, and I find it very compelling, which is people are like, the main thing that&#8217;s wrong with the engineering cultures at the big tech companies is the promote culture. And I really agree. I actually think meta, ironically, my perception, seems to be doing better at this than many of the other companies that have even more formal processes and more anonymous parties involved.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=539">8:59</a>] But I do think though, like, oh, what really matters is that you ran a rollout that affected 10 other systems. This causes people to not build clean systems. It causes them to build systems that maximally are coupled to the other systems in order to be able to hit the promo bar and that I think actually I met so many people who didn&#8217;t even like the work they were doing because they&#8217;re like, well, this is what will get me promoted.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=563">9:23</a>] And so do you think that stuff was really unfortunate? And especially I think actually in the AI world has been especially unfortunate because it means unless someone is clear how using the AI tooling is going to get them promoted, they may not do it. But it is without doubt in my mind the only thing that&#8217;s going to matter for actual professional development and growth and actually being able to do more interesting work in the future.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=585">9:45</a>] Yeah, I definitely saw some unusual behaviors, but we&#8217;re all trying to play the game because it helps people get promoted and you retain people and all that.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=596">9:56</a>] So, yeah, I mean, unless your VP is ready to fix that and totally shut it down, like, you have to play the game, it&#8217;s totally irrational not to play the game. And I think, you know, you either. If you don&#8217;t want to be in that, you have to leave the org. If you&#8217;re there, you&#8217;ve got to play the game. You cannot be the one who sort of unilaterally disarms. But it is, I mean, it was mind blowing to me to see this culture, I think was unique to both monetization, AI infra, but it was completely dominant in AI infra and it was really, it was not great for any parties.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=624">10:24</a>] And funny thing is, it was like, it wasn&#8217;t even good for the people who were in it. Like they themselves had gotten to this rat race that seemed to be demoralizing to them.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=632">10:32</a>] You saw this, I saw this. What could you do, though? When I was in it too, the people who were talking about it, they were not necessarily saying, yeah, this is good. They were saying, yep, I&#8217;m doing this that I don&#8217;t believe in, but we both know that I need to do this for this reason, so I&#8217;m doing it.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=650">10:50</a>] I think there are sort of two high sources of uncertainty that compete, and I don&#8217;t quite know how they balance out, but I think one is, I think people have a ton of agency in choosing the culture of the team they want to be on. And if they&#8217;re in a situation like that and they don&#8217;t love it. Meta has a lot of teams that don&#8217;t have that culture. There are a lot of teams like Pytorch was one of them, where people were just genuinely in it for the love of the craft.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=674">11:14</a>] And people loved engineering as engineering in Pytorch in a way that I think was not present in a bunch of other parts of Meta. I think people wanted to come to Pytorch for that reason, and I think people came and were happy for that reason. So I do think people just have agency in that sense, which is like, yeah, within the context of that machine, you got to follow the rules, but it&#8217;s not like you&#8217;re forced to be in that machine.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=694">11:34</a>] There were other rules. Not everyone would get them and Pytorch was very choosy. But I think many people could and it was worth doing. I think the alternative though was also even within a team, managers can differ a lot in how much they push on this. And I have personally at least been a person who I think mostly benefited from actually trying to bet on be on the stable team that will gradually succeed over time and will have a healthy culture and not collapse and not do things like over level ourselves.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=726">12:06</a>] But it does mean that you get promoted slower. And this is where I think I do struggle with this a bit, which is, I think if you think of the day, what you really want to do is do something like compute your total sum of earnings over your entire lifetime. It may be better to be in the orgs that get promoted really fast and get fired really fast. But there are a lot of those orgs at Meta where people are like, well, they&#8217;re the stars.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=747">12:27</a>] Oh, actually no, it turns out they&#8217;re terrible and lied to us. So we got rid of all of them. This happened a bunch of times in the years. It might be that that is actually economically rational, I&#8217;m not sure, but certainly I think from myself about emotionally rational and feeling like I enjoy the craft of stuff being on the teams. And Pytorch was like this. I mean, one of the challenges actually Pytorch had with hiring was actually the perception that Pytorch held a higher bar.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=773">12:53</a>] People would be like, oh, I&#8217;ve heard you guys are actually like much tougher about promotions. And I&#8217;d be like, yeah, honestly, we are like, honestly, like our eights are like as good as you&#8217;re going to get anywhere in this whole world. And if you want to be the best engineer you&#8217;re ever going to be in your entire life, you should work with them. But like R8s probably are better than the 10s in a couple of other teams.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=785">13:05</a>] If you want to be a 10, you maybe should be in that team instead. And I think for some people that would really turn them off. But I think part of this was again, the sort of agency and selection mechanism is I think Pytorch selected people who actually just loved engineering, as engineering. And then there were people who were willing to tolerate slightly fewer promotions. And ironically, one of the things I think was interesting though was that it became a bit of a magic thing that turned out well, which is because people perceive Pytorch to hold such a high bar, it was much easier for us to convince people outside of Pytorch that actually our people were ready for eight or nine or ten.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=831">13:51</a>] Whereas other teams, when they tried to make this argument, they&#8217;re like, oh, you guys are not well known for holding a high bar. Maybe you guys are just overselling these people. But in Pytorch, people were like, oh, yeah, you guys hired our guy and thought he was pretty bad. So actually we think you probably are credible. And I think that again, it&#8217;s like, in the short term, doesn&#8217;t actually accumulate as fast, but I think in the long term does have a ton of benefits.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=855">14:15</a>] Whether it is the absolute compensation maximizing algorithm, I&#8217;m not sure. And that&#8217;s where I have a little bit torn. But for me, I was also like, I was willing to get 20% less compensation to be in a place that I was more proud of, actually.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=871">14:31</a>] That&#8217;s funny, because I remember someone from Pytorch would join one of our collaborations, for instance. You know, someone would join and go, oh, he&#8217;s a five, but really he&#8217;s like a seven. Like, he&#8217;s, he&#8217;s better than all of our engineers, but we don&#8217;t know why he&#8217;s a five, but he&#8217;s a five. That was not uncommon working with that. Or.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=889">14:49</a>] Yeah, I mean, I mean, again, this is like, I mean, it would come out like, flat out in like opportunity chats where we tried to hire someone and they&#8217;re like, hey, you know, Pyke is cool, but like, aren&#8217;t you guys, like, really under leveled? That would be the first question people would ask and have to be like, maybe, or maybe we&#8217;re holding the right levels. You gotta decide where you want to take a chance on us.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=908">15:08</a>] But I think the flip side is we really did train people. A lot of people who were in Pytorch really learned to be remarkably good.</p><h3>15:15 &#8212; Growing at Meta</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=915">15:15</a>] I know before Pytorch, you worked on some of the data and experimentation tools at Meta. How was that work and how was your experience growing in early Facebook before all this promo craziness?</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=928">15:28</a>] Well, I came into a wild ride, which was actually, honestly an amazing experience and some of my happiest years of my life from my first two years at Meta. But also some of the most fearsome and scary years were also there. But I joined the team that I signed up for, and when I signed up, it was supposed to be called Data Science before I arrived because I asked for a six month leave to Work on Julia, the programming language I was one of the core contributors to.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=948">15:48</a>] I asked for a six month leave between finishing grad school and going to Facebook at that time. During that six month period, the guy who hired me quit and then the team that was called Data Science that I was hired into got split into two teams, one called Core Data Science and one called Data Science Infrastructure. Then that itself became really tricky because I wound up joining Core Data Science but really loving collaborating with the Data Science Infrastructure.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=979">16:19</a>] People who were the ones who owned the experimentation tools, working in the experimentation tools was honestly, I think to this day most people who know me from Meta are like, oh yeah, John was really helpful for that stuff. I actually think almost nothing I worked on as an IC ever went anywhere close to being as valuable to the business as the experimentation stuff. And I don&#8217;t think I was ever as good at any of the other stuff.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1003">16:43</a>] I really loved being in that space and I think it was really influential to the business. That said I was on this Core Data Science team that was like an insane ball of stress. I joined, it was radically reorged, it had new managers, actually wound up really liking the new managers, but that was still a source of churn. But then a few months into it, someone who actually was on the Data Science Infrastructure team, which is particularly what&#8217;s amusing, but attributed his team to being Core Data Science because he perceived that to be sort of the team he really was on when he wrote this paper, published this paper in pnas, the Proceedings of National Academy of Science called something like emotional contagion in social networks that wound up just becoming the absolute singular worst piece of PR for Meta as a business that year.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1052">17:32</a>] Just absolute disaster. I was really, really trying to prevent this from happening, but I didn&#8217;t have the authority to prevent it. But at least people perceive I was on the side who was not happy with this decision. But it meant that I was on this team where I was doing the Data Science Infrastructure work that was sort of very inward facing and very safe. But I was affiliated with a more researchy division that was publishing these papers that went from becoming sort of a PR win to a PR nightmare very rapidly.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1079">17:59</a>] And that team, I think was one of the most formative experiences at Meta because it really was like, well, what happens if this team just gets fully disbanded? And this was in a world where there weren&#8217;t layoffs. It was like, well, Meta doesn&#8217;t do layoffs, but this team maybe has got itself to a state where it&#8217;s going to get laid off. And the guy who wrote this paper wound up having to do a company wide Q and A where effectively he sort of just apologized to the entire business as his Q and A.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1104">18:24</a>] It was really just a mind blowing experience. And especially it was one where it&#8217;s like I came as an IC4 and all of a sudden we were in these meetings, we&#8217;re the head of legal being like, well why did you guys do this? And having to have these discussions with them on a regular basis and really trying to figure through what was the future of our team. But it was great. That blew over for what is worth.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1127">18:47</a>] And then I spent several years just working on our experimentation tools. I was one of the main developers of Deltoid 3, which is I think now just called Deltoid because I think it&#8217;s been Deltoid for so long they just referred to it as Deltoid. But at one point it was like the third iteration and I worked a ton on that. And then especially it was a great example of how career growth can actually happen, which is I was on the team and then all of a sudden almost all the senior engineers left the team in the span of six months.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1153">19:13</a>] And then I went from being like. And at the point maybe I was already in IC5 when they all left, I&#8217;m not sure. But I went from being one of the people on the team building experimentation tools to the only one who remembered how anything worked left. And suddenly I went from being sort of random IC5 to de facto TL for a bunch of stuff, which was actually an amazing opportunity for growth. And I think people understate how often these things can happen in tech.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1177">19:37</a>] But it meant that I wound up really being able to drive a bunch of the vision for the A B testing tools for years, which were hugely successful Meta and it really was like some of the most fulfilling work I ever did on Meta.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1191">19:51</a>] And just to give people context, Deltoid is the AB testing framework or the thing that you opt in one code path to A, one code path to B and you measure all the downstream benefits of ideally your test. Right?</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1205">20:05</a>] Yeah. I think one of the things that&#8217;s actually kind of mind blowing to me is actually this is one of these decisions where maybe I did make bad career decisions, which is as far as I can tell, every time I&#8217;ve ever looked at it. The statsig product, which I now don&#8217;t know what its state is after they got put OpenAI is just like is Deltoid. This is one of the things where stuff in Meta when you&#8217;ve been in Meta, you work on these things.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1226">20:26</a>] Like I also managed data swarm, but when people are like, what&#8217;s data swarm? It is literally airflow. And it&#8217;s not metaphorically airflow. The guy who wrote airflow built data swarm, quit, and a week later open sourced airflow. And the deltoid is not quite the same because it&#8217;s not the same people left and built statsig. But my perception is that for most people who will be watching this if they&#8217;ve ever seen statsig, my perception is that like almost the entire UI is the same, almost all the functionality is the same.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1254">20:54</a>] It&#8217;s one of these things where I like, you know, probably should have built a deltoid startup many years earlier and I did not have the wisdom to do that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1261">21:01</a>] I think there was another one called Optimizely as well. Yeah, so I&#8217;ve seen many companies. It seems like a very repeatable playbook where you just take something that people take for granted that&#8217;s state of the art from a big tech company and you just give it to everyone in the industry and it actually creates like a billion dollar companies pretty. I mean, it&#8217;s hard, but at least the product market fit and idea part are relatively solved since it&#8217;s creating so much value for these big companies.</p><h3>22:22 &#8212; Julia core language contributor</h3><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1342">22:22</a>] You know, I saw before you worked at Meta, you were working on the Julia programming language and I actually wasn&#8217;t familiar about it. So I read into it a little bit and looks like it was part of these data science language wars, basically where there was R versus Julia versus Python. What is Julia and what is the context on that war there?</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1365">22:45</a>] Yeah, well, certainly I think AI made it more of a part of the war. I don&#8217;t think it had to necessarily be part of it, although I do think also the simple fact of the reality is programming languages are products and products exist in an ecosystem where they&#8217;re in zero sum competition and claiming that they&#8217;re non zero sums. Competition is a very cute thing that people say is appropriate, but it&#8217;s clearly false and I think just makes everyone worse by misleading them.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1390">23:10</a>] Julia for me and essentially sort of why did Julia so appealing? I mean, for me, what Julia&#8217;s pitch was, we should be able to write code in a high level language that looks like Python or like matlab, which is really the language it was originally designed to destroy. It was really designed to get rid of matlab. It was made by MIT math people who wanted to get rid of matlab and it really targeted that market much more than data science had started.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1414">23:34</a>] And I think I was involved in pushing it towards data science. But to me, the thing I always do when I give talks about Julia is be like, listen, let&#8217;s look at the R function for distance. Like compute a distance matrix between a bunch of vectors, pairs of vectors, and you get all the distance matrix. If you look at that function and then you actually try to figure out how it&#8217;s implemented in R, what you find is C code that is very reasonable.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1441">24:01</a>] C code that is just a bunch of for loops, loop through all the rows and all the columns and then compute the distance at that row and you&#8217;re done. If you basically take that code verbatim and just translate it naively into R, you&#8217;re going to take some type information away, you&#8217;re going to get rid of some ints and float signatures, but otherwise you&#8217;re going to basically write for loops that look exactly the same.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1463">24:23</a>] VR code is going to be somewhere between 1,000 to 10,000 times slower than C. And this to me was the thing that just drove me insane where I&#8217;m just like, wait, what? These two programs are 80% the same. Why is one not as fast? And Julia really was all about this notion that that was unacceptable and that&#8217;s what made it so appealing. When the first post by the original founders went out, I was like, oh, you guys are doing the thing I wanted people to do, which is not claim that it is impossible to make high level languages fast, which is so much of actually how the Python R community sometimes behave is to be like, oh well, we can&#8217;t be fast, but also fast isn&#8217;t important.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1504">25:04</a>] And to me that double hit of well, we can&#8217;t be it and is not important really didn&#8217;t work for me. So Julia really resonated. I think I probably is the guilty party of trying to make it more part of the data science wars, because I was myself a heavy user of R and was just so disappointed in R, just so incredibly disappointed in how often I would try to do a project. And R just like fought me at every step of the way.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1532">25:32</a>] But Python is also like this. I mean, if you look at all the really great libraries like Pytorch, like, you know, deep down, at the end of the day you&#8217;re going to look at C code, or you&#8217;re maybe even looking at like handwritten assembly or handwritten like kernels for GPUs, or at least you&#8217;re looking at something written in a much lower level language. And so Julia was really about trying to solve that.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1551">25:51</a>] And I don&#8217;t think it totally won, which I think is probably why you didn&#8217;t know about. I think it was very hip at one point and has become less hip, but it&#8217;s actually doing okay. I think it&#8217;s in the top 25 programming languages by users in the world. So I think it&#8217;s a real language that&#8217;s really out there. But for me, the thing that really matters, even though I don&#8217;t know that it&#8217;s killing it, Julia is like the only people still actually fighting that fight.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1575">26:15</a>] Well, what&#8217;s the intuition behind why R is 10,000 times slower when the code is. The symbols are relatively similar to the</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1582">26:22</a>] C. Fundamentally, any code that&#8217;s slow is slow because it&#8217;s doing stuff it doesn&#8217;t need to do. That&#8217;s just the most basic fact about slow code, is that the reason you&#8217;re slowed is because you could have done something else and you did something slower instead. And something like R is doing this. Pretty easy to see this in Python. It&#8217;s not quite as dire, but it&#8217;s still there is you wind up paying an enormous amount of overhead cost for the possibility that someone might do something more dynamic and because they might do it.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1610">26:50</a>] And to give you an example, which is really astonishing about R is in R, for instance, the brace that you use to define a block is an operator that can be overridden and the user can redefine so they can make braces mean something else. So that means when you see a brace in code, you can&#8217;t just be like, I know what this is, I can move on. You have to be like, no, I need to look up and check, did the user redefine This I think it&#8217;s brace and not parenthesis.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1638">27:18</a>] But it&#8217;s been a while, so I haven&#8217;t dug in. But it may also be parenthesis. Or it&#8217;s possible I flipped them. We can check offline and see whether my memory is good. But you just wind up with so much stuff like this that is so maybe changed and you don&#8217;t know whether it changed. So you need to go check whether it changed. And the checks are very expensive, especially if you&#8217;re doing something like adding two 64 bit integers.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1661">27:41</a>] That&#8217;s like one machine cycle. Like just one machine cycle. But to check does addition still mean what I think it is? Could be hundreds to thousands of machine cycles. And so you wind up swapping in things that are very inefficient places that you don&#8217;t need. And this is particularly R is amazing. There&#8217;s this amazing paper by a couple of students and a senior professor named Jan Vitek. But it&#8217;s about the design called something like evaluating design of the R programming language.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1692">28:12</a>] And one of the things they look at is especially R has an especially tricky thing, which is unlike Python, R is also a lazily evaluated lay language where the arguments to functions are not evaluated before you start the function body. They wait until the function kicks off and they just are passed as promise objects. And what they look at is they look at, well, how often are these promises could have been eagerly evaluated and how often is the overhead of these promises worth it?</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1718">28:38</a>] And their conclusion is like 70% or maybe more, maybe it&#8217;s 90%. I forget the numbers. You basically have no reason you needed to do this almost never do you need this. But you actually pay an enormous overhead cost for having agreed to do this. And a good example saying Python also has in Python you can manipulate the symbol table using functions in the inspect module. And so what that means is you can never be sure of what something&#8217;s bound to.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1746">29:06</a>] You always have to be afraid and check and just sort of general the lack of invariance, that&#8217;s what makes a language fast. It&#8217;s like you have lots of invariants. What makes your language slow is you have lots of stuff you might have to go confirm at runtime and ours just incredibly pervasively like this.</p><h3>29:24 &#8212; Academics failing into industry</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1764">29:24</a>] I looked at some of your popular past tweets and I thought maybe we could discuss some of them. So one of them, this is the most popular tweet that I think you ever wrote and you said that you&#8217;re continually, continually disappointed by how many grad students and postdocs get the impression that industry is a safe position of last resort and they can always fall back on if things sour in their academic careers.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1792">29:52</a>] And I thought that was interesting because I thought the opposite was also very commonly true where people might want to avoid industry so they go and get higher education. So I&#8217;m curious your thought on this and what made you think this.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1807">30:07</a>] Really, what drove me nuts was there were just a ton of people who fundamentally wanted to be professors or postdocs and were in a PhD program. And they were like, well, if I fail out, I&#8217;ll go into industry. And this one is that you would interact with people during interviews who clearly didn&#8217;t want to be there, just so unambiguously did not want to be there and clearly viewed this as a failure that they were interviewing.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1835">30:35</a>] And you&#8217;re like, well, that&#8217;s not really a positive sign that we want to hire someone who doesn&#8217;t seem like they&#8217;re going to enjoy the job. But in addition, a bunch of people. And this is what drove me so insane, because I think it&#8217;s like all parties involved in the academic system hurt students doing this, is that so many people just assumed that when they finally decided to get an industry position, it was going to be trivial, and then they didn&#8217;t find it trivial.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1860">31:00</a>] I think a lot of academic people are like, well, smart people are in academia and the dumb people are in industry. So if I need to go compete with the dumb people, it will be easy. And I think there was a lot of that. But, you know, there was a person, I&#8217;ll give you an example. There was a person who was like, effectively a CS professor who I interviewed. And this person could not figure out how to pass values between the various functions that they were calling in the interview.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1883">31:23</a>] Like, literally, they were like, what I would do is I would call this function, it would print out in the repl, then it would read it as a human, and then I would go type it into this other piece of code. And I was like, oh, you are better at programming than this, right? Because you&#8217;re professor of computer science. And they&#8217;re like, no, no, this is how I work. And I was like, oh, this is not going to set you up for success if we actually have to get you writing code and prod here.</p><h3>31:48 &#8212; Stats book recommendations</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1908">31:48</a>] I saw a few other popular tweets that you had. They were about, like, favorite statistics papers and favorite recommendations of statistical books that you&#8217;re saying, oh, everyone&#8217;s got to read these. How come you have such strong recommendations on statistical literature? And then also, what Are those recommendations?</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1927">32:07</a>] I love statistics. I think I&#8217;ll never not love it but I think it&#8217;s the craziest field. And what I mean by crazy is it&#8217;s a field that fundamentally sells people the idea that they can use statistical methods in real life but in reality what they do is do pure mathematics and study how statistical methods work in an idealized theoretical world. And in pure math. As an undergrad I did pure math and I loved things like number theory and pure math.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1954">32:34</a>] You just period. It&#8217;s pure, you prove it. It&#8217;s internally coherent. There&#8217;s no attempt to reconcile with reality. Reality doesn&#8217;t even matter. You&#8217;re just like, there&#8217;s rules, we follow the rules. We&#8217;re in this internally consistent system. And then in super applied fields like software engineering you&#8217;re just like well the thing runs, the code runs. I don&#8217;t know what to tell you, I can&#8217;t prove this code runs.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=1975">32:55</a>] But we ran it in prod and it had eight nines of reliability which makes it better than most of the software everything for humans we&#8217;re good. Statistics is the super crazy field where you reason in about mathematics but then make all these claims about how it&#8217;s going to be useful to people in practice. And this I think is where opinions come in so strongly is that I think some people just are very, very honest and hold themselves to a super high bar.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2001">33:21</a>] And some people I think are super cavalier about stuff and are roughly just like well I said it was true. And then you&#8217;re like well is it true? And they&#8217;re like and you&#8217;re like let&#8217;s really dig into the proof. And they&#8217;re like fine. One of their four people I love, love, love, love more than anybody is Larry Wasserman. I&#8217;ve never met the guy so I don&#8217;t know what he&#8217;s like as a human but his books are to me the embodiment of hyper intense honesty.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2028">33:48</a>] He just seems like a person. Just like I cannot tell a lie and just like therefore everything you get from Wasserman is exactly true. He tells you exactly what he&#8217;s assuming. He tells you exactly what to imply. And he&#8217;s also extremely clear about being like I actually don&#8217;t claim these other things that you might want me to claim because they&#8217;re not true. And I think a ton of statistics books are not like that.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2051">34:11</a>] A ton of statistics are like use our methods, they&#8217;re great. And so I think Wasserman is really at the top. Another book that someone recommended to me sort of halfway through my career a meta that I loved. I think it&#8217;s called something like Introduction to Agnostic Statistics is a book by a guy named Peter Aronau. And he&#8217;s, I think, another person likely sort of just like incredibly concerned with whether the things he says are true or false.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2073">34:33</a>] And he&#8217;s hyper rigorous and hyper careful. And again, I think a lot of people in statistics are not hyper rigorous and hyper careful. So I love the book. So the recommendations I gave Wasserman, like, literally anything you can get by Larry Wasserman. Buy and read if you want to learn statistics. Like, I don&#8217;t think any book has ever been better than the books he&#8217;s written. In my entire life, I&#8217;ve never seen anything come close to being as good.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2094">34:54</a>] The Peter Arnault book, I think, is probably as good as a thing you could ever read if you&#8217;re a social scientist or someone working more practically. It&#8217;s a little less math heavy than the Wasserman books.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2107">35:07</a>] And I think there is a lot of value in big technology and understanding some statistics or doing it rigorously because I&#8217;ve been in so many A B test review meetings. And I think a lot of people who kind of just enter the industry and they see the UI and they go, I got a green bar here. Please give me the approval to ship my code path. But actually if you kind of dig in, you ask some whys and you&#8217;re like, wait, it was red yesterday.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2137">35:37</a>] Why is it? What&#8217;s going on here? The understanding is very superficial and people are just trying to. And just trying to move forward whether or not it&#8217;s actually statistically beneficial across the user base.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2153">35:53</a>] Ironically, it&#8217;s a great example of everything we talked about today summed up as a story I have when we were trying to get Deltoid 3 to ship out. At that point, Deltoid 1 was still the default. And there was a person who came to us and this person was actually otherwise great. And I loved interacting with them, but this interaction was really. I was like, this reflects a lot of cultural pathology at our company, where they&#8217;re like, hey, I can&#8217;t let you ship Delta 3.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2175">36:15</a>] And I&#8217;m like, why can&#8217;t we ship it? And they&#8217;re like, our holdout goes from being statistically significant win for the company to being not statistically significant until I think it&#8217;s a regression. And I was like, all right, it might be a regression, but maybe it&#8217;s also the truth. They&#8217;re like, I actually don&#8217;t know which it is, but you guys are going to wait until the half is over and we&#8217;ve decided we hit our goal and then you can ship Delta 3.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2200">36:40</a>] And I was like, oh, but wait. I was like, your win is so close to the border between you did nothing and won that literally mild tweaks in our code have turned it off. I feel like that&#8217;s not a win. People be so concerned about, and especially this notion that you&#8217;re almost significant, so therefore you failed or you&#8217;re just barely not significant, win or fail. That, I think is this super dangerous culture.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2230">37:10</a>] I mean, one of the worst things I ever saw was a team that I managed with Sweze, and one of the things they told me was they&#8217;re like, hey, you know, we have to do this thing because we made a goal. And I was like, okay, but what are we going to do next half? They&#8217;re like, oh, definitely on July 2nd, we&#8217;re going to delete this code. And I was like, wait, then why are you shipping it? Well, because we can&#8217;t miss our goals.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2249">37:29</a>] And I was like, I feel like our goals should not be written in a way where shipping a thing we intend to delete literally a day later is a success. And they&#8217;re like, yeah, that&#8217;s fine. Fair. And I was like, what do you mean, fair? Come on, man, don&#8217;t do this. And eventually I convinced them not to do it. I was like, I&#8217;m the manager. I can decide the ratings. We don&#8217;t have to just do this. But people really firmly believe this.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2270">37:50</a>] And I think the statistics thing, the problem is a lack of understanding of statistics bleeds into other weird pathologies of how people are evaluated and the two together become extra dangerous.</p><h3>38:02 &#8212; Biggest career regret</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2282">38:02</a>] Coming to the end. Just a few questions, kind of reflecting on your career so far. Do you have a regret that maybe other people could learn from?</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2291">38:11</a>] Oh, yeah. People ask me this so much over the years, especially as I became a more senior manager and then a director, that I have a keen answer because I&#8217;ve been asked this a million times. I, for my first several years, had Javi as my skip. For people who don&#8217;t know him, he&#8217;s currently, I think, the COO of Manta. But he was first ahead of growth and then the head of growth and ads. And then I think now he runs roughly 50% of meta.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2316">38:36</a>] But Javi was my skip. And every time my actual manager, this guy named Danny, would be like, javi wants people to come to his office hours. No one shows up. And he feels like it&#8217;s a waste of his time. Someone should Go. And I basically just was like, well, I don&#8217;t have anything actually that valuable to say to Javi, so I&#8217;m just going to waste his time and I don&#8217;t want to be the person who wastes his time.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2336">38:56</a>] So I never went. And I look back and I&#8217;m like, because especially as I started running office hours, as I had a large at work where I couldn&#8217;t do one on ones with everyone and had to do office hours and people wouldn&#8217;t go. And I was like, man, I wish people would come to my office hours. And Javi was also feeling this way. And he&#8217;s like, man, I wish I would give anything for one of these people to show up.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2357">39:17</a>] But I just never showed up. And I look back and I&#8217;m like, first of all, this was an amazing opportunity that I wasted. But in addition, it&#8217;s not just that I wasted it for myself. I also probably just made his life worse off by not actually getting him to be able to take advantage of this thing he was offering us. And so I was like, this is a decision that basically harmed both parties that I did out of fear.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2380">39:40</a>] I&#8217;m sure there&#8217;s probably a million other examples of me doing this that are not as clear in my head, but this is one where Danny probably came to our team once a week and told us to sign up and none of us ever did. And I think of this every time where I&#8217;m like, listen, if you know something important about the future of this org or this team, or even if you just honestly have any questions at all, if you have a leader who&#8217;s showing up and saying, I want to hear from you folks, go.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2407">40:07</a>] I think especially if you&#8217;re a more junior IC watching this, I think it is hard to understand how painful it is at director and above to actually know what it&#8217;s like on the ground. You just look so removed from being an IC3 and IC4 anymore. Just so removed. And not just from their place in life, but also what&#8217;s happening to them, what&#8217;s true in the code base, what the team dynamics are. There were points where I had a manager.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2433">40:33</a>] Managing managers, managing managers. There&#8217;s just so much indirection. I think people way, way should. More often, if a leader says, please show up and talk to me, do it. The flip side, obviously you come and say something weird that can be bad. Don&#8217;t show up and be like, I want you to tell me how to get promoted. It&#8217;s probably not your greatest first conversation. But if you&#8217;re like, hey, I Think this part of our org could be better?</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2456">40:56</a>] Could you help me? Leaders love that that&#8217;s what they want and like so many people are afraid to do it. And I think it basically makes all parties to ourselves.</p><h3>41:05 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2465">41:05</a>] And then last question for you. With all the experience that you have now, if you could go back to the beginning of your career and give yourself some advice, what would you say?</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2474">41:14</a>] It&#8217;s tricky because I think I am a person with very strong opinions, but I also think I can be more self conscious than I should. I do think that like have more confidence that you can do bigger stuff and that as long as you hold yourself to a high level discipline, the bigger stuff is really possible. I think when I was younger, basically at every step of the way from a high school student to a college student all the way, I think I tended to way too often cast doubt about what I could do.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2504">41:44</a>] And I think that is the single biggest set of mistakes I&#8217;ve made is just this repeated pattern of not being ambitious enough or not believing something was tractable. And I think I&#8217;ve gotten a lot better. Why? I don&#8217;t like the defeatism and other programming language communities, but I think it for me is this thing that I think really could have been better. And I think it&#8217;s true for a lot of people.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2524">42:04</a>] I think a lot of people, they over convince themselves of the greatness of other people and under convince themselves of how much they can achieve. And that combination means that they just way less try to do risky things than they could have. And I think they especially until you&#8217;ve interacted with enough people who have succeeded, I think it&#8217;s hard to realize how often they&#8217;re not actually doing that much better than you.</p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2549">42:29</a>] They just tried and you didn&#8217;t try. So I think that is probably the biggest thing that if I could go back and tell 20 year old me probably is that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2560">42:40</a>] Thank you so much for your time, I really appreciate it John.</p><p><strong>John:</strong></p><p>[<a href="https://youtu.be/aPfnP4iAIH8?t=2563">42:43</a>] It&#8217;s been a real pleasure and thanks for having me.</p>]]></content:encoded></item><item><title><![CDATA[Turing Award Winner: Data Abstraction, Dijkstra, Distributed Systems | Barbara Liskov]]></title><description><![CDATA[Listen now | Barbara Liskov is a Turing Award winner known for her work in programming languages and distributed systems.]]></description><link>https://www.developing.dev/p/turing-award-winner-data-abstraction</link><guid isPermaLink="false">https://www.developing.dev/p/turing-award-winner-data-abstraction</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 27 Apr 2026 09:00:59 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/195269053/e38fe1c1775c2ae893ac9af052ca4b75.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://en.wikipedia.org/wiki/Barbara_Liskov">Barbara Liskov</a> is a Turing Award winner known for her work in programming languages and distributed systems. We discussed the major problems she solved in her career, stories about Dijkstra, getting rejected from Princeton because she was a woman and misc topics around her work.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/T9CGjbPZeaM">YouTube</a>, <a href="https://open.spotify.com/episode/7yMHErtxj9xywrA6drwmIV?si=qJyI17CtSeSvGeF8vGUtKw">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-T9CGjbPZeaM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;T9CGjbPZeaM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/T9CGjbPZeaM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/195269053/100-getting-rejected-from-princeton">1:00 - Getting rejected from Princeton</a></p><p><a href="https://www.developing.dev/i/195269053/253-the-software-crisis">2:53 - The software crisis</a></p><p><a href="https://www.developing.dev/i/195269053/903-the-drawbacks-of-python">9:03 - The drawbacks of Python</a></p><p><a href="https://www.developing.dev/i/195269053/1017-getting-into-distributed-computing">10:17 - Getting into distributed computing</a></p><p><a href="https://www.developing.dev/i/195269053/1309-paxos-vs-viewstamped-replication">13:09 - Paxos vs Viewstamped replication</a></p><p><a href="https://www.developing.dev/i/195269053/2144-the-significance-of-dijkstras-letter">21:44 - The significance of Dijkstras letter</a></p><p><a href="https://www.developing.dev/i/195269053/2504-why-she-stayed-in-academia">25:04 - Why she stayed in academia</a></p><p><a href="https://www.developing.dev/i/195269053/3039-why-her-award-was-questioned">30:39 - Why her award was questioned</a></p><h1>Transcript</h1><h3>1:00 &#8212; Getting rejected from Princeton</h3><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=60">1:00</a>] Okay, so this was when I got my bachelor&#8217;s degree and I applied to several graduate programs in math, which is what I majored in as an undergraduate. And I got this little card back. It was a postcard from Princeton saying, we do not admit women. Which was surprising. I knew they didn&#8217;t have women in their undergraduate program, but I hadn&#8217;t realized it extended to the graduate program. But it was how it was.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=93">1:33</a>] So what happened was I did get into Berkeley, which is where I did my undergraduate work. But I decided I really wasn&#8217;t ready to do a PhD in math and that I should get a job instead and just sort of see, you know, see how things were. And the best job offer I got was as a programmer. So that&#8217;s how I got into computer science. By a happy accident.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=120">2:00</a>] You were consistently, at least at Berkeley, you were consistently a top student. So it is odd that you wouldn&#8217;t even get an opportunity to play in some cases.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=131">2:11</a>] But that&#8217;s how it was back then. It was just. I hadn&#8217;t realized it was more than an undergraduate thing. And Berkeley was co ed. So, you know, there. What I found was there weren&#8217;t very many women in my classes. There were lots of women students, but very few of them majoring in math. And there were only maybe a couple of women in my classes. But the idea that a door was shut and women couldn&#8217;t do things, that was not what went on at Berkeley.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=162">2:42</a>] So it was a different environment. Of course, nowadays in the top schools, the women are about 50% in computer science.</p><h3>2:53 &#8212; The software crisis</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=173">2:53</a>] I want to talk about some of the core problems that you were solving in your career. And so I understand that there&#8217;s the software crisis in the 1970s, and I was wondering if you could give the context behind what the problem was at that time.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=189">3:09</a>] Well, it was a huge problem at the time because people did not know how to build big programs that worked. And so you would often pick up the newspaper and see an article about some company that had spent millions of dollars and hundreds of man years developing some software system for their company. And then in the end they&#8217;d have to throw it away because it simply didn&#8217;t work. The problem was that to get a big program that works, you need modularity, and you need to break your program up into small pieces.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=232">3:52</a>] Each piece provides an interface with a hopefully complete description of what service it provides for you. And then inside is an implementation that&#8217;s hidden and nobody pays any attention to it on the outside. And if you have a system organized like that, you can actually reason about its correctness one module at a time. But in those days, people didn&#8217;t know how. They couldn&#8217;t figure out how to design systems that were modular.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=265">4:25</a>] And the only kind of modularity mechanism present in programming languages was a procedure. And procedures didn&#8217;t match the kinds of modules you needed. Because if you think about a file system or a database or, you know, Amazon or whatever, you know, they. They aren&#8217;t a procedure where you put something in and get something out. They&#8217;re a much more complicated thing. So there was no notion of a module that sort of matched the kind of things that people were looking for.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=298">4:58</a>] So when you saw that problem, what were the early solutions like?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=302">5:02</a>] Well, so people were proposing modularity and they were talking about how important modularity was. They didn&#8217;t exactly know what a module was. And so it wasn&#8217;t like they could give you a rule, this is a module. It was just a chunk of code. In fact, there were papers written that talked about how big a module should be and stuff like that. Just a chunk of code that&#8217;s not going to work because you need to to design these systems.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=328">5:28</a>] So you need a way of thinking of a design that sort of fits into this notion of modularity. They also didn&#8217;t really know what the rules should be for modularity. And it turned out that in some of the early work I did after grad school, when I was working at mitre, I had already invented a notion of modularity that was sort of more complete than what people had been talking about. Just because I had a small team of programmers, we were building a complicated system and I wanted to keep us out of trouble.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=362">6:02</a>] And so I had that sort of sitting there when I started to work on this topic. And it enabled me to see this idea of data abstraction. All of a sudden I sort of saw that this thing, I had this kind of modularity mechanism which consisted of basically what I just described, a bunch of code providing you with an access through a number of what I called operations, so you could call it in various ways.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=391">6:31</a>] And then inside was all hidden, and whatever data it was using was not accessible to the outside. And then at some point I saw I could see this as a data abstraction. It could be a set, it could be a sequence, it could, you know, and so forth. And that meant we had a new type of module. Now, when I look back at the papers from the time I see that idea, it&#8217;s almost there, except people hadn&#8217;t managed to pick it out.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=418">6:58</a>] And so it was probably. I think this happens in science a lot. There&#8217;s sort of a time when an idea is ready and I happened to see it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=427">7:07</a>] You pieced these together and you put it into the CLU programming language that you&#8217;re working on. How did you see it influencing the industry?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=437">7:17</a>] The first thing that happened was I wrote a paper with a man who was a graduate student at MIT, Steve Zilles, about this idea of data abstraction. And it sketched a notion of what abstract data types would be and how a programming language could support them. And this was very impactful paper. And so there was a big impact on the research community. And then CLU came along, and that involved a lot of additional research in the programming language area.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=472">7:52</a>] The next thing that happened, so people were watching this in the research community, but of course, people who are in companies that want to write programs, they need a programming language. And I decided I wasn&#8217;t going to try and turn CLU into a product because that would have required working in a company in those days. You didn&#8217;t just put software out on the Internet and people used it. There wasn&#8217;t an Internet yet, for one thing.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=502">8:22</a>] And I was much more interested in doing research than in working in a company. So I put CLU on the side. It had a user base. But for companies to use a programming language in those days, they wanted a company behind that language. The next thing that happened was the government put out a call for a programming language they could use. This led to the Ada programming language. So that was already a big impact.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=532">8:52</a>] If you think about it, there was a language explicitly being designed to have data abstraction in it. And then finally in the 90s, Java came along.</p><h3>9:03 &#8212; The drawbacks of Python</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=543">9:03</a>] I thought it&#8217;d be interesting because you worked on CLU, you designed that programming language to ask you about other programming languages. You said somewhere that there&#8217;s something wrong with Python. I was curious to hear your thoughts of why.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=555">9:15</a>] Python has modules. But it doesn&#8217;t have encapsulation, so it allows code on the outside to muck around with what&#8217;s going on on the inside of a module. And that&#8217;s all I was talking about. Encapsulation is a crucial part of making modularity work. And when you&#8217;re building big programs so you have many programmers working on them, your team is really only as strong as your weakest programmer. So it&#8217;s nice if the compiler can enforce things and make certain kinds of bad behavior not possible.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=593">9:53</a>] I mean, Python is, you know, has another intended use. It&#8217;s helping naive programmers learn quickly how to write programs and stuff like that. And people in the programming language world do think about issues like this, like, you know, how to make languages safer and so forth. But since I stopped working in that area, I&#8217;m no longer an expert in programming languages.</p><h3>10:17 &#8212; Getting into distributed computing</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=617">10:17</a>] What got you into distributed computing?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=620">10:20</a>] I read a paper by Bob Kahn, who was with Vint Cerf, considered to be, you know, the founders of the Internet. And Bob talked about his dream of distributed computing, where you would have a program composed of pieces on different computers connected by a network, and nobody knew how to build those programs. And so I just thought, great problem, and I was looking for a new problem. So I jumped into distributed computing and the first project was actually a programming language to write distributed programs in.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=657">10:57</a>] And then I started looking at other problems in the distributed systems area.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=663">11:03</a>] What was that first programming language?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=665">11:05</a>] It was called Argus. It was very strongly influenced by CLU. It was an object oriented language, had a special kind of object called a guardian, which was a module sitting at a single computer. And then guardians could compute, could communicate through remote procedure calls. One of the things you run into in distributed computing is if you have a computation that starts at one guardian and then makes use of other guardians at other nodes in the network, in the end you want that computation to either complete entirely or have no effect at all.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=704">11:44</a>] And how do you do that? Well, I borrowed the notion of transactions coming out of the database field, and that was part of how Argus worked. It ran computations as atomic transactions.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=717">11:57</a>] Oh, interesting. Like distributed transactions across those nodes.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=722">12:02</a>] Yeah, And I think it led right into the work I did on Viewstamped Replication, which was. That was the beginning of cloud storage. I was thinking in terms of a file system, but it doesn&#8217;t really matter what it is. You know, how do you have data out on the Internet stored at multiple sites with correct behavior and always accessible as long as enough nodes are up and running and the network is working.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=752">12:32</a>] I see. And what is a viewstamp in this context?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=755">12:35</a>] Oh, that had to do with some details of how the system worked. And it was a way of noticing when some nodes failed and other nodes had to take over. You know, could figure out which ones had the most recent state in them. So you could pick up and not lose anything that had happened in the past.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=774">12:54</a>] What if the clocks are out of sync?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=776">12:56</a>] It had nothing to do with clocks because it was just numbers. In other words, we were in view 25, the next view was 26, so.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=785">13:05</a>] Oh, okay. Just incrementing some numbers passed around.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=788">13:08</a>] Yeah.</p><h3>13:09 &#8212; Paxos vs Viewstamped replication</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=789">13:09</a>] This reminds me a lot of Leslie Lamport&#8217;s work, actually.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=793">13:13</a>] Yes.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=794">13:14</a>] Did you ever work with him or.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=797">13:17</a>] No. Leslie and I developed what is essentially the same idea independently and he had the system he called Paxos, and I had this thing called Viewstamped Replication.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=808">13:28</a>] Oh, interesting. And they&#8217;re essentially the same thing.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=812">13:32</a>] They are, yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=814">13:34</a>] Are there pros and cons of the two approaches?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=817">13:37</a>] Yeah, I mean, when you do this kind of system, there&#8217;s lots of little details you can play around with, so you could, you know, decide to do it. Gets technical, but, you know, there&#8217;s tiny differences. But no, they&#8217;re basically the same. In fact, what happened was the first time that I&#8217;m aware of that this was actually used in a real system was when the Google file system came along and one of my former students, who was, I think he was a consultant at Google, looked at what was going on in there and he said, oh, he says that&#8217;s Viewstamped Replication.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=851">14:11</a>] So. So the people at Google seem to think it was Paxos, but in fact they are the same system.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=857">14:17</a>] I also noticed, like when you were, when you came up with abstract data types, maybe it&#8217;s just because there wasn&#8217;t the Internet wasn&#8217;t, as you know, wasn&#8217;t there that there was also the object oriented stuff going on on the West Coast?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=873">14:33</a>] Yes. Alan Kay was developing SmallTalk at the same time that I was working on CLU. And then at Carnegie Mellon, Bill Wolfe and Mary Shaw were working on alphard, which was another data abstraction language. And you&#8217;re right, there was no Internet, although there was the arpanet, you know, so we did, but it was like there were two independent streams of research going on and we weren&#8217;t talking to each other and so I wasn&#8217;t paying much attention to small talk.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=904">15:04</a>] And on the West Coast, I don&#8217;t think they were paying much attention to data abstraction, and this led to the Liskov substitution principle, which, I mean, the story is a sort of a cute one, because in 1986, I think it was, I was asked to give a keynote at uppsla. OOPSLA is the Object Oriented Programming Conference. And this was the second year it was happening. And so I decided, I think I&#8217;ll read all those papers about SmallTalk, and there were other languages being developed that were based on SmallTalk and see what&#8217;s going on with them.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=941">15:41</a>] And I discovered. So SmallTalk has this idea of inheritance in it, where you can have a class and a subclass which borrows from the way the class is implemented and changes it a bit. And CLU doesn&#8217;t have that CLU, just has what we call clusters, and they&#8217;re all independent. So I saw that they were talking about this notion of classes and subclasses, and then I saw that they were also talking about something they called type hierarchy, where they wanted the type implemented by a class to be related in some way that they didn&#8217;t understand to the type that was implemented by a subclass.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=984">16:24</a>] I really thought about modules in terms of their specifications. This partly had to do with a class I developed at MIT that I developed jointly with my colleague John Guttag. And in that class we taught the students how to do design about modularity, data types and so forth, but also how to write specifications, how to reason about correctness. And so it had a big focus on think about the meaning of things first.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1012">16:52</a>] And the implementation is something that&#8217;s kind of hidden inside and you don&#8217;t worry about it very much. And so that was a different way of thinking about things than what was going on on the west coast, where they were really thinking in terms of classes and subclasses. And I even saw papers where they would describe the behavior of a class by explaining how its implementation was different from the implementation of the superclass.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1038">17:18</a>] So they were kind of focused on implementations in a way that we weren&#8217;t. And so when I read these papers about type hierarchy and I saw they just couldn&#8217;t figure out what it was supposed to mean, I was thinking about it from the terms of meaning. And so I was able to say it has to do with the behavior. And this subclass better behave like the superclass if you use it in an environment where the superclass is expected.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1067">17:47</a>] And that became what ended up being called the Liskov substitution principle.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1079">17:59</a>] it get that name? Because you didn&#8217;t go off on stage and say, hey, everyone, here&#8217;s the Liskov. No, no.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1084">18:04</a>] But no. As I said, one day in the 90s after the Internet had arrived, I got an email saying, can you say if this is the correct interpretation of the Liskov substitution principle? That&#8217;s when I discovered that there was such a name. And I don&#8217;t think I had really been aware of how important it was until that point, because I wasn&#8217;t thinking about this stuff. I was working on other stuff.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1112">18:32</a>] In the academic community, it seems very reasonable to have multiple people have similar ideas. But it seems like some ideas stick more than others. For instance, like the Viewstamped Replication versus Paxos. They&#8217;re the same thing. I&#8217;m wondering, like in that case, for instance, why would Paxos be more known than Viewstamped Replication?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1137">18:57</a>] Yeah. So what Leslie says is, I went around giving all the talks and she implemented it. Really something to that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1151">19:11</a>] Then he got notoriety for speaking about it.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1156">19:16</a>] Yeah, he did give lots of talks about it and wrote several papers and so forth. And I didn&#8217;t realize it was the same system, but finally it became clear that they were the same system.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1168">19:28</a>] I also wonder how much the name matters, because Paxos is kind of catchy.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1173">19:33</a>] It is a cute name.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1174">19:34</a>] It&#8217;s a cute name.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1175">19:35</a>] Yeah, Right.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1176">19:36</a>] So I could see maybe it has better marketing around the idea, I guess.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1181">19:41</a>] I also think that this approach to solving this problem, which both Leslie and I picked up independently in my case, came from the work I&#8217;d been doing with transactions. Because in transactions there&#8217;s a leader that says, now we&#8217;re going to commit and ask everybody, can we commit? And if they all say okay. But unlike in transactions, in transactions, if the leader fails, there&#8217;s what&#8217;s called. This can be a real problem here.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1212">20:12</a>] We had to have a way of moving to a new leader if the old leader failed. And that&#8217;s the big step forward. That happened in both the Viewstamped Replication and Paxos. Now there was also Byzantine fault tolerance, which came along later. That was developed. So view stamp publication. I developed with my student Brian Oki. It was his PhD thesis. And then Paxos I developed with my student Miguel Castro was his PhD student thesis.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1243">20:43</a>] And Miguel got interested in this problem because there was a DARPA request for proposals and there was one about this problem on the Internet. By then there were Byzantine attacks and malicious attacks and nodes that would purport to be working correctly, but actually they had been compromised and so forth. And so Viewstamped Replication and Paxos only handled crashes. And if there were messages that had been played with, you could tell when they arrived that they were bad.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1278">21:18</a>] And that was about the extent of what we dealt with. But these malicious attacks with nodes that purported to be working when they weren&#8217;t, that was a big step forward. And Miguel saw this request for proposals, and he said to me, why don&#8217;t we see whether we can come up with a protocol that works in the presence of Byzantine attacks? And I think, by the way, Leslie is the one that invented the word Byzantine too.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1303">21:43</a>] I think he did, yeah.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1304">21:44</a>] Right.</p><h3>21:44 &#8212; The significance of Dijkstras letter</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1304">21:44</a>] I saw in the software crisis stuff, there&#8217;s the paper with Dijkstra that you had mentioned was one of the papers you wrote that said need modularity. And that paper was the go to statements considered harmful.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1319">21:59</a>] Right.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1320">22:00</a>] And I&#8217;m curious because Dijkstra, I mean, when I was studying computer science, we all know his name. Did you ever meet him or work with him?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1328">22:08</a>] Oh, yeah, many. I never worked with him, but I did meet him multiple times. And, you know, he had very interesting ideas. And that paper, go to statement considered harmful. It&#8217;s not actually a paper. It was a letter to the editor of the communications of the ACM. But it was very impactful. And what was really important about that paper was that Dijkstra was talking about how difficult it is to reason about the correctness of code.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1362">22:42</a>] And this was at a time when, in the sciences, computer science was kind of dismissed as nothing much and anybody can write code. And, you know, Dijkstra was trying to make a point, which I think was actually important, that it&#8217;s not as trivial as you think it is. It&#8217;s not trivial at all. And he was also pointing out that Go Tos can be misused.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1388">23:08</a>] And it was controversial at the time.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1391">23:11</a>] It was, yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1392">23:12</a>] But today I&#8217;ve written code for over a decade.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1397">23:17</a>] People don&#8217;t use Go Tos.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1398">23:18</a>] I haven&#8217;t even seen a Go To. So why was it controversial at the time?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1404">23:24</a>] The programming languages were different then. First of all, there were people writing programs in assembler. In assembler, you have to use Go To. Programming languages didn&#8217;t have some of the constructs in them that we think of today. And so some people were using Go Tos because they had to. And also compilers didn&#8217;t do all the kinds of optimizations that they do today. So there was a concern if you didn&#8217;t have Go Tos, maybe your program wouldn&#8217;t be efficient enough.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1437">23:57</a>] And then there were people who used gotos and wrote really good code and they were offended that Dijkstra was saying, your code is bad. So there was a whole bunch. And Dijkstra was not the most diplomatic person, so he didn&#8217;t write it in a nice. You can imagine writing that paper more nicely where you said, but there were many reasons why it was controversial. People were offended. But then there were also concerns about programming languages don&#8217;t have these features.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1473">24:33</a>] I need, what am I supposed to do? And then there were concerns about what the compiler was doing. And so the world is very different now. But clearly Dijkstra won the day here because no, go to.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1488">24:48</a>] And is Dykstra in person also like his writing?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1495">24:55</a>] He was not always as tactful as he might be. Yeah, but, you know, he was a very distinguished researcher.</p><h3>25:04 &#8212; Why she stayed in academia</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1504">25:04</a>] Computer science has had such a huge impact on the industry. Why did you choose to stay in academia instead of going into industry?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1514">25:14</a>] So I like doing research and I enjoy working with students. And teaching was never my favorite thing. But I always felt teaching and research were very closely connected. But also it was a different time. So this business about how professors are all forming companies and so forth, which goes on today, that wasn&#8217;t happening 20 years ago. Or maybe it was happening 20 years ago, but 30 years ago it wasn&#8217;t.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1548">25:48</a>] And so when I was young, it wasn&#8217;t the thing that you did. It was sort of a either or sort of thing. So I wasn&#8217;t even thinking about doing stuff like that. I did work in a startup briefly at the end of the 90s. I didn&#8217;t like it. I much prefer doing research. And as a professor, you have this. It&#8217;s a gift and a curse. The gift is you can do whatever you want. The curse is you have to figure out what it is that you&#8217;re doing.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1579">26:19</a>] But I like that freedom and the fact that I just could go off in any. I mean, my career is full of these interesting zigzags where I would switch to something else. I had the freedom to do that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1592">26:32</a>] What stops you from going off in a very useless direction?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1596">26:36</a>] You won&#8217;t get tenure.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1600">26:40</a>] Who&#8217;s the judge?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1601">26:41</a>] The community. Yeah. It&#8217;s not, you know, the way that you&#8217;re viewed at your university has mostly to do with one very important facet of it is how are you viewed in your research community? So. Because that&#8217;s one of the important things they want from their faculty. If you&#8217;re in a research university.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1627">27:07</a>] You mentioned earlier that research and teaching were heavily related. In your opinion. Why is that?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1635">27:15</a>] Because when you teach, you have to teach from first principles. And if you&#8217;re doing good research, you need to understand deeply what&#8217;s working, what&#8217;s not working, what assumptions you&#8217;re making. It&#8217;s really the same thought process.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1652">27:32</a>] It sounds like in research, I mean, this is true in every walk of life. There&#8217;s the, I guess, the direction that you take and then the work that you do towards that direction. And it sounds like for research, the direction is maybe the most important thing because you could have a phenomenal researcher doing an idea that has no, you know, even if you did it at 100%, it&#8217;s not going to lead to anything.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1680">28:00</a>] That&#8217;s right. So you, you know, you tell students, graduate students don&#8217;t do incremental work. Don&#8217;t, you know, you&#8217;ve got, you. You can&#8217;t just keep working on the same thing over and over, just making little teeny improvements. You need to find. You&#8217;re right, you have to find a good problem, but you also have to find a problem that&#8217;s amenable to a solution and one that matches your skill set. And you have to recognize when you&#8217;re going in a good direction versus not going in a good direction.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1712">28:32</a>] Looking back on your career, you say that it was luck and that it seems like things just fit together.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1721">28:41</a>] I feel there was luck involved. There was a lot of hard work involved. There was not allowing something negative to cause you great difficulty. So, for example, when I finished my PhD, I would have liked a faculty position, but I didn&#8217;t have any good offers. So I went back to mitre, the company I had worked for initially as a researcher. In other words, I just kept on marching along. And it turned out to be a very good choice because I was switching from AI to systems.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1766">29:26</a>] And this gave me. I worked there for four years. Gave me four years to make that transition without having to worry about students and teaching and all the other stuff. So it worked out well. But it also meant that I didn&#8217;t feel really sorry for myself that I didn&#8217;t get a job. It meant I just kept on going. And then Title IX was about to be passed, and finally academia was opening up to women and I was ready.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1798">29:58</a>] But I think when I talk to other people about their careers, they talk about doors opening and doors closing. So I didn&#8217;t get the academic job I wanted, but I had this other opportunity. I majored in math, and fortunately I was offered a programming job. I mean, doors opened and then you have to decide, am I going to step through? And this is a pattern that people see in their careers. It&#8217;s not just me.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1827">30:27</a>] Many people have. Have those kinds of choices that you make along the way. Opportunities and things that aren&#8217;t so great, you know, and you&#8217;re sort of working your way through.</p><h3>30:39 &#8212; Why her award was questioned</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1839">30:39</a>] I&#8217;ve interviewed a few people who have won Turing Awards, and I&#8217;ve done research and watched a lot of these speeches that people give after they receive the award. And I noticed something different in your speech or some of the stuff that I read about your work, which is that in yours, it seems like when you got the Turing Award, there were people saying, why did she get the Turing Award? It was kind of negative commentary on that.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1870">31:10</a>] And I didn&#8217;t see that in the other cases. Why do you think that they said that about your work?</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1876">31:16</a>] So I&#8217;m not so sure. This doesn&#8217;t happen to other people, by the way. It was just that my husband was out on the Internet, by the way. There was an Internet by then.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1884">31:24</a>] Okay, okay.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1885">31:25</a>] As you know, the Internet is not necessarily nice.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1889">31:29</a>] I know that.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1890">31:30</a>] Right. And so I can imagine that other people might have had a similar experience had they bothered to look. But I also think that the world had changed so much and the work that I had done was so basic to what was going on that people really didn&#8217;t understand that there was a before. I mean, my graduate students really didn&#8217;t understand that there was a before because I discovered that at the time I got the award, it really hadn&#8217;t struck them that data abstraction didn&#8217;t always exist.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1933">32:13</a>] So I think that. I mean, I viewed it as, in a way, a huge compliment, not really just to me, but to the group of researchers who all together got us to the point where we had these modular programming languages and we understood about abstract data types and we understood about how to reason about correctness. All that stuff was so fundamental that people thought there was no time when it hadn&#8217;t already existed.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1964">32:44</a>] So they took it for granted.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1965">32:45</a>] They took it for granted. I mean, the Byzantine fault tolerance, you look at that there&#8217;s a protocol, and you can understand that there was a protocol. Somebody invented that protocol, you know, so you get the credit for that. This was much more fundamental. This was the whole mindset you had about how to develop programs, and that&#8217;s what people were talking about. And things had changed so much that all these inventions of mine and others were just there in the.</p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=1997">33:17</a>] Would work. And people didn&#8217;t realize that there was a time before.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=2001">33:21</a>] That&#8217;s validating then. Yeah, it&#8217;s. It&#8217;s so impactful, and everyone uses it all the time. That they don&#8217;t even know what it was like before what you did.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=2010">33:30</a>] So I thought, you know, it&#8217;s a huge. The person who said it didn&#8217;t mean it nicely. But I thought really, it&#8217;s a huge, A huge compliment and a statement about where we are now as opposed to where we were then. So.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=2024">33:44</a>] Okay, well, that&#8217;s all the questions I have for you. Thank you so much for, for your time. Really appreciate it.</p><p><strong>Barbara:</strong></p><p>[<a href="https://youtu.be/T9CGjbPZeaM?t=2029">33:49</a>] You&#8217;re welcome.</p>]]></content:encoded></item><item><title><![CDATA[Turing Award Winner: Postgres, Disagreeing with Google, Future Problems | Mike Stonebraker]]></title><description><![CDATA[Listen now | Mike Stonebraker is a Turing Award winner famous for his contributions to fundamental database technologies.]]></description><link>https://www.developing.dev/p/turing-award-winner-postgres-disagreeing</link><guid isPermaLink="false">https://www.developing.dev/p/turing-award-winner-postgres-disagreeing</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 20 Apr 2026 09:02:09 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/194713116/141499bdb2bd008464fdd81c8627b50e.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>Mike Stonebraker is a Turing Award winner famous for his contributions to fundamental database technologies. We discussed the story behind building Postgres, where he disagrees with Google/Amazon on databases, and what he&#8217;s working on now.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/YPObBOwIrHk">YouTube</a>, <a href="https://open.spotify.com/episode/1zxBGjmx7CyWE2siB5UEZg?si=Dqp0_vPMTgy05x9UkwK7Lw">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-YPObBOwIrHk" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;YPObBOwIrHk&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/YPObBOwIrHk?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/194713116/103-how-he-got-into-databases">1:03 - How he got into databases</a></p><p><a href="https://www.developing.dev/i/194713116/643-competing-with-oracle">6:43 - Competing with Oracle</a></p><p><a href="https://www.developing.dev/i/194713116/907-what-made-postgres-special">9:07 - What made Postgres special</a></p><p><a href="https://www.developing.dev/i/194713116/1555-one-size-fits-none">15:55 - One size fits none</a></p><p><a href="https://www.developing.dev/i/194713116/2137-why-he-disagreed-with-google">21:37 - Why he disagreed with Google</a></p><p><a href="https://www.developing.dev/i/194713116/2914-why-he-chose-academia-over-big-tech">29:14 - Why he chose academia over big tech</a></p><p><a href="https://www.developing.dev/i/194713116/3058-replacing-state-in-an-os-with-a-db">30:58 - Replacing state in an OS with a DB</a></p><p><a href="https://www.developing.dev/i/194713116/4202-future-problems-in-databases">42:02 - Future problems in databases</a></p><p><a href="https://www.developing.dev/i/194713116/5136-technical-book-recommendations-to-learn-databases">51:36 - Technical book recommendations to learn databases</a></p><p><a href="https://www.developing.dev/i/194713116/5220-advice-for-younger-self">52:20 - Advice for younger self</a></p><h1>Transcript</h1><h3>1:03 &#8212; How he got into databases</h3><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=63">1:03</a>] When I graduated I had the good fortune of being hired at Berkeley and I, it was clear I had to, you know, continuing what I did for my PhD was not going to go anywhere then as well as today. You&#8217;re way ahead if you get adopted by a mentor who knows the ropes. So Gene Wong, who, who is still alive and still, still kicking, took me under his wing and said well, let&#8217;s do something together. And this was 1971, which was the year after Ted Cod wrote his pioneering paper in CACM.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=110">1:50</a>] Gene Wong said well let&#8217;s, let&#8217;s take a look at database stuff. And at the time the competitors were a thing called the codicil proposal which you&#8217;re probably too young to have ever heard of. And so it was a low level spaghetti network proposal where you executed queries by following pointers. And then the, the alternative was the IBM proposal which was a higher, a thing called ims, which is still available.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=145">2:25</a>] And it&#8217;s hierarchical data, it&#8217;s a tree. You organized your data as trees. And even at the time IBM realized that trees were not general enough to, to solve many people&#8217;s problems. So they hacked on a, a way to make it a limited network structure. So it was clear that was a horrible hack. The codicil proposal had all kinds of bad properties besides being low level and, and really hard to debug. It also had the property that if anything changed in your, what&#8217;s now called your schema, you basically had to throw away everything and do it all again because it was absolutely rooted at the physical level, whereas Ted Cod stuff made perfect sense.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=202">3:22</a>] And so Gene said well let&#8217;s build one of these puppies, that&#8217;s clearly the next thing to try. So we started building ingress in 1972 while I was an assistant professor at Berkeley. As you know, if you&#8217;re an assistant professor, you have to, you have about. You get five years to prove that you&#8217;re a big shit, and they fire you or they give you tenure. So Ingress was my ticket to getting tenure, which happened in 1976.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=235">3:55</a>] That was where it started. And then again, you know, happenstance at the time. You know, a lot of people would build prototypes which were sort of studenty, like code, which means you could get it to run, but if you gave it to anybody else, they couldn&#8217;t. So we put in the first 90% to get something we could run. And then for whatever reason, we put in the next 90% to get it to where it really worked.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=269">4:29</a>] So the University of California version of Ingress was really worked. And so over the next couple years, about 100 universities started running it because UNIX became the big thing. And so this was a database, a free database system that ran on Unix. And so it was quite popular in the academic world. And so we got started getting, you know, lots of visitors at Berkeley who would say, gee, this is really nifty looking stuff.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=306">5:06</a>] What&#8217;s the biggest app, biggest anchor application you have? And we&#8217;d be forced to say, not very big. And so this was brought home in spades when Arizona State University considered running Ingress on their student records data, all 40,000 students worth. And they could get over that. They had to get an unsupported operating system from Bell Labs. They could also get over. They had to run an unsupported, unsupported database system from these guys at Berkeley.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=349">5:49</a>] But the project went down in flames when they realized there was no COBOL available for Unix. And they were a COBOL shop. So, unsupported operating system, unsupported database system. No, COBOL doomed us to, you know, irrelevance. And it was clear the only way out of that was to start a company. And so in 1980, we got Venture capital as it existed then and started Ingres Corporation to move ingres to dex VMs, you know, a real operating system.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=396">6:36</a>] And we had a real company that would support Ingress. And that was the start of the commercial journey.</p><h3>6:43 &#8212; Competing with Oracle</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=403">6:43</a>] I saw that Ingres was competing with Larry Ellison&#8217;s offering at Oracle. Yes, I saw that Ingress was, was certainly better than what they were offering, but they were still competing somehow. How? How did they compete?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=422">7:02</a>] Larry Ellison is a fabulous salesman and he, at the time he, he was, he made present tense and future tense indistinguishable. And so he basically lied to customers. He would ship stuff that didn&#8217;t work and have his initial customers help him debug it. So I think he, he engaged in what I consider very shady business practices. But lying to customers, I think is, is, you know, unconscionable. So for instance, there was a thing called referential integrity, which is if you, if you fire an employee and he&#8217;s the last person in a given department, do you want to delete the department or do you want to have it be a department, a ghost department?</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=481">8:01</a>] It&#8217;s, it&#8217;s all that kind of stuff. And so Ingres Corporation implemented referential integrity. Oracle Corporation wrote two manual pages that said, here&#8217;s the definition of referential integrity, which everybody agreed to. And then, then down at the bottom it said not yet implemented.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=505">8:25</a>] Interesting. Yeah. I had interviewed someone who worked at Sun Microsystems and they had a similar opinion that they, Larry Ellison was a little bit shady. So it seems to be a commonality. I also saw somewhere else in something that you had said was that when Oracle acquired MySQL that everyone kind of got afraid of that and moved to Postgres.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=535">8:55</a>] That was the genesis of Postgres replacing MySQL as the preferred open source relational database system.</p><h3>9:07 &#8212; What made Postgres special</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=547">9:07</a>] So you created Ingress, and there was a lot of technical innovations in it so that it was better than the incumbents. But ultimately it went away and you developed postgres. What was the thing that Ingress didn&#8217;t do that Postgres would do?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=564">9:24</a>] The big thing that guided us at the very beginning was the original reasoning for the academic version of Ingress was we were going to support a geographic information system that the neighboring professor Praveen Varia wanted. And so to support a GIS system you need points, lines, polygons, line groups, that sort of stuff. And it was clear that Ingress couldn&#8217;t do it because the data types we put into Ingress were the standard ones, integers, floats, text, strings, and you couldn&#8217;t support, you couldn&#8217;t efficiently support GIS types on top of that.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=620">10:20</a>] So as a gis, the academic version of Ingress was a complete failure. And that was in the back of, of our mind. The other thing that happened, this is a little out of chronic chronological sequence, but it helps make the point is that the commercial version of Ingress, I think around 1985, you know, there was an, just proposed a date and time standard for relational databases. And so commercial Ingress implemented date and time, you know, using the standard Gregorian calendar.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=665">11:05</a>] And so I was associated with the commercial version of Ingress as well, as I was still at the University of California as a professor. So I got a call from, from an Ingres customer who said, you know, you implemented date and time wrong. And I said, huh? We implemented the Gregorian calendar and you can subtract and, you know, if it has, you know, days have 30 or 31 months, except for February, except for leap years.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=700">11:40</a>] So subtraction on dates works exactly the way you would expect it to. But he said, that&#8217;s not what I want in his particular world. He said he was dealing with bond financial instruments and for some reason, I mean, you got the same amount of interest on his financial bonds during each month, no matter how long the month was. So he had the date you bought the bond, the date you sold the bond. He wanted to do a subtraction, multiply it by the coupon rate and say, that&#8217;s what, that&#8217;s the interest we paid you.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=746">12:26</a>] But of course, his version of subtraction was March 15th minus February 15th is 30 days, because that&#8217;s the definition of his calendar. And so he had to retrieve two dates out to user code, do the subtraction and user code, put the answer back, and it cost him a factor of two or three in efficiency. And he said, why can&#8217;t I just overload your definition of subtraction with what I want? And of course, with Ingress, it was hard coded.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=782">13:02</a>] And the problem was this is a case where you wanted bond time just like you wanted points, lines and polygons. And so Postgres was engineered to have an extendable type system so you could have whatever data types you wanted. And they were very efficient. And that was the main gist of Postgres was that it had that flexibility. And as you know, in business data processing a lot most people were happy with the standard data types.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=821">13:41</a>] But relational databases started to spread to all kinds of other places. What are called abstract data types or stored procedures, bunch of names they&#8217;re called, you know, had, had great applicability. And so Postgres, that was, that was the big thing in Postgres. We also, Postgres also supported what the AI guys at the time wanted in the way of inheritance. We also supported time travel, but the implementation absolutely sucked and it got taken out after a while.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=868">14:28</a>] So there were a huge number of really nifty things in Postgres.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=872">14:32</a>] You mentioned you want to hire extraordinary software engineers, and I think you&#8217;ve said before that, you have no trouble finding those people. How do you identify those people in your hiring? That they&#8217;re the extraordinary ones?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=889">14:49</a>] It&#8217;s usually pretty obvious. I mean, I have a good feel for how difficult stuff is. If they get 3x the, the amount done, you know, in school that I think is reasonable, then, then they&#8217;re incredible.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=905">15:05</a>] On the flip side, you had this interesting quote I wrote, I wrote it down. He said, I can&#8217;t stand people who are, who aren&#8217;t really smart. It&#8217;s challenging to talk to them. How do you identify the people who aren&#8217;t smart?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=920">15:20</a>] Well, I mean it&#8217;s, it&#8217;s very easy. You talk to them and, and it, it rapidly, you can rapidly surface whether they&#8217;re smart or not. You know, what was your master&#8217;s thesis? What did you do? Well, how did it, how did it exactly work? Well, how did you deal with error conditions? How many processes did you have? Why didn&#8217;t you use threads? You asked them deep technical questions, you gave a talk.</p><h3>15:55 &#8212; One size fits none</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=955">15:55</a>] And I think there&#8217;s also a paper behind it of this idea that one size fits all database systems not optimal, one size actually fits none. And that what you really want is database solutions that target specific needs. What database offerings you see today that are one size fits all.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=976">16:16</a>] In 2004 when I wrote the paper, we had an academic project which was building what became streambase. And so a stream processing engine looks nothing like a relational database. And we had the gist of an idea for column stores for data warehouses, which was popularized by Vertica, looks nothing like a roast or. So here were three wildly different implementations that had no resemblance to each other.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1009">16:49</a>] And in each case they were an order of magnitude faster than the other guys. So it&#8217;s pretty clear that one side, you know that with those three instances you give up an order of magnitude when you&#8217;re running a database system that isn&#8217;t, that isn&#8217;t architected for your kind of stuff. I think that&#8217;s still true. I mean, I think Clickhouse is a column store. Pinecone is faster than user defined types on text based vector processing.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1051">17:31</a>] And so I think it&#8217;s still very much the case. And I think there&#8217;s no difficulty putting a common parser on top of multiple implementations. Postgres has so far chosen not to do that. They don&#8217;t implement a column store. And so I think they are not, they are not competitive, you know, on sizable data warehouses. They also don&#8217;t have multi node support. Again, for people with big data warehouses. That&#8217;s table stakes.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1091">18:11</a>] So I Think it&#8217;s just as true today as it ever was. I think that what is true is that if you want to get going, you have a database problem. You know, the answer is choose postgres. And there&#8217;s a huge programming community, all kinds of, all kinds of, you know, data type implementations. It&#8217;s free and you can find postgres talent easily and get going. And so I think it&#8217;s, it&#8217;s, it&#8217;s a great choice for lowest common denominator.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1131">18:51</a>] And until you&#8217;re trying to do a million transactions a second, it works just fine. Until you&#8217;re trying to support a petabyte data warehouse, I say at the low end it&#8217;s absolutely the right one, size fits all. At the low end, it&#8217;s postgres. At the high end, that&#8217;s just not true.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1152">19:12</a>] GPUs, do they make available some new opportunities to optimize databases?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1159">19:19</a>] Probably, but I think the big challenge is that GPUs are SIMD, single instruction multi data. And that&#8217;s the anathema of indexing. And so whenever indexing is the right answer, they&#8217;re probably not a good idea. I think also you&#8217;ve got to architect them so that the, so that the bandwidth, so that the bandwidth from storage is, is not, not the bottleneck. And so if they&#8217;re an add on to the CPU as often as not, the bus connecting it to the GPU to the CPU is a bottleneck.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1210">20:10</a>] Can you explain why indexing would be not as effective when there&#8217;s simd?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1217">20:17</a>] So let&#8217;s, let&#8217;s say I&#8217;m, I&#8217;m looking for Ryan&#8217;s, I&#8217;m looking for Ryan&#8217;s salary and I have a B tree. So you go to the root of the B tree, you find, you find the divider that has both sides of Ryan. You follow the pointer, that&#8217;s a memory access for sure. Then you do it all again and you do this like three or four times. So that doesn&#8217;t parallelize. Well, so the answer is indexing doesn&#8217;t parallelize.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1254">20:54</a>] Well, you mentioned B trees when you first implemented that first version of Ingress. Did you write all of that by hand? Because I imagine there&#8217;s probably not some existing B tree library or something.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1267">21:07</a>] Yeah, we wrote the original version of Ingress was all written from scratch.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1272">21:12</a>] What was the hardest part of that implementation?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1276">21:16</a>] Query optimizer.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1278">21:18</a>] And why is that hard?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1280">21:20</a>] It&#8217;s tough. It&#8217;s just algorithmically difficult. It&#8217;s still, if you ask most any senior database programmer, what&#8217;s the hardest, hardest part, they&#8217;ll still say the optimizer MapReduce</p><h3>21:37 &#8212; Why he disagreed with Google</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1297">21:37</a>] came out at some point in the early 2000s and it kind of took the data world by storm. People were really impressed by it. They thought Google really knows what they&#8217;re doing. This is the best thing since sliced bread. But it seems like when I look at the literature and what you thought at the time, you kind of disagreed heavily. Why did you disagree so much with MapReduce?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1322">22:02</a>] Well, I think there were a lot of not very enlightened people who said, Google, Google is really smart, they must know what they&#8217;re doing. And so we&#8217;ll do whatever they say. And so they would, they would, they would engage in Hadoop or engage with Hadoop, but Hadoop is ridiculously inefficient. And so at the time, you know, others, you know, Dave DeWitt and others who were involved in our 2011 paper, we understood distributed databases and understood that you could beat the heck out of Hadoop with a distributed database system, which is basically what that 2011 paper says.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1374">22:54</a>] And of course it was, it&#8217;s true. And, but that wasn&#8217;t the only, that wasn&#8217;t the only thing Google was stupid about. So Google also had the opinion that eventual consistency was the right way to do concurrency control. And so that was postulated from on high by Google all during that same period of time. And it wasn&#8217;t. And all the database people said, you know, you&#8217;re out of your friggin mind. Because it doesn&#8217;t, it solves one particular kind of problem, but only.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1419">23:39</a>] And that very rarely occurs in practice.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1422">23:42</a>] Why did they pursue eventual consistency?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1425">23:45</a>] Okay, well the idea is that have an east coast database and a West coast database and they&#8217;re replicas, so you want them to be the same. If you say I&#8217;m going to do a transaction, I&#8217;m going to decrement by one the number of widgets in the west coast warehouse, then I&#8217;m going to, before I commit that transaction, I&#8217;m going to update the east coast warehouse, pay a message over and back to update it.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1454">24:14</a>] And then to make sure everything goes well, it takes, it takes another round trip of message to make sure that both of them actually do the commit correctly. So it&#8217;s expensive to do a distributed commit. It still is. And so the idea was, well, you do the, do the west coast update, you decrease the widgets by one, you just send a message asynchronously and not in a transaction so that eventually the east coast warehouse gets decremented by one.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1491">24:51</a>] So meanwhile, if you&#8217;re on the East coast you, you decrement, you know, foodstuffs by one, you send an asynchronous message, eventually the west coast gets it and eventually everything settles out. So if you&#8217;re allowed to, to go below zero, then what will happen is if the east coast guy and the west coast guy simultaneously sell the last widget, then, then eventually the state of the warehouse will be minus one and somebody won&#8217;t get their widget, their widget.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1536">25:36</a>] And so if you&#8217;re allowed, like Amazon to say, usually ships in 24 hours, then maybe you&#8217;re allowed to oversell. But most enterprises can&#8217;t do that. And so eventual consistency just doesn&#8217;t work. So we talked a million hours ago about referential integrity. So referential integrity in a sales system is integrity constraint is stock is greater than minus one. And that fails with eventual consistency.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1576">26:16</a>] And so Jeff Dean final of Google finally figured that out and when they did Spanner, Spanner had a conventional transactional system. And so Google completely abandoned eventual consistency and completely abandoned MapReduce.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1597">26:37</a>] So the trade offs basically correctness for performance.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1602">26:42</a>] So it&#8217;s performance versus data integrity. And if you don&#8217;t care about your data then you&#8217;re willing to deal with, with bad things happening.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1614">26:54</a>] So did you ever talk to the Google team while they were doing those things that you thought was so wrong?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1620">27:00</a>] We talked to them before the 2011 paper and said why don&#8217;t we, why don&#8217;t we partner up and do some stuff? And they weren&#8217;t, they weren&#8217;t interested. So they declined.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1639">27:19</a>] Have you seen other examples in other big tech companies where their databases are database solutions where you actively disagree with them, like maybe Amazon or Facebook?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1651">27:31</a>] Well, I gave a talk at Amazon maybe three years ago and I told them all the things I thought they were doing wrong. And I think Amazon&#8217;s problem is that they are supporting, you know, 15 different database systems and that&#8217;s about 12 too many. So, so I think they have their own culture. And I told, I, I said you&#8217;re supporting too many database systems. And at this point they haven&#8217;t chosen to retire any of them.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1689">28:09</a>] Why do you say that the 15 should be 3?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1692">28:12</a>] Well, they&#8217;re supporting a graph based database system and it&#8217;s well understood that a graph based database system is almost never the performant option. And so if you want a graph, if you want, if you like the idea of having a user interface that deals with nodes and edges, that&#8217;s fine. Put, put a layer on top of a relational database system that gives you that user model. And so most of their database Systems, there&#8217;s some other of their database systems that better at what it does than, than it is.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1738">28:58</a>] And so, so the answer is you should retire. You should retire any database system that isn&#8217;t performant in, in a big enough market to justify the maintenance.</p><h3>29:14 &#8212; Why he chose academia over big tech</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1754">29:14</a>] You&#8217;ve influenced industry significantly from academia and my one thought that I had is what, why not work directly in industry? Or why, why do you prefer the position of being in academia and having influence in the way that you have versus just taking a job at AWS or something like that, being a very distinguished engineer there</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1783">29:43</a>] because that gives you a boss and that gives you company rules. Limits your ability to publish, limits your ability to go talk at conferences, limits your, your ability to go, go poke at what, what various competitors are doing that they won&#8217;t tell their competitors. But mostly I really like being in startups and I, and I after the commercial version of Postgres got acquired by Informix, you know, I was working part time for Informix which was a 2000 person company and I didn&#8217;t feel like I could make a difference because it was bureaucratic and, and whatever the president wanted he got.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1838">30:38</a>] So I think I&#8217;m just not cut out for, I&#8217;m not cut out for politicking. I don&#8217;t do that very well and I have a hard time interacting with people I think are dumb and that again. So I guess I have some problems with big companies.</p><h3>30:58 &#8212; Replacing state in an OS with a DB</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1858">30:58</a>] I wanted to talk a little bit about dboss. I just thought it was a really interesting technical model. Can you explain what DBOSS is?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1868">31:08</a>] We started the academic project in 2019, 2020, something like that. And the gist of it was at that point Mate Zaharia, who is on the faculty at Stanford, was also one of the founders of Databricks, was the original creator of Spark. And so he said at the time Databricks basically was running people&#8217;s Spark jobs on the cloud. He said at any given time we might be orchestrating a million Spark jobs.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1914">31:54</a>] We have to write a scheduler that&#8217;s going to decide who to run next at scale a million. And he said there was no, we tried all the, all the schedulers written by the OS folks and they didn&#8217;t scale. So we put all the scheduling data in a postgres database and basically a postgres application was doing scheduling and then it sort of clicked that. By and large most everything you do in an operating system is managing data at scale and you should do that using database technology.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=1958">32:38</a>] So why don&#8217;t we just replace at least the upper half of Linux with a database system. So that was the gist of the academic project and we worked on it at Berkeley and Stanford in the early, early twenties and it was, it was very successful. It clearly, it clearly worked. And in the process the Stanford folks wrote an extension to JavaScript so that you could program, you need some programming world that can, can talk to your implementation.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2003">33:23</a>] So if you&#8217;re doing what amounts to a programming language and you&#8217;re running on top of what amounts to an operating system, that is a database, then the obvious thing to do is put all your state in the database. And that&#8217;s exactly what they did. And so we had an innovative programming language model, an innovative operating system model. And of course then the idea was, well, can we start a company?</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2036">33:56</a>] And so we Talked to the VCs, who to a person said, you&#8217;re dreaming if you think you&#8217;re going to displace Linux. However, this programming language stuff is really nifty. We had what amounted to extensions to JavaScript that would allow any, any program to have all of the nice features of a database system. You know, stuff was durable, you could have transactions, if it failed, you&#8217;d fail over, you know, it&#8217;s all that nifty stuff.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2077">34:37</a>] So we got funded to start a company in 2023 and that was DBOSS Incorporated. And we decided that that was the name of the project, since it always been the name of the project, but we were, we were basically in the programming language business. And so at the current time, DBOSS has a version of TypeScript, a version of Java, a version of Joe Go and a version of Python, which, which are basically seamless.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2116">35:16</a>] It runs what looks like vanilla programs in the world of the cloud. There&#8217;s every incentive for you to structure your, your, your application as a workflow. And so we decided that we would support a workflow system, period. And so the workflow that DBOSS supports in those four languages is the steps in a workflow. The individual micro ops, whatever you want to call them, are transactional workflows, are durable so that once you do a step, it&#8217;s not forgotten.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2165">36:05</a>] And it&#8217;s clear that we can make workflows atomic if there was a market for it, which means the whole workflow would either finish or look like it never happened. So it has very, very nice properties and is a great deal faster and a great deal easier to use than the competition. So the company is selling and innovating in this area. And so, so the idea is that you want to make state of your application persistent when you put it in the database and then it, and then you figure out how to do it fast.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2213">36:53</a>] And I think their business model as we were talking earlier, is very much get leaf level programmers interested. So it&#8217;s been very much tell us leaf level program or tell us what you need that we don&#8217;t have. Get it quickly and convince people to try it. And we&#8217;ve been very, very successful with others, with other startups who want to choose the best thing and we&#8217;re starting to be, to be successful with the big boys.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2256">37:36</a>] So it&#8217;s an interesting market and I think the key thing so far is probably 2/3 of the customers are doing agentic AI, which means that they have a large language model surrounded by a bunch of stuff that adds more signal. And so far most of agentic AI is read only, meaning you want to produce a prediction for whether Ryan is going to be a good customer or not. And so that just runs some stuff and then produces a new thing that&#8217;s given to somebody.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2307">38:27</a>] So basically read only, which means that you&#8217;re not actually updating Ryan&#8217;s credit rating or. And so I think fairly quickly this, the whole world is going to move to using, you know, agents to do read write applications and that&#8217;s going to make, that&#8217;s going to make them very, very databasey. And dboss does that stuff really, really well. And so you know, for instance, if you want to write an agent or two agents that move a hundred dollars from my account to your account and so you debit my account, you increment your account and these two agents have to agree to commit or you have to back everything out.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2369">39:29</a>] Which is to say the workflow needs to be what I called atomic, which is it all happens or it looks like it never happened. And so I think the, the demands on, in this market will escalate with, with things with people wanting stuff to be read. Right. And so I think that that will bode well for the market and bode well for DWAs.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2397">39:57</a>] And this, this what&#8217;s being offered in the market today to application developers differs from the original research project where that was actually swapping out the guts of an operating system with the database. I see that. I mean that&#8217;s really cool. I never imagined replacing all the state of a, of an operating system with a database. What&#8217;s the there, there&#8217;s gotta be some trade off there.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2422">40:22</a>] Well, a file system written on top of a DBMS is faster than the Linux file system. The scheduling engine is competitive with other scheduling engines. You can make everything fail over so you get high availability without having to do anything else. The answer is there&#8217;s really no downside.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2449">40:49</a>] Then why wouldn&#8217;t Linux incorporate that and upgrade itself with this?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2455">40:55</a>] You hope they would. In other words, you should keep all the device driver junk down at the bottom because there&#8217;s a lot of it and no one wants to do that and replace everything else with the database implementation.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2472">41:12</a>] Is that something that you&#8217;ve mentioned to Linux people and what&#8217;s their typical reaction?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2477">41:17</a>] Back in the academic project when I&#8217;d mentioned that to Operating system folks, they would get very, very threatened, which is this is the database guys trying to take over their turf and I think the programming language guys ditto. Which is the way to implement the runtime for a programming environment is with the database.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2506">41:46</a>] That&#8217;s, that&#8217;s interesting. I mean if it&#8217;s objectively true, then maybe it will take over.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2512">41:52</a>] Well, I mean it took Java 10 years to become widely accepted. I just think the time constant is substantial.</p><h3>42:02 &#8212; Future problems in databases</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2522">42:02</a>] I think we talked a lot about the past of databases and I&#8217;m curious your thoughts on unsolved problems in databases and what you think the future might look like.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2533">42:13</a>] Okay, so I think two different things that I&#8217;d like to talk about. The first one is like everyone else, three years ago we started to look at what were large language models good for. So we&#8217;ve been trying to get what&#8217;s now called text to SQL to. We&#8217;ve been, we&#8217;ve been trying to make it work on real world databases, especially real world data warehouses. So we&#8217;ve been trying the technology on four different production databases, warehouses where we&#8217;ve gotten the workload, the actual workload that&#8217;s run and you know, from the actual users using the system.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2591">43:11</a>] And we&#8217;ve gotten them to reverse engineer the text that corresponds to that SQL. So we have text and SQL for. We have four benchmarks.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2606">43:26</a>] When you say text to SQL, you mean like a human prompting model or something? Like I would just in English that text would be, you know, everyone over</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2616">43:36</a>] four years old tell me all the professors at MIT who won the Turing Award. And so an LLM is supposedly good at that. And so the text, the SQL benchmarks, there&#8217;s one called Spider, another one called Bird, and the, the best LLM systems are pretty good at those benchmarks, you know, like 80% accuracy or better.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2644">44:04</a>] So not superhuman?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2646">44:06</a>] Not superhuman, but they&#8217;re pretty good. Like you would consider using them and you know like current, current leaderboard is something like 85% accuracy, which, I mean it&#8217;s getting there. You say maybe it&#8217;s not quite ready for prime time, but it&#8217;s simply, it&#8217;s certainly looks looks pretty good. Well, on our benchmarks, large language models get 0% and if you enhance them with rag and all the tricks goes to 10%.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2681">44:41</a>] And if you give as a prompt the from clause, in other words, all the actual tables that need to be accessed and all the actual join clauses that need to be joined, then accuracy goes to about 35%. So the definition of this stuff is not ready for prime time and not going to be for a while, if ever. So what&#8217;s the difference? Number one, data warehouse LLMs are trained on the pile. Data warehouse data is not in the pile.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2723">45:23</a>] And there&#8217;s an adage that if you haven&#8217;t seen the data a couple times before, you have no chance of regurgitating it. That&#8217;s number one. Number two, query complexity on Spider and Bird is maybe 10 to 20 lines of SQL real world data warehouses, it&#8217;s 100 lines of SQL complexity is bigger. Number three, the schema in Spider and Bird is clean. The table names are mnemonic, the column names are mnemonic and there&#8217;s no duplication in data warehouses.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2768">46:08</a>] People have materialized views all the time. It means there&#8217;s redundancy and column names are often underscore Z, upper score blah. And so they&#8217;re not mnemonic. That makes it a lot harder. And then they also have idiosyncratic data. So J term is popular thing at mit. It&#8217;s a one month term in January. Not unique to mit, but not very popular. So not in the pile. Idiosyncratic data, simple queries, schema.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2813">46:53</a>] Schema is a mess, make it not work. And those are true of every data warehouse I know of. And so I think the technology simply doesn&#8217;t work and isn&#8217;t going to work anytime soon. So we&#8217;ve been. So what do you do? Well, first of all, we published our benchmark, it&#8217;s a thing called Beaver, which is an anonymized and abstracted version of these four data warehouses. And so if you think you&#8217;re really good at doing text to SQL, try a real benchmark, not a fake one.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2856">47:36</a>] So number two, borrowing from what I just said, if you don&#8217;t have all the join terms and you don&#8217;t have the from clause, you&#8217;re toast. What&#8217;s more, if you don&#8217;t break down the query into simpler pieces, you&#8217;re toast. So that says to me that you want to give your retrieval system simpler pieces which include the from clause include join terms. That&#8217;s number one. Number two, the minute you want to talk to two different structured databases like your data warehouse and your CRM system, then it&#8217;s pretty clear to me that doing a structured data join using an LLM is a bad idea.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2917">48:37</a>] It&#8217;s just you&#8217;re much better off leaving them as tables and doing a join in SQL. So our point of view is we are trying out turning everything into tables. You know, we&#8217;re, we&#8217;re working with the Department of Transportation in the city of Munich, Germany and they have six people full time who are answering citizens complaints queries which are of the form how come I, I don&#8217;t have enough time to cross this intersection next to my house before the light turns?</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2958">49:18</a>] All kinds of stuff. How come the trolley doesn&#8217;t stop for enough time for me to get on the trolley? You know, it&#8217;s how come the trolley doesn&#8217;t come more than once an hour? I mean it&#8217;s all this stuff. Their database is the trolley schedule, that&#8217;s SQL. The light sequencing, that&#8217;s SQL. The intersections, that&#8217;s cad. The federal, you know, country of Germany regulations of this stuff, that&#8217;s text.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=2996">49:56</a>] City of Munich regulations for this stuff, which is text. So you got to join SQL, SQL, cad, text and text. So our point of view is turn it all into SQL, all into tables and do a join with what amounts to a query optimizer. So that&#8217;s what we&#8217;re working on. I think other people will have other ideas, but I think it&#8217;s extremely fertile area because people really want to do it. So that&#8217;s number one. Number two, we talked earlier about agentic AI.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3033">50:33</a>] The minute this becomes read write, it&#8217;s a distributed database problem and you want atomicity, consistency, all that stuff. I think a very interesting area.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3053">50:53</a>] zero percent right now. What percent is human? If you took someone who really knows SQL and what would they score like the average human?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3063">51:03</a>] So once you disambiguate the text, a knowledgeable SQL user programmer with the schema will do, will get very high accuracy.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3075">51:15</a>] Okay, like 90% or something at least. Okay, okay. Wow. I&#8217;m surprised that the LLM scores so lowly on this kind of benchmark. Maybe when this goes out, someone who works at Anthropic will reach out to you or something and say let&#8217;s.</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3091">51:31</a>] I&#8217;d love to, I&#8217;d love to find out because I mean it&#8217;s a terrific</p><h3>51:36 &#8212; Technical book recommendations to learn databases</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3096">51:36</a>] success story for people who want to deeply understand databases. And they&#8217;re looking for some material to study. Is there a book that you recommend that&#8217;s a top technical book to learn?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3109">51:49</a>] Databases, papers in the literature. I think Joey Hellerstein and I published a red book, what&#8217;s called the red book, which is called Readings and Database Systems. It&#8217;s now eight years old. I mean, I think that that would be a great set of readings for eight years ago. And beyond that, papers, popular papers from the literature.</p><h3>52:20 &#8212; Advice for younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3140">52:20</a>] If you could go back to yourself when you just graduated, give yourself some advice, knowing what you know today, what would you say?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3147">52:27</a>] Back when I first took the job at Berkeley, without thinking about it much, we said, let&#8217;s write a database system. And we, we knew nothing about databases, nothing about implementations. We were not skilled programmers like Bill Joy. So starting off doing something that was that crazy was really pretty crazy. And you effort and you make stuff work and you learn along the way. And so I think the answer is think outside the box, think crazy thoughts and try and do them.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3191">53:11</a>] And I think to me it&#8217;s not at all obvious. The better question is if you were starting out today, what would you major in? Because I think computer science may well not be a growth industry going forward. And I&#8217;m not sure I would recommend 18 year olds to major in computer science. I think healthcare and the building trades are, are safe bets and everything else looks much riskier. If, if you&#8217;re about to get your PhD and are trying to decide what to do, then I think life is pretty easy.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3235">53:55</a>] You know, take, take the most prestigious job you can get and find a mentor who&#8217;s willing to help you and then pick some area that isn&#8217;t, you know, like our, our stuff, you know, which is called Rubicon, is definitely not going with the flow. So choose something that&#8217;s not, that isn&#8217;t going with the flow and try and make it work. Both my wife and I said, follow your passion, somehow the money will work out.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3271">54:31</a>] And I don&#8217;t believe that for a minute. But, but I think that&#8217;s what you have to tell your kids and your grandkids.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3278">54:38</a>] If you don&#8217;t believe that, then why do you have to tell them that?</p><p><strong>Mike:</strong></p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3282">54:42</a>] My wife is a good example. So she has a master&#8217;s degree in computer science, undergraduate degree in computer science, and she wanted to be a teacher, K12 teacher. And her parents said, you can&#8217;t do that, it doesn&#8217;t pay enough money. And so I think, I don&#8217;t think she, ever since that time has regretted that decision. She wasn&#8217;t passionate about doing computer science. It was simply a trade. And so I think find something you&#8217;re passionate about and and you will.</p><p>[<a href="https://youtu.be/YPObBOwIrHk?t=3322">55:22</a>] You know, either you won&#8217;t starve, you may not make a lot of money, but I think chances are you&#8217;ll be happier than if you do something you&#8217;re not passionate about. Because I think a lot of people I know view their job as simply a job and life is what happens between 5pm and 8am I don&#8217;t feel that way at all. I really like what I do. Wouldn&#8217;t matter whether I made a lot of money or didn&#8217;t.</p>]]></content:encoded></item><item><title><![CDATA[AWS Distinguished Eng: Learnings From 3000 Incidents And How Engineering Is Changing | Marc Brooker]]></title><description><![CDATA[Where caching is bad, thoughts on the industry, and learnings across his career]]></description><link>https://www.developing.dev/p/aws-distinguished-eng-learnings-from</link><guid isPermaLink="false">https://www.developing.dev/p/aws-distinguished-eng-learnings-from</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 13 Apr 2026 09:01:24 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/193741140/afb31d595fdaf37fecb69a8b0ed2164a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>In this episode, I talked to <a href="https://www.linkedin.com/in/marc-brooker-b431772b/">Marc Brooker</a>, a distinguished engineer at AWS who started there as a new grad and rose through the ranks. We discussed technical learnings from 3,000+ cloud system postmortems, how software engineering is changing with AI, how to find impactful problems and much more.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/u3GjIXP9N0s">YouTube</a>, <a href="https://open.spotify.com/episode/1qX2GfpbzxzGpGvDZVINdO?si=wsDGZo9PTbCNalKVybFVnA">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-u3GjIXP9N0s" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;u3GjIXP9N0s&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/u3GjIXP9N0s?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/193741140/127-finding-problems-that-matter">1:27 - Finding problems that matter</a></p><p><a href="https://www.developing.dev/i/193741140/1142-learnings-from-3000-postmortems">11:42 - Learnings from 3000 postmortems</a></p><p><a href="https://www.developing.dev/i/193741140/2358-why-caches-are-bad">23:58 - Why caches are bad</a></p><p><a href="https://www.developing.dev/i/193741140/2937-how-ai-will-change-software-engineering">29:37 - How AI will change software engineering</a></p><p><a href="https://www.developing.dev/i/193741140/3649-advice-for-junior-engineers-given-ai">36:49 - Advice for junior engineers given AI</a></p><p><a href="https://www.developing.dev/i/193741140/4402-thoughts-for-senior-engineers">44:02 - Thoughts for senior engineers</a></p><p><a href="https://www.developing.dev/i/193741140/4959-why-engineers-should-write">49:59 - Why engineers should write</a></p><p><a href="https://www.developing.dev/i/193741140/5751-visibility-and-apparent-expertise">57:51 - Visibility and apparent expertise</a></p><p><a href="https://www.developing.dev/i/193741140/10423-aws-engineers-he-admires">1:04:23 - AWS engineers he admires</a></p><p><a href="https://www.developing.dev/i/193741140/10653-technical-book-recommendations">1:06:53 - Technical book recommendations</a></p><p><a href="https://www.developing.dev/i/193741140/10906-advice-for-his-younger-self">1:09:06 - Advice for his younger self</a></p><h1>Transcript</h1><h3>1:27 &#8212; Finding problems that matter</h3><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=87">1:27</a>] Yeah, I think you have to go super broad. So I think there&#8217;s a set of those things that come in from customers from the world. Right. Like here is an unsolved problem. You know, I spend a lot of time meeting with AWS customers and listening to them talk about, you know, what are the things they still find difficult in our space? What are they, you know, what are they investing in? Where are they spending their time?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=108">1:48</a>] Where would they prefer to be not spending their time and focus on their core business instead? And so that&#8217;s one rich seam of ideas and focus on what&#8217;s, you know, what&#8217;s interesting, I think completely at the other level is sort of looking at the technical trends and you can look at just the kind of speeds and feeds like, wow, networks have gotten faster, storage has gotten faster. You know, we&#8217;ve seen this huge explosion in multicore and now in GPUs and you know, and so there&#8217;s a bottom up innovation trend there too, which you can also look at and say, well, this enables all of these new, new things.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=147">2:27</a>] And, and then broadly kind of across the world, like what, what are the big trends that are going on? What are the things that are changing in our industry? What are the things that are changing in, in the world? And really it is those kind of moments of change that have the, you know, bring with them the opportunity to, to, to build things and, and, and to recognize problems. And so to pick one, you know, concretely.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=172">2:52</a>] You know, when I was in, working in the lambda team in 2020 and I was talking to a lot of customers about, you know, they were super excited about building on serverless, they were super excited about building on containers. There had been this massive shift and what people were seeing then was, wow, I love these serverless products, I love building this way. But the world of data, and especially relational data doesn&#8217;t fit super well into this, this paradigm, right?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=199">3:19</a>] These relational databases are still very serverful, you know, fantastically powerful products, but not kind of operationally the same. And, you know, that thinking was, you know, just felt super important to me of like, wow, these customers have brought to me a gift of understanding something that&#8217;s really important. And so I joined the Aurora team. We built Aurora Serverless and then we built the SQL.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=225">3:45</a>] You know, we&#8217;ve been investing deeply across all of our database products to make them a better fit for these, you know, serverless and container workloads. And that is an example of a trend that was brought by, you know, brought by a customer. But then also these trends that have been driven by kind of architecture or by other things going on, right? Faster networks, faster compute, faster connectivity.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=255">4:15</a>] And so one of the big technical trends in the database world right now is this sort of block storage becoming the default backend, the default durability layer for databases of all kinds, from analytics workloads to online workloads. And there&#8217;s been this incredible explosion around that. And so if you look at what we did with Aurora DSQL, for example, that was very much learning from that trend and taking a lead on that trend and saying, well, well, we&#8217;re going to make S3 this block store that we built 20 years ago, sorry, object store that we built 20 years ago,.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=295">4:55</a>] Underlying durability layer of this new database, but obviously it doesn&#8217;t have the latency properties or the rich interface that an online database needs. And so we&#8217;re going to build an architecture on top of that that deals with all of these other things in a much better way, but doesn&#8217;t have to worry about durability. And, you know, so that was this perfect collision of a set of things I was hearing from customers and a set of things that were technical trends coming together and thinking, wow, we&#8217;ve got this opportunity to build something now that is going to be a market leading product that would be hard to imagine without either of those input signals.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=339">5:39</a>] I saw something that you wrote. You mentioned that you were on call for 15 years somewhere in there. And I&#8217;ve heard many stories of more senior engineers negotiating out of on call because per unit time it could be perceived as not that impactful. And so why did you stay on call for so long?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=359">5:59</a>] I would say that the majority of my in practice knowledge about how to build distributed systems has come from being on call and analyzing and deeply understanding these post mortems and COEs. You know, one of the challenges of running a company like AWS and running large scale systems is that folks come out of college with great, often great knowledge of computer science fundamentals, great programming skills, you know, great mathematical skills.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=394">6:34</a>] All of that stuff is fantastic. But without the grounded knowledge of what it actually means to run and understand, you know, understand systems and you know, on call is one of the best ways to learn those things. Best ways to see, you know, how do systems really run? How do they really behave, you know, how do customers really use them? What happens when customers use systems in unexpected ways?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=421">7:01</a>] How can we make systems more resilient to customers using them in different ways? And I think that should be almost a goal of on call, right? If you have folks in your teams who are on call and they&#8217;re just closing the same ticket over and over and over, well, you know, that&#8217;s where you need to just build some automation. And again, building automation is easier than ever. It&#8217;s more powerful than ever.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=444">7:24</a>] Fantastic. But where you really want to spend the time of the deep experts on your team is, you know, here&#8217;s something unexpected or unusual that&#8217;s happened in the system. Let&#8217;s deeply understand that and let&#8217;s bring that knowledge back to both improving that system and communicating broadly to the company and the outside community what we&#8217;ve learned from that. And so one of the most, you know, one of the most powerful things we do at AWS is we have this mechanism of a very broad weekly meeting where we all get together, you know, engineers from across AWS leaders, senior leaders from across AWS and talk about COEs, these postmortems that we write and what we can learn from them and how we can apply those lessons across the whole company.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=502">8:22</a>] And I think that particular mechanism, that particular kind of Wednesday morning meeting that we have, is one of the things that has been a core, almost causal factor behind AWS&#8217;s success because it has allowed us to and Forced us to spend leadership, bandwidth, to spend expertise, to spend the time of our best engineers deeply understanding how our systems operate and why they operate the way they do.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=538">8:58</a>] And you know, that level of being just extremely grounded in reality helps you design better products, help helps you architect better systems, and it helps you think more clearly about the next round of things. Helps you fix, you know, helps you fix issues. And so it&#8217;s this fundamental kind of learning exercise. It&#8217;s a real blessing. So I would, you know, I would recommend oncall to anybody who wants to learn about the practice of distributed systems.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=569">9:29</a>] And I would certainly recommend spending time reading coes, reading post mortems and, and deeply reflecting on not only what can we fix tactically, but what can we fix organizationally and strategically and what kind of tools might, might need to exist to, to prevent this kind of thing happening again. And you know, you asked earlier about, you know, where do ideas come from? This is another, you know, fantastic kind of flow of ideas of saying, wow, you know, we seem to be solving the same problem over and over in different ways and getting it slightly wrong every time.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=606">10:06</a>] You know, can we extract a tool to do that? Can we build a service around that? Can we, can we build a feature around that to make it easier for us to get right and easier for our customers to get right?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=620">10:20</a>] Yeah. It&#8217;s interesting because I think if you ask most engineers, they really avoid on call, but it sounds like you, you kind of go towards it and you&#8217;ve learned a lot from it because it&#8217;s a major source of customer problems. Yeah.</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=635">10:35</a>] And again, you know, I think for me it comes down to optimizing for finding the most important things to work on. And you know, if you aren&#8217;t close to operating your actual system and you don&#8217;t know how it&#8217;s actually working, how are you supposed to identify what to fix? Right. You can come up with some theories about those, but they&#8217;re probably not going to be right. And again, like, I don&#8217;t think there&#8217;s a huge amount of value in the rote ticket closing work of oncall.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=666">11:06</a>] I think automation, you know, should be doing those kinds of work. But I think there&#8217;s fantastic value in, you know, deep understanding, deep investigations and, and deep reflection on what you learn from postmortems and COEs. I tried to estimate a couple of months ago for a talk how many industry postmortems and Amazon coes I&#8217;d read over my career. The best estimate I could come up to, and this was about a year ago.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=693">11:33</a>] Was between 3000 and 4000, and so know even a little bit of lesson from each one, and it tends to, you know, tends to stick.</p><h3>11:42 &#8212; Learnings from 3000 postmortems</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=702">11:42</a>] Yeah, that was my next question, actually. I looked at the slides from that internal presentation and it said, I&#8217;ve read approximately 3,000 cloud system postmortems from across the industry. And my immediate thought was, I wanted to ask you what makes a good postmortem?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=720">12:00</a>] So I think, you know, what makes a really great postmortem is first really getting into the details and making sure that you deeply understand what happened rather than just assuming what happened based on the biases you bring in. And so there&#8217;s a kind of lesson one, there is, if you can&#8217;t understand what happened, well, that teaches you something about your logging and metrics and observability and simulations and all of these other things.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=750">12:30</a>] And then once you deeply understand what happened, then the ability, then a great postmortem steps through the whys behind that at multiple levels. Right? Like, why? Well, yeah, there was a code bug. Okay, sure. Code bugs, yes, we can fix that, but we can&#8217;t stop there. Right? Like, why was that missed in testing and validation for these reasons? What can we improve? What can we build around those?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=778">12:58</a>] Okay, next step. You know, why, you know, why was our testing and validation where it was? Or, you know, why did we assume a certain thing about the behavior of the system that we wouldn&#8217;t have assumed before? And so as you sort of get through these deeper and deeper layers, a great postmortem not only identifies kind of fixes to the proximal cause, but also identifies broader fixes to technology, to organizations, to products, and so on.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=811">13:31</a>] And so that&#8217;s a kind of multiple levels thing, right? You can&#8217;t get stuck on what is the most proximal cause of an incident, but you also can&#8217;t get stuck on this. Well, things fail sometimes, and what are we going to do about it? And you have to come up with a set of, you know, really concrete action items to fix things at different levels. Fix this particular line in the software that caused something, you know, fix the testing processes that didn&#8217;t catch that, you know, fix the, you know, maybe social or team processes that led to those technical processes.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=854">14:14</a>] And, you know, and then if you&#8217;re seeing patterns across multiple postmortems, sort of level those up and say, well, clearly there&#8217;s a hard underlying problem here. You know, can we build a service around that? Can we build a library around that? Can we build a, you know, community of practice around that, you know, are there technical changes we can make to avoid whole classes of things? So that&#8217;s quite a long winded answer.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=883">14:43</a>] But I do think it all flows from understanding and understanding at multiple levels, like understanding immediately like what happened, but also understanding broadly what happened technologically and organizationally and in context, and then the ability to connect that particular event or postmortem with other ones and extract those patterns. One of the things that we did in DSQL was we spent a lot of time as we were designing that, looking around relational database related postmortems and thinking about both our own and our customers and thinking about how can we design a database that helps people avoid falling into these traps.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=931">15:31</a>] A really common outage pattern, folks with relational databases is you have a client on a distributed system, starts a transaction and then goes out to lunch for whatever reason. And that could be a GC pause, or it could be a lossy network, or it could be a loss of connectivity and now it&#8217;s holding locks. And so if you look at relational databases, they don&#8217;t tend to be resilient to clients misbehaving in that way.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=959">15:59</a>] And that&#8217;s a really common cause of operational issues for systems built on relational databases. And so as we were designing DSQL we were thinking how do we avoid broadly that class of problems? So folks can say, hey, I&#8217;m going to build on D SQL and just not have this whole class of problems. And I think that&#8217;s a really kind of powerful outer loop over the post mortem process is to say, how do we turn all of these lessons into new services and into service improvements?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=995">16:35</a>] How do you prevent misbehaving clients from being a problem for the database?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1000">16:40</a>] Yeah, so in DSQL&#8217;s case, we have no pessimistic locking. And so within the scope of a transaction, everything that happens in that transaction, all of the reads happen using this mechanism called multi version concurrency control, where every row in the database we sort of store a history of versions. And so you can read an old version of a row without blocking writers and saying, hey, you can&#8217;t update this because I just read it.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1031">17:11</a>] And then locally within the query processor that&#8217;s handling a connection, we spool the writes locally and then you get to commit time and we do this optimistic check of can I commit this transaction at, at the transaction commit time. And so combining those two mechanisms of having multi version concurrency control and, and the scale out storage that comes with it and the commit time optimistic checks, we can strongly say that, you know, there is no way that a Reader of a piece of data can block other writers.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1066">17:46</a>] And there&#8217;s a no way that that a writer of data can block readers. Writers can block writers, but only by changing data, not just by looking at it. And so you can say, well, I can cause, sorry, writers can&#8217;t block writers, but they can prevent other writers transactions from eventually committing by making a bunch of changes. And that is inherent to the definition of the particular database isolation level.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1098">18:18</a>] Out of curiosity, in practice, what percent overhead would you expect for keeping copies of old rows for the sake of those stale reads?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1108">18:28</a>] Yeah, it&#8217;s actually surprisingly small. And it&#8217;s surprisingly small because if you look at the access patterns for most online databases, even ones that do a lot of write traffic, that write traffic tends to be quite concentrated. And it&#8217;s quite unusual for an online database workload, or even an analytics workload to make a second version of every row in the database. Typically what it&#8217;s doing is making a, you know, first, second, third, hundredth version of this row and a 50th version of that row.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1139">18:59</a>] But the vast majority of data isn&#8217;t changing. And so it&#8217;s super workload dependent, as is everything in the database world. But the overhead tends to be relatively small. I would say it&#8217;s unusual for a online database workload for that overhead on storage to be more than about 10%.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1163">19:23</a>] From my experience, I&#8217;ve seen an interesting dichotomy between teams where some teams, they really understand postmortem culture. They tend to be infrastructure teams, they tend to take it really seriously. And everyone on those teams, the tech leads are asking you, hey, why? Why did that happen? And you know, really follow up and make sure it&#8217;s, it&#8217;s not a problem. Then I&#8217;ve also noticed on other teams that is less of a strong muscle for those teams that don&#8217;t take it too seriously.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1191">19:51</a>] What would be your, your pitch for why they should take it seriously?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1195">19:55</a>] Yeah, it all comes down to where you want to spend your time, right? Do you want to spend your time improving your product and making it better, or do you want to spend your time fighting the same fire over and over? And you know, really the culture of building, you know, building great postmortem culture is to make sure that at the pros, at the product level and at the organizational level, you are fixing known issues and you are avoiding having the same problems multiple times.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1235">20:35</a>] And typically when I see teams that have, you know, poor post mortem culture, I think they&#8217;re probably one of two failure modes there. You know, one of them is A lack of focus on just the outcomes, right? Like, you know, a lack of really, I wouldn&#8217;t say caring enough. I think that&#8217;s a little bit too personal. But being really focused on, on, you know, is this, is this product performing super well?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1266">21:06</a>] Are we, you know, are we really making our customers happy? And that is fundamentally a cultural and leadership, cultural problem of, of setting the right standards. Oh, and by the way, like, I don&#8217;t think, you know, standards should be, you know, should be uniform, right? Like there are places where, you know, the details really, really matter, where things like durability are just critical and, and, and you do need to have super high standards in those places and you know, places where you want to optimize for other things and, and, and maybe have, you know, have, have a, a higher production defect rate.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1304">21:44</a>] And I think that&#8217;s, that&#8217;s okay as long as that&#8217;s an intentional decision that&#8217;s being made. So that&#8217;s kind of case one, right? Like insufficient focus on the outcome. I think case two, and this is a harder one to change is normalization of kind of operational heroics. Like, we don&#8217;t need to fix these root causes because our on calls are superheroic and they&#8217;re going to stay up all night and they&#8217;re going to, you know, they&#8217;re going to hack around things and they don&#8217;t mind being paged 100 times a week.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1336">22:16</a>] And they can feel from the inside like it&#8217;s a good culture, right? Like, oh, wow, these people are super strong owners. They&#8217;re super engaged, they really care, they&#8217;re really working hard on call call. And those are all good signals. But then when you look at it from the outside, it&#8217;s like, wow, we&#8217;re not actually fixing the causes of things. We&#8217;re just doing this fantastically expensive investment of taking all of these people and their strong ownership and their expertise and spending them just on, on, on this break fix cycle.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1366">22:46</a>] And that&#8217;s where you need to kind of look at it from the outside and say, well, let&#8217;s take this energy of this team, fantastic energy, and focus it on improving the service, getting out of the cycle, finding new things to fix, finding new things to build. And that can be hard because it can be hard for those folks who&#8217;ve been in that mode to look at it and say, this feels so good. It feels really like we&#8217;re caring about our customers and caring about our product and caring about our business to realize that, oh no, we&#8217;re actually caring about it at the wrong level and we&#8217;re not Serving our business in the best possible way by being so narrowly and tactically focused on this break fix cycle.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1414">23:34</a>] And that&#8217;s where you sort of need to pop them out and say, well, let&#8217;s spend more time thinking about the postmortem. Let&#8217;s spend more time thinking about the causes of things. Let&#8217;s spend more time addressing these things in a more strategic way. And wow, okay, now you&#8217;ve got so much more time to do that because you&#8217;ve broken the cycle and you can improve your product in different ways.</p><h3>23:58 &#8212; Why caches are bad</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1438">23:58</a>] I mean, since you have worked on AWS for almost two decades, I&#8217;m sure you have a lot of experience building distributed systems. And I think one of the most common advice that you hear, I guess this is maybe in the context of system design, is I almost hear almost 100% of the time people will say, just throw a cache on it or you&#8217;ll have a system design. You say, how do you make it better? Let&#8217;s put a cache here, let&#8217;s put a cache there.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1466">24:26</a>] And I saw you had a tweet that said that there are cases where caches are bad, despite people saying it&#8217;s best practice. I was curious if you could explain that.</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1475">24:35</a>] Yeah, so caching is good, right? Like it&#8217;s, hey, I&#8217;m going to take these core ideas from computer science of temporal and spatial locality and I am going to exploit those to make my system faster, scale better, etc. And so, you know, obviously very attractive. But the downside of caches, especially in distributed systems, is they have this mode, right? Like they have this, you know, there&#8217;s a mode where the cache is full and the cache is full of the right data in time and space to perform very well.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1508">25:08</a>] And there&#8217;s a mode where the cache is empty or contains the wrong data. And in the first mode, the system is fast and happy and healthy. In the second mode, the system is slow, often down, because now the back end isn&#8217;t scaled to deal with all of this uncached traffic. Customers are very disappointed. And often it is down in a stable way. And this is this kind of idea of metastable failures where the system has switched from state one to state two.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1543">25:43</a>] And in state two, it&#8217;s still stable, right? Like it&#8217;s still, it&#8217;s down, but it&#8217;s not going to come back up under its own energy because, for example, all of this traffic is causing a huge amount of contention in my database or is saturating the network and so I can&#8217;t even refill the cache. It&#8217;s not even getting the right kind of data in. And so, you know, when I talk about the downsides of caches, it&#8217;s really about, you know, how do we avoid that modality between, you know, fast and, you know, that, that value of caches and the, you know, how do we avoid the state where we&#8217;re down?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1583">26:23</a>] And so if I go back to D SQL, like our answer there is D SQL. What we call the storage tier is essentially a cache, but it is a complete cache. It contains every row in the database. And so it doesn&#8217;t have this mode where how do I recover from it being empty or containing the wrong data. It contains all of the data. Similarly, if you look at a more, let&#8217;s say classical relational database design like Aurora, the Aurora leader is constantly telling the potential failover targets, here&#8217;s something you should cache, here&#8217;s something you should cache, here&#8217;s something you should cache.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1621">27:01</a>] So when a failover happens, the cache is warm on, you know, on the failover target. And so those are the kinds of things that you can do to avoid those modalities. But in general, you know, and I wouldn&#8217;t extract this as a rule or say that, you know, this applies 100% of the time, but in general I prefer to see the teams around me avoiding caching where possible. I prefer patterns where you have a, let&#8217;s say, complete materialized view of the data.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1655">27:35</a>] If you need very fast access to it, especially if it&#8217;s slow moving, just pull it down onto your local machine and work with it in memory. If it&#8217;s only being updated once a week, who cares? Just make lots of copies of it. So that&#8217;s one pattern. Or use a scalable backend, DSQL or DynamoDB or whatever your favorite scalable database is, and keep your database vendor honest about getting to the scale and performance you need rather than putting a cache in front of things.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1686">28:06</a>] So caching isn&#8217;t a bad pattern, but it is a pattern with some significant downsides that are really best avoided in practice.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1698">28:18</a>] How often do you see that metastable failure though?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1702">28:22</a>] Yeah, it&#8217;s not super common. You might go years without seeing something like that. But if you look across the biggest, most impactful, you know, system postmortems across the industry, I would say that these kinds of metastable failures have been an underlying cause in probably a majority of them. And it&#8217;s super important that, you know, as an industry and as a community of practice, we understand those things deeply.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1732">28:52</a>] Because also those cases where these do happen, you know, tend to be larger scale issues, longer recovery time issues and more complex to fix issues. Right. Where you have to often turn it off and turn it back on again, which is this very, very painful thing for a team or an organization to do. And you know, and so again, like you might go years operating a system with seeing nothing like this. And but if you look at the most impactful issues, it&#8217;s actually fairly common as an underlying cause for those issues.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1771">29:31</a>] And so it&#8217;s kind of both of these things of being quite uncommon and being rather common.</p><h3>29:37 &#8212; How AI will change software engineering</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1777">29:37</a>] I was reading your blog and you have a series of posts on how AI may impact the future of software engineering. And I kind of want to pick your brain on that. So what&#8217;s your perspective on how you think AI will impact software engineering and how it&#8217;ll change things?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1794">29:54</a>] Yeah, I mean, it&#8217;s maybe harder than ever to tell the future. And so this is a set of maybe guesses and predictions about the future. So I&#8217;ll say the first thing I deeply believe about software is we have only just started to see the impact that software is going to have on the world. There is such an opportunity for more software to exist, bigger software, better software, more personal software, all of these things.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1829">30:29</a>] And so Software has throughout its 60 ish year history been supply constrained. And I think that&#8217;s going to remain true. I think the opportunity for software in the world is just almost unbounded. And that&#8217;s really exciting, right? It&#8217;s really exciting to be at a moment when the economics of building software are changing and are changing rather quickly. And that gives us an opportunity to think about what could we do in the world with a lot more software, you know, a lot more software personalization, a lot more just the right software in the right place at the right time.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1875">31:15</a>] And you know, that gives me a huge amount of excitement about the future of this industry because we have a massive opportunity ahead of us driven by these changing economics of software development. Now also with those changes, there are going to be needs for us as software practitioners, people who build software, people who love software, to, to adapt. And you know that that means that software careers are going to look different.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1913">31:53</a>] They&#8217;re going to look different early on, they&#8217;re going to look different later on. I think the software business is going to look different. And the success of people in organizations over the next, you know, next, who knows, five years, decades is going to be largely predicated on their ability to adapt to that change and to lead that change.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1937">32:17</a>] You told this story about this guy who bet on analog circuits when obviously we know Digital became kind of the more dominant way, yet he made good money. For the people who maybe don&#8217;t want to adapt, you could still get by and succeed. It&#8217;s not going to be like a crazy thing. Is that kind of the takeaway and why you brought up that story?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1961">32:41</a>] Yeah, I think that&#8217;s, that&#8217;s the right takeaway. And so if I sort of break down, you know, the world into two, three tiers, you know, I think there&#8217;s going to remain a huge amount of joy in the craft of software. You know, like the craft of joinery with, you know, with hand saws. Right. Like it&#8217;s, it&#8217;s a nice way to spend time. It&#8217;s not a particularly economically interesting activity anymore. But not everything we do has to be an economically interesting opportunity.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=1992">33:12</a>] It can just be something I do because I enjoy it, because I enjoy the product of it, because I enjoy talking to people about it. Right. And so there&#8217;s, you know, I don&#8217;t think that is going to go away. I think we&#8217;re going to see, you know, a lot of interest in that. Like, there&#8217;s been interest in retro computing and, you know, people who run an Apple II as their desktop and like. Well, again, it&#8217;s wildly impractical.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2014">33:34</a>] It&#8217;s not economically interesting, but it&#8217;s fun and something I could do as a hobby. And so, you know, that&#8217;s going to be a remaining part of the world of software for probably forever. And then there&#8217;s this kind of story that I told in the blog post and I think this relates to driving change in the real world is always harder than it looks from the outside. As you get into the details, things become more difficult.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2044">34:04</a>] They become more dependent on people, they become more dependent on politics and policy and, you know, our various irrationalities as humans. And so driven by that, you know, there is going to be a huge amount of, and a shrinking over time, amount, but a huge amount of the software industry that is run in what I might call the old way, right? Past techniques, past languages, past technologies. And there&#8217;s real economic opportunity in engaging with that part of the, you know, part of the world.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2083">34:43</a>] You know, as we saw with, with analog electronics. Analog electronics still very much exist. In fact, there are parts of the world like, you know, like radio and power systems, where there&#8217;s been incredible technological advancement in those fields, but they have become more niche. And so, you know, digital became the mainstream. We wouldn&#8217;t be talking like we are today if it wasn&#8217;t for this, you know, 12 orders of magnitude or whatever explosion in digital transistor counts.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2117">35:17</a>] But there&#8217;s interesting opportunity there. And I think that interesting opportunity is going to change shape and become more and more specialized and more and more niche and great careers to be built there. And then there is the mainstream, which I think is going to adopt these new technologies from agentic development to AI powered development to specification driven development and a whole lot of other new things whose names we don&#8217;t even know yet, to build software at a speed and a cost that is unimaginable to do with the old techniques.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2157">35:57</a>] And I think that is where, correctly, the majority of the industry is going to be going. I think that&#8217;s where the majority of careers are going to be built. I think that&#8217;s where the majority of economic opportunity is. It&#8217;s the space I&#8217;d be in if I was building a company today. It&#8217;s the space I&#8217;m in in my role and you know, the one I would sort of personally be most excited about. But yeah, it isn&#8217;t the only one.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2182">36:22</a>] I think there&#8217;s going to be the spectrum of software practice and especially where software engages with the physical world. There are going to be some really interesting questions about how do we bring these new technologies, how do we bring these new practices into the various, many niches that software is going to and has over six decades kind of wormed its way into.</p><h3>36:49 &#8212; Advice for junior engineers given AI</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2209">36:49</a>] It&#8217;s interesting you mentioned joinery. I wonder if down the road we will see apps on the App Store that people pay extra for because it&#8217;s marketed as this was written by a human or it was written by hand. So bespoke custom app. Crazy how the world is going to change. But so it sounds like, you know, change is obviously the common case. It&#8217;s the one that we should be thinking about. Maybe we can break up the conversation into two parts.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2238">37:18</a>] One is for junior engineers, what is important given that code is kind of flowing like water.</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2246">37:26</a>] Now, at risk of being a bit meta about our past conversation, it really is about finding those problems that matter and doing that early in a career. And that requires an understanding of customers, it requires an understanding of the business, it requires an understanding of economics and of systems. And that can, I think that&#8217;s going to move from being, you know, almost kind of senior engineer work of like, oh, well, you know, now you&#8217;re going to go and talk to customers and actually understand the context of the stuff you&#8217;re building to being more and more part of even the earliest steps of an engineering career.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2289">38:09</a>] Right. Like, here&#8217;s the context, here&#8217;s the Problem, here&#8217;s the customer. Let&#8217;s go off and work together and solve problems, you know, and solve this problem with all of this context. And I think that&#8217;s going to be super exciting for one set of folks and a little bit frustrating for people who have come into, you know, looking for a pure software development career. Right? Looking for a career where they sit down, open their idea, start typing, and don&#8217;t stop for eight hours.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2301">38:21</a>] I think that&#8217;s going to be a mode that we&#8217;re going to see fewer people in and a mode that&#8217;s going to be harder and harder to build a career around. Now, the other mode of, oh, I&#8217;m excited to go off and learn from my customers about what they&#8217;re building and what they need. I think that&#8217;s going to be ever more highly valuable and so super exciting opportunity to build careers there. And then maybe.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2349">39:09</a>] And this might come across as being a little bit paradoxical. I think there&#8217;s also a ton of opportunity for folks who are extremely technically deep, who are deep on optimization problems or deep on infrastructure problems, or deep on various scientific things, or deep on databases, or deep on, you know, one of the many, many topics that are behind our industry, because I think the ability to ask the right questions is also much more valuable than it was has ever been.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2389">39:49</a>] And so I think there is a ton of opportunity for people coming into the industry with deep technical or scientific knowledge to now leverage that in ways that, you know, maybe were, were hard before. Right. There was too much sort of boilerplate to really, you know, to really use that leverage that you have. And so I think we&#8217;re going to see a lot more of, of, of those kinds of careers of really kind of building expertise in a technical topic, in a scientific topic, and then be able to turn that into software and software products in a way that was really difficult before and in some cases wasn&#8217;t possible before and is now, you know, vastly easier.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2431">40:31</a>] If I was to look at a career ladder&#8217;s expectations, some of what you described, of maybe engaging with the customers and understanding the business context, uniquely in software engineering, it feels like the earliest levels are insulated from all of that. You have your tech lead, tech leads handing out tasks, and then the early level engineers just given tasks just converted into code. And it sounds like that part&#8217;s relatively solved.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2460">41:00</a>] If not now, maybe I&#8217;d be surprised if a year or two from now wasn&#8217;t completely solved. And I think that could scare a lot of junior engineers because they would think you&#8217;re going to expect me to graduate from college or start working as a software engineer, and then I would have the senior engineer expectations. What would you say to the scared software engineer that&#8217;s just entering the industry with all this change?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2490">41:30</a>] Yeah, I think. Well, I would remind them that we as people who hire and build organizations of software engineers and they, as people who are building software engineering careers, have really aligned incentives. It&#8217;s not valuable to hire a bunch of people and set them up to fail like that&#8217;s, nobody wants that. It&#8217;s not an outcome that is good for anybody. And so, yeah, we&#8217;re going to need to figure out how do you support people on that path?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2526">42:06</a>] How do you help people learn those things? How do you give them the right guardrails? Hey, that first time that you go out and talk to a customer, yeah, it&#8217;s going to be scary. My first time talking to an AWS customer was, you know, was, it was, was super scary. But you know, I, I got a bunch of help with that and I got a bunch of advice and I got a bunch of mentorship and I got a bunch of feedback and I got better and better at that over time.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2550">42:30</a>] And I think that&#8217;s exactly what these things look like is, you know, you start off and you, you start small and, and, and, and you learn, you know, as you go and, and, and so that feedback loop goes faster. And so I don&#8217;t expect that people coming in from college or, you know, will, will. Will come in with all of this knowledge. I think, you know, it&#8217;s never been true that people coming into technical or engineering career straight out of college know everything or any career for that matter.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2579">42:59</a>] Right. Like you talk to, to teachers about, you know, what they&#8217;ve learned on their job versus what they learned, you know, studying, you know, they learn a huge amount in, in, in things like internships and, and so on and over the course of a career or doctors or anybody in a field like that. And so, yeah, it is going to be about learning. And I think the emphasis on what people learn is going to be different.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2605">43:25</a>] I think it is going to require leaders like me who care deeply about hiring and developing folks early in their career to be really thoughtful about what does that new letter look like. And, and you know, we&#8217;re doing a lot of that thinking. I think people are doing that kind of thinking across the industry. And yeah, it&#8217;s changing fast. It&#8217;s uncertain. It&#8217;s an interesting time to be graduating. But again, like, it&#8217;s a super exciting time.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2637">43:57</a>] I think that just the scale of the opportunity is bigger than it&#8217;s ever been.</p><h3>44:02 &#8212; Thoughts for senior engineers</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2642">44:02</a>] Sounds like your advice for senior engineers is different from that of junior engineers. What is your thinking there?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2649">44:09</a>] Yeah, I mean, I think for folks there, the challenge is how do you retain the value of this incredible experience and knowledge that you&#8217;ve gained over a career while not falling behind, while learning how to best use the tools? And when I look at senior folks, this is a challenge ahead of them. I think a lot of people have found themselves in influence and leadership type positions where they aren&#8217;t hands on building every day.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2684">44:44</a>] And I think it&#8217;s going to be harder and harder to be in that kind of role and be able to influence and advise in a relevant way, in a positive way. And so really I think my advice for folks is you kind of got to get building, you got to get back in, get back into it. You need to deeply understand how the practice of building software and the practice of designing software has changed and is continuing to change.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2722">45:22</a>] And so the challenge is, how do I really take advantage of all of this knowledge and expertise that I&#8217;ve built up in my career and be super curious and be super hands on and really be in the details? And the good news for that? Well, I think there&#8217;s two bits of good news. One of them is because of these new tools. You know, time spent as a practitioner is so much more leveraged than it is today. You can build such cool stuff, you know, during that period of time, the amount of kind of wasted time and boilerplate and so on is so much smaller.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2760">46:00</a>] And so you really do have this opportunity. And the other one is again, like, why did you know, why did we get into the space? Well, I didn&#8217;t get into it so I could go to meetings and sound smart. I got into it because I love learning and because I love building technology and because I love solving my customers problems and because I love learning about new technologies and learning new things. And there&#8217;s more opportunity to do that than ever before again because of this new set of tools and the leverage that comes with them.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2791">46:31</a>] And so really is getting back to, you know, why are you here? Why did you get into this career? And I think it really gets us as technology focused people closer to our original answer to that. It&#8217;s really obvious to me right now when I speak to, you know, practitioners, you know, who and who isn&#8217;t using a, you know, modern set of agentic powered developer practices, right? And the people who are have these really interesting things to say about the strengths and weaknesses of those approaches and the work that still needs to be done and the integrations that still need to be done and the things that are working and aren&#8217;t, and the people who are, you know, using them hands on have such a poor mental model of how they work, what they&#8217;re good at, what they&#8217;re not good at, that the things they say about them tend to be essentially fiction.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2851">47:31</a>] And so I think we are in this minute that if you aren&#8217;t doing it hands on, your opinion about it is very likely to be completely wrong. And that takes a level of humility to admit. That is tough. It&#8217;s tough for folks with fancy titles and it&#8217;s tough for folks with, with distinguished careers, but I think it&#8217;s a must.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2875">47:55</a>] I feel like there&#8217;s a common sentiment among software engineers when they work with someone who is a quote unquote, tech lead, but they&#8217;re not really hands on. So they&#8217;ve kind of been in the docs for the last five years or so and there&#8217;s these minor things they can tell that this person doesn&#8217;t actually understand the underlying thing. And sounds like that gap will widen with these new tools, which is if you&#8217;re, you&#8217;re looking at things from a thousand feet up and you&#8217;re not actually using the tools, that&#8217;s just another thing that separates you from the people who are actually building, where you&#8217;ll be very out of touch.</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2915">48:35</a>] And I think, you know, when I look at, I think that&#8217;s always been true. I think it is wider than, you know, ever before. And. But when I look at the, you know, engineering leaders that I&#8217;ve really respected and learned a huge amount from over my career, you know, for example, some of the folks who built S3, you know, 20 years ago, that was such a successful product because those folks were so deep in the details and so grounded on the use cases and so deep in the economics and really just did, you know, really thought about both the kind of strategic world of like, how is this cloud thing going to change the way people want to interact with storage?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2961">49:21</a>] But also the, you know, minute to minute details of what&#8217;s fast now, what&#8217;s slow, what&#8217;s good, what&#8217;s bad. And I think, you know, when you think about a extremely enduring product like S3 or EC2, I think it&#8217;s been that groundedness in the details from early on, from all levels of leadership that has made those things so successful, where other products seemingly with the same amount of early promise didn&#8217;t turn out to be as successful.</p><h3>49:59 &#8212; Why engineers should write</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=2999">49:59</a>] I think one of the last topics that I wanted to ask you about was writing. You have a ton of awesome posts on your blog. The style of writing is incredibly clear. And I was curious, why do you write so much as an engineer?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3019">50:19</a>] Writing and speaking, but especially writing, have this incredible power and for technical folks, it&#8217;s this incredible multiplier in being able to take these ideas that&#8217;s in your head and share them with the world. And, you know, you can take a set of technical ideas in your head and share them with the world by building a great product. And that&#8217;s a fantastic thing to do. You can share them in the world kind of one on one, you know, mentorship, teach people, learn small groups, also a great way to spend time.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3054">50:54</a>] But the multiplication factor of doing a talk or even more of writing something is so much higher, right? Like there are so many more people that you can share that with and it lasts for a much longer period of time. And so just having something written on my blog, even that I wrote like a decade ago that I can share with someone and say, you know, here&#8217;s, you know, here&#8217;s how to think about this problem.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3081">51:21</a>] Here&#8217;s an insight that I wanted to share with you or have people discover that organically is just super powerful. And so writing lets you scale out the impact of your expertise in space and time in a way that&#8217;s really hard to do in other media. I think with video and with podcasts and so on, we&#8217;ve seen other ways to do that. But I think writing remains kind of uniquely powerful. And then there&#8217;s also this idea which is this kind of core belief culturally at Amazon.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3113">51:53</a>] And I&#8217;ve obviously been affected by this over the years that, you know, writing forces a level of mental clarity that speaking, making slide decks, etc doesn&#8217;t. And, you know, that&#8217;s something that has also really been my experience of sitting down to write something down forces me to think that through at a depth that I wouldn&#8217;t have been been forced to think it through without that. And so I saw one of your early conversations with, was with Leslie Lamport, who kind of takes that a step further and say, hey, you know, it&#8217;s formal mathematics that is the next step there.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3151">52:31</a>] And I, I love that point, but I, I, I think writing is this really accessible thing for, for people to do that does force a level of thinking. And so I do a lot of writing sometimes just for myself, right. Like I&#8217;ll, I&#8217;ll write a doc, not ever intending to share it with anybody, but just to sharpen my own thinking on a, on A particular point. And so it&#8217;s some of that combination of three things, right?</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3176">52:56</a>] Like I just have something to say and I want to say it. You know, I have something to say and I want to scale it out in time and space and I want to sharpen my own thinking on a subject or the thinking of a small group on a subject in a way that writing is just a super powerful tool to do.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3200">53:20</a>] Definitely.</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3200">53:20</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3201">53:21</a>] I remember being surprised early in my career I had a manager or tech lead who we would write these docs on either designs or the strategy. And he said even if you just wrote it and you threw it away, it would still be worthwhile because you&#8217;ll realize things as you&#8217;re writing and that clarity will save you a lot of time down the road. And it&#8217;s interesting to me because a lot of engineers, they complain about writing docs docs and all the stuff around the code.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3233">53:53</a>] They kind of hate that. It&#8217;s a sign of slow big company processes. And what would you say to an engineer like that who&#8217;s saying just let me write the code?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3243">54:03</a>] Yeah, and that&#8217;s a great point. And I think it really depends on the level of problem you&#8217;re trying to solve. And so, you know, if I look at, I&#8217;m going to pick on UML for a minute here, right? Like it&#8217;s a sort of semi formal software design process and not one that I&#8217;ve ever found useful because I think it just happens at the wrong semantic level. I think it&#8217;s bothered with details at a level that aren&#8217;t helpful.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3270">54:30</a>] And I think a lot of the let&#8217;s go off and document this has, has a similar problem, right? Like does this actually require, require that level of reflection and thinking? And so I think what you know, for me separates a valuable doc writing and thinking process from a busy work process is understanding what you&#8217;re getting out of it and what you&#8217;re getting out of it might be an artifact to share with the future, which is super valuable.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3302">55:02</a>] Either your future self if you&#8217;ve got a terrible memory like me or you know, new teams, new people, people you know, or I want to share something with customers or I want to share something with the world and so that&#8217;s super valuable. Or I want to write down something so I can think through a really difficult, often one way door, kind of hard to change technical decision or API design decision. And I&#8217;m not going to do that every time I make a technical decision.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3334">55:34</a>] It&#8217;s not worth it because a lot of those technical decisions are either Easy or not as critical or can be just be taken back if we figure out they&#8217;re wrong. But I am going to spend my time that way when there are key decisions to make, when there are key insights to find. And I think it is that what is the purpose of writing that separates well spent time from poorly spent time. Now there are people who still don&#8217;t like writing, even when it&#8217;s well spent time, even when it&#8217;s like, you know, you have to explain this piece of technology to, you know, to a future team.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3383">56:23</a>] I think that&#8217;s a skill worth developing. You know, sometimes you do need to, you know, eat your vegetables, you know, and it&#8217;s, it is a skill worth getting good at. And especially in documenting the core kind of technical decisions behind a design is so useful. And that&#8217;s useful in two ways, by the way. Like, one of them is, as we think about building a big system, we make thousands of decisions.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3414">56:54</a>] And some of those decisions are very carefully chosen, very particular and very impactful. And some of those decisions are the best thing we could guess in the moment based on having no data to make that decision. And it&#8217;s super useful for people who are coming in to improve that system down the line to be able to look at the design and say which of these things were very carefully chosen and thought through and which of these things were arbitrary.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3445">57:25</a>] And because the arbitrary things like, okay, well I&#8217;m going to change that and I&#8217;m going to just go ahead and change that because I have better data now, I&#8217;ve watched the system run, I can go and change those. And these other ones are like, well, let me really engage with the reason that we made this decision. Maybe it was non obvious, maybe there was some more advanced thinking. And so being able to kind of understand the amount of thought that went into a decision is almost as important as understanding what that thought was.</p><h3>57:51 &#8212; Visibility and apparent expertise</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3471">57:51</a>] You had a really interesting blog post. This was from a while back. It&#8217;s titled the Four Hobbies and Apparent Expertise. And you introduced this really interesting idea. It&#8217;s a two by two matrix and on one side there&#8217;s doing versus discussing and on the other side there&#8217;s the hobby and the gear. Maybe I can overlay it for people who want to see. And then later you kind of liken that to your career and how.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3500">58:20</a>] I guess maybe we could imagine the hobby is actually coding and maybe the gear is. Let&#8217;s just say it&#8217;s like your dev setup or something like that. You talked about these two aspects of being in depending on which quadrant you are, which is there&#8217;s this trade off between expertise and visibility where imagine you&#8217;re really into coding and you&#8217;re really into doing. You&#8217;re going to be phenomenal in terms of expertise, but maybe not as visible because you&#8217;re not talking with everyone about how cool your setup is and all of that.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3534">58:54</a>] And on the flip side, if you&#8217;re really into the gear, or maybe you&#8217;re set up in this case and you&#8217;re really into discussing, you&#8217;re on all the messaging posts and that you might not actually be that good at coding, but you&#8217;re very visible and you have this apparent competence. And I thought that trade off was really interesting because I&#8217;ve seen that so much in software engineering too is there might be someone who&#8217;s really quiet coder, they never write anything, but they know everything because they&#8217;ve just been in the weeds all the time.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3566">59:26</a>] And then there are people on the complete opposite end of the spectrum that writing all the time, speaking all the time, but maybe not actually practicing as much. And my question to you is, how do you strike that balance? Because obviously too far in either direction is not optimal. So how do you strike that balance?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3584">59:44</a>] Yeah, that&#8217;s, you know, that&#8217;s, that&#8217;s something that I reflect on a, on a lot, you know, and I do explicitly think that sort of being 100% on either of those ends is a, is a, is a failure mode. And I think, you know, I will say that I have a lot more personal enjoyment working with the people that are 100% on the doing side and 0% on the talking side. I appreciate and deeply, you know, deeply love their expertise, but I do think that, you know, they, they could have more impact and leverage if they, you know, swung a little bit away from that.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3622">1:00:22</a>] You know, I tend to not enjoy as much interacting with the people who are 100% on the speaking side, but I think they would, you know, have a lot more relevant things to say, you know, if, if, if they, you know, swung a little bit back towards the center. The other challenge of being on 100% on the doing side, it sort of gets back to that. How do you find the really important problems? And you know, if your head&#8217;s down in your ide all day, you could very likely be working on the wrong thing.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3659">1:00:59</a>] You know, something that, that isn&#8217;t as, as important, isn&#8217;t as impactful, you know, doesn&#8217;t have these properties that people want. So, you know, how do you find the optimal balance? I don&#8217;t have a recipe for, you know, what really is optimal? I tend to do about, let&#8217;s say 75, 25 kind of practitioner versus, you know, teaching and communicating, maybe 80, 20 at times. I found that about what feels right for me.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3695">1:01:35</a>] I would say that, you know, they&#8217;re great people I work with, you know, from sort of 9010 on that scale up to about 50, 50 on that scale. I think, you know, outside of those, you know, folks tend to, you know, tend to get into trouble as practitioners, right? Like, you know, there are people whose job it is to be, you know, communicators. And that&#8217;s great as long as they have the curiosity and, and are clear about what they, you know, know and don&#8217;t know.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3724">1:02:04</a>] But, you know, I found that sweet spot to that sort of 75, 25 point in my career and, and that&#8217;s what&#8217;s what&#8217;s worked for me, I think. And I think in this moment where things are changing so fast, there&#8217;s so much to learn, you know, swinging a little bit more towards the practitioner side, I think generally will help people. But again, you don&#8217;t want to go too far that way because then you lose the, you know, what&#8217;s important for you that comes with interacting with the outside world.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3757">1:02:37</a>] On the doing versus discussing axis. I kind of view the doing one as if you were too far, you would be underrated, and if you were too far out, the discussing, you would be overrated. And if for someone who&#8217;s structuring their career, would you say it&#8217;s better to be overrated or underrated?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3781">1:03:01</a>] I think long term, if you&#8217;re using that terminology, it&#8217;s probably better to be underrated. I think being overrated can feel great in the moment, but it&#8217;s rarely sustainable and really gets you to where you need to be. I really enjoy, you know, things like sports and, you know, these sort of creative hobbies and, you know, crafts, because it does, you know, turn that, let&#8217;s say perception and reality knob to very much reality.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3822">1:03:42</a>] Right. Like as a sports person, you can&#8217;t fool the world for very long. It very quickly becomes very obvious, you know, who can and who can&#8217;t. You know, I think as a, as a craftsperson, the same, right? It very quickly becomes obvious who can and who can&#8217;t. And I think it takes a little bit longer in a field like ours where there is so much kind of qualitative stuff that goes on. But I think long term, when I look at, you know, careers that I really admire and people I really admire, they tend to be people who are personally very honest about their level of knowledge and understanding and skill.</p><h3>1:04:23 &#8212; AWS engineers he admires</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3863">1:04:23</a>] So people who walk the walk, not necessarily talk the talk. I see, yeah. About engineers that you admire. I&#8217;d be curious because you have worked at AWS for such a long time and you have seen so many legendary engineers. Who, at aws, do you look up to and why?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3883">1:04:43</a>] Yeah, I mean, just fantastic. One of the blessings of working at a place like AWS is I get to work with so many great people. You know, maybe because he&#8217;s retired, I&#8217;ll. I&#8217;ll talk a little bit about. So Allan Vermeulen was one of the sort of early engineers at AWS and original, say, huge contributor to the design of S3, a really big contributor to the design of a lot of. A lot of our database services over time.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3911">1:05:11</a>] Al was actually the CTO of Amazon for. For a period of time when he realized, I think that wasn&#8217;t the job he wanted to do. But what I really admired about Al from early in my career is very clearly he was somebody who deeply understood the things he was doing and he could work in these two modes. I have a great memory of a 2010ish, you know, arguing with Al about some of the edge cases in the Paxos paper.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3949">1:05:49</a>] And, you know, he was super deep at that level, but could also get up to the really kind of executive level and talk about, you know, cloud strategy and the way we should be explaining things to people and some of the, you know, sort of fundamental things that we need to be building. And I really admired that ability to work sort of almost at every level. And I was like, wow, you know, this is. This is something I aspire to and, you know, want to model my.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=3976">1:06:16</a>] Want to model my own career after. And so, you know, that&#8217;s. I. I think that is, you know, the kind of person I&#8217;ve really, you know, really enjoyed working with is. Is people who do have that, you know, do have that breadth. And I think, you know, one of the other things that is really admirable about a lot of these folks is, you know, they. They don&#8217;t want to be celebrities, right?</p><h3>1:06:53 &#8212; Technical book recommendations</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4013">1:06:53</a>] want to continue their engineering education and really remain on top of things, deeply understand the technology. Do you have any top technical book recommendations?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4024">1:07:04</a>] You know, anybody who&#8217;s building distributed system things? I highly recommend Martin Kleppman&#8217;s book. I think there&#8217;s a second edition of that coming out soon. There&#8217;s a new edition of Quantitative Systems Design book, which I also think is great. Hennessy and Patterson&#8217;s Computer Architecture book. This is a super useful one that covers a ton of ground. I read a ton of fiction and nonfiction and mostly papers when I&#8217;m reading technical things.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4057">1:07:37</a>] I find I find engaging at that level more useful for me. And by the way, that&#8217;s become way more accessible now. One of the great ways to dive into a paper is, hey, Claude, summarize this for me and then I can dive into it and read the author&#8217;s words. And I find that mode is great and it&#8217;s super accessible for people who haven&#8217;t been able to read papers in the past. But, you know, and then there&#8217;s also a ton of insight in, in some really old stuff too.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4096">1:08:16</a>] For example, you know, some of the algorithms that we used in Lambda to manage traffic and manage bursts of traffic come from erlang&#8217;s work like 100 years ago on managing telephone call centers and his book about that. And so folks also shouldn&#8217;t think that, oh well, the industry is changing super fast.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4139">1:08:59</a>] more</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4140">1:09:00</a>] again, more, maybe more leveraged than ever before. You know, deeply understanding those topics.</p><h3>1:09:06 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4146">1:09:06</a>] And then last question for you is if you could go back to your younger self when you just joined AWS and give yourself some advice, what would you say?</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4156">1:09:16</a>] I think maybe be a little bit bolder. I really love the team that I worked with and, you know, especially in EC2 and in the early days in EBS, and I think I was a little bit more hesitant than was optimal about leaving those teams and looking for the next thing. You know, as, you know, my own learning and impact kind of, you know, tapered off a little bit in those places. And so, you know, I think I&#8217;ve changed organizations kind of in a big way four times in my career and maybe five or six would have been optimal.</p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4193">1:09:53</a>] Not a lot more, but some more. And so, you know, don&#8217;t, don&#8217;t hesitate to think about, you know, what am I learning and who am I learning from and is there a better environment to do that, you know, more quickly and to learn more things? And, you know, I&#8217;m highly, personally highly motivated by being able to follow my curiosity. And every time I&#8217;ve done that in my career, I found that a valuable move and something that I&#8217;ve personally enjoyed.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4227">1:10:27</a>] Awesome. Okay, well thank you so much for your time. I really appreciate it. Mark, thank you for sharing with the audience.</p><p><strong>Marc:</strong></p><p>[<a href="https://youtu.be/u3GjIXP9N0s?t=4234">1:10:34</a>] This has been super fun. Thanks so much.</p>]]></content:encoded></item><item><title><![CDATA[Ex-Head of Eng at Instagram: Career Regrets and Learnings | James Everingham]]></title><description><![CDATA[What he wishes he knew earlier]]></description><link>https://www.developing.dev/p/ex-head-of-eng-at-instagram-career</link><guid isPermaLink="false">https://www.developing.dev/p/ex-head-of-eng-at-instagram-career</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 06 Apr 2026 10:01:42 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/193112428/ea56f9d04d60702442c8a69d3151e48d.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>This is <a href="https://www.linkedin.com/in/jevering/">James Everingham</a>, former head of engineering at Instagram and a veteran of the tech world with experience at Netscape. We talked about his unconventional start in the industry, learnings from every leg of his career, and regrets he has looking back.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/VIF5Fm8NdE8">YouTube</a>, <a href="https://open.spotify.com/episode/3IVumkuP7CjlJc9BJKq96q?si=mNfO4JkYTICUJmvA9ZHQkw">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-VIF5Fm8NdE8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;VIF5Fm8NdE8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/VIF5Fm8NdE8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/193112428/057-kicked-out-of-college">0:57 - Kicked out of college</a></p><p><a href="https://www.developing.dev/i/193112428/535-fbi-showed-up-at-his-house">5:35 - FBI showed up at his house</a></p><p><a href="https://www.developing.dev/i/193112428/743-pre-ipo-netscape-experience">7:43 - Pre-IPO Netscape experience</a></p><p><a href="https://www.developing.dev/i/193112428/2519-joining-instagram-as-head-of-eng">25:19 - Joining Instagram as head of eng</a></p><p><a href="https://www.developing.dev/i/193112428/2912-why-shrinking-teams-improves-velocity">29:12 - Why shrinking teams improves velocity</a></p><p><a href="https://www.developing.dev/i/193112428/3259-working-with-mike-krieger">32:59 - Working with Mike Krieger</a></p><p><a href="https://www.developing.dev/i/193112428/3716-leading-cryptocurrency-project-at-meta">37:16 - Leading Cryptocurrency project at Meta</a></p><p><a href="https://www.developing.dev/i/193112428/4230-what-he-is-working-on-now">42:30 - What he is working on now</a></p><p><a href="https://www.developing.dev/i/193112428/5429-career-regrets">54:29 - Career regrets</a></p><p><a href="https://www.developing.dev/i/193112428/5627-advice-for-his-younger-self">56:27 - Advice for his younger self</a></p><h1>Transcript</h1><h3>0:57 &#8212; Kicked out of college</h3><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=57">0:57</a>] I kind of got kicked out of college when I was just starting out when I was 18, but they hired me two weeks later as a full time computer scientist at Netscape. No, this was like early in my career. I was 18, I was in college. I didn&#8217;t go to my classes. I was just programming my computer. The library computer information at Penn State started using my software that I uploaded and they learned I was local.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=86">1:26</a>] So they actually had me come in and they wanted me to come in and actually help them with migrating all their mainframe stuff to PCs. Meanwhile the computer science program. I didn&#8217;t go to any of my classes, so they kicked me out. But totally like the left hand not knowing what the right hand was doing. They were like, hey, we want to offer you a full time staff position. And I was like the first person hired at the university in over 50 years without a degree and a full staff position.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=113">1:53</a>] I had to call up my mom and tell her this, you know, like, hey, I got bad news and good news. She start crying, you know, like when she got kicked out.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=122">2:02</a>] So am I understanding correctly? They, they booted you as a student and then they hired you as a full time.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=129">2:09</a>] They full time kicked me out. They sent me a letter saying, you need to reevaluate your educational goals so you can reapply later. But like you, I literally got a 0. 0. Oh my God. I literally didn&#8217;t go to any of my classes. Like I was just programming at home and totally, you know, was, was, was working on this software that I was like obsessed with. I was all night working And I was uploading it.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=153">2:33</a>] It was open source at the time. It was called shareware. And the university just randomly got a hold of it and was using it. And they were like, this guy&#8217;s local. Let&#8217;s, let&#8217;s get him in. We don&#8217;t have anyone with this expert expertise. So I ended up working for the university for years.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=169">2:49</a>] That&#8217;s so interesting. When you, when you got booted and hired at the same time, was that a positive, like a net positive for</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=176">2:56</a>] you or is that, oh, unbelievably so. It was like, you know, I basically was able to go and like I, I did was interested in learning. So like I ended up taking pretty much all the computer science classes that the university had over the next few years. And I never got a degree because I never took any of the electives. But I, I had like 150 credits of like advanced comp Sci because I took them for free.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=200">3:20</a>] I was staff. I could just go take. They couldn&#8217;t even argue with me. They couldn&#8217;t even say like, you can&#8217;t go into this class. Some of them were honors classes and you had to be an honor student or staff.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=210">3:30</a>] You didn&#8217;t get the degree, but you got the education.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=213">3:33</a>] I did. It was more of a, yeah, I did, but I can&#8217;t say that I learned the most from school. It was more from, you know, from going off and pursuing my software, my curiosity outside of the university because I worked there for two years and people kept sending me money for this open source software. I&#8217;m like, I&#8217;m going to quit and start my own company and just go do this. So I did that. I left university and started my first company when I was 20.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=244">4:04</a>] You said open source and in my mind that&#8217;s GitHub.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=248">4:08</a>] Oh yeah. No, that this was a very different world back in the early 80s. This was like you write code and you would use a modem and you&#8217;d connect to a bulletin board and you&#8217;d upload your code and it was called shareware freeware at the time. And then people would go on these bulletin boards. It was like, you know, one user per bulletin board. You had to sit there and redial until you could get your chance to connect and you could browse.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=274">4:34</a>] You know, it was like, I&#8217;m talking like 1200 baud. You know, like you can almost read the characters and then you&#8217;d find the file and then it would take, you know, sometimes a half a day to download. You know, I mean a very different time.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=286">4:46</a>] I see. Oh, so you Would connect to some shared server that was horrendously slow.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=291">4:51</a>] It wasn&#8217;t even shared. It was like bulletin boards were sort of these. Like, you know, I ran one too. So it was like this system that was running on someone&#8217;s computer in their house with a single modem and a single phone line on it. And you would connect to this and then you could use it. And then the way these. If you wanted to send a message, some of these were like networks. And the way they would work is they would all shut down at like one in the morning and start calling each other and syncing their messages.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=322">5:22</a>] So like, there was like a few hours a night where they were just doing that. This was like early. This was like wild west. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=329">5:29</a>] I mean, I can just imagine all of the security potential security vulnerabilities from.</p><h3>5:35 &#8212; FBI showed up at his house</h3><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=335">5:35</a>] Oh, well, it was a whole different time. Yeah, of course. Yeah, it was. It was. Security wasn&#8217;t a thing back then. And, you know, like, that was. I was a hacker. Right. That&#8217;s how I got into it too. As I was writing software that would take over the phone systems When I was a teenager, the FBI showed up at my house and asked me to stop.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=355">5:55</a>] How did they find you?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=357">5:57</a>] They traced my number. I was like a kid.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=359">5:59</a>] Oh.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=359">5:59</a>] There was two things. One, they traced my number. But the other thing was I wrote hacking software. And I was like 16 when I wrote this. And I was proud of my software. And so I put my name on it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=373">6:13</a>] Okay. Okay. That&#8217;s how they find you.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=375">6:15</a>] You can go still search the Internet and you&#8217;ll find it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=378">6:18</a>] What did it do?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=379">6:19</a>] It allowed you to completely take over an operator&#8217;s phone line. Like you could blow using frequencies. At the time, it was called freaking. And like, I had a Commodore and the Commodore had this like multi sound chip. So you could generate two tones at once. And you could basically call and blast 2600HZ into an operator line if they were on the right system. And it would literally blow off the line.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=403">6:43</a>] And then the keypads generated different tones than a regular touch tone. So you had to have those. And there were a couple extra keys, KP and st. So you had to have these extra keys and know then the sequences. My software emulated all those frequencies, did the 2600 tone and then had stuff built into it to allow you to do anything an operator would do. Like you wanna listen in on somebody&#8217;s conversation, you could do that.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=429">7:09</a>] You could do free phone calls.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=431">7:11</a>] When the FBI showed up on your doorstep, is that who answered the door? Is that you or your parents? Okay. Did she know what was going on?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=442">7:22</a>] She knew it was for me. And so, you know, I was concerned. Like, you know, she was the. She didn&#8217;t understand what a computer was like. I didn&#8217;t either at the time, to be honest. I thought I was wasting my life. And she was like that you&#8217;re down on that video game, you&#8217;re not doing your schoolwork. I was like, oh, well, I did not know. She was wrong.</p><h3>7:43 &#8212; Pre-IPO Netscape experience</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=463">7:43</a>] So at the beginning of your career, something stood out to me. I saw Netscape and I know Netscape is super famous for the first iteration of the browser wars. And I was curious, because you joined so early, what&#8217;s the story behind you joining and what was it like at the time?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=480">8:00</a>] Like, it sort of goes back to like how I got to California in the first place is like there was a company called Borland back in the day that was, it was sort of like where all the good engineers were in the valley and they wrote Borland C and Turbo Pascal. They were a languages company. They were probably the main competitor back in the early 90s to Microsoft. And I learned on Borland Tools. So, you know, I got a call because of my open source software that I had.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=511">8:31</a>] They had seen that I was building developer tools, so they, they recruited me to come out and interview. I didn&#8217;t think they&#8217;d hire me, but they did. And so I went in there and I worked there for years. And when Netscape, when Netscape first came on my radar, it was through some Borland colleagues that went over. Mainly my close friend Lloyd Tabb, who went on to found Looker. And he recruited me over and it was probably like some of the worst judgment that worked out for the positive for me ever, because Microsoft was just beating us up bad at Borland.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=557">9:17</a>] They were, you know, Visual Studio came out and like they were competing with everything and we were just losing market share, layoff after layoff. And I&#8217;m like, I gotta go get out of Microsoft&#8217;s way. Like, I, I&#8217;ll go join this little Internet startup. You know, Microsoft wants nothing to do with that. Turns out that was pretty, that was wrong. We kind of got square, more square in like the bullseye of Microsoft.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=584">9:44</a>] They turned the entire company against us, right? Like, they, they were, they were off, you know, building, building the browser into the operating system and all these things that were just almost impossible to compete with. And it ended up being a pretty intense time. But it was Borland. You know, like, one of the things I think that&#8217;s Interesting about my career, and I think it&#8217;s a good pattern for others is like, you end up building great relationships with people and companies and that opens up doors and creates opportunity for you later in your career.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=620">10:20</a>] So Borland, you know, building great relationships there, took me to Netscape, which honestly, even my current company, Guild, that I have three people that have been along that journey all the way since Netscape with me, and we&#8217;ve done five, six companies together.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=639">10:39</a>] Wow, six companies. Yeah. I think when you&#8217;re like kind of going through your career, a lot of people, they give you that advice, they say, yeah, you should network or you should kind of. But in the immediate action is like, oh, do I. Do I start talking to people? Do I start, I don&#8217;t know, coffee chats? I don&#8217;t know exactly what. But if you were to sum up your understanding of what good networking is for someone who&#8217;s in tech, what does that look like?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=669">11:09</a>] Yeah, it looks different now to me than when I was younger. And I wish I had this filter when I was younger, but one, I think people that ask a lot of questions going in and are curious, it&#8217;s a great way to build relationships in a company when you&#8217;re first starting out your career. And I was the same. It&#8217;s like, I wanted good mentors around me and my good buddy Lloyd, who I already mentioned, he has the best advice.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=699">11:39</a>] And it&#8217;s like, look, if you want to find a mentor, don&#8217;t go and ask someone, hey, I need a mentor. Go offer them help. Like, hey, how can I help you? And it will naturally evolve into a good mentorship for you. So try to be useful to others, be curious about others work. Don&#8217;t be afraid to speak up in meetings. Like, just start, just start talking and listening. And I think that it&#8217;s important to build this network and, or at least, you know, don&#8217;t.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=733">12:13</a>] Don&#8217;t make enemies. Right? It&#8217;s like, I think that there was a quote. I can&#8217;t remember who said it. It might have been Bill Gates, but he might have been re quoting as, like, you know, friends come and go, but enemies collect. And, you know, I think that&#8217;s something to that, like, you know, build good relationships and don&#8217;t burn bridges. You know, I remember sitting at Netscape, the people sitting around me, like, even, you know, John Gianandrea sitting right next to me building the plugin interface.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=761">12:41</a>] He now reports to Tim Cook running all AI at Apple and, you know, he ran all search at Google and, you know, the next person, you know, my, my first one of my first college hires, went on to found a company and sold it for 400 million a few years later. Like, the people that you&#8217;re sitting next to are going to look a lot different in 20 years.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=780">13:00</a>] You mentioned Netscape, and in my research, I saw that the company went from just starting to IPO in 16 months. In today&#8217;s market, I feel like companies wait a lot longer for ipo. What was it like at the time and why did it IPO so quickly?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=801">13:21</a>] That was a crazy ride. Like, first off, the rapid scaling was insanity even by any standards today. I think when I started there, there was about 150 people total. But the engineering team was incredibly small compared to that. It was not majority engineering at that point. I think within a year we were over 3,000 people.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=826">13:46</a>] Within a year. Yeah.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=827">13:47</a>] So I, I worked seven days a week and like, there was a time where I took two days off and I came back in and there were people sitting around me. I had no idea who they were. I&#8217;m like, it was just like a, a parade of people coming in, sitting. It was complete chaos. So, yeah, so that went very quick. But like, on the IPO question, I believe that was September 9th as like sort of a day that sticks in my head of 1995.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=854">14:14</a>] I was there pre IPO, looking forward. Like, there are a lot of. It was a lot less regulation back then. You know, you didn&#8217;t have Sarbanes, Oxley or any of these things that, like, would prevent you from going public. It was a way to raise more capital. If you had a good story, you could go out. I mean, there was a crazy stream of like, the dot com bubble is crazy IPO after ipo, right? Like, and everyone was just buying stock that was a web company.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=887">14:47</a>] They didn&#8217;t care what it was because they wanted to get in for the ipo. And a lot of people didn&#8217;t do well with that. You know, if you bought webvan or, you know, one of these, I even saw, I even saw a company that was formed to, to ship potatoes. Like, it was like potatoes direct or something. It&#8217;s like, wait, you&#8217;re. You&#8217;re going to charge 100 bucks to FedEx a bag of potatoes? That&#8217;s your business.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=909">15:09</a>] But people were like investing in this stuff, and so they decided to come in and put some regulation around that, which was a good thing. So, you know, now and the competition, there&#8217;s a lot more companies out there competing, and people know that you need to have real revenue. You need to be able to predict what that is going to look like in a year. You have to show steady growth. So that&#8217;s evolved into a space that is a little more organized, a little more governed and a little more sane these days.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=942">15:42</a>] You mentioned that you left your previous company to get away from the competition with Microsoft. And then I understand that Netscape&#8217;s like one of the most famous competitors with early Microsoft. And I want to know, when you got to Netscape, at what point were you realizing, oh crap, we&#8217;re competing with Microsoft?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=962">16:02</a>] It was pretty quick. We got in there and suddenly Microsoft put out this big like communication saying, like, this is an existential threat. You know, they looked at us like an operating system and people were going to start using web applications instead of shrink wrapped, you know, operating systems and software that they sold. You know, interestingly though, it ended up the, the thing that they were afraid of ended up actually making them one of the biggest companies in the world because it expanded.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=996">16:36</a>] Like they adapted well. It expanded the market so dramatically that they, you know, they were able to offer services, reinvent and do all that stuff. But it came pretty quick. And you know, our mistake was my big mistake. A big learning for me was I was working on this browser and I kept thinking like, look, we&#8217;re going to build a better browser. The technology is superior. And it was, for a long time it was like, and it was like, so people are going to use a superior solution, right?</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1028">17:08</a>] Nope. Microsoft&#8217;s like, watch this. It&#8217;s not a technology war, it&#8217;s a distribution war. And we&#8217;re going to just bundle this and give it away and people will not use your stuff anymore. And that&#8217;s literally what happened, right? Like people didn&#8217;t care once, especially when like the quality became pretty equal, right? Like if you have two products that the quality is pretty equal, people are going to just use the one that&#8217;s the default.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1054">17:34</a>] There&#8217;s no reason to switch. And that&#8217;s how Netscape made money. We sold these browsers, right? That was our original model. Like we sold these, they were like 35 bucks. We were growing fast. And then Microsoft gave it away and instantly killed all the revenue going to Netscape for the browsers.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1073">17:53</a>] What was the internal reaction at Netscape among you and your peers when the competition was happening?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1080">18:00</a>] At first we felt like we were on a mission. The engineers, we felt like we were on this mission of interconnecting the world and bringing it. So we were really focused on that. So in one way it was validating, like, oh, this is a big space. Microsoft sees it but on the other hand, it was completely depressing and stressful. It&#8217;s like, okay, they just gave away our product. What do we do? Luckily, you know, we had the Netscape browser would default to netscape.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1080">18:00</a>] com that was like the landing page. And we had a tremendous amount of traffic. So we started monetizing Netscape. com as the first like, web service and added like, email to it, like webmail and things like that. And so that started actually filling that gap. But we had to invent that on the fly. And it was a stressful time to get there.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1133">18:53</a>] I was reading the Wikipedia page about the browser wars, and I saw, like, a really interesting part about the competition. It said, In 1997, September, they launched Internet Explorer 4. And on the release, they. They put a giant E logo somewhere in San Francisco. And it says, Netscape employees showing up to work the following morning found the logo on their front lawn paired with a greeting card signed best wishes.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1167">19:27</a>] The IE team did. Did you work in the office? And see that?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1171">19:31</a>] That was literally. That wasn&#8217;t in San Francisco. They put that on our front lawn of our office, the one I was in. So. So, yeah, they went and put this big. I mean, it was. It was friendly competition in one way, like, you know, because the Valley engineers move around. So there was a bunch of my Borland colleagues were at Microsoft and there was some friendly rivalry, but, like, you know, it was interesting that they did that.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1197">19:57</a>] And I actually know exactly the person who did that. And yeah, I believe that was Hadi Partovi. And when I went to after Netscape, I went to tell me networks. Hadi and I were, you know, I worked with Hadi directly. Like, he. We were both running parts of engineering. I actually reported in initially to Hadi and we would just basically tell stories about, like, yeah, we were doing this and he was like.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1226">20:26</a>] And he was running IE and I was running the Netscape browser. So we got to tell these stories back and forth.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1233">20:33</a>] Yeah, so I guess the story goes is, I mean, the superior technology didn&#8217;t work for Netscape, and the distribution advantage that Microsoft had was too much. And so ultimately, Microsoft ended up winning. I saw that Mozilla was created because Netscape just gave away the technology, gave away the browser. Why would Netscape choose to give the source code away?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1258">20:58</a>] Sure, it was a bold move at the time. And I believe the person who originally suggested it was Jamie Zelinsky, also known as jwz, and he&#8217;s pretty well known out there. So here was the thing. We were out resourced we were a small company compared to Microsoft. We had dozens of engineers working on the browser. They had thousands. It was very hard to compete. So we&#8217;re like, how do we completely change the game?</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1287">21:27</a>] And why don&#8217;t we invite the world to help us? We&#8217;re on this righteous mission to. Make people connected and share information. So why don&#8217;t we give away the browser? Let&#8217;s give it away. Let&#8217;s open source it and invite the world to come in and help. That was the only way we could see of engaging thousands of developers to come help. And it was a lot of work to get there. Right? And it did work, right?</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1317">21:57</a>] Like Mozilla became the foundation of lots of components that had made it into Chrome and there was Firefox and still going strong. So in one way that did work, but it was hard getting there. The story is even open sourcing the code. You couldn&#8217;t even distribute SSL source code back then. It was deemed a munition by the government. So we had the not only remove SSL from the open source version, we couldn&#8217;t even like show how the APIs would work.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1347">22:27</a>] So we had to obfuscate APIs. And then we were a bunch of young idiots working on the source code. So we had like swear words in it and like inappropriate variable names. So we had to like print out all the code and go through it with like highlighters and like censor our own code.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1364">22:44</a>] Why didn&#8217;t you just grep the code for bad words?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1368">22:48</a>] Because you don&#8217;t know what they are. If you have a, a variable named G G netlib breeding like bunnies, like how do you grep for that? Literally that was a variable name. So you know, so like we had to go through and, and, and make sure like it was something that wasn&#8217;t going to get us trouble sharing. Funny story. I think JW&#8217;s Jamie, he saved all the censored code and then he released it all. So like it&#8217;s, you can go out there and find all of the censored code from, from that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1399">23:19</a>] Oh, that&#8217;s funny. You mentioned the government deemed SSL like a munition. What does that mean?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1407">23:27</a>] It meant that it was like a dangerous technology. Like if people could encrypt stuff and the government or legal authorities couldn&#8217;t ever encrypt it. So back then, even like very small levels of encryption were concerning and we couldn&#8217;t distribute it because people could weaponize it if they got a hold of it. That was the theory.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1436">23:56</a>] Before we leave. This part of your career is There any, I guess, lesson learned or favorite other story that you&#8217;d want to share? Otherwise, we can go on.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1447">24:07</a>] I think the lessons learned there is like, when you&#8217;re joining a company, understand what, what the actual, who the competition is and what the war is. I think that&#8217;s interesting, especially today, right? Like, everyone&#8217;s fighting to win the AI wars. Like, what does that mean? And what is the war? Is it a technology war? Is it a data war? Is it a distribution war?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1477">24:37</a>] if I&#8217;m understanding correctly, you&#8217;re saying like, as an engineer even you should be thinking almost like an investor. Like where, which company you go to because there&#8217;s much more outside of the technology.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1490">24:50</a>] That&#8217;s right. Think about. I think that&#8217;s a good way to look at it is like, you know, look, if, you know, when we&#8217;re young, we probably don&#8217;t have a lot of funds to start going investing in companies. So we invest with our time, you know, we get stock often as a compensation, you know, for our time. So, like, look at your portfolio and see where you&#8217;re overweighted. And if that&#8217;s your goal, I think that&#8217;s a reasonable way to look at it.</p><h3>25:19 &#8212; Joining Instagram as head of eng</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1519">25:19</a>] Later in your career, I saw that you joined Instagram and actually when I worked at Instagram in the past, you were the head of engineering when I joined as a new grad. And yeah, I kind of want to ask a little bit about that. So how&#8217;d you get hired there? Was it based off your network like you&#8217;re saying, or did you go through some other process?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1538">25:38</a>] Well, this is a great example of sort of failure leading you to a place that&#8217;s better, right? So like I went and I, I founded a company called Luminate. And Luminate I worked at for six and a half years. And basically it was Instagram shopping, by the way. It was, it was that product but for publisher sites. And we, we worked a long time and we couldn&#8217;t get it working. Now one of my board members was.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1563">26:03</a>] This was Elliot Schragg. Elliot reported to, I believe to Cheryl at the time, and he was on my board when I sold the company. I sold it to Yahoo, but Instagram actually tried to buy it. So I met Emily White and Mike Krieger and stuff briefly. I committed to only one year at Yahoo. I was very good friends with the chairman of the board and so he convinced me to go there and help. One year came up and Elliot actually reached out and said, hey, Instagram&#8217;s still looking.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1599">26:39</a>] Would you please just come and talk? And he didn&#8217;t know it, but I had been talking to other companies and I had verbally accepted a pretty large position. But I had to go meet just because it was Elliot and he wanted me to talk. So I went in and I met Mikey again and some of the other people. I&#8217;m like, oh, this is the job I want. This is like, this is the call. Like, the values were clear. I was passionate.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1630">27:10</a>] I realized I used the product. I&#8217;m like, I actually use Instagram. The company I was almost going to go to, I don&#8217;t even use. I think at the end of the process I probably would have paid to take that job, but I wasn&#8217;t going to tell them that. But it was a job I really wanted. So. So it was my network, it was the timing. It was like my previous company that I couldn&#8217;t make run, that ran out the Runway to make that timing perfect for me.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1656">27:36</a>] It was my experience working on image stuff at the previous company that sort of was also helpful.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1663">27:43</a>] When I think about an employee in big tech, oftentimes when people consider starting their own company, the thinking is either that company is going to succeed and obviously that&#8217;s great, or the company will maybe not do so hot and I&#8217;ll just come back to where I was. But it seems like I&#8217;ve seen in other many careers, it seems like yours as well, that even if it&#8217;s not a incredible IPO success, there&#8217;s this middle ground where companies get acquired and then you can come in at very high roles.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1695">28:15</a>] Like someone might have left, I guess the big tech companies at like maybe middle role or something like that. They start their company, it goes not good enough for breakout success. But they&#8217;re a leader at that company and they get, you know, hired back in at like a senior leadership position in big tech. And I was curious, what&#8217;s the mechanism for like the level that you come in at when you enter back after starting your own thing.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1722">28:42</a>] So there&#8217;s a lot of those, but like you can&#8217;t. I mean, people aren&#8217;t going to bring you in at a senior level unless you can back it up, unless you can show your experience. Even though I came from a smaller startup and went into Yahoo and I went from 15 engineers to 1,200 or something, I had previously ran large organizations at Netscape and tell me was even pretty large. So I had that background already.</p><h3>29:12 &#8212; Why shrinking teams improves velocity</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1752">29:12</a>] I interviewed Ryan Olson, he was one of the original.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1755">29:15</a>] I know Ryan well Okay, great.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1757">29:17</a>] Yeah. And so we were talking about Instagram Stories and he mentioned something really interesting in that project, which was that actually when the project started, you immediately kind of cut the size of the team almost in half or significantly just down to like, Ryan Olson, a few other people, so that the project could move faster. And he said that was a big part of the project success. And you were the head of engineering at the time, so I was curious if you had any thoughts on what.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1789">29:49</a>] Did you see that that made that a good decision at the time?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1793">29:53</a>] You know, Instagram Stories was an interesting thing. Now, like, your natural instinct is like, hey, Snapchat&#8217;s gaining traction and like, we need to go do what Microsoft did, turn the whole company against this. But really, this is where your entrepreneurial skills come in. It&#8217;s like, hey, what we need is a small team that can move really fast. So, like, you want to set it up so that you have really capable people, you have the right types of engineers who are very proactive, and then you remove any roadblocks from them.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1824">30:24</a>] So you give them a separate, you give them a separate area where it&#8217;s not dependent upon like, you know, deep, deep APIs and blocking points into other organizations. So you set it up so that they can move fast and that if that&#8217;s. So we did that purposefully. Right. And I think it was like three months we had. It was a three month project. We went from zero to releasing stories, you know, and it was a pretty big success.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1855">30:55</a>] But I, I think maybe a lot of managers might naively think, oh, competitors coming, we gotta move fast. That means throw a lot of engineering resources at it. So here&#8217;s, here&#8217;s a 20 person team. Go, go, go. As opposed to. It sounds like you have a different philosophy here, which is a few. A small talent, dense team.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1877">31:17</a>] That&#8217;s right. With founders leading it directly. Kevin and Mikey were heavily involved and brilliant product thinking and execution at that level as well. When you get a small team that&#8217;s capable and you give them clear ownership and you remove dependencies, that is one way to increase speed. So if you get a large team, they tend to be interdependent. You start federating large pieces of architecture and pretty soon those dependencies end up slowing you down.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1912">31:52</a>] So I think sometimes it&#8217;s better to start with something small and build on it rather than trying to build the big thing at the beginning and evolve it over time. And that&#8217;s sort of what this was, is like, let&#8217;s get it working, let&#8217;s get it stood up. Let&#8217;s. Let&#8217;s get this thing working and then plug it into the product and we&#8217;ll scale it instead of like, what does this look like at large scale? And let&#8217;s build that from assuming that that ends up often being a way less efficient way to get something done.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1945">32:25</a>] And it&#8217;s definitely a lot slower. Mikey Krieger had, like, and it was the name of my conference room, it was called this value that he said, do the simple thing first. I don&#8217;t know if you recall this, but, like, hey, if we&#8217;re going to go off and we have a thesis before we go off and just pour the whole company in it, what&#8217;s the simplest, hackiest thing we can do to go prove this thesis True, that was part of the values of Instagram is like, what&#8217;s the simplest thing we can do to go prove this thesis before we scale it?</p><h3>32:59 &#8212; Working with Mike Krieger</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1979">32:59</a>] You were hired as the head of engineering, and at the time, Mike Krieger was still the CTO there. What are the differences between that CTO role and the head of engineering role? And how did you partner with Mike Krieger? And what went well? What didn&#8217;t?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=1995">33:15</a>] Yeah, so Mikey brought me in. The engineering was hitting about 100 people. It&#8217;s a common place where teams start to break. And Mikey&#8217;s brilliant. He was actually a really gifted manager too, but he just didn&#8217;t want to do that. And he wanted to focus on the technology and even coding. That was his true joy. So he brought me in. So the initial confusing things to the team was like, what are our different roles?</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2024">33:44</a>] Like, you know, who do I listen to? I&#8217;m used to getting directions from Mikey, so you have to be pretty clear. So the first thing that we did is like, we wrote our job descriptions and we published them to the Org. And so, you know, and classically, a CTO is like, works with customers, new technologies, works on the product, and the technology roadmap experiments, all of these things, builds the external engineering brand.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2052">34:12</a>] And the VP or the head of engineering is usually a people management thing. It&#8217;s like hiring, execution, org structure, performance reviews, all that fun stuff, right? And so think technology, roadmap for cto. Think process people staffing, execution with a VP of Eng. So we published that and we even came up with like, flowcharts like, hey, I want to. I want, you know, we. We put it out to the team.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2084">34:44</a>] We&#8217;re like, hey, I want to. I want five more headcount. Go do this project. And it&#8217;s like, come to me. Hey, you know, I Want to use this new technology? I think it would be cool. Go to Mikey. So, like, we. We also put, like, a roadmap out there, and then it took some evangelism, you know, like, hey, you know, to get people to learn where to go for what they needed. People often confuse this, by the way.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2106">35:06</a>] You know, it&#8217;s like people confuse the difference between a CTO and a VP of Eng. Like, I get called into a lot of companies saying, hey, we need a new cto. And I&#8217;m like, why? What&#8217;s breaking? And they almost always describe VP of Inch problems. I&#8217;m like, I don&#8217;t think you need a cto. I think you need a VP of Inch. It&#8217;s a very different person.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2126">35:26</a>] As we kind of wrap up this Instagram leg of your career, is there anything that you think I might have missed or kind of, like, lessons that you learned from this part of your career?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2135">35:35</a>] Yeah, no. You know, I. I think that the one thing that I remember is, like, you know, when I came into Instagram, it was a different company. Everyone&#8217;s nervous when they go into a new job. And they brought me in right when engineering teams start to break. But, like, these weren&#8217;t breaking. And I was very confused at the beginning, and I was starting to feel like I was a dinosaur. I&#8217;m like, wait, you know, this is all working.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2161">36:01</a>] This isn&#8217;t breaking. Like, what kind of management voodoo is going on here that I don&#8217;t understand? And then about 150 to 200 engineers just started breaking, and I&#8217;m like, oh, wait, these people are so smart, they&#8217;re able to IQ their way past, like, that normal barrier. Because what usually breaks is communication lines. Like, you have to hold a lot of stuff in your head, use face, familiarity with people.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2185">36:25</a>] It&#8217;s called, you know, Dunbar&#8217;s number, all that stuff. But, like, the people were just so gifted and smart at Instagram, they were able to IQ past that. Plus, the great thing, the reinforcing thing about Instagram was the best software is built by people who use it. And, like, everyone in Instagram was a power user, right? Like, and even if you go back to Boomerang, do you know. Do you remember Boomerang?</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2211">36:51</a>] When it first came about, it was. I think it was an intern. Tim Leonardo, I think, was the intern. He went and built it as a hackathon in, like, three days. Like, one of the most engaging features the Instagram released was a hackathon built by an intern in three days. Like, it&#8217;s just amazing to work in a team where you&#8217;re the primary customer and you&#8217;re building stuff for yourself. So anytime you can do that, like, that&#8217;s awesome.</p><h3>37:16 &#8212; Leading Cryptocurrency project at Meta</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2236">37:16</a>] Moving to the next part of your career. I saw you. I remember when I joined Instagram, all these very high profile people were leaving Instagram to work on Novi. It was the hot, hot project at the time. I was thinking, oh, wow, this, this new crypto thing must be really big. And so, yeah, what drew you to working on Novi or the crypto project at Meta? And what was the impact you saw on it?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2262">37:42</a>] So inside Meta, I had met David Marcus. David was running messenger at the time and we had just met, but he&#8217;s like, hey, I want to run something by you. And I went. And he was like, don&#8217;t tell anyone, but I&#8217;m going to leave messenger and this is what I&#8217;m going to do. And this is my first meeting with David. And he&#8217;s like, I&#8217;ve heard good things about you. Would you consider coming and running the engineering aspect of this?</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2288">38:08</a>] And he was selling me this crazy crypto story, like, and I loved Instagram, right? And I was like, you&#8217;re insane. Like, that&#8217;s a crazy thing. Why would I go join that? And like, I just couldn&#8217;t get it out of my head. And then like the next day it started hitting me like, oh, wait, this is an area for impact. And so I went back the next day and David was kind of grinning and he was like, I knew you&#8217;d be back.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2315">38:35</a>] And he&#8217;s like, he called it, he&#8217;s like, I call this Dementel virus. He goes, it takes about 24 hours for to infect people. People. And then they get it. And I was like, darn you, David. And long story short, I&#8217;m like, okay, I&#8217;m gonna come start this. I was heavily invested in the mission, which was financial inclusion and bringing safety and low cost money movement to people around the world that needed it.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2343">39:03</a>] And I loved that idea. And I remember telling my product partner, Kevin Weil at the time, hey, I think I&#8217;m gonna go do this. And he, I explained it to him and he was kind of like, had that same look I had. And then like the next day he throws a 30 minute meeting on my calendar. And I&#8217;m like, oh, he&#8217;s gonna try and talk me out of this. And he comes in, he goes, I think I gotta go do this too.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2370">39:30</a>] What?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2372">39:32</a>] Like, oh, this is gonna be tricky. So I connected him with David and I&#8217;m like, great, this is gonna be a tricky one to navigate, but it well, and you know, we went over and started the Libra project at the time.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2384">39:44</a>] How did the project go and you know, what were the pivotal points in it?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2387">39:47</a>] Oh man, I think it&#8217;s pretty public how that project went. Like we, we weren&#8217;t able to ship it right. Like it was. There was a lot of pressure on, on Facebook at the time, just political, political and regulatory. And like they weren&#8217;t excited about us, what their view was as thinking we&#8217;re going to rewrite currency. It&#8217;s like not what we were doing, but like there was not a lot of strong understanding on the government.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2411">40:11</a>] They&#8217;re not the best, deepest technologists, but they didn&#8217;t want us to release this. And it was a shame. David tried to do this like the right thing. He&#8217;s like, we announced what we were going to do, that we were going to work with regulators and everything. In retrospect, we probably should have just released it and asked for forgiveness. But that sort of put us into a tailspin where we had to keep re architecting the project to be regulatory compliant and took us years to do that.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2442">40:42</a>] And ultimately we got it to the point where even the government said this was the platinum version of stablecoin, but they still didn&#8217;t want us to release it. And I think that&#8217;s when we gave up. And we were a pretty big org by then. I think we were like 3,500 people. And yeah, they put all payments and everything under David at that point. And I think in a funny moment David came to me. Well, I&#8217;m like, I can&#8217;t keep doing this.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2473">41:13</a>] I&#8217;m going to go do something different. And I loved David and, you know, felt like he was a friend. I didn&#8217;t want to let him down. So it took me a couple of weeks to get the courage up and practice my resignation. And I was ready. And I&#8217;m like, I&#8217;m gonna go in our one on one, here&#8217;s my story. I&#8217;m gonna give them all the time, but tell them I need to move on. I go in there and I sit down and David goes, well, before we get into whatever you want to get into, I have some news to share with you.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2500">41:40</a>] I&#8217;m like, what? And he&#8217;s like, I&#8217;m gonna leave. That&#8217;s what I was gonna tell you. I&#8217;m like, what are you gonna do? And he&#8217;s like, I think I&#8217;m gonna go get into my entrepreneurial roots. I&#8217;m like, how? And like, one thing led to another. We kept talking and I ended up leaving Meta for a couple of years. And I went and started lightspark with David because I was invested in this mission of. And that&#8217;s what like, Spark&#8217;s doing.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2523">42:03</a>] And I love it. It&#8217;s just an amazing mission of, like, you know, the way I think about it is finance is the last area for disruption, you know, But I do think, like, the cost and latency of moving value globally needs to go to zero. Because when it does that, when you can move money, like packets of information, like you can stream money, you can move at low cost to areas that need it, it&#8217;s just going to be revolution.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2547">42:27</a>] I have no doubt that that&#8217;s going to happen at some point.</p><h3>42:30 &#8212; What he is working on now</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2550">42:30</a>] And so you were working in the crypto space and now you&#8217;re working in AI. What made you leave the crypto space if you know there&#8217;s impact there?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2561">42:41</a>] Yeah, first off, I&#8217;m like a crypto skeptic. I never was a buyer into all of this stuff, but I do think that it&#8217;s really good for money movement and as a base la. So what happened there was like, I was working and I co founded lightspark and David wanted to do it in la, so I figured I&#8217;d move down there. I commuted for two years down there and I formed a team and built it. And I was kind of like at a point where the team was formed.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2591">43:11</a>] I&#8217;m commuting three days a week. I didn&#8217;t feel like I was adding a lot of value until we were at the next level of scaling. So I talked to David and, you know, David and I agreed, like, hey, yeah, fine, I&#8217;ll step back. And, you know, we&#8217;re, we&#8217;re, we&#8217;re very good friends. So it was like an easy conversation. I groomed a successor and stepped back. And at that time, Meta learned I was free. And they were like, hey, you know, we have a role we want to run by you, we hear you&#8217;re free.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2622">43:42</a>] And I&#8217;m like, I don&#8217;t know what I would, what that role would be that I&#8217;d be interested in. And they&#8217;re like, well, what about Dev infra, you know, like running all the developer infrastructure at Meta? And I&#8217;m like, oh, hold on, that&#8217;s my background. Like, I&#8217;m a developer tools person. That was the first 10 years of my career. Like, and it hit me like, oh, wait, what was I even doing at Instagram and all these things?</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2638">43:58</a>] I&#8217;m a developer tools person. Like, that&#8217;s really what I want to do. And with AI coming into a picture, it was like, awesome. We get to go write science fiction stories about how developer productivity is going to be and go try to make that happen with unlimited resources. I&#8217;m like, sign me up for that. So I came back and I love that team. Dev Infra is amazing. And such a senior team, like 1,000 engineers building all of the developer tooling for inside Meta.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2675">44:35</a>] It was just amazing. I love that job. Did it for almost two years. And the only reason I left is because I had that observation and I had to go start this company.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2689">44:49</a>] And what was the observation?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2691">44:51</a>] Well, so we built something internal called devmate. Devmate was an agentic platform that allowed engineers to sort of go learn from each other and then scale these agents. And these agents were working on tooling, not just coding. They were driving tools and doing all types of things. And it went viral internally. We couldn&#8217;t keep up with the demand. Within months, it needed an entire dev server per devmate instance.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2722">45:22</a>] And there are 40,000 plus engineers at Meta and pretty soon everybody wanted an instance and some of them wanted three instances. So you&#8217;re like, how do we allocate all dev server? But it was such strong pool. You&#8217;re like, oh, I see the dynamics that work here. Like 40,000 developers is fun, but it would be fun to go do this for 40 million. So we took a lot of these lessons and we&#8217;re like, yeah, we kind of think we see around the corner of what the world needs for this to work inside their companies.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2757">45:57</a>] And that led to the formation of Guild.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2759">45:59</a>] When I look at the AI space, it feels like a bloodbath or it&#8217;s incredibly competitive. When you saw the space, I guess what, what gives you the confidence that you will compete well or what is the niche that you&#8217;re going to focus on?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2775">46:15</a>] First off, I don&#8217;t have the confidence, but I have the drive and I&#8217;ll tell you that much. It&#8217;s like I deeply believe that what we are building is needed. So there&#8217;s that. But I&#8217;m always looking out of the corners of my eyes of who else is building this and who might now execute. That&#8217;s just what an entrepreneur does. So if you look at a lot of the startups and a lot of the companies, I think a lot of them are building for the future past.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2808">46:48</a>] What I mean by that is they&#8217;re building for things that fill in gaps of what LLMs will probably be able to do. Like look at cursor, it&#8217;s autocomplete. Now LLMs are starting to get to be able to completely write code without an IDE it&#8217;s like, okay, you wrote you build a product on a bus stop, not where the end of the line is. You know, so what&#8217;s that end of the line and like what is needed regardless of all of that.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2835">47:15</a>] So what we&#8217;re building is a control plane and it&#8217;s a, it&#8217;s a layer of infrastructure that allows you to manage these agents inside a company. Like you know, your agents, if they&#8217;re rolling around in your infrastructure, you want to treat them like employees, right? Like some of them they, some of them you want to have access to things, some you want to restrict, you want to report on what they&#8217;re doing.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2855">47:35</a>] You need to observe auto. You don&#8217;t want one agent just like tanking your token budget. You need circuit breakers, you need a governance layer for that. Regardless of where this ends or which model company wins, you need this. Right? So we believe that we&#8217;re building something that&#8217;s needed and in any like scenario where anthropic or OpenAI or meta or somebody else wins, you just need this layer.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2887">48:07</a>] Let me paint you a vision of where I think like things are going to go. Okay? So I think a few years, like right now inside the company, you have a bunch of internal web applications, you have your HRIS systems and you know, your intranet and like developer like CICD tools and you have a lot of internal apps. I think there&#8217;s going to be a layer of like thousands of agents that will sit on top of this and help drive them.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2913">48:33</a>] Right. For example, we build an agent that we use on our own system here that basically doesn&#8217;t make duplicate bugs possible. Right. It&#8217;s really simple thing. It&#8217;s like you submit a get issue, it fires a webhook, our agent wakes up and goes, let me look and see if there&#8217;s one that&#8217;s like this and it just marks a duplicate and goes back to sleep. That&#8217;s different than a coding agent. Right. So you can imagine anywhere where there&#8217;s a tool integration prompts and evals.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2944">49:04</a>] You can go into design, you can go into product, you can go to hr. It&#8217;s just basically workflow management in a company. And that&#8217;s the thing where we think it&#8217;s going. But if that&#8217;s the case, then, you know, you&#8217;re just like people. You probably don&#8217;t want your engineers having access to your finance systems, you don&#8217;t want your finance people having access to your code base. Like, you know, all of these things you&#8217;re going to need to set up policies around and even like regulatory policies.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=2972">49:32</a>] You&#8217;re going to need that, especially in a large public company. So you need layers to be able to enforce that. AI is non deterministic. Right. Like, it&#8217;s like you can&#8217;t guarantee what the outcome is based on any inputs. If you&#8217;re building a stable infrastructure layer, you need it to be deterministic. So you need to put a deterministic layer on top of this non deterministic technology. It&#8217;s the only way right now.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3000">50:00</a>] Okay, so it&#8217;s almost like this harness that. Well, yeah, control plane is a great way to put it. Control plane for the agents within, maybe a corporate environment.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3010">50:10</a>] Centralize it. Like right now you see people using these AI agents. We had one customer that they have their developers running agents on their laptops. They don&#8217;t know where they&#8217;re running. This is one that blew through their token budget. One agent in 12 hours and they didn&#8217;t know. So you centralize that. Okay, here&#8217;s a central runtime. You make it so agents can work together in a secure way. So you put bubble wraps around them.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3041">50:41</a>] You don&#8217;t want these agents just yellowing at your infrastructure. Right. So you have to put control around them. I use this analogy. There&#8217;s this movie, Gremlins. You remember Gremlin?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3053">50:53</a>] I haven&#8217;t seen it, but Gremlins.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3055">50:55</a>] Yeah, it was like this easy Spielberg movie where these little furry creatures started multiplying quick and they just were causing chaos in town, ticking over the electricity, power grids. Like AI agents are like that. Right. It&#8217;s like they&#8217;re just like, once they start multiplying and they&#8217;re like, you can&#8217;t predict what they&#8217;re doing. Like that&#8217;s a problem. So you need to be able to put a layer there that provides some predictability and control around that.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3078">51:18</a>] That&#8217;s what we&#8217;re building.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3079">51:19</a>] Yeah. At this point I feel like you have so much management experience. So I wanted to discuss this high level management philosophy that I see in the industry, which is that I see that this Elon style, Elon Musk style of management is kind of like getting in the details, micromanaging. And I hear a lot of people who are against that as well and curious what side of that you&#8217;re on. And maybe we can discuss the pros and cons of each of the approaches.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3112">51:52</a>] Yeah, sure. Well, look, I think that there&#8217;s different tools for different jobs. And so what you&#8217;re describing when you talk about these two different management styles, they&#8217;re in two very different environments. And so I&#8217;m not a micromanager. But I&#8217;ve also been fortunate enough to have incredibly capable people to work with. So, you know, you can think of an org as a top down org, like where you have a leader with a very clear vision and he&#8217;s hired, you&#8217;re hiring a workforce, he or she&#8217;s hiring a workforce to help achieve that mission.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3144">52:24</a>] Or you know, you can be the opposite of that and consider yourself at the bottom of the org chart and you&#8217;re trying to act as a tool to help that team achieve their vision. That&#8217;s the one. I am. Now that being said, there are times where if your team isn&#8217;t performing and I&#8217;ve inherited some teams that were not working well and things like that, where I&#8217;ve had to go in and micromanage, but not for long.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3176">52:56</a>] You want to only use it as a tool in my opinion, to fix things and then step back out of that. I think that our job in technology is a creative. This is a creative job. You don&#8217;t know what it looks like. Often you just know what outcome you want. And if you&#8217;re going to do that, you have to free people. You don&#8217;t want to hire smart people and think for them. You want to just focus them on the outcomes.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3206">53:26</a>] You want to like clear what&#8217;s blocking them. You want to be able to probe and like ask great questions and course correct them. But if you start micromanaging really smart people, you&#8217;re going to lose them. Now if you look at some of these classic examples that you mentioned, like Elon and stuff like that, think there was a lot of, lot of lost a lot of smart people that weren&#8217;t willing to work in that environment.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3231">53:51</a>] But I didn&#8217;t understand the environment. Maybe it was necessary. I can&#8217;t speak to that. I&#8217;ve built my career around hiring really smart people much smarter than me and getting out of their way and just supporting them, you know, trying to make them, give them the space to be the best that they&#8217;re at. And so I think, you know, not saying there isn&#8217;t room for this micromanagement, like get down into the details, you need to do that every once in a while.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3261">54:21</a>] But like that&#8217;s not. If you just, that&#8217;s your only mode of operation, that&#8217;s your only tool. It&#8217;s only good for a very specific thing.</p><h3>54:29 &#8212; Career regrets</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3269">54:29</a>] When you look back on your, your whole career, is there any career regret that comes to mind that you think other people could learn from?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3277">54:37</a>] Oh man. So yeah, there&#8217;s a lot actually. And I wouldn&#8217;t say they&#8217;re regrets. Because, like, I&#8217;m pretty happy where I&#8217;m at and, like, everywhere led me here. So, like, you have to also look back and go, I&#8217;m not going to punish myself over mistakes if you&#8217;re happy where you&#8217;re at. I&#8217;ll tell you things though, that, like, I wish I would have known or I wish I would appreciated when I was younger is like, I&#8217;m.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3301">55:01</a>] I&#8217;m not an intern age anymore. I&#8217;m a little older and, you know, time is my scarce commodity now. Like, so back when I was younger, it was okay to like, beat my head against a wall for six, seven years. I&#8217;m like, I have all the time in the world. I would like to have that time back and spend it well. So, like, be sure you&#8217;re doing what you love and be sure you&#8217;re having good days, because that&#8217;s really your scarce commodity, you know, so that&#8217;s one thing.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3329">55:29</a>] Go where the smart people are. Like, I learned this by accident. Like, I was fortunate enough to get recruited into Netscape and Borland, like, where all the smart people were, like, going there really helped build me a network that&#8217;s just, you know, people, the early engineers at Netscape and Borland are kind of like owning the Valley now and Marc Andreessen and, you know, so. So that, that&#8217;s also good.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3355">55:55</a>] And that&#8217;s where I got the best mentors and learned the most. And I&#8217;d say one simple tactical one. If you&#8217;re just starting at a company like this may sound silly, but I would say I wish I would have just maxed out my 401k on day one. Like, just go, max out your 401k. It sounds like, like, you&#8217;re going to get a reduction in salary and you may not be starting out at high, but trust me, you&#8217;ll forget it.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3377">56:17</a>] But, like, when you&#8217;re my age, that there&#8217;s going to be a giant amount of money. I wish I would have done that earlier. So that&#8217;s the other tactical thing I would do.</p><h3>56:27 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3387">56:27</a>] If you could go back to the beginning of your career and give yourself some advice, knowing everything you know now, what would you say?</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3394">56:34</a>] I would speak up more. Like, you know, I. I remember thinking, being afraid to speak up because, like, I was worried that people would think I was an idiot. But it turns out that, like, those are the people now that I notice are the people that even if what they say is off, they&#8217;re not afraid to speak up. So speak up. Like, be curious. Like, I wish I would have networked more and asked people like, more about what they were doing.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3421">57:01</a>] And, you know, one simple thing is, like, it didn&#8217;t occur to me. It&#8217;s sort of a version of go where the smart people. Or like, I was seven years in Pennsylvania working. That&#8217;s where I&#8217;m from. It didn&#8217;t occur to me to, like, go to, like, I got recruited into Borland. But, like, in retrospect, it was like if I were an actor and like, it didn&#8217;t occur to me in seven years to go try Hollywood. It&#8217;s like, you know, it made all the difference was getting into the Valley where there was so much opportunity and resources.</p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3451">57:31</a>] I wish I would have done that earlier.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3454">57:34</a>] That makes sense. Awesome. Well, thank you so much for your time, James. I really appreciate it. It was great to meet you.</p><p><strong>James:</strong></p><p>[<a href="https://youtu.be/VIF5Fm8NdE8?t=3459">57:39</a>] Yeah, great. Thanks for taking the time. It&#8217;s a fun conversation.</p>]]></content:encoded></item><item><title><![CDATA[High Performers Understand Incentives]]></title><description><![CDATA[Love them or hate them...]]></description><link>https://www.developing.dev/p/high-performers-understand-incentives</link><guid isPermaLink="false">https://www.developing.dev/p/high-performers-understand-incentives</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Sun, 05 Apr 2026 16:38:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/58774840-c251-40d6-a8e6-26843d399367_1130x634.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The <a href="https://www.youtube.com/watch?v=6WaeGfLnRvc">conversation I had with Ethan Evans (ex-Amazon VP)</a> struck a cord with the internet. A mixture of disgust and admiration for his transparency.</p><p>A <a href="https://www.instagram.com/p/DWq6Z_PgYFL/">clip from our conversation</a> got millions of views. In it, Ethan says:</p><blockquote><p>&#8220;One of the hardest things for people to understand is I&#8217;ve identified a legitimate weakness in my boss. I go to my skip. Why doesn&#8217;t he do something?</p></blockquote><p>Although many people were disgusted, Ethan was a high performer at Amazon and shared the incentive structure with unusual transparency. He&#8217;s not commenting on what is right or wrong. He&#8217;s saying what is.</p><p>From my experience, as my career grew I worked with more high performers at Meta. Some people play the game selfishly while others play the game while also focusing on what is right. <strong>But common among all high performers is they understand &#8220;the game&#8221; and its incentives.</strong></p><p>When you understand the incentives, you can focus your limited time on what is rewarded. <a href="https://www.developing.dev/p/speedrunning-guide-l3-l4">When I was a junior engineer</a>, I spent so much time working on random code cleanups and miscellaneous projects that were not impactful. Later, I still worked hard but <a href="https://www.developing.dev/p/speedrunning-guide-senior-l5-staff">I focused on projects that mattered</a>.</p><p>In the example where Ethan is the skip-level manager and an engineer has a problem with one of his front-line managers. Ethan explains how the incentive structure naturally leads him to not prioritize the needs of the engineer.</p><p>You can hate him, but he&#8217;s just playing the game. You probably just hate that game.</p><h3>If you hate the game</h3><p>I wouldn&#8217;t try to change the game since the effort is usually not worth it. The best move is often to find a different team, role, or company.</p><p>It&#8217;s unfortunate, but it&#8217;s the reality. The dream is a job where the incentives match the work you care about. Early in my career, I got lucky. I loved coding and optimizing infrastructure, which Meta rewarded well. Those situations do exist in tech, but you may need to do some searching to find them.</p><p>I asked Ethan how to avoid office politics, and <a href="https://www.instagram.com/p/DWoVuaHkbKs/">he summed up your options well</a>.</p><p>One more thing: if you hate the game but try to play it based on how you think the incentives should be, you will get burned. Best case, you&#8217;ll do okay but not as good as you could have. Worst case, you&#8217;ll get fired for being difficult or doing work that doesn&#8217;t matter.</p><p>As Ethan said, &#8220;do yourself a favor and get good at this [politics].&#8221;</p><p>Full conversation is here if you&#8217;re interested:</p><div id="youtube2-6WaeGfLnRvc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;6WaeGfLnRvc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/6WaeGfLnRvc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div><hr></div><p>I plan to write more about the most interesting takeaways I learn from my podcast guests. I won&#8217;t write every week, but I will write whenever I have something interesting to share.</p><p>A few personal updates for those following what I&#8217;m working on:</p><ol><li><p>Keyboard &#8211; We <a href="https://www.kickstarter.com/projects/ryanlpeterman/compose-simple-ergonomics-beautifully-done">launched on Kickstarter</a> and hit our funding goal in 8 hours after launch, thank you if you backed it &#128591;</p></li><li><p>Podcast &#8211; It is still cash flow negative, but I tested a sponsorship with my friends Evan and Stefan from Hello Interview (<a href="https://youtu.be/nOapM8i5jr0?si=sRpQYh-a4QRoyefH&amp;t=1571">it&#8217;s here if you&#8217;re curious</a>). It went well, so I might try more in ways that don&#8217;t take away from the content.</p></li></ol><p>Also, I&#8217;m thinking of making this newsletter&#8217;s branding more general. That way I can write about anything interesting, not limited to only software engineering career growth. If you have thoughts on this, let me know!</p><p>Thanks for reading,<br>Ryan Peterman</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.developing.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">If you found this interesting, you can subscribe for my future articles here:</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Amazon VP Reveals Everything He's Seen In Corporate Politics | Ethan Evans]]></title><description><![CDATA[Reorgs, firings, mutiny, promos]]></description><link>https://www.developing.dev/p/amazon-vp-reveals-everything-hes</link><guid isPermaLink="false">https://www.developing.dev/p/amazon-vp-reveals-everything-hes</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 30 Mar 2026 13:19:00 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/192325133/59c517d5ef2e2bce2b166ec6aca8d71a.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/ethanevansvp/">Ethan Evans</a> is a former VP at Amazon has seen pretty much every possible type of corporate politics. Now that he&#8217;s retired, he could share everything he&#8217;d seen including stories about empire building, hidden politics, reorgs, and dealing with bad managers.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/6WaeGfLnRvc">YouTube</a>, <a href="https://spotifycreators-web.app.link/e/uMO2zi1JV1b">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-6WaeGfLnRvc" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;6WaeGfLnRvc&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/6WaeGfLnRvc?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/192325133/000233-empire-building">00:02:33 - Empire Building</a></p><p><a href="https://www.developing.dev/i/192325133/003154-stealing-scope">00:31:54 - Stealing scope</a></p><p><a href="https://www.developing.dev/i/192325133/004403-managing-out-via-reorgs">00:44:03 - Managing out via reorgs</a></p><p><a href="https://www.developing.dev/i/192325133/005101-bad-managers-and-mutiny">00:51:01 - Bad managers and mutiny</a></p><p><a href="https://www.developing.dev/i/192325133/010143-political-messaging">01:01:43 - Political messaging</a></p><p><a href="https://www.developing.dev/i/192325133/011148-handling-politically-skilled-operators">01:11:48 - Handling politically skilled operators</a></p><p><a href="https://www.developing.dev/i/192325133/012001-orgs-trying-to-steal-scope">01:20:01 - Orgs trying to steal scope</a></p><p><a href="https://www.developing.dev/i/192325133/013026-handling-difficult-people-from-other-orgs">01:30:26 - Handling difficult people from other orgs</a></p><p><a href="https://www.developing.dev/i/192325133/013619-handling-weak-managers">01:36:19 - Handling weak managers</a></p><p><a href="https://www.developing.dev/i/192325133/014630-backchanneling">01:46:30 - Backchanneling</a></p><p><a href="https://www.developing.dev/i/192325133/015204-influence-without-authority">01:52:04 - Influence without authority</a></p><p><a href="https://www.developing.dev/i/192325133/015804-sexual-harassment">01:58:04 - Sexual harassment</a></p><p><a href="https://www.developing.dev/i/192325133/020049-skip-overruling-firing">02:00:49 - Skip overruling firing</a></p><p><a href="https://www.developing.dev/i/192325133/020539-how-to-fire-managers">02:05:39 - How to fire managers</a></p><p><a href="https://www.developing.dev/i/192325133/021131-leverage-when-people-are-getting-fired">02:11:31 - Leverage when people are getting fired</a></p><p><a href="https://www.developing.dev/i/192325133/022401-how-to-grow-past-senior-eng">02:24:01 - How to grow past senior eng</a></p><p><a href="https://www.developing.dev/i/192325133/024301-how-to-avoid-politics">02:43:01 - How to avoid politics</a></p><p><a href="https://www.developing.dev/i/192325133/024815-advice-for-younger-self">02:48:15 - Advice for younger self</a></p><h1>Transcript</h1><h3>00:02:33 &#8212; Empire Building</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=153">00:02:33</a>] The first topic I want to go over is empire building.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=159">00:02:39</a>] Empire building, I think, is a bad thing in that, as defined, it means focusing more on getting raw number of people than on what you&#8217;re doing or the impact you&#8217;re having. So why does it exist? Empire building exists because it&#8217;s rewarded. And it&#8217;s rewarded because counting people is the easiest thing to do. And so when a leader or a set of leaders are deciding who&#8217;s ready to promote, how much impact you had is subjective.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=193">00:03:13</a>] One person thinks the project was hard, another thinks, oh, that was pretty easy. But no one can debate, well, Ethan has 42 people and Ryan has 17. Ethan is the bigger leader, is the conclusion they&#8217;re making. And that encourages empire building because it&#8217;s what&#8217;s visibly measurable. And so what I found is that drives leaders to want more people because that&#8217;s going to be their tool. And some companies absolutely have written thresholds of to be eligible for this promotion, you have to have this many people.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=233">00:03:53</a>] So of course, if you give high performers a goal, they&#8217;re going to figure out a way to hit that goal. And if that requires claiming they need people or seeking to take over other groups, they&#8217;re ambitious, they&#8217;re going to find a way to rationalize that to themselves. I need those people.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=251">00:04:11</a>] I saw that there&#8217;s this desire to change the incentive structure, at least at the company that I was at, where managers could be promoted, not necessarily just directly proportional to how many recursive reports you have. Is that possible to do?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=267">00:04:27</a>] Of course it is possible. It takes more effort because impact is harder to assess. Right. The impact an engineering manager has is somewhat, somewhat fuzzy. What&#8217;s most important, is it operational performance? Is it new features shipped? Is it whether or not those new features resonate in the market and make money and you end up with difficulties. Like maybe my product directly generates money, whatever I&#8217;m doing gets directly sold and customers pay for it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=297">00:04:57</a>] And what you&#8217;re doing is infrastructure. Well, now, how do we compare that? Like, you&#8217;re keeping the systems up, but I&#8217;m actually the one bringing in all the money. Who has more impact? Again, that&#8217;s where people get sucked into. Why have 42 people and you have 17? I must be a bigger manager. That&#8217;s how that happens. It is, of course, possible to make value judgments, but then they&#8217;re also harder to defend.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=326">00:05:26</a>] I have to look at you and say, ryan, we love the work you&#8217;ve done and you&#8217;re on the right path, but Ethan was more impactful. And that just makes you mad. Probably, unless you happen to agree like, oh yeah, that guy&#8217;s a star. It&#8217;s just all these things make assessing impact difficult and dangerous and that&#8217;s why it doesn&#8217;t get done as much as it should.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=352">00:05:52</a>] You mentioned the written thresholds for promotion and since you were VP at Amazon, I know it&#8217;s been some time, but off the top of your head, do you remember the rough written thresholds for how many reports you would need to be considered for senior management director and vp?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=370">00:06:10</a>] So interestingly, those thresholds did not exist while I was there and they existed in whisper numbers, but they were not written down. They came about after I left and people I was coaching, still at Amazon or talking to told me very clearly that the number that got established to become a director in some orgs was 80 people and in some was 90. So I became a director in the early days of the company with 22 people because it was different times and the company was smaller.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=402">00:06:42</a>] And that crept up and up until when I was at the end of my career, we did have like a sense that the company wanted us to look for people with about 75 or 80 people, but it got written down as 90, at least in some organizations. And the thing that&#8217;s funny about that is one of the Amazon leadership principles says there&#8217;s no bonus for additional headcount. But now that it&#8217;s written down that I can&#8217;t get to this very well paying level without 90 people, there damn sure is a bonus, right?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=436">00:07:16</a>] There&#8217;s like a several hundred thousand dollars a year bonus quite literally for accumulating 90 people. And I&#8217;ve talked to leaders who. Their boss trying to get them across the threshold was like, we&#8217;re going to put these people under you for six months, check the box and give them back to the person we took them from. Because that&#8217;s the game they have to play if they want to, you know, reward a person in their team.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=461">00:07:41</a>] And of course that&#8217;s insanity where we&#8217;re moving people around and changing their lives just to hit a number.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=469">00:07:49</a>] But if you did that, let&#8217;s say I&#8217;m a VP and I have a very loud director or very loud senior manager who wants to become a director. And so I go, okay, to retain them, I&#8217;m going to give them some reports from over here. And now they&#8217;re going to be eligible for director after they get promoted, though, they need to sustain those reports to sustain that position. Right. Like you couldn&#8217;t just move them back.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=495">00:08:15</a>] I mean, you can again, it depends on the company. But you can play all sorts of shell where for example at Amazon if you drop below the number of reports, there&#8217;s like a grace period, six months, nine months where if you can tell a story about how they&#8217;re going to get back to that level or how future growth, it&#8217;s okay if they&#8217;re below it temporarily. The other thing is no company, no company I know of really systematically down levels people, what they would do is they&#8217;d say okay, well Ryan, you&#8217;re a director, your team is no longer director scope.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=531">00:08:51</a>] You&#8217;re going to have to find a director level role. And so then it&#8217;s up to me if I can do that in my org or I move you. But I&#8217;ve still achieved the goal for you. And you absolutely see I have seen not just in Amazon but other places when headcount is the main issue. I&#8217;ve seen things moved around and I certainly when people normally come to me, it&#8217;s with the complaint. My boss actually told me that he&#8217;s putting me under my peers so that my peers team will look better.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=562">00:09:22</a>] So the reason I&#8217;m being reorged under this other person is not for any business reason, but because they don&#8217;t have the scope to get the promotion. And so I need to go be their scope. That&#8217;s what I&#8217;m being told.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=578">00:09:38</a>] When I was an engineer and reorgs were happening, I think you don&#8217;t know all the behind the scenes of how orgs are managed and so you&#8217;re told there&#8217;s a certain reason for the reorg however, and which may be true, but there may be a secondary an ulterior motive of this person also needs to get promoted. Do you ever have a experience like that where you saw reorg happening in other org you didn&#8217;t know the exact person who needs to get promoted or what, but you could just tell based on how it happened and what happened that oh, there&#8217;s something else going on behind the scenes.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=615">00:10:15</a>] Yeah. And I would say there&#8217;s always something else going on. Meaning all managers know, all leaders know that too many reorgs cost two people and so you don&#8217;t want to do them too often. What that means though is like you wait as long as you can and then when you need to do one, you&#8217;re asking yourself how do we get everything we want? How do we, how do we. If there&#8217;s someone we don&#8217;t like, how do we give them less so they&#8217;ll move on?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=642">00:10:42</a>] If there&#8217;s someone that we really think is high performance, how do we set them up for success? How do we retain key people? And yes, hopefully the start of the reorg is how do we make the business better? But as soon as we figure out what we think we need to do for the business, then we&#8217;re trying to figure out how much else, you know, this ship is leaving the dock. How much else can we throw on the deck as it&#8217;s pulling away that&#8217;s going to help us.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=667">00:11:07</a>] I just trying to figure out the exact mechanics, like maybe a pastry org that you&#8217;ve done, where you tried to cram a bunch of different ulterior things into it. And how does that actually play out?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=680">00:11:20</a>] Well, a couple things happen there. First, there are usually multiple people involved. And so sometimes you have to either get them on board with your second motive. You know, you have to tell them, like, yeah, I want to help this person get promoted as a part of this reorg, or I want to set them up. Are you supportive of that? Sometimes you have to tell a story like, no, I&#8217;m not doing that. It&#8217;s really this reason.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=707">00:11:47</a>] And so there is some cleverness to justifying because even for a senior leader, usually a reorg is a big enough change that somebody will be auditing it, and you&#8217;ve got to be able to explain it to them. So you&#8217;re coming up with your narrative. You&#8217;re a storyteller, and you&#8217;re coming up with your narrative about why this is the best possible reorg that rewards the deserving people and accomplishes the business goals.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=733">00:12:13</a>] And if anybody is suffering, you&#8217;ve made sure that that&#8217;s people that aren&#8217;t the highest performers. So if anybody does leave, it&#8217;s okay. And when I think about specific reorgs I&#8217;ve done, they&#8217;re very much about retention. If you&#8217;re making a change, you&#8217;re very much thinking, people don&#8217;t like change. Who is it I absolutely need to keep and who is it? If they leave, I&#8217;ll either be okay or even maybe happy.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=765">00:12:45</a>] And I can&#8217;t immediately think of a place where I personally put someone in a role where I&#8217;m like, and by putting them there, they&#8217;ll quit. But I can absolutely think of the reverse where people I really wanted to keep, maybe who I felt I was at risk at losing, I was using the reorg to give them something juicier.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=786">00:13:06</a>] So then how does it usually get started? I mean, a reorg, let&#8217;s say. Yeah. What&#8217;s the triggering condition?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=794">00:13:14</a>] Well, usually the triggering condition is a change in the business. So something about the business has changed. And the organization is not set up to address it, so it needs to take on a new market, or you&#8217;ve acquired a company and you need to blend them in or you want to start a new project. That&#8217;s the first reason for a reorg&#8217;s change in the business. The second reason for a reorg is somebody else quit or got moved.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=821">00:13:41</a>] So often reorgs come due to cascades. And many times, for example, several times in my career, my boss either left or was moved to another job, and so I had to go somewhere else. I could go up if they thought I was ready, I could go under somebody different, or they could choose to backfill, you know, just leave that position open. But at least in my personal experience at Amazon, I never really saw the backfill happen.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=854">00:14:14</a>] I always was moved under another leader, and several times I&#8217;m pretty sure I was put under them to stretch them. When I ran the prime video team, my leader left and I was reorgang from being under an engineering VP to being placed under a business leader. And that business leader, who turned out to be one of my best managers ever, some of his first words to me were, I don&#8217;t really want your team.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=887">00:14:47</a>] I don&#8217;t want to run engineering. I don&#8217;t know anything about it. And of course, as an engineer, I&#8217;m like, oh, but he was a good leader. And he said, we will figure it out. And we worked together and actually had a great run. But I had that happen a couple times where I was put under people, and it was, they had never led engineering. And I was like, well, let&#8217;s give him Ethan&#8217;s team and let him figure out engineering, which could be really demoralizing.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=914">00:15:14</a>] Right. Like, okay, here&#8217;s the person who&#8217;s not technical and I&#8217;m their guinea pig in conducting a reorg.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=921">00:15:21</a>] You mentioned that you&#8217;re the storyteller and you&#8217;re building a narrative. And you said in some cases you&#8217;d be direct and you&#8217;d say, we&#8217;re trying to retain this person, so we&#8217;re going to move things around. And in other cases, you said you, you would tell a story that this is solving a problem for the business and that that other part would be hidden. It&#8217;s really interesting to me because there&#8217;s.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=948">00:15:48</a>] It&#8217;s almost like this hidden chest going on.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=950">00:15:50</a>] Absolutely.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=950">00:15:50</a>] You&#8217;re aware of there&#8217;s multiple things and you&#8217;re aware of the messenger of this is what this person wants to hear. And here are the things that I&#8217;m trying to achieve. What pieces of what I&#8217;M trying to do. Can I sell to them to make the reorg happen? And also you&#8217;ll get maybe other things as a result. And I think that turns off a lot of people, especially engineers. They go, I don&#8217;t want to be managing all these things.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=978">00:16:18</a>] I just want to say it as it is. Is that just a inevitable thing that you have to deal with if you&#8217;re in management?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=986">00:16:26</a>] Well, inevitable, you can certainly work around it. Meaning you can just do a reorg purely based on business goals and not let any concern for people enter. But probably that&#8217;s going to cost you people because some people are more ambitious than others or just more demanding. And there is some truth to the old saying, the squeaky wheel gets the grease. This is another harsh truth people don&#8217;t like.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1017">00:16:57</a>] Sometimes, let&#8217;s say two people perform roughly equally, but one of them has made really clear that they&#8217;re thinking about leaving. Well, a lot of managers will ask themselves, you know, Ryan&#8217;s this great guy, always sticks with us. He&#8217;ll wait another six months. And I can use those six months to save this other guy who&#8217;s also valuable. And by being quiet and dutiful, sometimes I can make the decision.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1050">00:17:30</a>] It&#8217;s not that I mean to screw you. It&#8217;s more I&#8217;m focused on saving this other person. And I know you&#8217;ll put up with it, and so you can end up behind just because you&#8217;re such a nice guy. And I often tell people when I&#8217;m coaching them, I will often tell my clients, you are a very nice person. And when I tell them that, what they don&#8217;t know is I&#8217;m then going to say, and that is not a compliment in this context.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1078">00:17:58</a>] Right? Again, I don&#8217;t think you need to be a jerk. But jerks up to a point, pushy people get more. Now they can push too far, and then they get less because they&#8217;ve antagonized. But if you never ask for anything, you&#8217;ll never get anything. And so in a reorg, you ask about what&#8217;s inevitable. Well, what&#8217;s inevitable is I have some people who have been more vocal about what they want in their career than others.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1110">00:18:30</a>] Perhaps I&#8217;m arranging the reorg just because I know what some people want and I don&#8217;t know what others want. And so I assume they&#8217;ll be fine. That&#8217;s the most benign version. It may be even more that for some people I know they&#8217;re very pushy and demanding, and for some people I know they&#8217;re not. And so I&#8217;m Serving the pushy people because then I get to keep my whole team.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1135">00:18:55</a>] So it seems like almost always it&#8217;s better to be pushy and forthcoming with what you want in your career. But there is an upper bound though where you go too far. And so to, to empire building, for instance, a concrete example. I mean, have you ever had someone who is a manager underneath you and clearly asking for reports and you could, you could see immediately that you don&#8217;t need these reports you&#8217;re pushing because this is going to lead to your eventual promotion?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1164">00:19:24</a>] And how do you handle that as a manager or as a senior leader when you can see someone&#8217;s being too pushy and it&#8217;s obviously not good for the business and not defendable?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1174">00:19:34</a>] Yeah. So I think a manager, if I&#8217;m in the leadership seat first, I better have a good trusting relationship with that person if possible, where we can have a heart to heart and I can get in a room where they don&#8217;t feel anybody&#8217;s listening or watching and say, look, let&#8217;s talk for a minute why you really want these people. Okay, let&#8217;s both be honest that you&#8217;re empire building and I get that you&#8217;re trying to get to a goal, but this is a bridge too far.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1200">00:20:00</a>] Let&#8217;s talk about how I&#8217;m going to get you there or how we&#8217;re going to get you there by some defendable path or some other path. And so as opposed to tell them just no, you can&#8217;t have this, which will be very frustrating and they&#8217;ll probably argue, I try to bend the conversation to let&#8217;s problem solve together. What&#8217;s another way to do this? And I won&#8217;t say I&#8217;m always successful. Some people want what they want right now and they can&#8217;t see or they have zero patience to wait.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1230">00:20:30</a>] And at that point, again, that&#8217;s that fine line. If I can, I&#8217;ll share a related example that I know people resonate with where one time I wanted to tell my manager that I really expected to be promoted, but I wanted to do it in a diplomatic way that couldn&#8217;t get me in trouble and wouldn&#8217;t irritate him. Not just couldn&#8217;t get me in deep trouble, but like would bring out his support even though I was threatening a little.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1254">00:20:54</a>] And so what I did is with this manager, I wanted to be a director at Amazon. I was a senior manager. It&#8217;s when I had the 22 people I referred to earlier, I went to him and his name was Neil and I said, Neil, I need to understand how important My career is to Amazon because my career is very important to me. And see, that&#8217;s a statement no one can argue with. No one can argue and say, well, your career shouldn&#8217;t be important to you, or it&#8217;s illogical.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1285">00:21:25</a>] So I said, my career is very important to me. I need to understand how important it is to Amazon, because if it&#8217;s not as important to Amazon as it is to me, I need to think about that. And, you know, I need to think about that isn&#8217;t a direct threat. But you laughed. Everyone understands that I&#8217;m kind of serving notice, but I&#8217;m not doing it in a way that is easily easy for him to push back on. See, if I say, well, if it&#8217;s not as important to you, making it personal with him, it&#8217;s not important to you as it is to me, then I might quit, that&#8217;s a threat.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1323">00:22:03</a>] And all managers are going to be like, hey, you can&#8217;t extort me, right? That isn&#8217;t how it works. So I came up with these words that clearly conveyed the message, but in a way, you can&#8217;t argue it&#8217;s important to me. You can&#8217;t argue really, that if it&#8217;s not as important to Amazon, I didn&#8217;t personalize it, that I have to think about that. So I was able to put it on the table. And, you know, he promoted me, right?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1356">00:22:36</a>] He pushed the promotion through. And I think there&#8217;s always a way to say things in that middle ground that makes clear what you want and makes clear that you&#8217;re willing to consider your other options, but without being a threatening jerk about it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1375">00:22:55</a>] That wording is, it&#8217;s, it&#8217;s kind of. I mean, because when you say the wording, I feel, I mean, if I was. I feel the effects of extortion a bit, right? But I couldn&#8217;t, I could not label it extortion. If I went to someone else and I, I went to my management, I said, hey, Ethan told me this, they would, they would probably also immediately get, oh, there&#8217;s a, there&#8217;s a threat here. But I don&#8217;t think anyone in any room would say, this guy&#8217;s being mean with it or we need to get rid of him.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1410">00:23:30</a>] They&#8217;d say, that&#8217;s a well done way to present yourself, right?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1415">00:23:35</a>] That&#8217;s bold. He&#8217;s clear on what he wants. And that&#8217;s, you know, one of the advantages. Do find a place where you fit. Meaning Amazon was a relatively sharp, elbowed, pushy place. It has that reputation today. It was true long ago. You have to tune Your message to. To the workplace that you&#8217;re in, that message would be offensive in some workplaces, and it was totally not offensive at Amazon because there were people sort of pounding the table of, I need to move up now.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1450">00:24:10</a>] And, you know, so. So part of it&#8217;s just finding the place where you look like a wonderful, sweet person in the mix.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1459">00:24:19</a>] You mentioned that there&#8217;s this. This dichotomy, I guess there&#8217;s these people who are team players, I guess, and then there&#8217;s these people who are more pushy with what they want, and they&#8217;re, they&#8217;re very forthcoming and obviously that has benefits for their career. I&#8217;ve heard people tell me that when they want to express to their manager, oh, I want to get promoted, or something like that, they have this feeling that they don&#8217;t want to be too pushy because it could irk the manager.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1490">00:24:50</a>] Correct.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1491">00:24:51</a>] Imagine you&#8217;re a high performer. You&#8217;re a high performer, but also you keep demanding things of your manager that could also go wrong depending on the manager. I&#8217;m curious your perspective as a senior leader at Amazon when you had these demanding high performers. Is that something that you were. Were you happy to service their requests? Or was this. Did it ever irk you? And you said, I&#8217;m going to actually not give you what you want because you&#8217;re a little too.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1495">00:24:55</a>] You&#8217;re a high performer, but you&#8217;re also too demanding.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1525">00:25:25</a>] So I want to tell you a couple of things about that. Yes. First, the great thing about the really demanding people is if they really are bothering you to the point where you decide they&#8217;re a net negative, if you just tell them no, they will quit because they, they are so driven about getting what they want that if you deny them what they want, your problem will go away. Shortly. They will even leave for a lesser job just because they believe, well, at this place, I&#8217;m going to have different results.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1553">00:25:53</a>] So, yeah, you, you can calculate and say, okay, what? There is some calculus that says what answer gets me the result I want. And if someone&#8217;s too pushy and not enough value telling them, no, you can&#8217;t have that, they will then go away. The second thing, though, is I tended to try and make a deal. I&#8217;m a huge believer in deal making, and I made these deals with my own leadership, too. And the deal essentially was, okay, you want this thing, I will help you get it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1583">00:26:23</a>] But you&#8217;re a high performer. You&#8217;re going to show incredible performance on the things I need, and then I will deliver. And there are managers of Course, who make that deal and don&#8217;t follow through. I can say with total pride that I feel I always followed through. There&#8217;s actually one exception early in my career I&#8217;ve shared where I failed to do that. And I still feel bad about it 20 years later.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1611">00:26:51</a>] But I make a deal where I say, okay, you want this? Here&#8217;s what it&#8217;s going to take. I need this and this and this. So as an example, I can give you. My manager gave me a requirement I really didn&#8217;t like. He was my vice president, I was a director at the time. And he told me, your team is too expensive. We need to put a bunch of it offshore in India with cheaper labor. You need to open. Well, he didn&#8217;t even say India.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1637">00:27:17</a>] He said, you need to open a low cost offshore dev center. And of course I didn&#8217;t want to do any of that. Like, that meant traveling around the world and having teams around the world. And I didn&#8217;t know how to do it and where to do it. He left it completely. He made the whole problem mine. He didn&#8217;t say, go to India, he said, go somewhere. And so the long and short of this is I found a senior manager I knew who wanted to get to director.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1659">00:27:39</a>] He was Indian, living in the us And I went and said, hey, would you go back to India and start this dev center? If you can build me a dev center in India, I think we can use that as a platform to get you to director. And that&#8217;s exactly what happened. He moved home to India. He got to take his son home to learn Hindi and see his grandparents. He moved to India for three years. And during that I was then able to use his independent action there.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1688">00:28:08</a>] And the fact that he was doing all this stuff remotely and to the point of narrative, I was able to create a story about how this was clearly a director level accomplishment and he was promoted to director. But I made that deal years before it happened. You go to India, I will get you to director. So that&#8217;s what I try and do with the demanding people.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1710">00:28:30</a>] Well, I can imagine also a lot of things could change over the course of a few years. Maybe you&#8217;re at a different org and you had that guy went to India and then you&#8217;re in and he&#8217;s no longer reporting to you two years later. And you can&#8217;t deliver on that. But I mean, you can&#8217;t make decisions based off that.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1728">00:28:48</a>] No. If I had been reorged or fired, you know, it depends, right? Like there are things that could have happened where I would have had to say to him, look, I&#8217;ll do what I can to support you from the new role. But it isn&#8217;t I didn&#8217;t do what I was saying, I. It&#8217;s that I no longer have the power to and I could feel all right about that. I can&#8217;t immediately think of a circumstance where that happened to me where I wasn&#8217;t able to follow through for someone.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1757">00:29:17</a>] But I can see where that would happen. The good news is people are, most leaders are professionals in that they under, they can see the difference between you didn&#8217;t come through and you know, shit happened. Those are two different categories.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1777">00:29:37</a>] Yeah, it&#8217;s interesting how much back of the envelope I guess deals there can be between managers and reports or I&#8217;m sure between managers as well. Like maybe let&#8217;s say you&#8217;re trying to get someone promoted in your org and you&#8217;re working with your manager on making that happen eventually. And he says, he or she says okay, I have someone who&#8217;s even more urgent now but that one&#8217;s going to happen in two halves.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1813">00:30:13</a>] there&#8217;s absolutely a line meaning by a line I mean a line up a queue where even HR has a policy in big companies to say what does the forward looking slate is what we call it, the forward looking slate of promotions. And they would track and say by halves who&#8217;s in 6 months, 12 months, 18 months, maybe as far as 24. And you could list different names and so there was a sense of like whose turn is it we&#8217;re going to do?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1843">00:30:43</a>] Not that there was in my time a quota. I understand for example at Google today talking to someone I coach there, there&#8217;s a strict quota like this quarter or this half two people can get from LA to L9 in this org. And you know the guy I was coaching is like I think I&#8217;m number four, I&#8217;m not going to make it. And again that can be toxic a little bit. But people understand the idea of there&#8217;s a line.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1874">00:31:14</a>] And so absolutely you have those discussions now again for early in your career there&#8217;s usually no quota to go from like entry level, college engineer, whatever that&#8217;s called where you&#8217;re at to sort of regular, you know, engineer, engineer maybe even to senior engineer. Things get to have more of this quota system when the positions are rare and expensive. And there is a question how many staff or principal engineers does this company Need?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1905">00:31:45</a>] How many distinguished engineers does it need? By the way, those positions cost a million dollars a piece, so we don&#8217;t just want to hand them out like popcorn.</p><h3>00:31:54 &#8212; Stealing scope</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1914">00:31:54</a>] So you mentioned when we were talking about empire building, there&#8217;s this notion that managers career progression is tied to the number of their recursive reports. And so on the one hand there&#8217;s an incentive for managers to say I want more new headcount. But I could also see there being cases where managers want existing headcount. So maybe someone underneath you is vying to take reports from someone else and basically steal scope for their own promotion.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1948">00:32:28</a>] And as since you were such a senior leader at Amazon, I&#8217;m curious, how did you handle cases where you noticed somewhere in your org, someone is trying to steal Scope from someone else in your org?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1960">00:32:40</a>] So first I would say this has become more common as growth is slowed. In other words, when a company is growing very quickly, as Amazon was through much of my tenure there, you see less of this because it&#8217;s easier to go get new people than it is to fight with someone and it causes less bad blood. Not that I never saw that. But now that companies aren&#8217;t growing, you know, if you look at the Magnificent Seven or however you look at them, most of them are flat headcount, couple exceptions.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=1993">00:33:13</a>] There&#8217;s a lot more of this, what I would call cannibalism. Since I can&#8217;t go out and get new, I&#8217;m going to have to eat what&#8217;s here. And that, that&#8217;s very cannibalistic. You see a lot of maneuvering for that. How did I deal with it? You can&#8217;t allow people on your team to go rogue and be pirates in your own organization. Like capture somebody else&#8217;s ship and you know, kill the captain, sail away because of what it&#8217;s going to do to your org, you&#8217;re no longer in charge then they&#8217;re in charge, right?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2025">00:33:45</a>] They&#8217;re raiding and pillaging. And you seem clueless, so you can&#8217;t allow that. But what you then have to do is either find them a path, convince them to wait, or frankly, if they turn to septic, they become your answer, meaning they&#8217;re going to leave, or you get them to leave and you give their team away. So if it really is cannibalistic, what happens is if they don&#8217;t pull off, you know, it&#8217;s, it&#8217;s like any coup attempt, I guess, in, in like politics, if you attempt a coup and you win, you get to be president or, you know, whatever.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2059">00:34:19</a>] And if you fail, you get hung or shot. And so this is a little bit, you know, it&#8217;s not quite that bloody. But one thing that holds back the worst behavior is people do realize if I get caught being too obviously self serving, it&#8217;s going to burn me here. And so they usually are pretty careful. But do they want it? Sure. People all the time are asking, could I take over this, could I take over that?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2088">00:34:48</a>] What I encourage people to do is I tell them, look, you never know when a reorg&#8217;s coming. You never know when somebody&#8217;s going to quit or get fired or laid off. So talk to your manager and say, hey, if we have an org change and there&#8217;s an opening, I just want you to know I&#8217;m ready to step up, I&#8217;m interested and I will stand by you. This is one thing people want to know in reorg is reorg, shake the ship.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2115">00:35:15</a>] And so some people are like, oh, this company&#8217;s going down or it&#8217;s not stable, I&#8217;m going to quit if I can. If you tell your manager what they don&#8217;t want to do is put someone in a role who&#8217;s then going to leave. And so you tell them, look, I&#8217;m actually looking to stay. So when you need a stable leader, think of me. And then when that opening comes up, they&#8217;re like, oh, right, Ryan said he&#8217;d stay. Perfect Ryan.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2139">00:35:39</a>] Ryan just became most qualified, not because he&#8217;s best, but because he&#8217;s most reliable.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2144">00:35:44</a>] Right, I see.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2145">00:35:45</a>] And that is best in. In my situation.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2148">00:35:48</a>] So that&#8217;s what. And what you just recommended there to me almost sounds like a better narrative for asking for scope. So of course, yeah. I mean, rather than saying, give me, give me this, you can say, I want what&#8217;s best for the org and if I need to step up, I&#8217;m here, but without being the pirate. And you might actually get what you want.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2174">00:36:14</a>] Absolutely. And that other piece of the messaging you stumbled on is really important, which is, of course we know you want this so that your org is bigger and so that you have career growth. But there&#8217;s a polite fiction that can be true, which is I also want what is best for the org. In other words, I understand that my best path up is to do things that are valuable to you and to the organization.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2201">00:36:41</a>] And if I tell you, look, when a reorg happens, doesn&#8217;t matter what the team is, if you have a need, I&#8217;ll be there for you. That sounds very selfless and org centric, even though the underlying message could be phrased as I don&#8217;t really care which team&#8217;s available. I just want more scope. I&#8217;ll take whatever you have. But the way I phrased it sounds so much better because one sounds like the pirate ship and the other one sounds like the selfless servant.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2229">00:37:09</a>] But they&#8217;re both really, hey, whatever&#8217;s available, I&#8217;ll take it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2233">00:37:13</a>] That phrase you said, the polite fiction, I feel like that&#8217;s the thing that I could feel as while we&#8217;re talking about it too. It&#8217;s like if it feels weird, it feels uncomfortable, it feels conniving almost, because it&#8217;s, it&#8217;s. It&#8217;s. You have. You secretly. You have this, and also everyone else knows you have this, but you say this, but you. I mean, both can be true.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2258">00:37:38</a>] That&#8217;s, That&#8217;s. Yeah, that&#8217;s the key is it can be conniving, but it doesn&#8217;t have to be. They can be honest. I can go to my manager and say, look, I want to grow, and I will do whatever you need in order to grow. Like, whatever&#8217;s available, I will take it and do my utter best on it. And that can be both things. One story. When I was a director working my way towards vp, I once again had been put under a VP who had no other engineering leaders.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2291">00:38:11</a>] But then they kept giving him more engineering stuff, and I was the first, and I built trust with him. And he just automatically came to me with everything, like, well, they handed me this. Can you take it? And at one point, I was managing, I think, eight different functions, and they were as diverse all over the place. I&#8217;ll give you three examples. I led the technical team for reverse logistics, meaning when people traded in video game cartridges, we had to grade them and sell them used.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2323">00:38:43</a>] I was an advisor to the team that was grading returned video games or used video games. I was selling new video games, like software downloads, video game downloads. And then I was starting to build Amazon&#8217;s app store. That&#8217;s three examples. A fourth example is I also owned our B2B business where, like, Amazon was trying to displace and go into the market of Office Depot and, like, ship pallets of paper to people.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2355">00:39:15</a>] And these all had ended up under my boss. I had this, you know, you call it whatever you want, but this random mixture of stuff, but my boss loved it. And over time, that totaled 200 people from all these different functions. And that just came from saying yes to everything. Now, did I really want to work on grading video games or shipping pallets of paper to schools? Not really. So it was the win win, though.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2383">00:39:43</a>] Well, this reminds me of the offshore India story that you had, which is your manager has work he doesn&#8217;t want to do and so he will pass it to you because he&#8217;s identified you as the high performer that&#8217;ll solve his problem. So it is win win for you because you wanted the larger org and he does not want to deal with these problems.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2405">00:40:05</a>] Exactly. And so someone I really respect, he&#8217;s now a senior vice president at Walmart. He, he said he was taught in turn by a senior vice president at Amazon. The simple way to get promoted is quote, solve problems for your boss. Like if you just need to get it down to five words, solve problems for your boss. If you&#8217;re solving their problems, they will value you. And if they value you, if you then express what you would like, they don&#8217;t want to lose you.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2437">00:40:37</a>] Because not everyone&#8217;s helping them that way. Most people are not. They&#8217;re just punching the clock or fighting to do their own things. And so even a so called bad boss will often take care of someone who&#8217;s helping them. Because even if their calculus is, well, imagine I&#8217;m evil and I don&#8217;t really care about anybody but myself. But I&#8217;ve got this team of people and some of them are helping me and some of them aren&#8217;t.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2459">00:40:59</a>] Who do I want to keep? Even if I&#8217;m totally selfish, I want to keep the ones that are helping me. So even then it can work out.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2467">00:41:07</a>] What about the case where, because in engineering there are cases where we can create scope where someone goes off, they find a problem that we didn&#8217;t know existed and they build a new system that changes the industry or does something really impressive and then the impact they had is just incredible. But they didn&#8217;t necessarily solve a problem that that boss specifically came to them with.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2495">00:41:35</a>] Sure,</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2497">00:41:37</a>] that could also work though as well and that manager would push that promo through. But I guess that&#8217;s a different path</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2506">00:41:46</a>] and I recommend both of these. What I mean is ask your manager what you can do, how you can help them, but also be thinking about what can you do on your own? Or what can you go to your manager and say, I think we should do this and here&#8217;s why. So an example I&#8217;ll give Amazon now sells over $1 billion a year of funny T shirts, custom printed. You know, you can put your slogan on a T shirt and put it up on Amazon and buy it yourself or get other people to do it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2535">00:42:15</a>] I help start that business and specifically I funded the initial team on it and, and my manager was saying, hey, you run Amazon&#8217;s app store. Like, what does that have to do with T shirt printing? This has nothing to do with it. Why are you doing this? And I said, well, I think there&#8217;s a big business here, but I need 10 people, and I have 800. So if you&#8217;re gonna tell me that I can&#8217;t spend basically 1% of my resources on this thing I believe in, we have another discussion to have because you&#8217;re micromanaging me like, this should be within.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2569">00:42:49</a>] And so he&#8217;s like, fine, I disagree, but go do. You&#8217;re right, it&#8217;s only a few people. Go do your thing. And then it turned into a big business. And of course, I&#8217;m simplifying a ton when I say, and then it turned into a big business. There were, like, years of work in that phrase, but I was thinking about, what else can I do? What else makes sense that either with my own resources or with lightweight approval, I can go work on?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2600">00:43:20</a>] And so I think with your manager, of course, you&#8217;re trying to ask, what do they need? And that&#8217;s what I was doing with 790 out of my 800 team. At 10, I was doing something that he didn&#8217;t think was a good idea. But I was able to say, like, well, let me have my 10. He&#8217;s like, all right, that, you know, you&#8217;re a big enough leader if, you know, you&#8217;re now responsible for making these people useful. So I did, and if I had failed, I started projects that also didn&#8217;t work out.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2630">00:43:50</a>] You&#8217;ve got to shut them down quickly and, you know, have a good enough hit rate. But I think there&#8217;s multiple paths to the top. I tried them. All right, be. Be the helpful person, but also be the inventor.</p><h3>00:44:03 &#8212; Managing out via reorgs</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2643">00:44:03</a>] We talked about reorgs earlier, and you mentioned that it can be used to manage certain leaders out.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2650">00:44:10</a>] Sure.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2651">00:44:11</a>] What is that? What does that look like in practice? Like, you give me example.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2655">00:44:15</a>] Well, what it looks like in practice is you put them on something they don&#8217;t want to work on and you claim, well, that was the only seat. That was the seat we needed you in. I mean, it&#8217;s. I&#8217;d like to claim it&#8217;s more complicated than that, but I&#8217;ll tell a story of someone who got reorged and I thought they&#8217;d quit so much. The manager even thought they were going to quit and was very upset with this.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2679">00:44:39</a>] When I first joined Amazon, we had a few groups and we organized ourselves, and I owned what was going to be Prime Video, and someone else owned what became Prime Music. And a third person owned what became the Kindle, the E Reader. And then there was a guy who had a clear ownership over the ingestion pipeline. So the way to digitize movies, music, et cetera was all a unified pipeline. And then there was one more leader, and he got given database maintenance, quality assurance, and like, a couple small things.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2713">00:45:13</a>] And even he joked, well, my group&#8217;s other, it&#8217;s the garbage can, right? And our VP was like, don&#8217;t call it that. You cannot call it that. What about the people in it? Like. And I&#8217;m sure he was thinking like, the leader who stuck with other isn&#8217;t going to stick around. Well, as far as I know, that guy is still at Amazon 20 years later because he was one of those very calm, nice guys who is willing to do what was needed.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2740">00:45:40</a>] He was the team player who was going to do what was needed. But the point is, if I wanted to get rid of a high performer, not a high performer, why would I want to get rid of a high performer? But if I wanted to get rid of a pushy, overly ambitious person, just give them other, like, six weeks later, that&#8217;s a vacancy. I can open the role right now, right? Because, like, I&#8217;m a bit of a confrontational person.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2764">00:46:04</a>] So when I needed to fire someone, I tended to just go straight at it. But this putting someone in a seat they don&#8217;t like is classic. And there&#8217;s even a. This is a widely understood. You know, this isn&#8217;t an Amazon thing. If you go to Japanese culture, completely other country, there&#8217;s this concept called a window seat. I don&#8217;t know if you ever heard of this. So in Japanese culture, which is very collectivist and I&#8217;m not an expert, so maybe someone from Japan will say this isn&#8217;t true, but I don&#8217;t think so.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2797">00:46:37</a>] You want to be in the center of the building. Even though window seats are very desirable in American culture, the hot, you want to be in the middle of things there. You want to be close to the CEO and close to the action. So actually being on a window means you&#8217;re not that important. And so ironically, what we would think of as great, being given a corner office in Japan is a signal of you&#8217;ve been moved as far from what&#8217;s happening as possible.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2823">00:47:03</a>] You&#8217;ve been, you&#8217;ve been exiled to the land of irrelevance, where you know you&#8217;re not. You don&#8217;t even have coworkers on one side, you have glass. And that would be a way to signal to somebody like your career here. Is now over. You&#8217;re in a window seat. So this idea isn&#8217;t. You know, I don&#8217;t think it&#8217;s. Some people would think, oh well that&#8217;s only Amazon because they have a history of being combative.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2847">00:47:27</a>] I don&#8217;t think that&#8217;s true. I think this idea is well known.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2850">00:47:30</a>] You mentioned that one guy who gets other or the garbage can, he&#8217;s the nicest guy or he&#8217;s. He&#8217;s the team player and this and that. And I, I guess I see the incentive structure that makes it that nice guy gets garbage can. But why? I don&#8217;t know. Some part of me is wishing the world wasn&#8217;t that way. Sure.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2886">00:48:06</a>] pressure you can to some degree. First note that the org I described where I had all those random things was also the garbage can. So I built the garbage can, kind of opting into it like I will take all of your junk. And that is my role. He was not doing that in the same way, but there was some of that. The problem with only rewarding the nice guys is number one, sometimes the nice folks don&#8217;t actually want more.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2918">00:48:38</a>] In other words, ambition tends to come out and if people are really ambitious, they do usually end up. Not always, but they usually end up more vocal. Second though, I have the problem that I do have all these vocal people and what they&#8217;re going to do usually is not become less vocal just because I have an example of play nice and you&#8217;ll move up. They&#8217;re going to look for where can I go that&#8217;s going to reward me right away.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2949">00:49:09</a>] And so of course maybe a better leader than I can build this culture where all the nice people are rewarded and all the sort of less nice people see that, see the error of their ways and become naturally generous. But I&#8217;ve just. That isn&#8217;t human nature. And so I think there is some balancing. What I often do, as you heard from my coaching, and I&#8217;ll be honest, is I tell the nice folks being that nice isn&#8217;t helping you.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=2977">00:49:37</a>] You don&#8217;t have to be a jerk. You have to do what I did. Where you say my career is very important to me. It&#8217;s okay, it&#8217;s okay to have. Where people fall down is they come particularly in tech from non us cultures that are collectivist or have different mores and where asking for what you want or Speaking up culturally doesn&#8217;t fit. I see this a lot, particularly with women from Asia, different parts of Asia.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3013">00:50:13</a>] At home, they&#8217;re expected culturally to take one role, which is often more family oriented and supporting of parents and grandparents and so on. But then to get ahead and work, they need to be a little bit more outspoken. And it&#8217;s a big contrast. I would just say it&#8217;s okay to ask for what you want that isn&#8217;t wrong.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3038">00:50:38</a>] And</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3040">00:50:40</a>] managers, even good managers, they&#8217;re not in the business of guessing. If you&#8217;ve never told me what you want, sure, in theory I should ask you, but I&#8217;m very busy. And so sometimes I get around to that and sometimes I don&#8217;t. Meanwhile, this other person every three days is knocking on my door. I&#8217;m super clear on what they want.</p><h3>00:51:01 &#8212; Bad managers and mutiny</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3061">00:51:01</a>] When it comes to engineers, there&#8217;s one layer to think of. And so if someone&#8217;s low performing, there may be your peer, but if you have a low performing manager, there&#8217;s this vertical stacking that we have. You might be reporting to someone who you think is not great at their job. And so the natural thought is go to their manager, which would be your skit, which I guess you could consider this as mutiny.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3086">00:51:26</a>] If you went to them and you said, hey, my manager is bad. I don&#8217;t want to report to this person. Do you have any examples of this kind of escalation coming to you where someone in your recursive chain was considered incompetent by their reports and they came directly to you and they said, please manage this person out, or I just don&#8217;t want to report to this person all the time.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3110">00:51:50</a>] All the time. One of the hardest things for people to understand is I&#8217;ve identified a legitimate weakness in my boss. I go to my skip, why doesn&#8217;t he do something? Well, if you come to me with a weakness in one of my employees, there is subconsciously this process that goes on that says I have two choices. I can believe that you&#8217;re overly sensitive and high maintenance, in which case I don&#8217;t really have a problem, you&#8217;re the problem.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3141">00:52:21</a>] And you know, you&#8217;re two levels down from me. So if you quit, the manager has to do the backfill. And I can tell the manager, you know, Ryan was here, he said this, that and the other. Maybe you can work with him and that&#8217;s exactly what you don&#8217;t want, is me ratting you out. But I can make it my manager&#8217;s problem. On the other hand, if I agree with you and I&#8217;m like, You know what? This manager I have really isn&#8217;t that good.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3164">00:52:44</a>] Now I have three problems. This is really bad for me. One, I have to decide what to do with my manager. Maybe I have to manage them out. Two, if I do manage them out, I have to hire and train somebody else. And three, while they&#8217;re gone, I have to do all their work myself. So you can see why, even if it&#8217;s subconscious, I have a lot of reasons not to listen or not to believe very easily. So mutiny.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3189">00:53:09</a>] Let&#8217;s talk about mutiny. If you want to see it as a mutiny. We&#8217;ve talked about pirates already. Never mutiny alone. If you want that to work, if you really want to say this manager&#8217;s bad and we have a problem, take two or three people or send two or three people in sequence. Find some of your co workers who are willing to speak up. Because I will give you an example. It really bothers me. I had a leader who was treating the women on his team like crap.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3222">00:53:42</a>] Now, he wasn&#8217;t doing that in front of me, but it turns out it was true. Well, it took a long time for the different rumors to bubble up to me enough to where I&#8217;m like, I&#8217;m hearing bad things. And then I went and talked to several of the women and like, so in working with this person, I&#8217;m hearing and they&#8217;re like, oh yeah. Well then I was like, oh, okay. I&#8217;ve been blind to a problem, I need to act on it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3255">00:54:15</a>] Had any one of them come to me early and said, this person&#8217;s a problem. They&#8217;re doing this, that, and the other I probably wouldn&#8217;t have listened to because it was a lone report. But when several of those reports came up, then I&#8217;m like, oh shit, I&#8217;ve been missing something. So if you want to hold a mutiny, go together. Right? Even if it&#8217;s Zelda, it&#8217;s dangerous to go alone. Take this, take other people.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3281">00:54:41</a>] I see. Okay, so if, let&#8217;s say there&#8217;s a high performing IC who is reporting to a manager and say, the fact is that that manager has some shortcomings in their abilities, you would say, don&#8217;t go immediately to the skip first. Build allies with some of the other people and say, hey, are you also seeing this with this person?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3301">00:55:01</a>] And if you can, yeah, you want to talk to them and say, hey, do you see what I see? Well, one thing is that&#8217;s a way to sanity check. I&#8217;m really struggling with our boss in this area. Do you, Are you having that problem? And if they say no, I get along with them great, and here&#8217;s how, then maybe you can learn and adjust. That&#8217;s the style thing. Whereas if they&#8217;re like, oh, yeah, then the hardest next hurdle is are they willing to speak up?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3327">00:55:27</a>] Because a lot of people aren&#8217;t. But if they know that you&#8217;re going to go first and play ringleader, like, I will go talk to our skip, but I&#8217;m going to tell our skip they can verify my story by talking to you or, and also to Sally or Fred or Rajeev. Most managers, if you go to them and say, look, I know that my saying the boss is a weak link is uncomfortable and difficult for you, but these three people are all willing to share similar stories, would you consider at least talking to them?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3365">00:56:05</a>] Most managers will do that. Most, you know, not all. There&#8217;s no guarantees when you&#8217;re dealing with people.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3372">00:56:12</a>] I mean, that&#8217;s. Yeah, that&#8217;s the immediate thing I imagine is, let&#8217;s say I was that IC and then I went to other people and we all kind of knew that that person had a shortcoming. It. There&#8217;s the difference between that, that water cooler talk and saying, yeah, this person is disorganized. Yeah, he keeps doing that. Compared to, hey, I&#8217;m going to go to his boss now and we&#8217;re going to, we&#8217;re going to make, take this up a notch because also there&#8217;s this, this delicate balance which is all these people still report to that person.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3403">00:56:43</a>] So now if you were to get caught at any point in this process, you might worry about retribution or something if you&#8217;re wrong. What about the path of. Because this is a lot. I mean, your imagination needs to be pretty bad if you do this. What about the approach of you say, hey, it&#8217;s just me and him, and you want to go to the skip and say, hey, Ethan, you know, nothing, nothing personal with the person that I&#8217;m reporting to, but I see a better business case for me to go to another team or, you know, something like that where you word and say, I don&#8217;t, don&#8217;t think poorly of this manager, but I&#8217;ll be more productive somewhere else.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3450">00:57:30</a>] approaches, the first of which is, remember we talked about the story you tell versus the story that may be true if you can actually make a strong case that you&#8217;re equally valuable or more valuable somewhere else, a plausible case. Don&#8217;t even bring up the manager. Just say, hey, I was looking at this other role and I think I could do so much more for you in the org over here because of A, B and C.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3478">00:57:58</a>] And you try that run first, and if that works, you&#8217;re done. You never have to bring it up. The second thing you can say, you&#8217;ve just. You&#8217;ve gotta. You&#8217;ve gotta play chess, not checkers, meaning several moves in advance. You can totally say, look, candidly, you keep it blame free. I&#8217;m not compatible with our leader. I&#8217;m not. Maybe it&#8217;s him, maybe it&#8217;s me. Of course, I naturally feel that maybe I&#8217;m doing good work and he could improve.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3510">00:58:30</a>] But I&#8217;m not here to throw your manager under the bus. I&#8217;m just here to tell you I need a change. And I did this once with a leader at Amazon, where I wanted to make a change. I was doing a good job for him in the role I was in. So he wanted me to stay there. And what I had to help him understand is I said, you are seeing this as I take this new role or I stay in this role, and you&#8217;d prefer I stay in this role because that&#8217;s good for you.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3541">00:59:01</a>] And I get that. But what I&#8217;m trying to tell you is either I take this new role in your org that I&#8217;m asking for, or I&#8217;m going somewhere else entirely. So there is no choice. Keep me where I&#8217;m at. There&#8217;s, do you want me on your team or on someone else&#8217;s team? Now, I had both options available, and it was really interesting because after weeks and weeks of resistance, I was in the new role the next morning.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3565">00:59:25</a>] Like, once he got the clarity of, oh, I thought I had a choice between you stay in the role I want you in and you go to the role I don&#8217;t really want you in. But the choice I actually have is I keep you in my team or I lose you. It was totally different the next morning.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3584">00:59:44</a>] But how did you word that in a way where that person you&#8217;re reporting to did not feel upset that you kind of subverted their power and forced their hand?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3595">00:59:55</a>] That&#8217;s a good question. And so I can exemplify that. I framed it in terms of what they would do. This person was a vice president at that point. I was a vice president reporting to them. So I was like a smaller vice president, whatever, lower in level. And I had gotten a job offer from a senior vice president in a different organization. That was my other job. So I went to him and I said, I have an offer from this svp.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3626">01:00:26</a>] Now, you know that if I give my Word to that guy. I have to go. Like, that&#8217;s what you would do? If I give my word, it&#8217;s over. You know, I really want this other role. I have to give this guy an answer. You&#8217;ve told me no on this other role several times. What do you want me to do? Bam. The door. Like, because once he understood, he understood he would never break his word to an svp. So he understood that the moment I gave my word, it was done.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3658">01:00:58</a>] And so that&#8217;s the same. Like, what would you do if you can tap into the manager feeling like, okay, I don&#8217;t like it, but I get it. That&#8217;s what I was doing is he was like, oh, I don&#8217;t like this, but okay, I get it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3671">01:01:11</a>] There were three roles under consideration.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3674">01:01:14</a>] Well, there was the one I was in and really wanted and the alternative I had gotten on the table.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3679">01:01:19</a>] So you brought in a new option that was better than your current. And you said, my alternative now is I may leave you unless you give me what I want. But you didn&#8217;t say that directly.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3689">01:01:29</a>] I didn&#8217;t say that what I want. Instead, I said, I actually, I&#8217;m very careful not to make it that threatening. I said, you know, once I give my word, I&#8217;m. I can&#8217;t go back on that. Like, that&#8217;s the.</p><h3>01:01:43 &#8212; Political messaging</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3703">01:01:43</a>] The. The wording. I mean, as soon as you say, I think. I mean, if I was that manager, I. There&#8217;s. I&#8217;m on your side. Even though I see the. What was the. What was the word? The polite fiction, I guess I see the polite fiction immediately, but I laugh because it&#8217;s just so.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3723">01:02:03</a>] And I think this is a skill I haven&#8217;t figured out how to teach people. But maybe this talk can help. Several times I&#8217;ve given you these polite fictions, these careful wordings. I think a mistake people make that they can do so much better is think through your wording before you&#8217;re in the room. Because most of these conversations are not spur of the moment. You either. They&#8217;re either on the calendar, this is my performance review, or whatever, or you at least know they&#8217;re gonna come up.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3756">01:02:36</a>] And so spend the time to have that key phrase ready so that you can just, with true sincerity say, yeah, you know, once I give my word, I can&#8217;t go back on that, and I deliver that. I look like I did mean it. In no way was I lying, but at the same time, I deliver it like I&#8217;m an angel just fallen from heaven. You know, poor, innocent victim. Both are true. And when I put the screws to that other boss long ago and said, well, I&#8217;m going to have to consider if my career is not as important to Amazon as is to me, I&#8217;m going to have to think about that again.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3799">01:03:19</a>] I said that with a warm smile, like, hey, of course I&#8217;m gonna have to think about that. And I just look like the kitten, you know, the anime kitten with the giant eyes. Well, body language matters, because if I say that to you, see, I can say that differently. I can say, well, Ryan, you know, if my career is not as important to Amazon as is to me, I&#8217;m gonna have to think about that. Then you&#8217;re like, well, screw you.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3825">01:03:45</a>] Whereas if I say, well, of course I&#8217;m going to have to think about what that means for me. Totally different delivery, same line, same words. Now, there&#8217;s some people watching this, engineers, who are like, I hate you. I hate the politics. I hear you. But this is human nature and human interaction. You&#8217;re dealing with other humans and their emotions are at play and their defensiveness and their own stress.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3849">01:04:09</a>] Do yourself a favor and get good at this.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3852">01:04:12</a>] Well, yeah, and to me, that, that is clearly your superpower. I mean, I can imagine so many other people in these situations not getting the outcomes they want because they word it slightly differently and it doesn&#8217;t come off, you know, the, the way they say it and, and kind of the, the, the interplay about what that person wants and the things that you could say. And how do you do that? Like, if we were to try to reverse engineer coming up with those polite fictions so that people can get more of what they want out of their careers, I imagine this would be useful even outside of your career.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3889">01:04:49</a>] Oh, it&#8217;s all through your life.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3890">01:04:50</a>] Yeah, all throughout your life.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3891">01:04:51</a>] It&#8217;s all. Any negotiation, any deal making, I call it. I&#8217;ve tried to reverse engineer, and we&#8217;ll do some more right here, right now. I call it being interpersonally warm. So being friendly, smiling, not getting agitated while being professionally firm, saying what I need to about what I really want, but in a way where I don&#8217;t bring anger or you versus me into it as much as I can. And so there are some key phrases.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3933">01:05:33</a>] A great phrase is help, right? How can you help me? I want to get to the next level. How can you help me? Because everyone loves to think of themselves as helpful. And so if I ask you for help, that&#8217;s just as opposed to I ask, what are you going to do for me? It&#8217;s that sort of phrasing. So Part of it is the attitude. I read a book I really love. I can share the book. It&#8217;s called Leadership and Self Deception, and it&#8217;s written by some research institute called the Arbinger Institute.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3972">01:06:12</a>] But what makes this book so interesting, what it taught me is don&#8217;t see the other person as an obstacle to what you want. See them as a human being trying to do the best they can in their situation, who has all kinds of problems. And what makes a huge difference here is when I start seeing my boss, who I want something from, not as well. This person controls my pay or my promotion, and I have to yank it out of them.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=3997">01:06:37</a>] That&#8217;s seeing them as a thing. They&#8217;re an obstacle, like a barrier across the road. If I see them as a human trying to get by, then I can emote to them and say, look, here&#8217;s what I need. What do you need so we can make this work? I want to help you because I want your help, and that&#8217;s an honest offer most people can understand, and so it comes from that. How do I see them? I think there&#8217;s a huge thing is we objectify others.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4029">01:07:09</a>] This happens anytime you&#8217;re working with another team. As an engineer, you did this all the time. I just need them to do this thing. How can I. Your thought is, how can I get them to do this thing that&#8217;s making them an object? I need to give you the right inputs and yank on the right levers so that the right thing comes out. I&#8217;m treating them like an API. I make the right call, I get the right result.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4050">01:07:30</a>] What you want to do is treat them like a person and say, look, I know you have a busy roadmap and I understand you have a lot of pressures, but I do need this. So what can we do together? How can I help you so that you can make the time or let me make this change myself? And the key is, once people feel like you&#8217;re caring about them as a person, they usually respond that way. Now, nothing works 100% of the time, and I can&#8217;t instantly recall one, but I&#8217;ve probably rolled out these polite phrases before and not one.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4088">01:08:08</a>] Like, I was debating politics with my college roommate, and I thought to myself, this is very recent. I&#8217;m going to use all I teach all day about how smooth I am and how influential I am. I&#8217;m going to use all my skills and I&#8217;m going to convince them of this point in modern American politics, which is very contentious. I failed. The best I can say is that we Left the conversation, nobody angry, friendly.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4119">01:08:39</a>] But I kind of got nowhere because sometimes their motives and what&#8217;s important to them just can&#8217;t be aligned with yours. So I&#8217;m not. My only point here is these techniques will get you way more success. I don&#8217;t want to convince anybody that like I have some magic recipe that&#8217;s 100% likely to always work out.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4142">01:09:02</a>] You said a few things and it sounds like you had some high level rules you could, you could give, but it&#8217;s hard to reverse engineer because it&#8217;s, it&#8217;s not a recipe inevitably it&#8217;s, it&#8217;s two people interacting and every single person&#8217;s different and seems like the, the unifying thing is to really imagine what is that person feeling and when you say things to them, what do they want and how will how you present yourself make them feel in the exchange.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4175">01:09:35</a>] And hopefully that goes in the direction you want, but obviously not always because it&#8217;s subjective and you can miscalculate.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4183">01:09:43</a>] So I think an analogy that may work for at least people who know chess a little bit about chess is I think of this a little bit like I&#8217;m not an expert chess player, but I understand there&#8217;s two pieces to playing chess. Well, one is of course knowing the board and how to move. The other is called a book opening, where you&#8217;ve memorized a set of opening moves. And I think what you can do in a lot of these conversations is open with a set of preplanned moves where you&#8217;ve thought about how am I going to make my first ask?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4220">01:10:20</a>] And you&#8217;ve thought about when am I going to do it? Like, don&#8217;t catch your manager wanting to have a deep conversation about career five minutes after a high severity problem on a Friday. Like they&#8217;re not in the mindset, right? If their hair&#8217;s on fire and they&#8217;re trying to get out the door to pick up their kids, this is not when you&#8217;re going to get the best hearing. So in the play chess analogy, set up your opening moves.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4248">01:10:48</a>] But then yes, at some point there are some general rules about chess. Again, I&#8217;m no expert, but like in chess, you want to hold the middle of the board. Being towards the middle is. So if you have a chance to move towards the middle, move towards the middle. Well, with a manager or any leader that you want something from, try to move towards that common ground where we can agree. But yeah, it&#8217;s about learning how to play well.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4272">01:11:12</a>] And I&#8217;ve spent a career learning how to play well in verbal conversation. And I think the biggest thing, I used to have quite a temperature. I actually got fired two separate times, put on layoff lists. Because I was volatile and critical early in my career, I put the temper away and I learned how not to go there. And that made a huge difference because people don&#8217;t react well to anger or criticism, even if you&#8217;re right.</p><h3>01:11:48 &#8212; Handling politically skilled operators</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4308">01:11:48</a>] So, I mean, obviously you&#8217;re very adept at this interpersonal way to influence people. When you were working in corporate America and you met someone else who you identified, had that skill set, let&#8217;s say some manager underneath you, or maybe managers in other orgs, or it could be an engineer as well.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4327">01:12:07</a>] Yep.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4328">01:12:08</a>] Is that something that, in your mind, that&#8217;s a positive thing, or is that something where you&#8217;re thinking, I have to be careful because that person can mold things around them strongly Both.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4339">01:12:19</a>] What you&#8217;re trying to do next is assess what&#8217;s their motive. People often ask me, what&#8217;s the difference between influence and politics? Like, when does influence become politics or manipulation? And for me, the answer is the skill sets are the same. They&#8217;re around motive. And so one thing I teach executive presence, and one thing I point out about executive presence is Darth Vader had it in spade.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4367">01:12:47</a>] Like, he had tons of executive presence and so did Palpatine. Right. They&#8217;re these powerful, commanding figures. These skills, being influential, can be used for good or evil. So with the example you&#8217;re talking about, the thing I&#8217;m now trying to figure out is, okay, this person is a skilled operator. You know, are they U. S. special forces or are they Russian special Forces? Right. Like. Like which side, you know, who am I dealing with here?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4394">01:13:14</a>] Right. Am I. Am I dealing with someone who&#8217;s gotta, like, rescue me and get me out of a hostage situation, or am I dealing with someone who&#8217;s across the line and is about to drop a bomb on me? And so I&#8217;m trying to figure out motive. And there&#8217;s kind of three cases even there. There&#8217;s people whose motive is to do good, easy to work with. Great. We both have high social skill. We&#8217;re going to be so effective together.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4421">01:13:41</a>] There&#8217;s people who are completely out for themselves now. You know, going back to Star wars, it&#8217;s very much like Sith versus Jedi. I&#8217;ve got to get my lightsaber up and I&#8217;m going to be fighting for my life. And then there&#8217;s this middle ground, though, that&#8217;s interesting, which is, well, this person has motives I can work with. They&#8217;re not altruistic. They&#8217;re not just trying to do well. But in this case they kind of want what I want.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4450">01:14:10</a>] Or I can give them enough wins and I can negotiate. I can be like, hey, you want this, I want that and that&#8217;s the deal making of, of we&#8217;re never going to be best friends. I don&#8217;t necessarily think you&#8217;re the best person. But in this limited scope we can both make money together or we can both ship something together.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4473">01:14:33</a>] Let&#8217;s say there&#8217;s someone who is extreme high performer but you can tell they, they will only do what will help them and you see a path to aligning what you both want. So it can be good. But you could tell that if this is ever off their path, they will not be on your side. Or in fact if there&#8217;s something that could get them ahead and put you behind, they would gladly do it. Would you still choose to ally with that person or would you kind of separate them from you and your org somewhere?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4507">01:15:07</a>] Well, if I could separate, I&#8217;d love to. But remember at work we don&#8217;t get to choose always the teams we work with. Like sometimes we need another team. Sometimes we need a team that&#8217;s run by a terrible person. Sometimes we need a team that&#8217;s run by a self serving person. I think if you want to succeed in your career, most sure get away or marginalize or minimize contact with difficult or unethical people.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4536">01:15:36</a>] But also learn to work even with the very unethical because sometimes you&#8217;re going to have to. Now of course there&#8217;s a limit. I&#8217;m not saying break laws or do things, you know, but, but sometimes you don&#8217;t get to choose who your teammates are or what system you need. And so I do think it&#8217;s worth being equipped. How am I going to do the best I can? And there are, there&#8217;s, you know, we don&#8217;t have time.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4567">01:16:07</a>] There&#8217;s a lot of techniques to protect yourself. There&#8217;s bring allies with you. For example, most slippery people, they love to be slippery in the dark where they&#8217;re not going to get caught. So if you can bring a few allies so it looks like, oh, everyone thinks this often suddenly they&#8217;ll say well I think that too. Because they, you know, part of their power is slippery. People usually can&#8217;t afford to have everyone know that they&#8217;re unethical because once we know, once everyone knows someone&#8217;s unethical, they do get shunned and, and so they have to keep it largely under wraps or defensible.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4617">01:16:57</a>] What There&#8217;s a phrase from politics called plausibly deniable, where they can deny that they were really as bad as maybe you&#8217;re saying. What you want to do is put them in a situation where it&#8217;s easier to go along with you than to fight you. So construct the situation where they&#8217;re like, okay, this isn&#8217;t the best for me. Like, I&#8217;d rather stab Ethan in the back, but, boy, there&#8217;s a lot of witnesses.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4642">01:17:22</a>] Right? That&#8217;s. And so you. And it&#8217;s unfortunate, you know, again, I know many engineers will be frustrated. Why do I have to do all this crap? Can&#8217;t I just do good work? Why? Why? Sorry. Humanity going back. By the way, read any, you know, ancient text of philosophy or religion. Humans haven&#8217;t changed. They&#8217;ve been mean to each other since the first ape clubbed the other ape. This doesn&#8217;t change.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4666">01:17:46</a>] So it&#8217;s. I&#8217;m sorry that it frustrates you, but you&#8217;re gonna have to do it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4671">01:17:51</a>] So it sounds like the best way to prevent yourself from backstabbing is to have a really strong, I guess, soft power in your org where there are people who will defend you. Or just the setup is that you would be too powerful for them to come after you.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4688">01:18:08</a>] Not worth it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4689">01:18:09</a>] Not worth it, right?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4690">01:18:10</a>] It&#8217;s, it&#8217;s, it&#8217;s like all the animals in the animal kingdom, you know, like porcupine. All right, plenty of animals can eat a porcupine if they&#8217;re willing to get a mouthful of quills, but it&#8217;s not worth it. Like, you know, and I&#8217;m sure there are many other examples, but you, you want to be not worth it. It&#8217;s just easier because remember, this is important other than cartoons, like a Darth Vader. People don&#8217;t wake up in the morning.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4720">01:18:40</a>] That slippery person does not wake up in the morning and say, I&#8217;m an evil jerk. And that&#8217;s all I ever want to be. Their self narrative is more like, I&#8217;m doing what I need to. I&#8217;m practical. Other people are wishy washy and have all these optimistic things. I&#8217;m practical. And some people get upset that I&#8217;m so practical. Well, that&#8217;s not my fault. That&#8217;s what they&#8217;re telling themselves. And so what you want to do is help them with their narrative and say, you know what?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4751">01:19:11</a>] You&#8217;re right, you&#8217;re very practical. And in this situation, the practical thing is to go ahead and help me out because I&#8217;ve got a lot of support and, you know, I&#8217;m a rising star, and it&#8217;s, you help me out and I&#8217;ll remember. And they&#8217;re like, oh, that is very practical. You know, even though. And that&#8217;s just. It&#8217;s important to remember that the other person&#8217;s narrative, we think of them as like, that person is so unethical.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4782">01:19:42</a>] They must wake up in the morning and think about how they can rob their grandmother. That&#8217;s not what they say about themselves. They say, you know, grandma&#8217;s getting old and I need to manage her funds because she&#8217;s not really up to it anymore and she doesn&#8217;t need all that anyway. But that is what they tell themselves, right? It&#8217;s not I&#8217;m a thief.</p><h3>01:20:01 &#8212; Orgs trying to steal scope</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4801">01:20:01</a>] What about. I mean, I think a lot of what we talked about is kind of implying within your org. Have you ever seen cases where other orgs were plotting to maybe take scope from your org or kind of, you know, battling between the org orgs?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4818">01:20:18</a>] Oh, geez, I&#8217;ve seen this all the time. And again, the narrative people are telling themselves is not usually I&#8217;m going to pillage scope from that other org. It&#8217;s they know their own org and their own mission really well. So they have a really clear idea why having your scope would help them. Meanwhile, they don&#8217;t know your mission and they don&#8217;t know everything you&#8217;re really doing. And so it&#8217;s very easy for them to imagine that your org is not that important.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4851">01:20:51</a>] A very smart engineering leader once said, respect between two engineering teams is inversely proportional to their distance. So the further apart they are, the more they belittle each other because they can&#8217;t see the work. And you hear this all the time. Like I think of Amazon S3, right? This service that stores now hundreds of trillions of objects. I&#8217;ve heard it described as, well, it&#8217;s just a big disk drive.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4879">01:21:19</a>] So this is very belittling. Like of course, at some level it is just a big storage system. That&#8217;s true. But the boil down, it&#8217;s really just a big disk drive is so dismissive. And you see this all the time. And the closer you get to home, the more you&#8217;ve seen the work or worked with the people or seen the complexities and all the edge cases. You&#8217;re like, oh, actually that is very complicated. It. Well, I see this with orgs, sure there are some leaders who are just like, yeah, we should take that org because I want it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4909">01:21:49</a>] But a lot of times what they&#8217;re doing is like, well, we can do so much more with it. Again, that internal narrative. Very few humans wake up and say, I&#8217;m going to Be evil today. What they do is they want something and they construct a line of logic which we&#8217;re very good at about why that&#8217;s actually a great thing anyway. And that&#8217;s where you get the org versus org fights.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4932">01:22:12</a>] Let&#8217;s say I&#8217;m an engineering leader. How do I protect my org from other orgs?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4938">01:22:18</a>] Well, first thing is you&#8217;ve got to get all this is the skunk trick. I guess we&#8217;ll use animals here. The skunk trick is make yourself unattractive. So trick number one is list all the things that they don&#8217;t know about that you have to maintain that are unsexy and they don&#8217;t want and have the customers for those show up and say how important they are. Oh, yeah, well, we actually run, you know, the Yugoslavia, and Yugoslavia is not even a country anymore, but we&#8217;ll use that.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=4965">01:22:45</a>] We run the Yugoslavian tax engine. And so, boy, we get a lot of tickets for that. And it&#8217;s going to have to be owned. So are you guys ready to take on that? That&#8217;s one thing you could do. The other thing is you want to make yourself thorny again. There is a little bit. Who&#8217;s the least attractive target? And so they&#8217;re out, sort of. Do they really want your org or do they want an org? And so one of the ways to be thorny, honestly, is to overreact and attack back and just make yourself like, oh, ouch.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5002">01:23:22</a>] They. They went public and volatile really soon. Maybe I&#8217;ll go for a softer target. Now, you have to be careful at how you do that because if you, if you behave in a way that makes it easy to discredit you, then you&#8217;re an easier target. Oh, see, Ethan&#8217;s not a very mature leader. We should definitely move that under me. I&#8217;ll make sure we don&#8217;t have this sort of unseemly behavior that&#8217;s weakening myself.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5028">01:23:48</a>] But if I can immediately say counterattack and say, you know, it&#8217;s really good that you&#8217;re thinking about merging our orgs. Your org is going to be so great as a part of our org and I promise I&#8217;ll take care of you. Then they&#8217;re like, oh, maybe. Maybe I messed with the bull and got the horns so you can. So there&#8217;s I, you know, I&#8217;m uncomfortable talking about sort of combative tactics because I see when you get to that, it&#8217;s a failure, in my opinion.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5056">01:24:16</a>] But if someone&#8217;s trying to maneuver and you don&#8217;t want that, it&#8217;s a matter of shining a light on it. And sort of exposing their motives if you can, while making a strong case for why the work you do is very important. Now where you&#8217;re vulnerable is if your work is behind, if you have weaknesses, if your work is behind, if it&#8217;s not making a lot of money, if it&#8217;s performing poorly, those are hard cases to make.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5085">01:24:45</a>] Whereas if you&#8217;re on a strong platform of high performance, then you have a lot of arguments hopefully about don&#8217;t distract us. Another great one is we know reorg cause a six month hit in productivity, we&#8217;re killing it on profitability, new customers, whatever is valuable. We should, you know, we shouldn&#8217;t even talk about this for six months. We need to hit these goals and get to year end because you know, in six months they&#8217;ll have moved on.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5116">01:25:16</a>] So one thing, that&#8217;s another delaying tactic and I hope what you&#8217;re really getting from this answer is, is how quickly I&#8217;m coming up with like here&#8217;s three or four different things. You just have to look at the situation and say how can I put this off, change it, scare them off, make myself unattractive, whatever I need to do. I&#8217;m just looking for what&#8217;s again narrative. What&#8217;s the best story? People love to think that facts make decisions, but what we know from psychology, people come to an emotional conclusion and then rationalize it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5157">01:25:57</a>] If I am a better storyteller, I give you that narrative that you&#8217;re like, yeah, that sounds right. That feels emotionally where you wanted to go. And then you have a story. I&#8217;ve helped you wrap your own story around it. And then once it&#8217;s your story, your internal story of how this should be, it&#8217;s very hard for anyone to shake that. So be the better storyteller.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5180">01:26:20</a>] You mentioned a lot of tactics on defense. What about the flip side? Let&#8217;s say you&#8217;re high performing manager and you see there&#8217;s a great reason for another org nearby to be absorbed into your org. What are the attacker tactics?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5199">01:26:39</a>] Wow, Ryan, when you said we would just go deep on transparency, you were not kidding. Ah, attacker tactics. So the best attack, which I would argue isn&#8217;t even necessarily an attack, but it has that effect, is a real story of how that&#8217;s going to create more value. If you can make a point that whatever metric you&#8217;re using, this group puts out one release a year, I can get it to two. This group makes $100 million, I can get it to 200 and here&#8217;s how then that&#8217;s actually a very good argument.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5241">01:27:21</a>] If we go to Maybe slightly less good arguments. They usually have to do with seniority, efficiency. I can save costs. I can. By consolidating this, we&#8217;re either going to get more done with less or, or we&#8217;re going to have simplicity in our communication or you&#8217;re going to have fewer direct reports, which is going to make your life easier. There are arguments that aren&#8217;t necessarily false, but they&#8217;re less directly about business growth and they&#8217;re more about making things smoother for the leader who&#8217;s making the decision, or nicer or cheaper.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5285">01:28:05</a>] They&#8217;re like second order effects. I wouldn&#8217;t, I hope no one would do this, but I know people do. The third attack tactic is clearly to go highlight flaws in the other or right to go show, well, this leader has this problem and this team has this problem and they have high turnover and they have high cost and look at this outage. And you&#8217;re basically trying to show, well, it&#8217;s a dumpster fire and you should let me put that out.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5315">01:28:35</a>] But what if that&#8217;s true, though?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5317">01:28:37</a>] Okay, if it&#8217;s true again, if it&#8217;s true, it&#8217;s a dumpster fire, then you&#8217;re offering to make things better. It&#8217;s where you&#8217;re kind of highlighting things that maybe aren&#8217;t as bad, you know, just like only pointing at the bad. Yeah, if it&#8217;s, if it&#8217;s true, an org is struggling. The truth is you can talk to your manager and say, look, the way I would do that though, is not say, I should take over them, I&#8217;ll fix them.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5342">01:29:02</a>] I would say, hey, I go to whoever owns it or the common boss, I say, hey, I can&#8217;t help but notice that you&#8217;re having a lot of trouble here. Is there anything I can do to help? That&#8217;s my opening gambit for I want to take it over because I can go in there and start helping. And then later they&#8217;re like, wow, it&#8217;s so much better under Ethan&#8217;s leadership. And at that point I can casually mention, well, you know, if it would really help you, you know, we could just consolidate.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5373">01:29:33</a>] Now that I&#8217;m here, I see all these efficiencies. That&#8217;s, that&#8217;s like another way to go about the same thing. I feel like giving all these answers, people are going to think like, wow, that Ethan is a real sadistic.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5387">01:29:47</a>] what actually happens though, I think, like, what you&#8217;re saying. So it&#8217;s kind of. I don&#8217;t.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5392">01:29:52</a>] I have seen it all. I&#8217;ve seen things, you know, that make me want to close my eyes for sure.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5397">01:29:57</a>] I kind of want to talk a little bit about, like, some of that interpersonal stuff or maybe, you know, the backstabbing, some of the politics. If there is someone within your org that is a people problem, they&#8217;re doing something. Actually, I don&#8217;t know, you. You can just immediately get them fired because they&#8217;re in your recursive reports.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5421">01:30:21</a>] have the evidence for sure. But yeah, you can. Absolutely. You can move very quickly if it&#8217;s clear.</p><h3>01:30:26 &#8212; Handling difficult people from other orgs</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5426">01:30:26</a>] But what if it&#8217;s someone in another org? So another org. There&#8217;s a person who is well liked within their org that is a major problem for your org. Then what do you do?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5439">01:30:39</a>] So one of my managers had this problem and he. He literally put someone in a position he called a meat shield, where it&#8217;s like, this person is a huge pain for our org or this org. Your job is to keep them off of us. And honestly, it&#8217;s going to be a terrible job, but I&#8217;ll reward you later. So you need to, like, go be a meat shield till this project&#8217;s over. And so the imagery is just. Yeah, no, it&#8217;s like it was, you know, like, put your back into it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5474">01:31:14</a>] Let them beat you.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5476">01:31:16</a>] Oh, my God.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5477">01:31:17</a>] And of course, he had to. He was very honest with them of, like, that&#8217;s your role. And I know it&#8217;s a terrible role, but I&#8217;ll make it up to you. You know, get us through this project. Like, go take one for the team and I&#8217;ll pay you back. But what else can you do when someone&#8217;s in another org? The first thing, the most important thing, if you want to try and make a change, is understand why they&#8217;re valuable to their org.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5504">01:31:44</a>] Because the reason they&#8217;re that other org, what they&#8217;re not doing is saying, I know we have this evil person, and as long as they&#8217;re pointed at other orgs, we&#8217;re okay with them being evil. That&#8217;s probably not what they&#8217;re saying. What they. They either aren&#8217;t seeing it or more likely that person. What they&#8217;re telling themselves is, well, they have a little bit of sharp elbows, but they get so much done that&#8217;s valuable.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5529">01:32:09</a>] It&#8217;s okay. And if people&#8217;s feelings are hurt, well, they&#8217;re soft. It&#8217;s kind of how they&#8217;re. So you have to understand where they&#8217;re being seen as valuable. And then what you have to do is go to that leadership and have one of a few Discussions. Look, we&#8217;re willing to give you this value without all this pain. Is there a better way? That&#8217;s one way you can go about it. The other way you can go about it is, look, your guy is driving us nuts or is mistreating us.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5563">01:32:43</a>] So that&#8217;s going to change. Either you&#8217;re going to give us a new interface, you&#8217;re going to. I can&#8217;t say you&#8217;re going to fire them, but you&#8217;re going to move them away from bothering us at least, or we&#8217;re going to stop cooperating. Right? Like if. If you&#8217;re going to inflict pain on us, we&#8217;re going to return the pain. Everything will be late, everything will be your fault. Everything will be escalated.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5587">01:33:07</a>] Everything will require. Six document reviews we&#8217;ll put in place. I&#8217;ll spend the rest of the day asking Chat GPT, what is the most policy checkpoints I could put on our next release? Right, like you can express this.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5599">01:33:19</a>] How do you message that with the right narrative without, you know.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5602">01:33:22</a>] Well, I mean, if. Okay, so that&#8217;s. That&#8217;s my internal narrative, I guess. That&#8217;s my, like, all right, screw with me, I&#8217;ll screw with you back.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5609">01:33:29</a>] Yeah.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5610">01:33:30</a>] My external narrative would go something like, dear peer of mine, this person is really making things difficult. You have this person on your team. I know they&#8217;re a valuable member to you and your team, but unfortunately our team is really struggling with them and I&#8217;d like to make a change. Option one, you can find a new interface person for us. Option two is we&#8217;re going to have to adjust to distance ourselves for the sake of my team.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5648">01:34:08</a>] And I think, unfortunately, that option is going to create a lot of friction between our orgs that really is going to take both of our time. And so I don&#8217;t want to take your time, but I have to to protect my people. Some of them are ready to leave. What would you do if people on your team were ready to leave? And so I&#8217;m gonna have to take some steps and that&#8217;s gonna increase bureaucracy and take a lot more of your time and my time.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5676">01:34:36</a>] And I&#8217;m sure there&#8217;s a better way.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5679">01:34:39</a>] That&#8217;s amazing because it&#8217;s the same thing. But you didn&#8217;t, you didn&#8217;t bluster or threaten it just by circumstance. If you don&#8217;t comply, your life will be harder. But I wish it wasn&#8217;t. But that&#8217;s just how it is.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5695">01:34:55</a>] One thing people underestimate is most leaders at a certain level, they may not have expert social skills, but they&#8217;re pretty they got there for a reason. They understand what they&#8217;re being told, even if they don&#8217;t understand it consciously. They&#8217;re sensitive to unspoken messages, and they understand that I&#8217;m giving them a chance to collaborate, but that there&#8217;s a stick up my sleeve that I didn&#8217;t come to this with no other plan.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5734">01:35:34</a>] And part of this is also how I project how you. If you look weak, like you&#8217;re begging, I don&#8217;t really care what you need. But, you know, I&#8217;m presenting it as like, wow, this is. This is really tragic because it&#8217;s gonna get hard for both of us. And what I&#8217;m conveying there is, look, you wanna trade punches, that&#8217;s okay. I play ice hockey, and sometimes someone on ice will hit me or, you know, be a little rough with me, and I&#8217;ll just look at them and say, you know, two can do this.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5769">01:36:09</a>] This was your freebie. You decide. But I&#8217;m like, putting him on notice, like, hey, the next time I have two elbows also. Right.</p><h3>01:36:19 &#8212; Handling weak managers</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5779">01:36:19</a>] Well, this conversation makes me think that let&#8217;s say you&#8217;re an engineer or someone who is reporting some. You want your, Your leader to. To be strong for your org. Because I can imagine if they&#8217;re not, let&#8217;s say they&#8217;re. They&#8217;re very nice and their org is getting, I don&#8217;t know, a lot of negative things are happening to it. And they just say, oh, that&#8217;s okay, you know, we&#8217;ll deal with it as it comes.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5806">01:36:46</a>] And the. Everyone else is going to step on them and that&#8217;s going to affect you if your manager can&#8217;t stand up for the org.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5816">01:36:56</a>] Absolutely. And I think, remember your manager. I&#8217;ve tried to showcase that your manager doesn&#8217;t have to be a mean person to be firm, to be professionally firm, to have backbone. They have to be skilled. A lot of people, this is important. A lot of people don&#8217;t know how to be socially skilled. And so they can only say hard things once. They let themselves get angry or upset. That&#8217;s their fuel is if I need to give you a hard performance message and say, ryan, you know, you&#8217;ve missed three dates in a row.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5852">01:37:32</a>] I can only do that once. I get internally angry. And like, Ryan&#8217;s missed three dates. He let me down. And so now I&#8217;m coming at you. I&#8217;ve gotten my ability to speak to you and to say the truth because, see, I&#8217;m afraid you&#8217;re going to say, well, I haven&#8217;t. Or it was. My mom was sick or whatever, and you&#8217;re going to make it hard for me. So I have to be ready to fight. And some people can&#8217;t do that without first allowing themselves to be angry.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5878">01:37:58</a>] You want a manager, ideally, who can stand their ground because they believe in it and because they are willing to have confrontation. And I&#8217;m no master at this, okay? I have plenty of friends will tell me where I&#8217;ve been a jerk. But I try to figure out how can I stick to what I believe without ever needing to resort to anger as a fuel. I can just stick to belief. To your point about what you want from managers, there&#8217;s a graphic image that says, look, all managers are either an umbrella or a funnel.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5918">01:38:38</a>] And when the poo comes down, they&#8217;re either shielding their team with the umbrella or they&#8217;re a funnel dropping it onto their team. And you were discussing the funnel. The one who&#8217;s is like, yeah, we&#8217;ll deal with it. And what. What are they doing? They&#8217;re deciding that if you&#8217;re the engineer, they have a choice between push back on the boss above them, which feels scary and dangerous, and push back on you being upset that you&#8217;re being asked to do weekend maintenance for the fourth weekend.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5950">01:39:10</a>] And you&#8217;re an easier target because I have rank, I have position, I control your performance review, I control your salary to some degree. So they&#8217;re making a choice, which is, it&#8217;s easier for me, safer for me. And what you have to do in that trick in that space is change that balance of safety. So you either have to help them feel safe pushing back on their boss or. Or help them feel not safe asking for your fourth weekend.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5983">01:39:43</a>] Those are. Those are the only two choices, really, is you change the balance of safety.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=5989">01:39:49</a>] Well, that first one almost feels impossible to me. Like if I was. If I was reporting to someone and this manager just says yes to everything, has no backbone. I don&#8217;t know how I can give them a backbone, but I can definitely do the second option.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6007">01:40:07</a>] Well, you give them a backbone exactly by the second option. But like this. You say, let&#8217;s say I&#8217;m your manager. You say, hey, Ethan,</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6018">01:40:18</a>] this is.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6019">01:40:19</a>] There seems to be a pattern where we keep getting asked to do weekend work. I would love to help you push back on that. About how that&#8217;s damaging our team, distracting our team. I can give you some of the data, but I also have to be clear with you that my family is very important to me and I can&#8217;t keep working weekends. And so what I don&#8217;t want is for you to be in a position where you accept work that I&#8217;m going to have to decline.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6054">01:40:54</a>] And then you&#8217;ll have the problem that you committed to it and it won&#8217;t happen. And so I don&#8217;t want to see you in that position. How can we plan to push back next time? That&#8217;s, that&#8217;s how you line it up in advance.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6072">01:41:12</a>] And I&#8217;ve, I&#8217;ve heard this exact situation from a friend. Their manager was a yes man to manage their manager, very common. And so they were doing, committing to all these unreasonable deadlines and, you know, not protected at all. And it wasn&#8217;t a big deal because there&#8217;s turnover, but it&#8217;s fine, just hire new people and just keep saying yes to more and driving people as hard as you can. The narrative that you said there felt slightly more threatening than the, the other ones, because I can imagine, I can imagine that that more directly feels like you&#8217;re threatening not to do the work.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6112">01:41:52</a>] So, number one, you&#8217;re right, that wasn&#8217;t as polished as some of the other lines I&#8217;ve given you. But I think with five minutes, I could create a more polished version. And one of the keys that you&#8217;re getting at here is the wrong time to start setting this up is while the request is in hand, what you want to do. Like, if you&#8217;re getting asked to work every weekend, the right time to have this discussion with your boss is like Tuesday or Wednesday, after the weekend&#8217;s over and a little time has passed and before the next crisis arrives.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6146">01:42:26</a>] And the second piece, though is it&#8217;s then how do you make clear that your tolerance is limited? And yes, one of the costs of that, this is important if you&#8217;re not willing for the manager to say, well, if you don&#8217;t like it, quit, you can&#8217;t say anything. You&#8217;ve got to have enough confidence in yourself that if it does come to that, like when I went to my manager and I said, I need to know how important my career is to Amazon, I was also looking for an outside job.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6185">01:43:05</a>] Like, I had decided, I&#8217;m going to do everything I can diplomatically to win this over, but I&#8217;m also okay leaving.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6194">01:43:14</a>] I think that&#8217;s the big difference between this situation and all the other ones, which is in all the other situations, you had leverage. You could leave and they would feel pain. Whereas in this case, if you&#8217;re the lowly person or engineer, maybe they don&#8217;t see your value as much. If you leave, you say, okay, great, goodbye.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6217">01:43:37</a>] I mean, if you really are that discardable, then you&#8217;ve not created much value in Other words, absolutely, leverage is required. But good engineers are valuable and teams that are total turnover factories are not that effective. Now, if there&#8217;s a company that totally has a view of bring them in, burn them out, move them on, you&#8217;re probably in a wrong place, like that is, you know, if you&#8217;re at a place where you can&#8217;t create any sort of value, the right answer is you will have to get out.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6255">01:44:15</a>] And I think people get trapped believing there isn&#8217;t a better option. There&#8217;s always more jobs and I&#8217;m not belittling long searches or the difficulty or all the problems, you know, with maybe in engineering today of AI making it hard to get on entry level, but. But there are jobs if you do enough work. So one of the things you have to ask yourself is this being at the bottom of the funnel of bad work being rained down upon you, how bad is that compared to, say, doing the extra work to network and find something else or start your own thing?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6299">01:44:59</a>] Don&#8217;t be a victim. You have agency. If you prefer, you know, you can look at ownership. The book Extreme Ownership by Jocko Willink, whatever. There&#8217;s many ways to look at it, but in the end you have to be willing to take control of your life. Even if that does mean, by the way, that you weather the bad manager while you complete the training program or find the job. What a lot of people like to do is complain about how unhappy they are, but not do anything else.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6333">01:45:33</a>] I get it because it seems exhausting, like, oh, I just worked all day and now I worked all weekend. When am I going to look for a job? One of my beliefs is to work less, you often have to work more first, right? In other words, to get to the place where you can coast or have a good situation, you often have to do some ugly digging first. And this, the situation you&#8217;re setting up, is one of those.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6357">01:45:57</a>] You also hit on another point that&#8217;s really important, create leverage. If you create that leverage, you&#8217;re always in the winning situation. And then thing is, if your stick is long enough, if your lever is long enough, it doesn&#8217;t take very much force, which is why I&#8217;m able to be polite about it. I can be very soft in my hints about what I like because the lever is so strong, people are like, oh, we want to make this work right away.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6387">01:46:27</a>] And that&#8217;s what you&#8217;re trying to do, is have a big lever, I guess.</p><h3>01:46:30 &#8212; Backchanneling</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6390">01:46:30</a>] On another topic, there&#8217;s this skill of back channeling, which is not in public forums, but one on One in different places, driving your message to the right people so that you get the right aligned outcome. So how do you effectively back channel?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6413">01:46:53</a>] So I think of back channeling in two ways. There&#8217;s good back channeling and manipulative back channeling. Manipulative back channeling is where I&#8217;m trying to do something that I wouldn&#8217;t be willing to say in public. So that&#8217;s where you&#8217;re really undermining or painting the other, other proposal or the other leader in a negative light. I don&#8217;t think that&#8217;s usually necessary, and I&#8217;d like to say never necessary, but you&#8217;ll lose some because maybe they&#8217;ll do that.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6448">01:47:28</a>] What positive back channeling is, is giving people a chance to ask questions and find out what their concerns are, where they don&#8217;t have to bring them out in public. So maybe, for example, I&#8217;m the CFO or I&#8217;m the financial person and I&#8217;m really concerned about the budget, but I don&#8217;t want to just ask a bunch of budget questions in the meeting or I don&#8217;t want to put you on the spot. Or maybe I don&#8217;t realize that you&#8217;re mostly concerned about the budget.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6482">01:48:02</a>] If we have a back channel conversation, I can ask, here&#8217;s my idea. Is there anything you don&#8217;t understand? Do you have any concerns? And what I&#8217;m doing there is. I&#8217;m giving you a chance to feel, remember feelings and narrative. I&#8217;m giving you a chance to feel understood, to feel consulted, to feel listened to. Back channeling doesn&#8217;t just work because of information exchange. You do get data and that is good.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6511">01:48:31</a>] But it also works because there&#8217;s all this subconscious I made you feel important, I made you feel listened to, I made you feel heard. And that emotional buy in, particularly if the other project leader doesn&#8217;t do that, gives you a huge leg up because you&#8217;re building trust. You&#8217;re building trust that, oh, you take input, oh, I can work with you. And so even if the two proposals are equal, or even if the other one&#8217;s a little better, remember part of my bet if I&#8217;m in executive funding proposals is who can I count on when the chips are down?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6548">01:49:08</a>] Who can I count on to get this across the line? Who can I count on if there&#8217;s a problem? This other leader I don&#8217;t know as well, they didn&#8217;t consult me. Ryan came to me and asked me my input and showed understanding for my needs. Totally. I&#8217;m funding that because even though the payoff&#8217;s a little lower, I&#8217;M sure Ryan&#8217;s going to come through or I can work with him and so just realize we so underestimate emotions.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6580">01:49:40</a>] As an executive making a decision on which project to fund, I&#8217;m wondering how it&#8217;s going to make me look. I&#8217;m wondering what happens if it goes wrong. I&#8217;m wondering what happens if there&#8217;s conflict between you and me later. Are you going to resolve it reasonably? I have all these fears and worries, and the back channel lets me quiet those down as well as address factual concerns. And so that&#8217;s why it&#8217;s so effective.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6605">01:50:05</a>] I think if you were to negatively back channel, other people would see that you are a snake and then you would lose some rapport.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6617">01:50:17</a>] I guess people do negatively back channel and they have to be careful about how they get caught, right? Or don&#8217;t get caught. You know, this is what you would call a backroom deal. You know, the classic backroom deal is like the kickback where you support this and I&#8217;ll make sure you&#8217;re taken care of. It&#8217;s kind of like, you know, a mafia movie or something, right? It&#8217;s that. It&#8217;s the I&#8217;m coming to you with a proposal that amounts to you should do the wrong thing because we&#8217;re both going to benefit and I just want to make sure we&#8217;re on the same page.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6651">01:50:51</a>] And you know that even though I&#8217;m actually a snake, I&#8217;m not going to bite you. We&#8217;re snakes together. That&#8217;s the essence of that offer. And some people are up for that because some people are selfish and ambition runs wild.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6678">01:51:18</a>] well,</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6680">01:51:20</a>] I had to pay my dues and I got screwed over when I was in the weak position. And so now that I&#8217;m in the strong position, it&#8217;s my right to take all I didn&#8217;t get. It&#8217;s not really I&#8217;m screwing that. See, they always tell themselves a story that makes themselves look better. It&#8217;s not really I&#8217;m screwing those people. It&#8217;s that I&#8217;m getting what I&#8217;m owed. Like, this is only fair. And that&#8217;s another thing that&#8217;s really important is just when you&#8217;re dealing with someone who seems to be vicious, do at least realize that their story to themselves is not that they&#8217;re evil.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6712">01:51:52</a>] Their story to themselves is something else. And if you can figure out their story, you have a better chance to redirect that story.</p><h3>01:52:04 &#8212; Influence without authority</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6724">01:52:04</a>] We talked a lot about soft power and influence, and it. It sounds to me like that&#8217;s not necessarily directly proportional to how many recursive reports you have. Have you seen examples where there was a person within an org that had a disproportionate amount of influence?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6742">01:52:22</a>] Yeah, well, the first thing I would say is I&#8217;ve seen soft power come from ideas a few times. So Amazon for a while built a product. They called it Cloud Drive ultimately, but it was a storage system, kind of like Box or Dropbox, either one. And that proposal came from an entry level new college graduate engineer. He had an idea for it and he did two things to get it heard. The first was Amazon had an invite only engineering conference where only a tiny percentage of engineers went off site to this conference, but you could get an invite by making a proposal.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6785">01:53:05</a>] So he fought his way into this conference. Then he knew Jeff Bezos came and reviewed an idea poster session. And so he emailed Jeff and said, I have this idea and I&#8217;m going to be at the poster session. Do you think you could stop by my poster which is a very small ask of the CEO. Well then he got an audience with Jeff and he pitched his idea and what Jeff did was like it and email his triple skip.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6817">01:53:37</a>] So my boss, so there was Jeff, then this vp, then me, then a manager, then this new engineer. And my VP didn&#8217;t like the answer the idea at all. But Jeff had said look into it. And so, you know, and the project got funded, it got built. So outside his influence. And I can, I can tell another story about this. Whilst different people have different origin stories for it to some degree I worked with a slightly more senior person who created the Amazon Fire TV or helped put forward the proposal for it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6859">01:54:19</a>] And he also was not a super senior person, but he did a lot of legwork and had the knowledge and had the connections and managed to get that created. So what works here? How you get that outsize influence? I&#8217;ve seen it many times. You have to have an idea. And again, it&#8217;s that appealing storytelling. You&#8217;re telling a vision. These guys were telling visions. Wouldn&#8217;t it be great if we had a cloud storage system?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6890">01:54:50</a>] Wouldn&#8217;t it be great if we had a low cost living room device where people could watch prime video? They were telling an understandable sound bite story that everyone agreed with, at least on the surface. Because wouldn&#8217;t it be great if we had a cloud storage system? Yeah. Wouldn&#8217;t it be great if we had, you know, a living room device? A low cost living room device? Yeah, sounds great. Oh well look, here&#8217;s, here&#8217;s a way we could do it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6918">01:55:18</a>] So I don&#8217;t know if you have a follow up question on that, but influence can come from anywhere. It usually begins with a good story based in some real fact. It can&#8217;t be usually total nonsense and then told with enthusiasm and told repeatedly and specifically told the people who have the power to do it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6944">01:55:44</a>] What about, what are the the least discussed reasons that people get fired that you wouldn&#8217;t see in the performance notes, but they are there. So kind of that second thing that&#8217;s actually getting someone fired when there&#8217;s an upfront story told in the perf notes,</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=6964">01:56:04</a>] there&#8217;s a lot of rules about when you can and can&#8217;t fire someone. And so almost always the public story is some sort of performance story because that&#8217;s the one thing that&#8217;s allowed. So the hidden reasons are often if they&#8217;re not evil or the person isn&#8217;t just doing wrong work, it&#8217;s usually incompatibility. So the main reason I see people getting let go that isn&#8217;t discussed is their style and the leader&#8217;s style are very different.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7001">01:56:41</a>] And that style can just be one person is very detail oriented, one person is very high level and this can be on either end. That&#8217;s one type of incompatibility. Another one can be with engineers. It&#8217;s often one person wants to be very tech oriented and what&#8217;s the best technology. And the other person wants to be very business outcome oriented of look what makes the money, I don&#8217;t care if it&#8217;s a hack.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7031">01:57:11</a>] And where the firing occurs is where that becomes a religious debate and the two are just sort of at each other&#8217;s throats. And remember, what starts as a small thing often builds up where over time these become a label. That person is technically clueless, that person&#8217;s only about money and they start labeling each other and then it becomes personal. And once it&#8217;s personal, I&#8217;ve decided you&#8217;re a bad person.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7063">01:57:43</a>] And I see all these things that make you bad. And you&#8217;ve decided I&#8217;m a bad manager. And once you have this lens, you&#8217;re a bad manager. It really doesn&#8217;t matter what I do. You&#8217;ll see everything I do is bad. Because so many things are ambiguous and open to interpretation. That&#8217;s where people get fired. But of course it&#8217;s always labeled somehow performance.</p><h3>01:58:04 &#8212; Sexual harassment</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7084">01:58:04</a>] Well, you mentioned it could be labels perform. But you mentioned that you could get fired for performance. But there&#8217;s also those other HR reasons like sexual harassment and those types of things. Right?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7095">01:58:15</a>] I&#8217;ve seen one of the Most blatant cases, in my opinion of sexual harassment, I have to be careful even now what I share. And that will make the point. There was an executive hired, very high level position, a chief level position, who immediately started harassing women. And he was so blatant that it ultimately, when we asked one of the HR representatives on his team about had she gotten any complaints, she started crying because he had harassed her too.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7129">01:58:49</a>] So this is someone with the gall to harass a woman in human resources. But he disappeared. The leader terminated him right away as soon as this came out. But people ask me, how did such a person get in here? Didn&#8217;t we check references? And the thing I want people to understand is we didn&#8217;t have legal proof of this harassment. We had a lot of people who said it happened to them, we believed them. But we never took it through a court and got a judgment that said, oh, he&#8217;s a harasser.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7168">01:59:28</a>] So even though that&#8217;s true, if I name this person and say, don&#8217;t ever hire Fred Smith, you know, he harasses women, Fred can sue me because I have no proof of that. I have no legal proof. I know it&#8217;s true. He knows it&#8217;s true. It. So that&#8217;s why companies don&#8217;t say it. So when someone calls up and asks about Fred, I refer them to HR and HR says, oh, Fred was employed here from this date to that date.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7197">01:59:57</a>] And you know, they, that&#8217;s how they keep getting hired. I will say I&#8217;ve looked this person up on LinkedIn since then and the, the fact he ever worked at Amazon isn&#8217;t even on his resume. We caught it quick enough. He just deleted it. No awkward questions there? No. Why were you only there a month? He just deleted it, moved on. And that&#8217;s how they survive. So yeah, I&#8217;ve, I&#8217;ve seen and it&#8217;s hard to stop.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7227">02:00:27</a>] That was the next place that that person worked more than one month or</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7232">02:00:32</a>] I guess, yeah, maybe he was more careful, you know, maybe because we caught it so quick. I don&#8217;t know, I, I don&#8217;t believe that what he did at our workplace was a one off. I don&#8217;t believe that. But you know, of course I don&#8217;t know that.</p><h3>02:00:49 &#8212; Skip overruling firing</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7249">02:00:49</a>] Last time we met you mentioned that you as a manager could fire any one engineer that you wanted. Is there ever a case where you want to fire someone? Or let&#8217;s say a manager wants to fire someone but their skip says you can&#8217;t because the skip sees it and goes, that&#8217;s clearly there&#8217;s an ulterior motive here. That person&#8217;s fine. Like, has that. Have you ever seen that? Overruling.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7273">02:01:13</a>] I have. I&#8217;ve definitely seen a case where a manager floats the idea. I&#8217;m not sure Ryan&#8217;s the right person for us. And the manager knows your work and says, why don&#8217;t I move Ryan over here? Right. Why don&#8217;t I? I think Ryan. And again, if I want to make you feel good about it as a manager, what I would say is, I&#8217;d say, you know, I see that you&#8217;re struggling with Ryan. I&#8217;ve seen him do well in other environments.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7304">02:01:44</a>] Let me move him to this other place, he&#8217;ll be out of your hair. And I think he&#8217;ll be fine there. I don&#8217;t tell them that I think you&#8217;re going to be great there because that&#8217;s kind of hinting that they&#8217;re bad. I just make it socially easy for them to say, sure, move him away. That&#8217;s just as good as fired. From my viewpoint, this relies on your skip, of course, knowing or having a sense of things. And again, sometimes it is just incompatibility, your style.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7334">02:02:14</a>] I can see that you and your manager are cats and dogs in a bag. It doesn&#8217;t mean that you can&#8217;t get along well. It doesn&#8217;t necessarily mean the manager is bad. It does mean they lack enough adaptability. So I can work on that. But I may choose to save you in that time. Because what gets forgotten is people have personalities and preferences and not everyone can work for every other boss. I certainly had managers that some people at Amazon love and they drove me batty.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7373">02:02:53</a>] And I also know that for those managers, they knew I was a high performer, but they didn&#8217;t like my way of doing it. And that&#8217;s just style does matter. You know, you have music you like more than others. Some music you&#8217;re like, get this out of my ears. And some you&#8217;re like, I could listen to this all day. There is some of that element in work.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7397">02:03:17</a>] I mean, the more that we talk about the behind the scenes of how managers keep orgs together and retain people, feels like the orgs are, they&#8217;re like duct taped together with a bunch of like, you know, well worded phrases. This person goes here, oh, I&#8217;m going to get you what you want next half and I&#8217;m going to move people. And it&#8217;s all kind of back of the envelope accounting in the leader&#8217;s mind. Is that an accurate assessment?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7425">02:03:45</a>] You probably saw me smile when you said that. I certainly feel that way. What I mean is Managers start out like you would think. It&#8217;s just like I would compare it to an engineer with an architecture. When the project begins, you&#8217;ve got your nice little lines and arrows and boxes on a page of the system you envision. And when it ships, there is some resemblance to what you drew, but there&#8217;s all these special cases you didn&#8217;t think about and all these things you forgot that got like, well, what service can we put that in?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7461">02:04:21</a>] Because we&#8217;re out of time and the thing is shipped, bears a resemblance to the thing you designed, but it is not this sort of pure, beautiful ivory tower. Well, I think the same is true of orgs where managers set out of course to manage only by performance and to have great managers and everyone happy and to develop everyone&#8217;s career. And then reality hits of schedules and difficult people and locations and office changes and people out on leave.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7494">02:04:54</a>] And by the time it&#8217;s all done, you&#8217;re just really happy that it&#8217;s working mostly. And you know, I think that&#8217;s. I happen to enjoy military history. There&#8217;s a phrase for military history or military strategy that applies here that says, you know, with your battle plan, the enemy gets a vote. Like, it&#8217;s all great, you have a plan, but then someone starts shooting at you. Maybe if you heard it another way, the boxer Mike Tyson said everyone has a plan till they get punched in the face.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7527">02:05:27</a>] Well, I think your manager has a plan for a beautiful org right until like deadlines and outages and whatever, punch them in the face and then that plan starts to become whatever gets them through the fight.</p><h3>02:05:39 &#8212; How to fire managers</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7539">02:05:39</a>] We talked about individual firings for, for engineers. I think there&#8217;s a common sentiment that it&#8217;s harder to fire a bad manager than it is to fire a bad engineer. When you had managers reporting to you that let&#8217;s say they were low performing managers, how do you manage them out?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7557">02:05:57</a>] So I think it is harder to fire managers. There are three reasons. Reason number one is they usually are somewhat more experienced. So they don&#8217;t have the obvious bad performance. Meaning the first time I ever had to let someone go, it&#8217;s because they stopped coming to work pretty easy. Like, well, it&#8217;s Wednesday and you haven&#8217;t been here yet. I&#8217;m calling you to let you know, don&#8217;t bother to come in tomorrow.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7586">02:06:26</a>] Like pretty cut and dry. Managers don&#8217;t usually make mistakes at that level. So they&#8217;re more subtle though their weaknesses are more subtle because they got made a manager for some reason. They were technically good, they were politically good, they were organizationally Good. So they have some kind of strength that got them there. That&#8217;s reason one, Reason two is a manager&#8217;s work is hard to measure.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7611">02:06:51</a>] How do I exactly measure a manager&#8217;s work? Well, is it that they hired? Is it that they did their performance reviews? Is it that the feature shipped on time? Is it bug count? The manager&#8217;s job? It&#8217;s very hard to put a lot of metrics, which means when it comes time to fire or to consider performance management, we&#8217;re in this he said, she said opinion problem. And I think the third reason it&#8217;s tough to fire managers is managers are part of the system.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7648">02:07:28</a>] And so they know what it looks like. They know, like, oh, my boss isn&#8217;t that happy. How do I start positioning myself to be hard to get rid of? Like, they have a quicker Spidey sense, if that&#8217;s what they want. You know, if they want to stay, they have a quicker sense of how do I. How do I make myself difficult to pin down? And of course, it&#8217;s still possible. Like, I terminated a large, you know, not a huge number, but a large number of managers.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7682">02:08:02</a>] It&#8217;s just. It&#8217;s trickier.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7684">02:08:04</a>] Yeah, it sounds really hard to terminate. How do you do it then, in those cases?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7689">02:08:09</a>] So my ideal way of doing it, which I wasn&#8217;t always able to do, is to talk to them and surface the idea socially that maybe this isn&#8217;t working out and would they like to collaborate on finding a better place? So I&#8217;m phrasing it. As I notice, I have the impression that we&#8217;re struggling. I would say something like, I don&#8217;t think we&#8217;ve gotten off to the best start here, and I&#8217;m wondering how you feel about it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7722">02:08:42</a>] Would you like to work on that or, you know, do you also see that problem and you&#8217;d like my help finding some other option? Very nebulous. Smart managers get the message. I&#8217;m your boss. I&#8217;m not happy. I&#8217;m offering you a door where I give you some time to find a job or maybe a severance package. Do you want to do this the easy way? Many managers will be like, yeah, I do. You know, and of course, they&#8217;ll never say, oh, of course you&#8217;re right, I&#8217;m failing here.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7756">02:09:16</a>] I want a door. What they will say, if they&#8217;re equally smooth, is they&#8217;ll say, I&#8217;m so sorry that you&#8217;re not satisfied. Of course I&#8217;m doing my utmost. That&#8217;s me telling you, remember, I can make this hard for you. So you&#8217;re going to Pay well for my exit. That&#8217;s. That&#8217;s the counter negotiation. But ultimately, I want you to be happy and satisfied with my work. And if you&#8217;re not, of course, I&#8217;d like to discuss what changes we could make, which is my way of saying, I&#8217;m open.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7791">02:09:51</a>] I&#8217;m open to making it, you know, so I&#8217;ve never used the word fired or performance because that creates something legally called constructive termination. Where if I&#8217;ve said, you know, we might have to fire you, do you want to quit first? That is a legal problem called constructive termination, where I. Anything I do from that point is then seen as I&#8217;d already decided to fire you and now I&#8217;m making up reasons.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7818">02:10:18</a>] So I very carefully avoided that. They very carefully avoided ever saying, acknowledging that there&#8217;s an actual problem. What they say is, I&#8217;m sorry you feel that way. Right? Oh, I&#8217;m sorry you feel that way. That&#8217;s your problem. You feel weird things, but I want you to be happy. So if you&#8217;re not, of course I discuss alternatives. And that&#8217;s their way of saying, yeah, okay, I get that it&#8217;s not working.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7845">02:10:45</a>] What are you going to give me? So that&#8217;s one way you quote, unquote, fire. The other way is classic performance management, in which case you have to try and write down clear goals and objectives. You have to start documenting. You have to give. You know, there&#8217;s a legal standard that. There&#8217;s a legal standard and there&#8217;s what HR wants, but you basically have to document a bunch of expectations and then document that they didn&#8217;t hit them.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7876">02:11:16</a>] And then you have a performance case. Almost all managers will quit before that. What they&#8217;ll do is once you start the process, they&#8217;ll be like, oh, okay, this is going to take him 90 days. I have 90 days to fil. Find a new job. And they go find a new job.</p><h3>02:11:31 &#8212; Leverage when people are getting fired</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7891">02:11:31</a>] You mentioned that when the manager, I guess, knows the system is getting managed out or this conversation starting, they can sometimes switch to, how can I extract more value for myself? And I think a lot of people who are less experienced or they don&#8217;t know how the system works too well is when they&#8217;re starting to get fired. They don&#8217;t. They feel they have no leverage. And the fact that severance exists makes me think that they do have some leverage, although I don&#8217;t know if I fully understand it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7927">02:12:07</a>] What, what is the leverage that, let&#8217;s say, an engineer has as they&#8217;re getting fired that, that a company would want to pay for? Because severance, I mean, well, there&#8217;s cost, there&#8217;s the optics of it. Like, it looks good, of course. But I&#8217;m after this conversation, I&#8217;m a little more cynical. I feel like they&#8217;re paying for something for that report. So that report must have some leverage in that conversation when they&#8217;re getting.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7954">02:12:34</a>] Well, there&#8217;s several pieces of leverage. The first is this process. If you want to go through it, is going to take a lot of your time and you have to document things. You have to follow a process. You have to file a bunch of paperwork. HR is going to audit your paperwork. If you&#8217;re a low level manager, you know they&#8217;re going to write it. There are things I can do to string things out as a tactic.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=7980">02:13:00</a>] And so the first offer I&#8217;m making you is, hey, I&#8217;ll save you all that time if you will give me some money so that I have money in my pocket to go look for another job. I will save you this time. And frustration. That&#8217;s the first level of offer. The second level of offer is the story I&#8217;ll tell the team. Right. Is, look, I can either leave talking about what a terrible experience this was and what a monster you are.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8011">02:13:31</a>] I don&#8217;t say those exact words to you, but I can show you how to say that, or I can leave saying, you know, this just wasn&#8217;t a fit for me and I&#8217;m so excited to be moving on to Acme Inc. And I can&#8217;t speak highly enough about how Ryan treated me through this whole process. Ryan&#8217;s amazing. So which story do you want me telling my co workers? And so those are a couple of the pieces of leverage. And again, it&#8217;s this.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8040">02:14:00</a>] What&#8217;s that phrase of mine you like so much? The plausible story or plausible fiction?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8045">02:14:05</a>] Polite fiction.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8045">02:14:05</a>] The polite fiction. If I need to say this to you, I say, well, you know, ah, let&#8217;s say I&#8217;m working for you, Ryan. So far you&#8217;ve been nothing but supportive. And if I were to move on to a new job someday, I would, of course, explain how supportive you&#8217;ve been. But if I, if, if we&#8217;re discussing my moving on, you know, really, I would hope you&#8217;d want to support my transition financially so that I can tell that story.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8084">02:14:44</a>] And that&#8217;s how I&#8217;d be like, you know, and even that wasn&#8217;t maybe as smooth as I would do it if I had to. And by the way, let&#8217;s say you, you&#8217;re starting to give me performance feedback and I need time to be in the right headspace to have this Conversation with you. I would just say that. I would just say, you know, Ryan, I appreciate you&#8217;re starting to give me some performance feedback. I know we need to have this conversation.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8115">02:15:15</a>] Honestly, this moment. I can&#8217;t have it productively. Let&#8217;s have it tomorrow morning. Or can we have it tomorrow morning? And most managers won&#8217;t be like, no, I need to tell you how rotten you are right now because they&#8217;re already on edge a little bit. And it&#8217;s. So if you&#8217;re putting up this flag that says, I&#8217;m about to lose my shit on you, but tomorrow I&#8217;ll be a good child, they&#8217;ll be like, sure, come back tomorrow.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8140">02:15:40</a>] Because they&#8217;re sort of trained to. And I&#8217;ve put you in a really difficult situation. This is important where if I&#8217;ve asked for space and you say no, we have to finish this right now. Now I have a beef with hr. He was so mean to me. I asked for space. I asked if we could just talk tomorrow morning. And he said no, I&#8217;ve got to ridicule you right now. Very empathetic to hr. And now you&#8217;re the one in the hot seat.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8167">02:16:07</a>] Why couldn&#8217;t you give her until tomorrow morning? Why couldn&#8217;t you give him until tomorrow afternoon? Again, I hope. I would rather coach people on how to be in great high performing situations where they&#8217;re having different conversations. But you want to talk about the dark side, and that&#8217;s okay. I get that people want to know, don&#8217;t be afraid to buy time. You do have leverage and you may not get anything.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8198">02:16:38</a>] Remember, if your boss is starting to line you up to terminate you, you may not get anything. But if you don&#8217;t ask, you certainly won&#8217;t. If you don&#8217;t open the door and say, well, you know what? How could we make an amicable deal? And here I&#8217;ll give you your last piece of your leverage. Remember, your manager isn&#8217;t sitting across the table wanting to feel bad about themselves. They want to feel good about themselves.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8228">02:17:08</a>] And if they have a chance to spend a little bit of the company&#8217;s money, which isn&#8217;t really their money, so that they can look in the mirror and say, well, it didn&#8217;t work out with Ryan, but I took care of him, I gave him a cushion, they want to do that. And so they&#8217;re saving them hassle. There&#8217;s the public story you&#8217;re going to tell and there&#8217;s. They want to feel good about themselves. Most managers don&#8217;t like.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8257">02:17:37</a>] They hate firing. They avoid it. You know, as much as you might think, meaning you, the listener, you. Someone might think managers are just sitting around going, who can I. Who can I pitch next? They&#8217;re not. They actually hate it when this is important. One reason people don&#8217;t survive firings is by the time the manager actually decides, oh, I just. I&#8217;ve. I&#8217;ve tried to coach them. You may not feel this way, but in their mind, they&#8217;re like, I&#8217;ve tried to coach them.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8286">02:18:06</a>] I&#8217;ve tried to pair them with people. I&#8217;ve tried to give them all these chances, and they&#8217;re still not getting it. I don&#8217;t have any choice but to fire them. Once they&#8217;ve gotten to where they&#8217;re going to act, they&#8217;ve told themselves they&#8217;re out of options, which is why people getting back off the brink is very unlikely. You know, interestingly, right before I came here to talk to you today, I had lunch and I met a new executive.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8310">02:18:30</a>] He owns a company that does half a billion dollars of business a year. So it&#8217;s a big company. He&#8217;s built it over his whole life. And he was telling me how he&#8217;s going to have to hold someone in his organization who isn&#8217;t performing these. Kept on his staff for two years, he&#8217;s finally at the point where he&#8217;s going to have to hold them accountable. And what I&#8217;m thinking is he&#8217;s put off that hard message.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8337">02:18:57</a>] When he finally gets to where he&#8217;s going to give it, he&#8217;s so decided that they don&#8217;t meet the bar. They can&#8217;t get out of that. And it&#8217;s not because he&#8217;s evil. It&#8217;s just people delay. And so I coach people. People come to me all the time because I&#8217;m online. They say, ethan, I&#8217;ve just been put on a performance improvement plan. Can you help me survive it? Can you help me recover? And I tell them, honestly, no, you&#8217;re most likely going to be fired and there&#8217;s nothing I can do for you.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8369">02:19:29</a>] But here&#8217;s why. It&#8217;s by the time someone gets around to giving you a form of formal performance plan, they&#8217;ve tried everything else they could think of, and at this point, they just want you gone as quietly as possible. And it happens again all the time. People write me back and they&#8217;re like, you don&#8217;t understand. I&#8217;m going to. Three months later, I get an email from this, as you were right, I was fired.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8395">02:19:55</a>] Of course, there are exceptions to this, but it&#8217;s so common that I see this pattern of, how can I survive this? I&#8217;M gonna. I&#8217;m a hard worker. I&#8217;m a good person. I&#8217;m gonna show them. Three months later, you were right. I got fired.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8409">02:20:09</a>] Even if people had the awareness, because I guess they&#8217;re gonna listen to this conversation, I think they still lack that. A lot of people lack that skill of creating the polite fiction. You know, how do you and I, we talked about. We don&#8217;t need to go deeper in it. But I do think that even if I. Someone came to me and they said, I&#8217;m in this situation, and I said, here&#8217;s your leverage. Good luck. I think they would have trouble delivering that message in an effective way of saying, for instance, especially the team health one, because the team health one is more of a threat.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8443">02:20:43</a>] The saving time one is, hey, I can do something good for you. I&#8217;ll leave quietly. Just help me get some severance. The team health one is, I can make this hard for you unless you get me sufferance. I think delivering that kind of message as you&#8217;re leaving, especially when they have such a negative bias on you already, that&#8217;s going to take some incredible people skills. Yeah.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8466">02:21:06</a>] Like, yes, you&#8217;re right. Okay. This is part of the message, which is engineers in particular want to believe this is, in fact, maybe the most important message, even if it&#8217;s not the most exciting, which is, as an engineer, you want to believe it&#8217;s your technical expertise that controls the fate of your career. And it&#8217;s not only that, it&#8217;s your people skills. It&#8217;s well known. Right? Satya has talked about this.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8492">02:21:32</a>] Other leaders have talked about iq without eq, without emotional intelligence is a waste of iq. And so having strong interpersonal skills is critical. You know, it&#8217;s funny, there&#8217;s a famous book, I&#8217;m sure you know it, by Cal Newport, called so Good They Can&#8217;t Ignore youe. And what I find ironic about this is it&#8217;s all this stuff about how to be such a good worker, you can&#8217;t be ignored. Except this is a guy who has the social skills to both teach at Princeton and write books.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8524">02:22:04</a>] He&#8217;s not without the human skills to present his incredible technical accomplishments delicately and well. So I think it&#8217;s a huge area of learning. Now to exemplify this, how would I, if I, on the spot or here, you know, live, had to construct a better way to say that? I would say something gentler, like, boy, this is such a hard message. And I have so many friends on this team. I just. I don&#8217;t want them to think badly of me.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8564">02:22:44</a>] I don&#8217;t want them to think this is an unfair environment. Can you work with me so that this is a graceful exit?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8574">02:22:54</a>] And that&#8217;s good, that works. You know, I don&#8217;t feel like started at all.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8580">02:23:00</a>] And you know, later if I need to, I said, well, for it to feel good, I mean of course, you know, like I rough if it, you know, for it to feel good. I need enough security to get to my next thing. And I know you want that, I know that you don&#8217;t want anyone to suffer. And I tie into the other thing. But it is possible. And that is why I said this is how you get the time to go figure out how you&#8217;re going to deliver these messages.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8610">02:23:30</a>] Messages. Something people overrate or I guess underrate is recognizing that a lot of hard messages you don&#8217;t have to deliver cold. I mentioned this before, but you, you can buy the time or make the time to pre plan. Maybe not every word. It isn&#8217;t memorizing a speech, it&#8217;s more memorizing a few phrases and how you&#8217;re going to, you know, say what you need to in a polite way.</p><h3>02:24:01 &#8212; How to grow past senior eng</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8641">02:24:01</a>] I want to pivot to promos and talking about promotions because I know there&#8217;s a lot of stuff going on behind the scenes on alignment between managers and upper leadership on who&#8217;s going to get promoted. You mentioned the queue earlier and I think a lot of people, they get, they get stuck at this staff engineer, which is equivalent to the frontline manager level of how to get the promo to go further into those higher levels.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8668">02:24:28</a>] Do you have any advice on how to break out of that, that common level that people get stuck at?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8674">02:24:34</a>] Yeah, I mean, this is, this is my bread and butter, what I teach every day and kind of if I have a signature expertise, it&#8217;s how to move up further. What generally gets people stuck is they&#8217;re, they&#8217;re not learning the new skill of the next level. Instead they&#8217;re doing the current skill harder and harder. And so what gets you promoted early in life is hard, effective work. It is hard work. It is delivery.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8703">02:25:03</a>] It is shipping a lot or building a lot. But as you get further, you need different skills. You need to be able to delegate, you need to be able to communicate. You also need to be able to let go of your hard skills because if you&#8217;re trying to micromanage everyone and tell them, write it this way, write it that way, build it this way, you&#8217;re driving your engineers nuts. And they, you&#8217;re going to drive away your good people.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8726">02:25:26</a>] And so the way to get to the next level is to figure out what do I need to let go of, step away from, and what new thing do I need to master. And there&#8217;s a classic book on this. It&#8217;s by a guy named Marshall Goldsmith. It&#8217;s what got you here won&#8217;t get you there. It&#8217;s literally shows a ladder with a gap in it. Like, what got you this far isn&#8217;t going to get you up there. That&#8217;s kind of the classic book.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8754">02:25:54</a>] But if you need specific advice to your role, it&#8217;s absolutely talking to people a level or two above who&#8217;ve been through this and asking them, what did you have to let go of? What did you have to learn? How do I do that? What do I need to let go of? What do you see holding me back? I&#8217;m a huge proponent of getting advice. Getting advice is even better than getting feedback. If I ask for feedback, I&#8217;m basically asking you to do something that you may struggle to do, which is criticize me.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8786">02:26:26</a>] If I ask you for advice. Everyone has advice to share, and they&#8217;ll give you the same information, but in a more positive way. So to break through to that next level, it&#8217;s identify what&#8217;s different about that level and get good at that as opposed to just work harder. I see so many people working brutally hard, but ineffectively.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8811">02:26:51</a>] When it comes to the most senior promotions, I think there&#8217;s this idea of readiness, which I feel like is what you just talked about, which is developing the skills and being in the position where your manager would say, yes, this person fills out the template, I guess, for. For their promotion. But then there&#8217;s also the case of limited number of spots and kind of positioning yourself so that you are put in one of those spots.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8836">02:27:16</a>] And so imagine there&#8217;s a case where I&#8217;m a senior leader and I&#8217;m maybe I&#8217;m going for the director position, or maybe I&#8217;m going the. The principal engineer position. And there&#8217;s two of us both going for at the same time, but we both report to you. How would I position myself so that I get the promotion first?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8856">02:27:36</a>] Absolutely. Let&#8217;s assume you&#8217;re both equally qualified for a moment. So you&#8217;re not going to win on skill. It&#8217;s there in relationship and within relationship trust. So trust. Trust is about, do I have to look over my shoulder and wonder, are you doing things not the way I would do them exactly, but in a way that won&#8217;t make me look bad? That will, if you prefer, make us both successful? Do I trust what you&#8217;re doing?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8882">02:28:02</a>] Or do I? Because as a senior leader, I don&#8217;t have any time to micromanage you. I&#8217;m so busy myself, I need to be able to give you something and assume it will get handled. And trust. I often tell people, interestingly, trust is earned more in bad times than good times. My favorite analogy for this, which is a little bit violent, is when two people have been in a war together and I had to put my life on the line for you or you for me.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8910">02:28:30</a>] We now have a lot of trust, because if I trusted you, like, if you came through when the bullets were flying, I know you&#8217;ll come through the rest of the time. Well, what&#8217;s the closest thing at work? This is usually a crisis, a big outage, a big embarrassment, a lost account. If you jump on that and somehow fail, fix it, or show all the effort and it hurts you or it costs you, you cancel a vacation.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8935">02:28:55</a>] Not that I&#8217;m recommending doing that a lot, but if you make a decision that shows that you&#8217;re dedicated, I will remember when the chips were down, when we lost the Acme account, Ryan came through. He flew back from Hawaii early and made it. And that&#8217;s trust. Second thing is relationship. Relationship. In this case, I&#8217;m honestly thinking of, do I like you? And the point is, if I have two relatively equally qualified people and I&#8217;m going to suddenly spend more time working with one than the other, why would I not choose the person I enjoy?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8971">02:29:31</a>] And again, I know some engineers are just. If they were dead, they&#8217;d be spinning in their graves. They hate that idea. Look, one person&#8217;s a little bit more difficult to work with or even just a little bit less fun, and the other one&#8217;s more fun. I have to spend eight hours a day with this person, or six, because we&#8217;re not in every meeting the same. I&#8217;m going to be drawn towards the person that&#8217;s fun.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=8998">02:29:58</a>] And I know that seems unfair. And it doesn&#8217;t mean you have to kiss up to everyone. It does, though, mean it&#8217;s a good idea to be friendly and happy, right? Like, be, be pleasant. Be, be. Be that helpful, smiling person, because I&#8217;d rather spend time with you. I heard it expressed this way by Amazon leadership, by Bezos, I think, which is, when you come into the room, do you suck all the oxygen out of it?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9027">02:30:27</a>] Like, do you bring the room down where the room&#8217;s like, if you&#8217;re that person, you&#8217;re not going far, you&#8217;re not going any further. Whereas if, when you come in, they&#8217;re like, Right. Like, oh, Ryan&#8217;s here. This just got better. They kind of want you in that room. And, you know, it&#8217;s. It&#8217;s a. So if you want a simple rubric, do people want you in the room? If they kind of don&#8217;t, you&#8217;re in trouble. And if they kind of do, you&#8217;re doing great.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9055">02:30:55</a>] I do agree. I think a lot of engineers are gonna. This is gonna piss them off, but that&#8217;s okay.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9060">02:31:00</a>] See, it&#8217;s true. What I would say to the engineers I piss off is I am trying to help you. I&#8217;m not actually here because you&#8217;ll like me. I&#8217;m here to get you where you want to go. And that requires, you know, you asked me, could I be transparent? Part of the transparency is sometimes transparency is telling you things that I know you&#8217;re not going to like but that are holding you back. And you&#8217;re letting the fact you don&#8217;t like it let you get your backup and be like, I&#8217;m never going to do that.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9087">02:31:27</a>] Well, okay, but then you&#8217;re never going to move up. And I&#8217;m not here to apologize for the way the world works. The way the world works sucks, but it does work that way. And I want people to know that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9100">02:31:40</a>] When I think of the most senior level promotions, baked into the promotion packets is this idea that you need champions, or sometimes known as allies, which is people at that level or higher that say that person is doing work that fits my. My perception of that level. So because of that, I&#8217;ve noticed there&#8217;s this artificial mechanism, like, let&#8217;s say I&#8217;m. Let&#8217;s use management as an example. Let&#8217;s say I&#8217;m a senior manager.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9129">02:32:09</a>] I want to become a director all of a sudden. If I want to get promoted, I need to make sure that that VP over there knows my work and will vouch for me in the promo committee and that other VP over there. And there are cases where naturally I might need to be visible in front of those people, but there are also a lot of cases where it&#8217;s just, I need to fill out the promo packet in the way that we need so that the promo will go through.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9156">02:32:36</a>] How would you go about that? Let&#8217;s say you are a very senior engineer or a very senior manager in tech, and you&#8217;re trying to get those allies, but there&#8217;s no. At least as far as you could see, there&#8217;s no natural collaboration with those people. How do you get them as a champion on your promo packet?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9175">02:32:55</a>] So I&#8217;m going to tell you my favorite way and then I&#8217;ll give you other ways. My favorite way is you have your boss on your side, you&#8217;ve got that team with your manager where your manager wants to get you promoted. And what I did in those cases is I would email my peers or my skips and I would say, you know, Ryan&#8217;s going to be up for promotion in six months and because your group is adjacent to ours, I&#8217;m going to need to ask you for feedback.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9206">02:33:26</a>] So I&#8217;m letting you know that you&#8217;ve got six months to watch Ryan because I&#8217;m going to be coming to you. And number one, me asking doesn&#8217;t feel self serving because I&#8217;m talking about you. And number two, six months later, when that vp, I&#8217;m sure wants to say, well, I only saw Ryan twice. I&#8217;m not sure if I can write anything. I have, they know that I&#8217;m going to say like, hey, I told you, like I put you on notice.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9236">02:33:56</a>] Now sometimes I&#8217;ll just say I&#8217;m sorry it didn&#8217;t come together. I don&#8217;t know, I can&#8217;t provide feedback. But that&#8217;s, that&#8217;s the best way. And I did that when, when I got good at getting seen. This is important as a manager. I got good at getting my people promoted and that allowed me to attract more talent because, for example, I had a guy who didn&#8217;t get promoted and I said, look, you know, I&#8217;m good at this.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9262">02:34:22</a>] I, I will get this done in six months, but you&#8217;ve got to give me till the next cycle. But you know, I come through so you have to trust. And he later told me, he&#8217;s like, yeah, that sucks. But I, I decided I&#8217;d give you six months and we got it done. So that&#8217;s the best way. Now let&#8217;s assume your manager&#8217;s not that on board or they lack that skill or you can&#8217;t sell them on it. By the way, if you have good relationship, I&#8217;d tell them like, would you consider putting them on notice that you&#8217;re going to need feedback?</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9290">02:34:50</a>] If you can&#8217;t, the next best thing is for you to go talk to them and say, hey, I&#8217;m up for promotion. I&#8217;m pretty sure my manager is going to ask you for feedback. You&#8217;re a logical feedback provider. What can we do over the next six months so that you&#8217;re in a natural position to give me, you know, to give feedback or, you know, how could I keep you informed of my work? What would, and one of the keys here is if you need, you know, whatever Four champions.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9325">02:35:25</a>] You&#8217;re gonna have to ask six people or seven because one of them is going to leave the company and one&#8217;s going to get reorged and one&#8217;s going to say no. So you have to like over submission, subscribe. It&#8217;s like, you know, over capacity, just like anything else you design. And it is awkward, you know, to go to a, like a, another group skip. But the thing is you can frame it to them as hey, you know, this is our process.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9351">02:35:51</a>] Like, you know, I&#8217;m sure you get requests all the time for feedback and you probably get a lot of late last minute requests. I&#8217;m trying to do it right and talk to you six months in advance. And so what you&#8217;re saying there behind the lines is see, I&#8217;m already good. I&#8217;m like not causing you to get hit with no notice. I&#8217;m here, you know, setting this up in advance, making it easy for you.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9378">02:36:18</a>] Well my immediate thought, if I was that VP and someone came to me with that self serving request, I wouldn&#8217;t necessarily think that&#8217;s bad or anything. I think okay, that&#8217;s the process. But my immediate thought is this is not a high pry for me because I&#8217;m a vp, I got a billion things on my plate and this random person from another org is coming to me to serve themselves. Not necessarily something I care about, but just shows that it&#8217;s low on my priorities.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9407">02:36:47</a>] How do you get them to prioritize that?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9409">02:36:49</a>] Well, remember there is some truth that&#8217;s low on their priority list but they have people they need to get promoted where they need other VPs. So you have a VP too. And that VP this, the VP you went to knows that they&#8217;re going to need your VP&#8217;s help with some promos. And so the leverage you have without ever bringing it up to them is they do know it&#8217;s a system and it&#8217;s kind of part of their job. So is it a high priority for them?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9439">02:37:19</a>] No.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9441">02:37:21</a>] The only way you can make it a high priority is if you&#8217;re able to explain to them some relevance of your work. You&#8217;re going to have to give them what&#8217;s called wifm. What&#8217;s in it for me? You&#8217;re going to have to find some way to connect what you&#8217;re doing to something they care about at least a little bit. How are you going to make their life easier, faster, less stressful? When these systems work as designed, those VPs do work with your area somewhat and so they should have you.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9480">02:38:00</a>] You shouldn&#8217;t be asking someone who like has no relation your work whatsoever ever. It&#8217;s just they don&#8217;t really need your level of detail. But you, you can try to find some way to give them a little bit of nugget. I do think these systems work mostly though because vice presidents do know that this is how the system works and that they kind of need to do it. And if vice presidents are good at nothing else, they&#8217;re usually good at understanding this is the grease that keeps the thing flowing.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9514">02:38:34</a>] And by the way, I can write some mild approving verbiage of you very easily. It may look maybe because it was like I cut and pasted and replaced John with Ryan but you know, and replace you know, whatever the ops Org with the, the you know, the customer Org but I&#8217;ve written a million of these and I can do it pretty quickly.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9537">02:38:57</a>] Well, I think a lot of those, those champion. The champion support is a little bit contrived and it&#8217;s hard for me without my manager&#8217;s support to get a. You said what&#8217;s in it for me? Like a legitimate case of what&#8217;s in it for that vp because they&#8217;re so far, they&#8217;re so high up. I mean I know some people who, they&#8217;re in this spot, they&#8217;re very senior ic their manager is supportive but they lack maybe that proactivity that, that you have.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9566">02:39:26</a>] And obviously the, the engineer has the proactivity for their own case. So they, they debate, you know, should they go directly to that person? If so how. Because it doesn&#8217;t. They don&#8217;t have a great case.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9579">02:39:39</a>] Yeah. And I think, I think that coaching your own manager works pretty well in this sense. Your manager often knows what they need to do or at least is open to it and it just hasn&#8217;t made their priority list. Because you obviously care more about your career than your manager does usually. Right. Because it like that&#8217;s just human nature. And so the manager means well and wants to help but isn&#8217;t. Isn&#8217;t getting around to it.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9604">02:40:04</a>] And so if you just poke them a little bit. The other thing that is a middle ground is you can ask your manager would you send a note to that VP like I know I need to go get them to support me, but I don&#8217;t really know them. Can you send them a quick intro that says hey, I have a guy who&#8217;s coming up for promotion. He wants to come talk to you. You know, would you take a 15 minute meeting because we&#8217;re going to need your feedback.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9633">02:40:33</a>] It still gives you, you still are doing most of the Work, they&#8217;re just sending an email. But that&#8217;s a middle ground. You&#8217;ve opened a topic though. I really want to point out to all the engineers. You asked me had I ever seen a case where a skip level saved an engineer from being fired. And I said yeah, I&#8217;ve seen people moved around. What I never really seen is an engineer or any other anybody else get promoted over their manager&#8217;s objection.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9663">02:41:03</a>] You have to have your manager&#8217;s support because I can&#8217;t if I&#8217;m the big boss. I can&#8217;t promote you if the manager doesn&#8217;t agree because I&#8217;m just creating a mess. I&#8217;m telling the manager they&#8217;re wrong and now I&#8217;m telling them that they have to work with you more senior, you know, even though they didn&#8217;t agree, I&#8217;m just creating a complete mess. So if the manager isn&#8217;t supportive, I think engineers envision like I&#8217;m going to do such incredible work and I&#8217;m so technically astute that I will be recognized.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9697">02:41:37</a>] Even though this manager is a bozo, it&#8217;s not going to happen. It just, it can&#8217;t. And so you either have to get your manager on board or get out from under them and find somebody who is on board. Now a plug for people like me. Go find the managers who. I made a profession of getting people moved up, not undeservedly, but fast. And hell, that became a huge selling point, right? Go to Ethan&#8217;s org, he&#8217;ll make deals and get you promoted.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9728">02:42:08</a>] That was my recruiting tool. Come work for me and I&#8217;ll make it happen. Because it was known that I would back people and get the job done. I could attract talent and I could keep talent. I had one guy, my biggest star employee began as a mid level engineer, what Amazon calls a level five. He went to a senior engineer, he moved to manager from manager at an equal sort of lateral promo. He went to senior manager, then to director and by that point he caught up to me.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9761">02:42:41</a>] I was a director too. So we were out of space and he went to found his own company. Now he was a top performer, but three promotions in eight years. We worked together eight years. You know, we&#8217;re still close friends of course, but he powered my career and I powered his. But that example also brought other people like, oh, look at, look at what happens in this.</p><h3>02:43:01 &#8212; How to avoid politics</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9781">02:43:01</a>] Or we&#8217;ve been talking about politics for almost three hours now. And I can feel many, at many points people listening are probably thinking, I hate every single moment of this. I hate this. Some people are probably listening because they feel like they have to, but they wish they didn&#8217;t because have to know how the system works. And I know it&#8217;s inevitable a little bit that, you know you can&#8217;t avoid politics completely.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9811">02:43:31</a>] But let&#8217;s just say for someone who really just despises politics for all it is, what could you do to avoid politics if you were working at a company?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9822">02:43:42</a>] I think number one, it&#8217;s about choosing your leader. So if you can find a leader who shares your disdain of politics, hopefully that maybe comes from a similar tech background and wants to reward they believe as much as you do. It should be all about that work. Find that leader. That&#8217;s one thing you can do. The second thing is go work on the hardest area you can get into where expertise is really going to matter and you can stand out the most.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9852">02:44:12</a>] good,</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9852">02:44:12</a>] solid engineering work but that lots of people can do, it&#8217;s harder to stand out. I remember Andy Jassy. He was CEO of AWS at this time, but in the past he had been, I&#8217;m sorry, before he was CEO of all of Amazon and he was talking about principal engineers and he said principal engineers are normally expected to like advise others and mentor and do architecture. But these guys, these few guys working on aws, we just need them solving the hardest problems.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9885">02:44:45</a>] And so I absolve them of all of that other stuff. Well, for those engineers who just wanted to be. I don&#8217;t want to review architecture, I don&#8217;t want to give feedback, I don&#8217;t promo. I He was the perfect boss because he felt there they were working on such hard problems, he couldn&#8217;t spare them to invest in the rest of the org and he didn&#8217;t care. So you&#8217;re looking for that situation where your work is so essential because.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9914">02:45:14</a>] Absolutely. Look, you&#8217;ve asked about difficult people and I&#8217;ve given you all these rules about it&#8217;s great that your boss, it&#8217;s important your boss like you. If you have a skill that no one else has and that skill is valuable, you will get exceptions. I remember Andy again when he ran aws. I remember him talking about a high level employee who a couple people criticized him and said, that guy&#8217;s not working that hard.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9947">02:45:47</a>] You know, he&#8217;s not really working at an Amazon level. And Andy said, yeah, I think you&#8217;re right. But he&#8217;s in a role where we need him and I think he knows we need him and so we&#8217;re just going to have to live with it like he does. The one thing we really need. And you could kind of tell Andy was like, Andy&#8217;s one of the hardest managers I ever worked for. Just very demanding. But in this case he&#8217;s like, yeah, he&#8217;s got the leverage is what it is, you know.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=9978">02:46:18</a>] And he was very like good on him, was kind of his, you know, like, man, he&#8217;s kind of got us. We&#8217;re just gonna have to live with it. That&#8217;s what you have to do if you don&#8217;t want politics is you&#8217;ve got to be, you&#8217;ve got to have that essential skill again. You have to have some kind of leverage. So you have to literally live up to Cal Newport and so good they can&#8217;t ignore you.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10004">02:46:44</a>] Earlier in our conversation you talked about how when everything&#8217;s growing, it&#8217;s positive. Some when everything is kind of stagnant in an organization, it&#8217;s a little more zero sum where people are battling. So I can also imagine a growing company is much less likely or will have less politics. I think some amount is unavoidable.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10024">02:47:04</a>] Yeah, I like to give people an extreme to think about. And my extreme, I often point out, is the post office. Like what&#8217;s going on, good at the post office. And the only kind of roles are carry the mail or be the postmaster and there&#8217;s one postmaster. And that until that person leaves or dies, you don&#8217;t get that job. And so it just feels like growth changes so much of that because it&#8217;s not 25 people wanting one promotion.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10053">02:47:33</a>] It&#8217;s, you know, lots of opportunity. And I point out during the 15 years I was at Amazon, the staff size of the company I joined, it was 14,000 people. I left, it was 1. 4 million. So it grew a hundredfold, which is insane. As a result, I was able. My first team there was six people and nine years later I had 800. That kind of growth opens up doors that in a more normal company that&#8217;s maybe growing 5% a year or 10% a year, it&#8217;s just never going to happen.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10092">02:48:12</a>] So I strongly believe find high growth.</p><h3>02:48:15 &#8212; Advice for younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10095">02:48:15</a>] Last question is if you could go back to yourself at the beginning of your career and give yourself some advice specifically focused on this, I guess navigating corporate politics. Is there something that, that stands out to you that you&#8217;d say, yeah, I</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10111">02:48:31</a>] God, I wish I could go back to early me and share the idea that it&#8217;s not just being right, it&#8217;s, it&#8217;s not just being right, it&#8217;s not just being technically astute. There&#8217;s all this other stuff going on and wake up to it. I think I was blind or deprioritized it and thought, well, that&#8217;s. That&#8217;s management stuff. And even as an individual contributor, understanding, well, management stuff does control the world.</p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10142">02:49:02</a>] I wish I had been more aware. So I guess the advice to get it down to a single sentence is take it seriously that your relationships are what actually control your progress.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10155">02:49:15</a>] Awesome. All right, well, thank you so much for your time, Ethan. I really appreciate it.</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10159">02:49:19</a>] Thank you so much for the chance to do this a second time. It&#8217;s been so much fun and the time has flown by.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10164">02:49:24</a>] Awesome. And do you want to plug your stuff real quick?</p><p><strong>Ethan:</strong></p><p>[<a href="https://youtu.be/6WaeGfLnRvc?t=10167">02:49:27</a>] Well, I think if you&#8217;ve gotten something from this discussion and you want to know how to navigate your career, that&#8217;s what I do all the time. I teach classes on it. I have a newsletter on it. So if you want help. My goal is to help people succeed rather than bang their head against walls. If I&#8217;ve done some of that in this podcast, I can do more of it with more time. All right. Three and a half hours in the chair, baby.</p>]]></content:encoded></item><item><title><![CDATA[The Creator of Kubernetes On Building Kubernetes]]></title><description><![CDATA[Convincing Google, technical details, scaling for LLM workloads]]></description><link>https://www.developing.dev/p/the-creator-of-kubernetes-on-building</link><guid isPermaLink="false">https://www.developing.dev/p/the-creator-of-kubernetes-on-building</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 23 Mar 2026 09:01:01 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/191682583/9a7ec366bdb7e2c0e1d43a3afd21ab59.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>This is a conversation with <a href="https://www.linkedin.com/in/brendan-burns-487aa590/">Brendan Burns</a>, co-creator of Kubernetes and current technical fellow / CVP at Microsoft working on Azure. We discussed what it was like building it at Google, how he got buy-in, and what he learned along the way.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/FKijpCEH9D8">YouTube</a>, <a href="https://open.spotify.com/episode/1uf1CiawJ3qU7SeqKE2kxP">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-FKijpCEH9D8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;FKijpCEH9D8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/FKijpCEH9D8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/191682583/000037-how-he-convinced-google-leaders">00:00:37 - How he convinced Google leaders</a></p><p><a href="https://www.developing.dev/i/191682583/000926-building-the-mvp">00:09:26 - Building the MVP</a></p><p><a href="https://www.developing.dev/i/191682583/001143-how-he-made-time-for-kubernetes">00:11:43 - How he made time for Kubernetes</a></p><p><a href="https://www.developing.dev/i/191682583/002528-technical-details-on-building-kubernetes">00:25:28 - Technical details on building Kubernetes</a></p><p><a href="https://www.developing.dev/i/191682583/003846-rallying-the-open-source-community">00:38:46 - Rallying the open source community</a></p><p><a href="https://www.developing.dev/i/191682583/005001-scaling-kubernetes-up-for-ai-training-workloads">00:50:01 - Scaling Kubernetes up for AI training workloads</a></p><p><a href="https://www.developing.dev/i/191682583/005531-reflections-on-getting-a-phd">00:55:31 - Reflections on getting a PhD</a></p><p><a href="https://www.developing.dev/i/191682583/010022-the-inevitable-trajectory-of-software-is-death">01:00:22 - The inevitable trajectory of software is death</a></p><p><a href="https://www.developing.dev/i/191682583/010416-top-book-recommendations">01:04:16 - Top book recommendations</a></p><p><a href="https://www.developing.dev/i/191682583/010522-advice-for-his-younger-self">01:05:22 - Advice for his younger self</a></p><h1>Transcript</h1><h3>00:00:37 &#8212; How he convinced Google leaders</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=37">00:00:37</a>] Let&#8217;s start with Kubernetes because that&#8217;s super interesting. I don&#8217;t fully understand the business motivation. Like let&#8217;s say I was your director or something like that and you, you came to me at this and you said hey, let&#8217;s do this for everyone. I don&#8217;t fully understand what would be in that strategy doc or that, what would you say in that meeting that would say here&#8217;s the impact for Google if we invest in building this for the industry?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=69">00:01:09</a>] Yeah, it&#8217;s funny because the hardest part actually of the project I would say in those early days was actually articulating that. And I think it was really clear in our heads. But figuring out how to convince people was tricky. And I think there were a variety of different ways that we articulated why it was important. One of them was related to the MapReduce white paper. So MapReduce at the time, especially Hadoop and Big Data were a big deal.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=105">00:01:45</a>] I think that other things have kind of replaced them at this point. But like MapReduce was a big deal and the big data revolution or whatever they called it. And you know, Google had written the original white paper, but Hadoop was an open source project that Google had nothing to do with and got no credit for. Right. And they just read the white paper and they re implemented it and it&#8217;s not the same.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=132">00:02:12</a>] It&#8217;s similar but it&#8217;s not the same. And so part of the argument was like, look, we have this cloud and we want to be influencing the technological landscape. If all we do is kick out white papers, we&#8217;re not, if it doesn&#8217;t run, if it&#8217;s not something that people can run, we&#8217;re not going to be in the driver&#8217;s seat. And so that was one of the arguments. I think the Other couple of arguments were like, why Containers?</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=163">00:02:43</a>] Why not why, why people are using VMs, why containers? And a lot of that was talking about, look, the demands of writing software. We know internally, we know from doing this internally that the demands of writing reliable software necessitate having systems that are sort of like autopilots for your application. And we know that this is something that, as software becomes more and more critical to more and more businesses, this is something that they&#8217;re just going to have to have.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=194">00:03:14</a>] And so that&#8217;s sort of the why Containers part. And then I think that the third part was the like, why Open Source, right? And in some states that&#8217;s like the most interesting conversation because people are like, wow, this would be, you know, you&#8217;ve convinced me, right? Like, you&#8217;ve convinced me, we should build it, we should make it available to the world. It&#8217;s something that they&#8217;re going to find useful.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=214">00:03:34</a>] But wouldn&#8217;t it be so much better if they could only use it on our platform? And you&#8217;re like, yeah, that&#8217;s absolutely the case, but you can&#8217;t win if you make it only on your platform.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=228">00:03:48</a>] Why is that?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=229">00:03:49</a>] Well, because there&#8217;s other platforms out there, right? And so if you make it an exclusive, then the people who, for other reasons are on other clouds or on, on premise, they&#8217;re shut out and so they&#8217;re going to just go build an alternative, right? Like the open source. It&#8217;s sort of like the Linux. You know the reason Linux won, right? It&#8217;s because Linux could go anywhere, right? The whole reason that open tech and open ecosystems win is because the majority of people are going to be not on your platform.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=265">00:04:25</a>] Like, if you&#8217;re, if you&#8217;re not the leader and you know, GCP was not the leader, then the majority of people are not going to be on your platform. And so if you make it such that the majority of people can&#8217;t use your thing, they&#8217;re just going to ignore you and then they&#8217;re going to go build their own, right? Whereas if you go and build it and you build it for everybody, but you make sure that it&#8217;s awesome on your platform, then you have a chance of attracting more people to your platform than otherwise.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=291">00:04:51</a>] And then I mean, also in some ways it&#8217;s just like the aesthetic of the time also, right? It&#8217;s like if everybody&#8217;s using Linux and everybody&#8217;s using Docker and everybody&#8217;s using these programming languages that are all open. Like, if everything else is open source, you don&#8217;t want to be the thing that&#8217;s not right. And there&#8217;s only a few places where, like, where that hasn&#8217;t been true historically in technology where you could be different and still succeed.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=315">00:05:15</a>] And you have to be so differentiated that. And I don&#8217;t think that we were that differentiated. You have to be so differentiated such that people are like, oh, actually I want that thing so bad, I don&#8217;t care that it&#8217;s closed.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=327">00:05:27</a>] So at the time, just thinking what was the competitive landscape? I guess if I, if I remember it was, I mean, AWS was dominant, they were there first and doing very well. GCP at that time, probably an up and coming company or I guess offering. And so my understanding then that the idea is let&#8217;s pull market share away by giving kind of open source distributing Kubernetes to more and more developers and then they&#8217;ll be more open to kind of migrating or using GCP because you&#8217;ll make a.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=360">00:06:00</a>] They&#8217;ll pay attention, right? They&#8217;ll pay attention. And also like you change the dialogue too, right? Like tail light chasing is hard, right? Like if, if someone else has built VMs and everybody&#8217;s using VMs and all you&#8217;re doing is saying like, well, we&#8217;re building the same thing that they have, only maybe it&#8217;s a little bit better because we do something else over here or you know, whatever. Like that&#8217;s a hard market strategy to articulate.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=382">00:06:22</a>] But if you create a brand new playing field where you are the thought leader, suddenly people are listening to you. Even if they&#8217;re not using it on your platform, they&#8217;re listening to you. And that gives you way more voice. You get a lot more voice in the market. It changes the narrative, it changes who people are listening to. And so that control of the story is an important aspect of I think, how you break through that dynamic or you try to break through that dynamic.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=411">00:06:51</a>] Obviously they&#8217;re still in third at this point. So didn&#8217;t work out, but I mean, I wouldn&#8217;t say it didn&#8217;t work out. I think it worked out in general, but it&#8217;s still hard. Overcoming those kinds of market dynamics is hard. And I think the other thing that happened is everybody in the cloud consolidated around it. And so now Kubernetes is just sort of a utility everywhere.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=432">00:07:12</a>] That perception benefit of being the dominant offering, which, I mean if you, if you look at what happened in hindsight, it makes a lot of sense. I mean that is what happened and it&#8217;s, it&#8217;s a wonderful benefit. But I guess when you were looking forward and you Were talking to leadership. Were you cognizant of those benefits and saying we need to do this because we&#8217;re going to kind of become the dominant offering and it&#8217;s going to have all of these optics benefits?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=464">00:07:44</a>] I mean, I think we absolutely wanted to make sure that we were front and center in terms of thought leadership. And we definitely articulated that. Being in a thought leadership position is valuable.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=476">00:07:56</a>] It&#8217;s interesting because I feel like it&#8217;s hard to quantify. I mean, if I was in that meeting and we&#8217;re trying to make a call, how much is that worth?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=486">00:08:06</a>] Yeah, well, I think you have to also realize though, at the time it was pretty cheap, right? It was like eight or nine engineers and we kind of. And this is in some sense, I mean, it&#8217;s both a blessing and a curse. Like, part of the reason why we articulated and argued for having such a distinct brand, where the Kubernetes brand was separated from the Google brand, was that it kind of gave us freedom to fail also.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=509">00:08:29</a>] It was like, hey, if these eight people go off and do something and it turns out to be stupid, like we&#8217;ll just kill it off. And it won&#8217;t have, like, it won&#8217;t, you know, it won&#8217;t, it won&#8217;t damage the broader perception of the cloud. And so I think there&#8217;s that benefit of the open source part of it too. It helped with adoption, right? Like, it helped us and especially as we went to like the Linux foundation and things like that and truly established like an independent entity, it helped ensure that, you know, people like Red Hat or Azure or AWS could take a bet on Kubernetes and feel confident in that bet.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=545">00:09:05</a>] But it also was an insurance policy against failure. And also, to be honest, it simplified a lot of things too, because we were competing against startups at the time. Docker is a startup. They can be way more agile than a big company. And so by virtue of being a separate entity, we could be a little bit more agile also.</p><h3>00:09:26 &#8212; Building the MVP</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=566">00:09:26</a>] The earliest conception of this project was you and two others kind of hacking something together.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=572">00:09:32</a>] Yeah, it was a demo. I mean, it was sort of a demo almost. It was like, look at what we can do if we just smash a bunch of existing open source tech together.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=579">00:09:39</a>] What did that demo do?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=582">00:09:42</a>] I mean, it was basically like a basic cube control. It was like, hey, here&#8217;s a container I built. I mean, at the time you had to explain Docker to people. You were like, hey, here&#8217;s Docker. I used it to like build this Container image and then you could run it and deploy it and see that it had gotten distributed across a bunch of machines and that you could load balance to it because you&#8217;d hit a single endpoint and it would go, I&#8217;m replica one.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=606">00:10:06</a>] And then you&#8217;d hit reload and go, I&#8217;m replica three. So it showed that it was replicated and then basic health checking so if you killed it, it would come back. And a V1 to V2 upgrade, that was about it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=621">00:10:21</a>] How long did that initial MVP take to build?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=626">00:10:26</a>] I wrote it in, I don&#8217;t know, a little under a week maybe, something like that. I mean, like, I don&#8217;t, don&#8217;t work on the weekends, so maybe five days, Four days. Five days.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=635">00:10:35</a>] And did you drop all of your existing work? Because I&#8217;m imagining you had existing project work and this is kind of extra credit stuff that you were working on.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=645">00:10:45</a>] Yeah, well, I mean, I wouldn&#8217;t say I dropped it, but like in a timescale of that timescale, like you can kind of like slack on it a little bit, you know, like you could be sick for a week. I mean, I guess the thing is like you could be sick for a week, you know, And I&#8217;m not saying that that&#8217;s not what we did, that&#8217;s not what I did, but like, but, but there was enough flexibility in the system that like you could hack it together.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=670">00:11:10</a>] And I mean, believe me, it was hacked together, right? Like every possible shortcut to take and every. And you know, I think one of the things I&#8217;ve been good at historically is integrating other open source projects together, seeing how you can take stuff off the shelf and put it together. And so a lot of the nuts and bolts were pieces that we could take from other open source projects and kind of combine together with glue and glue code to give the feel of it.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=702">00:11:42</a>] So that helps too.</p><h3>00:11:43 &#8212; How he made time for Kubernetes</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=703">00:11:43</a>] I think a lot of software engineers, when they hear this kind of story, they think, oh, I have my existing responsibilities and I can&#8217;t necessarily go off and build this thing, even though I think it&#8217;s a great idea. Do you have any advice for someone who has that opinion?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=719">00:11:59</a>] Yeah, well, I mean, I think that what I would say, there&#8217;s two things, two. I have two answers to that. One is advice that I&#8217;ve always given to every single person that&#8217;s ever worked for me, which is I believe you can hide order 10% of your effort from your management. Right? So like, you know, there&#8217;s there, you have slack, you have the ability to slack no matter What? Right. And you know, as you get a bigger and bigger org, actually the percent that, what you can do with that 10% actually increases.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=756">00:12:36</a>] And a lot of really influential good ideas that I&#8217;ve had have come out of that. I mean, it&#8217;s another, I mean, it&#8217;s kind of a flip way of saying, I want to empower people locally to make local decisions that they think are optimal for the business without having to consult up the chain, without having to ask permission. And you tell people, when you tell them that you&#8217;re like, by the way, you&#8217;re also going to make a bunch of bad decisions and you&#8217;re going to waste a bunch of time.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=782">00:13:02</a>] And so you have to be comfortable with this idea of like, I&#8217;m going to try some ideas. Some of them are going to fail, some of them are going to succeed. When I look back retrospectively, the ones that have failed were effectively a waste of time. And it might be the difference between exceeded expectations and a met expectations. You don&#8217;t want to drop below meets expectations, but it might be the difference between an exceeded expectations and a meets expectations.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=805">00:13:25</a>] And you have to be comfortable with the notion that you&#8217;re going to bet five times and the payout from one of them hitting is going to be way better than the grinding to get that exceeds every single time. And I think there&#8217;s equally valid paths where you don&#8217;t do that. And I think you have to be the right kind of person who&#8217;s willing to take that kind of chance. And that&#8217;s not everybody. And that&#8217;s okay.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=834">00:13:54</a>] And I think the other side of it, but I always remind everybody also though is like, people say things like that to me sometimes and I&#8217;m like, so do you play Call of Duty? Do you watch Netflix? Do you watch YouTube? Because I pretty sure there&#8217;s probably 10, 15, 20 hours in your week at least when you&#8217;re doing something that&#8217;s not work. And I can tell you in that time period, I wasn&#8217;t doing anything except for this and work and a little bit of family and sleeping.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=865">00:14:25</a>] And so sometimes it&#8217;s also about saying, well, what are you willing to give up? You know, to, to have the space to do that. And, you know, I&#8217;m not a big, like, I, I, I&#8217;m not a big like, work all night kind of person. But, like, it does mean, like, maybe not going to watch YouTube for a while, maybe not going to watch, you know, sporting events for a while.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=884">00:14:44</a>] That makes sense. And I mean, on that second point in this case, the returns of this project were exponential, obscene. If you put in two times the time for a year, you get 20 times the impact. So it just kind of makes sense in terms of investment of time.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=908">00:15:08</a>] Well, and also, I think, I mean, I found personally that it was addictive. Right. I mean, I think I benefited from two things. One is I really like to write code, right. Like, I enjoy it as an activity. And so if I&#8217;m choosing between Netflix and coding, I&#8217;m actually pretty happy just coding. So that&#8217;s a benefit for me. And then for me anyway, once people start using it and they&#8217;re excited about the project and they&#8217;re putting issues on GitHub and all of this kind of stuff, I&#8217;m just addicted to it.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=944">00:15:44</a>] I just want to close that issue. I want to help that person out. I want to. I&#8217;m going to go till I&#8217;m falling asleep on my laptop. And that&#8217;s just because I enjoy that. That&#8217;s why I&#8217;m in the industry. So even in the moment, I wasn&#8217;t. I mean, I was definitely not thinking about like, oh, here&#8217;s this payout that I&#8217;m going to get for the rest of my career. I was definitely in the, like, wow, I just want to keep this thing going.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=970">00:16:10</a>] I want to keep this, you know, I want to keep this rush going.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=973">00:16:13</a>] It sounds like it took a while for you guys to get buy in from leadership.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=977">00:16:17</a>] I think there was a solid six months of going from a very hacky prototype to something that, like, legitimately we thought somebody could take and use and laying down the right kind of groundwork for that. You know, there&#8217;s a lot of little details that you have to get right along the way. And, and it&#8217;s always nice also because, you know, a lot of, a lot of the people who we brought in in the early days had built similar systems before.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1012">00:16:52</a>] And so they were having this opportunity, this kind of clean room. It&#8217;s rare in your life as an engineer to get a clean room opportunity to rebuild something that you have ideas about how it could be better. It&#8217;s like getting a second chance, you know. And so that was also, I think, really attractive to people because it&#8217;s suddenly like, oh, wow, like this is a clean room. We don&#8217;t have any users right now, so we don&#8217;t have to be fixing bugs because some big company who pays us a lot of money is asking for something or whatever.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1041">00:17:21</a>] We&#8217;ve got this clean room time and we&#8217;ve all spent a lot of time thinking about what the system could look like. And so now we get to go and just build the thing that we imagined.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1053">00:17:33</a>] You mentioned that first point on hiding maybe 10% of your bandwidth from management. And I mean, that&#8217;s. That&#8217;s super interesting to me. What does that look like in practice?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1065">00:17:45</a>] Well, I mean, I think that what it means is that you should always have sort of like a side project that you think is relevant. Right? Like, you should always have something that is. That nobody told you to do, but that you think is important that you&#8217;re working on.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1081">00:18:01</a>] I see. So it&#8217;s kind of like, I remember at Google, I don&#8217;t know if they still do this, but at the time there was 20% time.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1087">00:18:07</a>] Yeah, it&#8217;s similar to that kind of idea. Yeah, yeah, exactly.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1091">00:18:11</a>] Okay, so when you say hide, you don&#8217;t mean hide. You say manage expectations so that your manager is also okay with you working on another project.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1100">00:18:20</a>] Oh, no, I actually do mean hide. Right. Like, don&#8217;t ask permission. Right. Like, sooner or later you&#8217;ll show it to them. But, like, it&#8217;s pretty like you need a solid, I don&#8217;t know, couple months or whatever to get to, like, a place where it&#8217;s something you could show to somebody. Right. And so, like, it&#8217;s all about saying, like, I&#8217;m not going to ask permission. I&#8217;m going to go build something that I think is important and useful.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1123">00:18:43</a>] And then obviously, when it comes time to launch it or whatever or put it out there, then you do have to ask permission. And so then, yeah, you say, hey, I built this thing, but you&#8217;ve had that time to get it from. Because, I don&#8217;t know, I feel like it&#8217;s hard to articulate the value of something like in a doc or in a PowerPoint. It&#8217;s way more effective if it&#8217;s like a running thing that you can, like, somebody can interact with.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1153">00:19:13</a>] Right? So getting that time to basically build it up into something that&#8217;s real and could ship. Because also, like, in some sense, your manager&#8217;s always assessing, like, well, should you spend your time on that or should you spend your time on this? Right. And by building it, you kind of like force their hand because it&#8217;s no longer like, should you spend time building this or should I spend time building this?</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1176">00:19:36</a>] It&#8217;s like, I&#8217;ve already built this. Do you want to ship it? And that&#8217;s in some ways a much easier decision. I don&#8217;t know about easier, but it&#8217;s not an either or. It suddenly becomes just sort of about, like, is your idea good? Because the work is done.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1191">00:19:51</a>] In the happy path, I feel like it&#8217;s a great idea. You launch this thing has impact. It&#8217;s great. What about in the case that you work on this thing and you didn&#8217;t tell anyone about it and then no one cares when you launch it or it&#8217;s not as good as we thought.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1207">00:20:07</a>] Yeah. And that&#8217;s the flip side, right? You have to be comfortable. I mean, as I said, you have to be comfortable with that idea that you&#8217;re going to waste some time and maybe there&#8217;ll be a waste time in the sense of like, wow, I could have been watching Netflix or know, whatever, and I. Instead I wrote a bunch of code that nobody liked. It could be wasting time in the sense of like, wow, I could have, you know, could have gotten promoted.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1233">00:20:33</a>] I could have done enough work to get promoted and I didn&#8217;t because I thought this was the great idea that was going to get me over the hump. But it wasn&#8217;t. And I think you just have to be comfortable with that. Like, you know, it&#8217;s taking. I mean, it is taking a risk. It&#8217;s not unlike in some sense like doing a startup or something like that. It&#8217;s taking a risk and you can&#8217;t assume. I think sometimes people go into any of these sorts of things and they&#8217;re like, oh, I will have the idea and it will be amazing and then it will hockey stick.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1263">00:21:03</a>] And I think if that&#8217;s your mindset when you go in, you&#8217;re probably setting yourself up first in disappointment. You have to go in with that mindset of, I think this is good, I&#8217;m going to try, but I&#8217;m okay if I fail. I know that I&#8217;m making an explicit choice here.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1280">00:21:20</a>] I also imagine at some point at the highest levels of engineering ladders, you need to take that risk to get promoted to higher levels. For instance, if you&#8217;re a staff engineer or senior staff engineer and you ask your manager, how do I get promoted? They&#8217;ll often tell you, you need to figure out what that project is. Because I can&#8217;t just hand this to you because it&#8217;s starting to become more ambiguous.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1306">00:21:46</a>] Oh, yeah, for sure. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1308">00:21:48</a>] I could totally see that this becomes a necessity at some point if you want to kind of grow. And I mean, this project also got you promoted as well at Google, right? From staff at some point.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1319">00:21:59</a>] Yeah. No, I mean, certainly my career absolutely benefited from the success there. Absolutely right. And I think you&#8217;re right that there&#8217;s also this aspect of at a certain point, you&#8217;re just expected to be the person who knows enough to come up with the really good ideas. And that&#8217;s just the expectation. It&#8217;s no longer about can you execute on the ideas that other people give you? And that&#8217;s a big part of it as well.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1342">00:22:22</a>] And I think there&#8217;s also the other thing I tell people sometimes when they&#8217;re thinking about getting promoted is if you create the idea yourself entirely, it&#8217;s blindingly obvious that it was you who did it. If you succeed and have impact in something that is a bigger project or someone else&#8217;s idea, you can still have a very successful career, but it&#8217;s a little bit harder for it to be directly attributable to you.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1377">00:22:57</a>] But again, I think that again, it&#8217;s a roll of the dice at some level. There probably are people out there who&#8217;ve tried over and over and over again and just have never had the right idea or just had the right idea at the wrong time. I mean, I think one of the other things that is interesting about innovation that is disruptive is that it&#8217;s a combination of being the person who has the idea and being in a time in which the idea can take off.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1407">00:23:27</a>] So you could have the idea, but it could just be the wrong time and it won&#8217;t do the same and it won&#8217;t go in the same direction.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1413">00:23:33</a>] That point on promotions, I think, I mean, if you create the scope, not only is it obvious that the credit should go to you, but it also feels kind of permissionless, like you don&#8217;t need to wait for, I guess, management or someone to give you the opportunity. You can kind of create it. And so you have a lot more control in that process. One thing on the business strategy, I guess before we leave that for kubernetes, is at that time, Borg to me felt like a competitive advantage for Google, like some secret infrastructure sauce.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1448">00:24:08</a>] I would have thought people would be kind of worried about giving away any part of that to the industry. So what was the thinking there? How. How did you convince people that hey, it&#8217;s okay?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1461">00:24:21</a>] Yeah, I mean, I think that there was a little bit of that and I think, you know, sort of to be a little bit make it into a little bit of a joke or whatever. I sort of, one of the things I said to people was it&#8217;s not like you men in black flash people as they leave Google. It&#8217;s not like everybody comes to Google and it just stays there forever. Right. And in fact, as we talk to people at Facebook, as we talk to people at Twitter, we talk to people at other scale out tech companies.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1487">00:24:47</a>] They were all building this stuff. It wasn&#8217;t really a secret. And there was also, I mean, mesos at the time was, you know, not the same, but similar. And like you could just see that there was going to be an open solution. And so in some sense part of the argument was like, look, there&#8217;s going to be an open source solution. Do you want it to be one that we can influence or not? It&#8217;s not like, do you want there not to be an open source one or not there&#8217;s going to be an open source one.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1506">00:25:06</a>] Do you want it to be ours or do you want it to be someone else&#8217;s? And it&#8217;s just reframing the choice. Right. And making it clear that people understand that that is the choice. Right. That you don&#8217;t get to choose the proprietary option because it&#8217;s just not viable.</p><h3>00:25:28 &#8212; Technical details on building Kubernetes</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1528">00:25:28</a>] When you were building that MVP for the Orchestrator, well, how&#8217;d you decide? Because there were no customers or anything like that. So how&#8217;d you decide this is the minimum set of features that we need for this to before we launch it?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1542">00:25:42</a>] Sure. Well, I mean, I think absolutely, you know, we benefit from the fact that there were three of us working on it. Right. So Craig was a great product manager and Joe was a great engineer and fantastic at API design. And I could write code fast. Basically, I think is sort of the, if I had to sort of stereotype all of us. You know, that&#8217;s the like, Craig was the product business guy and Joe is the like, I know how to design, really good at design kind of person.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1571">00:26:11</a>] And I was basically like, I can hack prototypes, like there&#8217;s no ways to know tomorrow. And I think we reflected a lot about our own experiences. And also we had seen the pain of people deploying into traditional VM infrastructure. And so we had that kind of knowledge of the pain that people were going through. And then at the time there were people like Netflix who were talking about immutable infrastructure and they were kind of advancing some similar concepts.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1607">00:26:47</a>] And so there was also kind of like a broader movement happening that we were taking part in. And so obviously there were literally no customers, but in some sense there were customers, they just weren&#8217;t customers yet. So it&#8217;s not like creating something brand new. I guess in some sense. I really don&#8217;t feel like Kubernetes was something that was brand new. I feel like it was a coalescing of a lot of ideas that were kind of circulating in the industry at the time.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1639">00:27:19</a>] And it just became an anchor point and a really good expression of those ideas.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1643">00:27:23</a>] So when you talk about, I guess you wrote a lot of code quickly, did you write most of the code, I guess for this initial MVP?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1654">00:27:34</a>] Yeah, I don&#8217;t know what the number is, but high 80s percentage, maybe more of the original code. And I think I&#8217;m still number. I mean, I haven&#8217;t contributed significantly to Kubernetes in a while and I&#8217;m still, I think, number five on the overall contributor, you know, overall contributor list on the GitHub commits. And I was number. I was number one for a long time.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1675">00:27:55</a>] After writing that much code for Kubernetes, which part of this system was the hardest to build?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1683">00:28:03</a>] I think I&#8217;m going to say, like. Because I don&#8217;t think any of this specific code was that hard. I think that the hard part was the decision that we made early on that it was going to be a really loosely coupled system. And so it&#8217;s very. Which is great for resiliency. Like we made this decision around very loose coupling, a lot of independent actors taking actions. There&#8217;s all these control loops running all over the place, which is really good for resiliency.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1716">00:28:36</a>] But when things go wrong, it&#8217;s really hard to figure out why it went wrong because you&#8217;ve got 15 different processes that are all having to work together to achieve an outcome. And so you can see that the outcome wasn&#8217;t achieved. But then you&#8217;re like, okay, but what happened? And now I have to sift through a bunch of different logs and a bunch of different operations of executables and sort of reconstruct in time what happened.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1743">00:29:03</a>] And especially early on, we didn&#8217;t have very good. We didn&#8217;t have very much consistency around logging. We didn&#8217;t have very good consistency about events and things like that. And so I think the hardest part, I mean, this is the hardest part of anything, I guess.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1762">00:29:22</a>] Because they are all distributed everywhere.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1765">00:29:25</a>] Yeah. And everything&#8217;s out of time sync and I mean. And hopefully you logged the right things. But a lot of time early on, like you didn&#8217;t log it. Like, you know, and because it&#8217;s an interaction effect, it&#8217;s hard to reproduce. Oftentimes it&#8217;s hard to reproduce the problem. Like if the problem reproduces easily, then it&#8217;s pretty easy to fix, even if you don&#8217;t have the logs, because you just go and add the logs and then you do it again and you see what happens.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1792">00:29:52</a>] But for Problems that are transient, that because of it&#8217;s just a race condition between two or three different things happening. You can go in and add the extra logs, but then you have to figure out how to make it happen. And that can be pretty tricky. And also, I mean, I&#8217;ll say the other thing is we were all learning Go. So maybe the other thing was there&#8217;s some gotchas in Golang and we were all kind of like learning all the gotchas on the fly.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1819">00:30:19</a>] I would have thought there&#8217;s something that&#8217;s controlling everything, right? Like there&#8217;s some leader or maybe some nodes that are looking at one of them to kind of coordinate everything. Like leader election if the leader goes down, I would have thought would be some really challenging problem.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1837">00:30:37</a>] Yeah, I mean, well, I think the reason it wasn&#8217;t that big a deal was because we relied pretty exclusively on Etcd to do that for us.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1850">00:30:50</a>] Etcd is another open source component?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1854">00:30:54</a>] Yeah, Etcd is an open source. It&#8217;s really part of Kubernetes now. But at the time it&#8217;s a RAFT based consensus system key value store. And so it was a pre existing piece of software that CoreOS had written that implemented the RAFT protocol because at the time, because Paxos was the original for this and Paxos is really hard to implement because the algorithm is really complicated and nobody understands it.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1885">00:31:25</a>] Well, probably somebody understands it, but not a lot of people understand it, but it&#8217;s provable. And then right around that timeframe people had come up with Raft, which is a provably correct consensus algorithm, but it&#8217;s way easier to implement. ETCD implemented the RAFT protocol and then gave you this consensus reliable store so that you could do, you had multiple replicas and it would do the consensus there.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1920">00:32:00</a>] And it doesn&#8217;t do leader election exactly, but it gives you enough primitives that doing leader election is relatively straightforward. And I guess I would also say that two things about that. One is we decided to force all of the access through an API server. So nobody had. And this was actually something I pushed really hard initially, but I think the general agreement, but I definitely pushed for it, we was that nobody got to use Store, everything had to be remote store.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1953">00:32:33</a>] Like nobody got to write stuff to disk themselves. Every piece of the system had to use the API server and had to use Etcd behind the API server as the way that it did any sort of persistence.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1968">00:32:48</a>] What&#8217;s the main benefit of that?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1969">00:32:49</a>] The main benefit of that is that everybody gets to restart all the time and they just come up and they work. So you don&#8217;t have to worry about corruptions, you don&#8217;t have to worry about schema changes, you don&#8217;t have to worry about any of the like. Everybody was effectively stateless except for the database. Like there was, there&#8217;s the ETCD consensus algorithm database and that&#8217;s the only place where there was state.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=1991">00:33:11</a>] And so as a result, the whole system was just a lot easier to make stable. The downside of it is it leads to this loose coupling where it&#8217;s a bunch of independent loops mediating everything through this storage layer, which made the debugging part harder. Those are the trade offs. If you have a complete log of I&#8217;m in. If you think of it as a state machine, it&#8217;s much easier to understand where you are and where you got to if you&#8217;re in a state machine.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2029">00:33:49</a>] But state machines are a nightmare to make reliable. They&#8217;re easy to debug, but they&#8217;re hard to make stable. Whereas the system we built was designed to be stable, but hard to debug. The trouble with the state machine is a state machine says the world looks like this and unless you get it exactly right, sometimes the world looks like something you didn&#8217;t imagine. And at that point you&#8217;re kind of screwed because your state machine doesn&#8217;t know what to do.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2060">00:34:20</a>] Whereas because we had these control loops that were based on a desired state and a current state and trying to drive the current state to the desired state. Like no matter where you woke up and found yourself, you kind of knew where you were supposed to drive to. And that. And that&#8217;s the stable part. That&#8217;s the stable part of it is that like it didn&#8217;t really matter where the system got itself. It was always trying to drive towards the desired state.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2088">00:34:48</a>] You know, inspired honestly a lot by like control theory from robotics actually. Like.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2093">00:34:53</a>] Oh, like PID.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2094">00:34:54</a>] Yeah, the same idea. Right. Like you could imagine if you tried to write a PID controller to balance a beam with a bunch of if else loops. It just doesn&#8217;t work very well.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2104">00:35:04</a>] And this kind of reminds me, because I was reading in some of the design, I guess it&#8217;s a feature of Kubernetes, is that it&#8217;s declarative rather than imperative. So you kind of just say, I want this to be true, I don&#8217;t care how you get there, instead of saying, just do X, Y and Z. I&#8217;m curious the pros and cons of that, that design decision.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2127">00:35:27</a>] Well, yeah, I mean, and that was something that was happening broadly in the industry, like that&#8217;s a part of the whole like infrastructure as code movement that was happening at the time. So we&#8217;re not the only ones who said that, but we definitely embraced it. You know, I mean, I think the benefit is, you know, you have clarity about the way you want the world to work. Right? It&#8217;s not like if you, if you, if you execute a bunch of instructions, start this, run that, do this, you&#8217;ve done a bunch of stuff in pursuit of some objective, but you never wrote down what the objective was.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2164">00:36:04</a>] There&#8217;s no record of what you were trying to achieve. I&#8217;m trying to create a website. Well, you didn&#8217;t write that down. You just took a bunch of steps with a declarative approach. You actually write it down, you say, I&#8217;m trying to create a reliable website. And here&#8217;s what a reliable website looks like. Hey system, could you take the steps to get there? And so you have that record and it obviously makes it easier for things to be self healing because if you&#8217;ve written it down, now I know where I&#8217;m supposed to go back.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2194">00:36:34</a>] If I get perturbed from that state, if something fails or something restarts, well, I know where I&#8217;m supposed to go back to. And similarly it has side benefits of once I write it down. Well, I can apply code review to it, I can apply unit tests to it. There&#8217;s a lot of the mechanics of how we do software development that apply once you write down that declaration. So a lot of those are the benefits.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2222">00:37:02</a>] I think the downside is probably just complexity in comparison to going click click through a wizard or whatever in a GUI learning. And you know, everybody complains about the YAML and I have to learn all this stuff and you know, like it does introduce a learning curve. Now I think fortunately at this point there&#8217;s enough education material out there that it&#8217;s not and Gen AI too for that matter, that it&#8217;s not that bad a learning curve.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2253">00:37:33</a>] But certainly in comparison to what people have done before, that&#8217;s probably the biggest downside. But I don&#8217;t know, I think that the upsides are like up here and the downsides are like way down, like there&#8217;s, there&#8217;s not a lot of downside.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2265">00:37:45</a>] I see. Yeah, I could also see that being helpful for I guess if you want to optimize anything under the hood because you&#8217;re just making a promise to people that this is going to happen, but if you want to do it in a more efficient way or something like that, then I guess it just gives you all the Power to do so.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2282">00:38:02</a>] Yeah, well, I mean, and that does make things like machines failing a lot easier because people don&#8217;t say, run this on this machine. They just say, I want three of this to be somewhere. If a machine fails, well, it just moves somewhere else because the application isn&#8217;t tied. Because I can&#8217;t. In some ways, I don&#8217;t know your intent. If you log into a machine and you start a process on that machine, is it because you wanted a process or is it because you wanted a process on that machine?</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2311">00:38:31</a>] I don&#8217;t know. You didn&#8217;t tell me. And so if that machine fails, what should I do? Well, I don&#8217;t know. Right. But if I. But if I know you said, hey, I just want three replicas, well, then I know it doesn&#8217;t matter that it&#8217;s on that machine. It could be on a different machine. You&#8217;d be just as happy.</p><h3>00:38:46 &#8212; Rallying the open source community</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2326">00:38:46</a>] I want to shift a little bit to kind of when Kubernetes was scaling, and it sounds like a large part of this was getting buy in from other companies and other people. And so how did you get the buy in from. I know OpenShift was an important part of Red Hat and other companies that join on. How did you sell those companies that Kubernetes is what you want to use?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2354">00:39:14</a>] Well, I think for a lot of them, especially in the early days, it was kind of that quote around undifferentiated heavy lifting. They had some other objective. OpenShift was trying to build a platform as a service or, you know, they were, you know, a lot of our early users who were also contributors, you know, they were trying to build some sort of reliable web service or something like that. Right.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2376">00:39:36</a>] And so it was like, well, we&#8217;re going to have to build this thing anyway. Why don&#8217;t we all build it together? And we don&#8217;t really care because we don&#8217;t think that&#8217;s our value. Like our. We don&#8217;t think our value is tied up in that layer. So we&#8217;ll go contribute to your thing because we&#8217;re going to get more value out of the collective than out of trying to do it ourselves. And so for a lot of the early partners, that was a big part of the argument was like, hey, we&#8217;ll let you in.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2403">00:40:03</a>] And part of that is making sure that they understand that they&#8217;re going to like that they&#8217;re going to be equal partners where it&#8217;s not like, because it&#8217;s one thing to take a dependency on something, but then you&#8217;re kind of like taking dependency on someone else&#8217;s roadmap. And so it was really important also to say, hey, you can come take a dependency on us, but also we&#8217;ll give you a seat at the design table.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2427">00:40:27</a>] So when you need new features, you can contribute those features. And here&#8217;s what we&#8217;re trying to achieve and it matches up with your roadmap and that kind of stuff. So I think that&#8217;s how we approached it. And then over time, people became more and more interested in being part of it because there was a growing ecosystem. So when you look at like networking providers or storage providers, as their users were starting to become Kubernetes users, they were motivated to make sure that their networking system worked well with Kubernetes or their storage system worked well with Kubernetes and things like that.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2463">00:41:03</a>] So that was sort of a secondary layer of partner discussions that we had.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2466">00:41:06</a>] Right. And that&#8217;s downstream of becoming the dominant player. And I guess that&#8217;s validating the open source strategy, which is you become dominant, everyone&#8217;s kind of got to integrate with you and all of that. How did you prevent Google from dominating in the roadmap or I guess controlling what Kubernetes would be given that it started at Google, funded largely by Google?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2490">00:41:30</a>] Yeah, I mean, I think that was really important and I think it was a critical part of gaining adoption. Right. And becoming the industry standard was giving it independence. And I think there&#8217;s two pieces to that. The first is getting it to foundation. So the creation, it was only a year in that we created the Cloud Native Compute foundation that we donated all of Kubernetes to the Cloud Native Compute Foundation.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2518">00:41:58</a>] And so getting the project, the logos, all of the legal stuff, trademarks, all of that stuff into an independent software foundation with the Linux foundation was critical. Right. Because it&#8217;s hard to partner if somebody else has trademarks on the Kubernetes logo or whatever. And then I think the other piece that was important, that came a little bit later, was writing down the governance rules. So for the first time for a few years, Kubernetes didn&#8217;t have any really governance rules written down.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2558">00:42:38</a>] It was a mistake, I would say. Right. Like we didn&#8217;t realize how it was really. It was something we should have done earlier, but we didn&#8217;t. And so we sat down in 2016 to write the governance rules. And I think all of us were aligned on this idea that we didn&#8217;t want any one company to be able to take control of the community. And we really built the community and the rules of governance to be Democratic.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2589">00:43:09</a>] You know, we&#8217;d never. I mean, I think that&#8217;s an aesthetic from Craig and Joe and I. We never set out to be like a benevolent dictator for lifestyle project. We always set out to be a distributed, you know, distributed ownership, democratic kind of project. And we codified. We codified a lot of that into the governance docs that, you know, continue to this day. So I think both those things together really helped make sure that it was an industry standard and not any one particular company standard.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2619">00:43:39</a>] But also, I think we&#8217;re critical to its success. I think they&#8217;re duels of each other. You can&#8217;t have one without the other.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2626">00:43:46</a>] People wouldn&#8217;t have come on if they didn&#8217;t see that it was governed well and open.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2632">00:43:52</a>] Yeah. Because obviously, if you&#8217;re thinking about adopting it or you&#8217;re thinking about putting it in your service, the thing you&#8217;re worried about is whose roadmap am I betting on?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2642">00:44:02</a>] When you said governance, is that literally, when I think of government, there&#8217;s a constitution somewhere?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2649">00:44:09</a>] That&#8217;s literally what we wrote.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2651">00:44:11</a>] Did you write that yourself or is that something that lawyers do?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2654">00:44:14</a>] No, we wrote it ourselves. In the span of about. It was a couple, three fairly intense meetings amongst six or seven of us. We got together and just kind of talked it through and looked at a bunch of other communities and kind of like, what had worked, what had not worked, what were we worried about, what were we trying to achieve? Some of it was codifying stuff that already existed. So we had some loose organization stuff that already existed in sort of a de facto way, but didn&#8217;t exist in an explicit way.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2696">00:44:56</a>] Some of it was. We created this steering committee that had never existed before. And we just basically. And we were lucky, I think, that we were able to gather so the people that came together. We called it the Bootstrap Committee. We were lucky in the sense that we had enough people who kind of were not who the entire community would look at as being leaders. And we weren&#8217;t fighting with each other, we weren&#8217;t infighting.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2729">00:45:29</a>] So we were all kind of aligned and we kind of got everybody. So we didn&#8217;t have to be like, oh, we grabbed this side and not that side. We kind of. We grabbed. We were able. And it was like seven people, I think seven or eight people. We were able to pull together a group of people that really represented everybody and that everybody kind of all respected each other and respected each other as leaders in the space.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2752">00:45:52</a>] And a lot of credit there, I think, goes to. I mean, everybody who is involved deserves a lot of credit. But Sarah Novotny, who is our community leader at the time, deserves, I think, a ton of credit for bringing that thing together.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2767">00:46:07</a>] When you look back on Kubernetes, because with an open source project there&#8217;s obviously the read aspect, which is everyone can use and duplicate this code and execute it. But there&#8217;s also, I guess the writing part, which is people making contributions. What percent of the contributions actually come from the community and what percent is actually just the main stakeholder companies just putting in their code?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2793">00:46:33</a>] Yeah, I don&#8217;t have the specific numbers for Kubernetes, but my experience in open source says it&#8217;s like 80, 90% the core contributors and less than 10% to other people. It&#8217;s hard, I think in general it&#8217;s really hard to get people to contribute. Part of it is companies, honestly. Right. Like, you know, companies like Microsoft. We make a commitment to contributing to open source. And so, you know, we at a leadership level, we&#8217;ve decided that this is something that we want to invest in.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2826">00:47:06</a>] And so we&#8217;re willing to have teams of people who specialize in working in upstream open source projects. But for a lot of users of Kubernetes, you know, they&#8217;re a retailer or they&#8217;re a banking industry or they&#8217;re like it&#8217;s tech isn&#8217;t their core thing that they&#8217;re doing. Tech is a means to an end, to deliver an app for their user. And in that world it&#8217;s pretty hard to justify. Well, I&#8217;m going to take 10% of my people and I&#8217;m just going to do upstream open source contributions.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2856">00:47:36</a>] And especially if the leadership is like not a technical leadership. And so they didn&#8217;t necessarily grow up in those communities. If you grow up in finance, it&#8217;s hard to explain what&#8217;s the value of contributing to the. The value of taking the open source is very clear. Right. It&#8217;s free, but the value of contributing back, it&#8217;s harder to explain or legally. Like we ran into people. Even today it&#8217;s getting better, I think.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2880">00:48:00</a>] But even today I&#8217;ve run into people who say we would really love to contribute. Our engineering leadership is aligned, that we would want to contribute, but our legal team is worried that if we contribute we&#8217;ll be liable if we introduce bugs.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2897">00:48:17</a>] Would someone sue them or.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2898">00:48:18</a>] Yeah, I think that&#8217;s what they&#8217;re worried about. I don&#8217;t. It doesn&#8217;t hold water legally and I think the Linux foundation can give you plenty of like case law and things like that to show why it doesn&#8217;t hold water. But sometimes that&#8217;s enough to block someone from contributing.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2917">00:48:37</a>] I never thought someone would get sued for adding a bug. I mean, everyone adds bugs on accident.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2924">00:48:44</a>] Well, but, I mean, but on the other hand, like if you write a proprietary piece of software and you sell it to somebody and it has a bug and it causes your house to burn down, like you can imagine you&#8217;re going to sue the people, right? So like it is sort of a legit worry at some level of like if I wrote the JPEG open source JPEG library that ended up in the smoke detector that caused the house. Yeah, like you can sort of imagine the chain of logic that gets you there.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2948">00:49:08</a>] I don&#8217;t think it&#8217;s true. I don&#8217;t think it would hold up. I think a lot of the licenses, you know, a lot of the open source licenses include indemnification language that basically says if you use this, you&#8217;re using it under your own risk. And like you can&#8217;t sue us if it burns down your house. But I think that that&#8217;s a worry for, I mean. Well, I&#8217;ve heard, no, I don&#8217;t think I&#8217;ve heard from people that, that, that their companies do have that worry.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2974">00:49:34</a>] And again, in some sense it&#8217;s because they&#8217;re like, well, what&#8217;s the value if I see this potential risk and I don&#8217;t necessarily see the value. And I mean, and like, also, like again, if it&#8217;s not a core thing, if you&#8217;re not a tech company, you know, is that developer really capable of like arguing with legal, Arguing with legal about what you can and can&#8217;t do? Probably not. Right. Like they&#8217;re probably just going to fade away.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=2996">00:49:56</a>] Right. So, you know, there&#8217;s that aspect too.</p><h3>00:50:01 &#8212; Scaling Kubernetes up for AI training workloads</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3001">00:50:01</a>] I remember this is many years ago. I read this blog post that OpenAI put out before. I think OpenAI was kind of huge and it says, here&#8217;s how we scaled Kubernetes to 7,500 nodes.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3016">00:50:16</a>] And so I want to know, there&#8217;s these new workloads coming in for AI. There&#8217;s training, which is this huge, I guess, all at once workload. And then there&#8217;s inference, which is latency sensitive and you kind of need it to come out instantly. Here&#8217;s how has Kubernetes adjusted over the years to handle these kinds of workloads?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3043">00:50:43</a>] Yeah, I mean I remember when we couldn&#8217;t really handle more than about 100 nodes. So it&#8217;s definitely been a lot of optimization in the core systems. And there&#8217;s places where the APIs were pretty noisy and we needed to reduce the noise level or we needed to extract components into another component so that you could scale. ETCD in particular actually could be the main bottleneck to that kind of scale.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3074">00:51:14</a>] And so figuring out how to run ETCD really well is a core part of figuring out how to run Kubernetes really well at scale. I mean, I don&#8217;t think it&#8217;s that different than learning how to run a database or anything else like that at scale. Large scale is just weird and you just have to run it, see where it breaks, figure out how to fix it, rinse and repeat. I do think what&#8217;s interesting is that while AI training as an example, is a really large cluster, large scale kind of thing, I think by virtue of being in the cloud, a lot of our users actually have much, much smaller clusters, but lots of them.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3117">00:51:57</a>] So hundreds or thousands of clusters where each cluster itself is a little bit smaller. And I think that&#8217;s not something we anticipated because we came from a world of physical data centers where you only want one because you don&#8217;t want to have to set it up a bunch of times, you just want to set one up for the entire data center, call it a day. But because the cloud, because aks you press a button, pops up in two minutes, it&#8217;s really easy to get yourself a cluster.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3145">00:52:25</a>] So people create lots of clusters. I think we&#8217;ve also invested a lot in the Kubernetes community and in Azure as well on managing lots of clusters. How do I manage clusters at scale? I think one of the jokes we spent a lot of time talking about containers is replacing snowflake servers. Not Snowflake the company, but specially handcrafted servers. And now we just have a bunch of snowflake clusters.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3176">00:52:56</a>] So the VMs all look the same, but the clusters are all weird. So we have to provide people with tools to make sure that the monitoring software is the same on all of them and that all of the Kubernetes versions are the same and all the admin users are the same and all this kind of stuff. So that&#8217;s another aspect of scale out that I think we didn&#8217;t anticipate that we had to go and build, which is number of clusters as opposed to size of cluster.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3201">00:53:21</a>] I always hear in the news that the anticipated scale is even higher than today&#8217;s unprecedented scale. And I see people are purchasing GPUs like crazy. I&#8217;m curious, is there any upper bound where Kubernetes just cannot handle that load? Let&#8217;s say you 10x it from where it is today. Is it going to break down at some point and you need something more custom?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3231">00:53:51</a>] Well, I mean, I think it all comes down, it comes back to the storage layer because everything again, because there was this design decision that everything routes around the storage layer. Everything else is basically horizontally scalable. So you have more API requests coming in from more nodes. Well, you just need more API servers. You want to do scheduling faster. Well, you need to just have more schedulers.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3261">00:54:21</a>] Everything else more or less, you can just horizontally scale out. It&#8217;s the storage layer that is the bottleneck and that&#8217;s where the work comes. And so you want to say go 10x up. Well, you&#8217;re going to have to probably figure out if you can make etc scale that way or if you need to replace ETCD with something else that has the same characteristics but can operate at scale. So I don&#8217;t think there&#8217;s anything inherent in the design that would prevent it.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3291">00:54:51</a>] But obviously there&#8217;s a famous quote that every time you change an order of magnitude, the problem moves. And so I think that&#8217;s really true. Every time you increase by an order of magnitude what you thought was the main problem is going to become easy and then the problem moves somewhere else. So you were network constrained, now you&#8217;re CPU constrained, you were memory constrained, now you&#8217;re network constrained.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3312">00:55:12</a>] Yeah, that&#8217;ll be cool to watch how. Because it seems like everyone wants to scale up.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3316">00:55:16</a>] Yeah, I think it&#8217;s definitely the case that people continue to try and push the limits of scale. But I think like anything else, like when there&#8217;s motivation, people go and figure it out. As long as there&#8217;s not something inherent in the design.</p><h3>00:55:31 &#8212; Reflections on getting a PhD</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3331">00:55:31</a>] At the last part of this conversation, I just wanted to reflect over your career a little bit, maybe ask you a few questions about things. And you mentioned that you had a PhD in robotics. And I hear a lot of people say they don&#8217;t recommend PhDs. Some people do. Curious what your take on getting a PhD is.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3349">00:55:49</a>] Yeah, that&#8217;s probably like if I had to have a top 10 questions or top five questions that people ask me. That&#8217;s definitely in the top five top 10 questions. And I guess I&#8217;ll answer it with two different stories. One story is that at one point in my career I ran into a guy, same company, this guy, who I&#8217;d went to undergrad with and he&#8217;d gone off and done startups and done the tech industry thing and ended up in the same company that I was working at and I&#8217;d gone off and done my PhD and come back into the industry and we were at the exact same level.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3385">00:56:25</a>] We graduated the exact same year, same degree and we were at the exact same level in this company. And so I guess that&#8217;s one way of me saying like, eh, it probably doesn&#8217;t matter. It probably doesn&#8217;t matter one way or the other. But I&#8217;ll also turn it around and say, hey, I had a lot of fun, right? So I had a lot of fun doing a PhD in robotics, so that&#8217;s worth it to me. And then two, I think I learned a lot about how to, I think from the PhD and my PhD advisor, I learned a lot about how to write and put my ideas forth in both written and presentation form that you don&#8217;t necessarily learn in the industry.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3430">00:57:10</a>] And I think that benefited me. I think that benefited my ability to argue. And we talked about that six month period where we were arguing for why we should be allowed to open source this thing. I think the skills I learned in terms of presentation and in terms of writing benefited me during that time and have continued to benefit me. And then I think when I went out as a professor for a couple years teaching CS101 and having to explain stuff to students who didn&#8217;t really know anything about computers, I think really helped me organize the initial parts of the Kubernetes project so that somebody could learn about Kubernetes because people were coming in and being like, what is a container?</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3474">00:57:54</a>] What is orchestration? How do I do this? There&#8217;s a lot of just teaching that you had to do. And I think that experience as a professor thinking about how do I teach students something really helped me do a good job with teaching Kubernetes to people. And so I think those things were really beneficial. And so I guess there&#8217;s the two different arguments, which is one is it doesn&#8217;t matter. The other is I learned a ton of stuff that I think was pretty useful to my career and I had some fun earlier.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3505">00:58:25</a>] You said top questions that people ask you and I&#8217;m kind of curious, what&#8217;s the top question?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3511">00:58:31</a>] I think the one, the other one that I get a lot is how do I know what I should learn? Like a lot of, especially when I talk to the interns or the first couple years, a lot of the questions are revolving around like AI seems really hot right now, but I&#8217;m really interested in systems, like should I go learn AI because it&#8217;s hot or should I learn systems because I think systems are interesting. I actually kind of don&#8217;t care what you learn, I care that you&#8217;re learning.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3541">00:59:01</a>] And so the most important thing is to find something that you&#8217;re excited about and energized about because you&#8217;ll do that instead of watching YouTube. So if you&#8217;re not excited about AI, well, you&#8217;re probably not going to do a very good job learning AI, which means that you&#8217;re kind of going to waste your time. But if you&#8217;re really excited about systems, you&#8217;ll probably put a lot of passion and energy into it.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3564">00:59:24</a>] And we still need systems engineers. I think that&#8217;s a pretty popular question. I think there&#8217;s a lot of, I sense anyway, a lot of fear of making the wrong decision. And I always tell everybody, like, there was no plan. I&#8217;ve never had a plan for my career, like never, ever, ever. Like, I&#8217;ve always just chased after things that I thought were useful and were fun and interesting and you know, obviously like, that can work out badly for people.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3600">01:00:00</a>] I&#8217;m sure it&#8217;s good to have a plan, probably for some people. But like, I also want to make sure people understand that like when you look back, sometimes the things you think were mistakes or dead ends, like actually were critical things that taught you stuff. And so worrying about, did I choose the wrong thing? Am I going to choose the wrong thing? As long as you&#8217;re learning, you&#8217;re probably doing okay.</p><h3>01:00:22 &#8212; The inevitable trajectory of software is death</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3622">01:00:22</a>] I don&#8217;t fully remember where you wrote this down, but I have this in my notes. It says the inevitable trajectory of software is death. And I just can&#8217;t imagine Kubernetes dying. But how do you see that happening and what do you think about that if it did?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3650">01:00:50</a>] I mean, I definitely stick by that statement. Although I think that the sentence before I said that was, you really should never fall in love with your software because the inevitable trajectory of software is death. Which means don&#8217;t stick with it, don&#8217;t stick with it past when it&#8217;s dying. You should always be willing to throw away stuff. Just don&#8217;t stick with it just because you wrote it. You should always be willing to throw it away.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3679">01:01:19</a>] But obviously I think if you look historically across the industry, it&#8217;s true too. And quite frankly, even within Kubernetes, the source code that I wrote has been rewritten a number of times over the 10 plus years history of the project. So what does it look like? I mean, I think it looks like something coming along that achieves similar things, but easier with less complexity and more utility. And I think that I can imagine what that looks like.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3717">01:01:57</a>] I think some of these natural language stuff, if you could actually really get it to be an interface that worked 100% of the time, like obviously it&#8217;s way easier to come in and say I would like a reliable web service than it is to say YAML, YAML, YAML, YAML, yamile. You know, I think sometimes I think it&#8217;s sort of true two different trajectories. Like sometimes the trajectory is. It goes away, sometimes it just becomes so hidden that nobody sees it, right?</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3741">01:02:21</a>] Like underneath Linux there&#8217;s, I mean, excuse me, underneath Kubernetes there&#8217;s Linux and underneath Linux there&#8217;s a processor. But you know, people don&#8217;t pay much attention to that and there&#8217;s a lot of attention now on AI and underneath a lot of the AI is Linux. But it could be that people focus so much on the AI that they forget about the Kubernetes part. And I think that&#8217;s happening already. Honestly, like, I feel like if I look at the volume of changes and things like that, like I think it&#8217;s, you know, I think we&#8217;ve sort of plateaued in terms of like the amount of change that&#8217;s driving through the system.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3774">01:02:54</a>] Stuff needed to support AI is kind of like the exception to that category. But you know, I&#8217;d be shocked. I mean, I guess put it this way, let me take the long view and say in a hundred years, is Kubernetes still going to be running? I&#8217;d be pretty surprised, right?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3793">01:03:13</a>] No way.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3794">01:03:14</a>] It&#8217;s hard to imagine, right? That would be true. I mean, I don&#8217;t know, we haven&#8217;t had computing systems for long enough to maybe know for certain. And there are things that we still use. I mean, there is some stuff that we still use from back then. Plugs are still the same shape, ish, stuff like that. So maybe, but even like something like X86, like if you&#8217;d asked me six years ago and said, Is the X86 processor going away?</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3820">01:03:40</a>] I&#8217;d say like, well, maybe on, I mean, obviously on mobile it did, but like in the server maybe not. But now two things have happened. One is all the processing is on GPU now and two, ARM64 is now a pretty important platform on the server for energy usage and other reasons. And so it&#8217;s pretty dangerous to predict the future because it has a tendency to show up sooner than you predict or longer Than you predict too.</p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3850">01:04:10</a>] Right. Self driving cars. I&#8217;ve heard self driving cars were five years away for the last 15 years.</p><h3>01:04:16 &#8212; Top book recommendations</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3856">01:04:16</a>] I don&#8217;t know if you read books for career&#8217;s sake, but if you do, is there a book that impacted your career the most?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3867">01:04:27</a>] Well, I mean, I would say early on the book that impacted my career the most was a book. It was the Gang of Four book. Was it Software Engineering Designs and Patterns or whatever? Like it&#8217;s a software engineering book.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3878">01:04:38</a>] I see it. It&#8217;s Design Patterns Elements of Reusable Object Oriented Software.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3883">01:04:43</a>] Yeah, there you go. So that, like early on that was a very influential book. It&#8217;s like a late 90s or mid-90s kind of book. There&#8217;s a much more recent book called Leadership on the Line that as I become sort of a large org leader. That&#8217;s. I really like that book. And then there&#8217;s this. What&#8217;s this book? It&#8217;s called, I think five Dysfunctions of Teams. I think that&#8217;s a really good book too, from a, like, how teams operate perspective.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3907">01:05:07</a>] If I&#8217;m understanding. If you&#8217;re an. If you&#8217;re an engineer, check out that first book. If you&#8217;re a manager or a leader, check out the second two books.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3914">01:05:14</a>] Yeah, that&#8217;s probably about right. Yeah, I think that&#8217;s right. And it&#8217;s an evolution over time. Right. Maybe you&#8217;ll do both.</p><h3>01:05:22 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3922">01:05:22</a>] Last question for you is if you could go back to yourself when you just graduated college and give yourself some advice, what would you say?</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3931">01:05:31</a>] Keep better notes. I feel like there&#8217;s a great MBA thesis or a great book in the whole Kubernetes Journey and Beyond. And like, I just don&#8217;t have enough notes to do that, to write it down. You know, we went through a lot, like a lot of different stuff happened and I remember some of it and I don&#8217;t remember a lot of it. And I would have been nicer if I&#8217;d kept better notes, I feel like.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3957">01:05:57</a>] Right, well, you got all the code there. Maybe an LLM can parse it or something.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3962">01:06:02</a>] Yeah, it&#8217;s not so much about the notes part. It&#8217;s not so much the code part. It&#8217;s like all of the, like the stuff you were talking about, like all the partner discussions, all of the, like, interpersonal stuff and you know, all that kind of stuff. And like, I remember a lot of it, but I don&#8217;t remember all of it. Cool.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3978">01:06:18</a>] Well, thank you so much for your time, Brendan. I really appreciate it.</p><p><strong>Brendan:</strong></p><p>[<a href="https://youtu.be/FKijpCEH9D8?t=3981">01:06:21</a>] Yeah, for sure.</p>]]></content:encoded></item><item><title><![CDATA[Meta Hiring Lead On Behind The Scenes of Senior+ Eng Hiring]]></title><description><![CDATA[How leveling works, unethical candidates, the role of referrals]]></description><link>https://www.developing.dev/p/meta-hiring-lead-on-behind-the-scenes</link><guid isPermaLink="false">https://www.developing.dev/p/meta-hiring-lead-on-behind-the-scenes</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 16 Mar 2026 09:00:53 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/190750919/4b989d979741180e77069ec3d390ad0d.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/austenmc/">Austen McDonald</a> is a former hiring committee member at Meta, where he led mobile hiring and conducted hundreds of interviews. In this episode, we talked about what happens behind the scenes in a hiring committee, unethical candidates, and the role referrals play.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/nOapM8i5jr0">YouTube</a>, <a href="https://open.spotify.com/episode/4V8iTLq08OYULBYGXxjqD7?si=RW09sC_tTqySmeoN4hkUeA">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-nOapM8i5jr0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;nOapM8i5jr0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/nOapM8i5jr0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/190750919/what-goes-on-in-hiring-committees">00:00:49 - What goes on in hiring committees</a></p><p><a href="https://www.developing.dev/i/190750919/unethical-candidates">00:09:02 - Unethical candidates</a></p><p><a href="https://www.developing.dev/i/190750919/how-leveling-is-determined">00:12:50 - How leveling is determined</a></p><p><a href="https://www.developing.dev/i/190750919/can-you-negotiate-level-mid-process">00:23:12 - Can you negotiate level mid-process</a></p><p><a href="https://www.developing.dev/i/190750919/how-non-tech-leads-can-signal-scope">00:32:30 - How non-tech leads can signal scope</a></p><p><a href="https://www.developing.dev/i/190750919/referrals-and-bias">00:39:11 - Referrals and bias</a></p><p><a href="https://www.developing.dev/i/190750919/what-the-rubric-looks-like">00:45:28 - What the rubric looks like</a></p><p><a href="https://www.developing.dev/i/190750919/openai-and-anthropic-specific-discussion">00:50:00 - OpenAI and Anthropic specific discussion</a></p><p><a href="https://www.developing.dev/i/190750919/most-common-mistakes-senior-candidates-make">00:52:22 - Most common mistakes senior candidates make</a></p><p><a href="https://www.developing.dev/i/190750919/how-to-prep-depending-on-your-level">01:02:31 - How to prep depending on your level</a></p><p><a href="https://www.developing.dev/i/190750919/subjectivity-and-bias">01:08:34 - Subjectivity and bias</a></p><p><a href="https://www.developing.dev/i/190750919/the-questions-you-ask-at-the-end-matter">01:21:02 - The questions you ask at the end matter</a></p><p><a href="https://www.developing.dev/i/190750919/storytelling-tips">01:23:59 - Storytelling tips</a></p><p><a href="https://www.developing.dev/i/190750919/how-he-got-promoted-to-senior-manager-m2-at-meta">01:30:31 - How he got promoted to Senior Manager (M2) at Meta</a></p><p><a href="https://www.developing.dev/i/190750919/his-biggest-career-regret">01:33:32 - His biggest career regret</a></p><p><a href="https://www.developing.dev/i/190750919/the-best-advice-he-ever-received">01:38:13 - The best advice he ever received</a></p><p><a href="https://www.developing.dev/i/190750919/advice-for-younger-self">01:39:54 - Advice for younger self</a></p><h1>Transcript</h1><h3>00:00:49 &#8212; What goes on in hiring committees</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=49">00:00:49</a>] Behavioral interviews are one of the most common signals in hiring committees that down levels candidates and so and I think this is especially important for senior engineers and higher. And so today I wanted to cover all of the common mistakes people make, how to prevent from getting down leveled and also I&#8217;d like to go over some company specific tips for people who want to work at hot companies like OpenAI and Anthropic.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=81">00:01:21</a>] So yeah, I&#8217;m hoping that with your experience working on recruiting, leading iOS and Android recruiting across meta and after having conducted hundreds of interviews, I&#8217;m hoping you can kind of give us some of the behind the scenes in these hiring committees so we can learn about how to do better in our behavioral interviews.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=101">00:01:41</a>] Oh yeah, a behavioral interview is my favorite thing to talk about. So I&#8217;m excited to be here.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=105">00:01:45</a>] What actually goes on in the hiring committees?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=109">00:01:49</a>] The first thing I would say is like when I would get a packet in front of the hiring committee and it was a senior packet, the first thing I would do is go to the behavioral interview. I would want to understand what is the scope that this engineer has operated at in the past, what&#8217;s their level of influence, what&#8217;s their level of insight, what&#8217;s their level of communication, what&#8217;s the level of organization that they&#8217;ve operated in.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=129">00:02:09</a>] And that&#8217;ll be the first thing I did. And these committees are built of other engineers. They&#8217;re built of other engineering managers who are influential in the company. They&#8217;re recruited by someone like me, the hiring committee chair. And their job is to partner with recruiting to understand Whether or not this engineer should be hired hire, a no hire decision, but also a leveling decision. And then they send that, that up to sort of company wide committee of people who honestly most of the time what they do is just sort of a gut check on, on a sort of a cross, you know, across company hiring bar.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=160">00:02:40</a>] So I&#8217;d love to learn more about the, the back end of the recruiting. So let&#8217;s say I&#8217;m a staff candidate and I&#8217;m going to go get hired at Meta. But who are all the people involved? What do they care about and how do they contribute to the hiring process?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=175">00:02:55</a>] Yeah, great question. So the first person you typically engage with is somebody called a sourcer. This is someone who is responsible for finding potential candidates. Oftentimes they&#8217;re more junior on the recruiting side or this is an entry level job for a recruiter. Their job is to cold contact you or maybe to process referrals. This sort of first touch point. They&#8217;re looking at some kind of job description.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=195">00:03:15</a>] They&#8217;re looking at your years of experience. That&#8217;s probably the biggest thing. They&#8217;re assessing your past companies, your past, whatever they can find about your, your past experience. Looking through the referral that they look at and seeing whether or not they want to pass you through to some kind of phone screen process. Right. So this is the part where you see it as a, as an engineer. Some, sometimes this phone screen is a technical one where they are going to be giving you some kind of, you know, coding interview.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=218">00:03:38</a>] Right. That&#8217;s really common. It could even be a pre, you know, pre phone screen conversation where they&#8217;re asking you. Sometimes we would give out multiple choice questions for engineers like oh, tell me about this part of iOS or time, this part of Android. And then you&#8217;d have to be able to answer those questions. Questions just as a sort of a, like a pre filter. Right. To make sure that we&#8217;re doing phone screens in an efficient way.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=239">00:03:59</a>] Of course once your phone screen happens it goes to a, to back to the hiring committee actually. Unless it&#8217;s a very solid hire, if it&#8217;s a very solid hire on the phone screen side you get passed directly on to the scheduling for an on site interview. But if it&#8217;s kind of on the border then we would review it as a hiring committee. We would look for signals, all the signals that, that people talk about in coding interviews, communication and problem solving and all those things and we would see whether or not it would be worth to, to, to a follow up interview or we should just pass on this person on through to the, to the, to the rest of the, of the hiring process to on site or if we should maybe, you know, pass on that person overall and just maybe come back to them some other time.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=273">00:04:33</a>] So that&#8217;ll be the first time the hiring committee is involved in a hiring decision after that. Sometimes a hiring committee would be consulted when there&#8217;s a certain kind of candidate has specialized experience. So for example, if you were like a very low level mobile engineer doing like C work, for example, on the mobile side, we would want to make sure that you were giving you an appropriate system design interview that really assesses you for your specific skills.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=294">00:04:54</a>] So then we would also typically be consulted at times when there&#8217;s a choice of whether or not this person is a staff level engineer or a senior engineer. Oftentimes that&#8217;s the place in companies where the hiring process starts to change. So for example, at Meta specifically staff level engineers would have two system design interviews and so they, we would not be able to hire someone at a staff level unless we had provided two system designs.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=320">00:05:20</a>] So that sort of decision about how to structure the loop starts, starts, starts there at that, that on screen, on site scheduling point in the, in the hiring process. And then of course if you, as you go up, as you go up to principal or as you go up to distinguished engineer, those hiring processes are very different and they add additional behavioral interviews. That&#8217;s what they add. So we can talk about that at some point.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=340">00:05:40</a>] That&#8217;s how they are assessing whether or not someone is a principal engineer or distinguished engineer. And then after you go through the on site experience, then it comes back to, to us as a hiring committee and we make a decision, do we hire you? At what level do we, do we add any additional follow up interviews? Maybe one interview didn&#8217;t go very well. Maybe an interviewer, maybe you, you flubbed it and we want to give you another chance.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=361">00:06:01</a>] Maybe we, maybe the interviewer didn&#8217;t do a very good job acquiring signal. And that happens a lot actually in the behavioral interview. So the behavioral interview is one of the hardest ones to, to give and one of the hardest ones to interpret. So oftentimes we would do follow ups on, on behavioral interviews if we didn&#8217;t get the right signal. And then after that, at least at Meta, it would go to a committee of engineering directors and they would make the final hiring and leveling decision.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=383">00:06:23</a>] Sometimes members of the hiring committee would accompany the recruiter to that conversation with the engineering directors and advocate for our decisions as a, as a hiring committee. So possibly we&#8217;re deciding to take a chance on somebody, maybe this aspect of their packet is weak. But we&#8217;re really excited about that. We think that the company would really benefit from having engineers who have whatever that specific trait is, this problem solving piece or this technical skill or this organizational influence skill that they&#8217;ve demonstrated in their on sites.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=409">00:06:49</a>] And we would need to go and advocate for that before the engineering directors. So that would be the process for a, you know, for an engineer from start to finish.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=418">00:06:58</a>] At the beginning you said there&#8217;s that low level recruiter that makes some gut reaction. And just to understand, because the leveling decision is the thing I&#8217;m most curious about, the way that they would judge the level of the person to kind of enter the funnel is mostly based off years of experience. Is that right?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=437">00:07:17</a>] Years of experience and previous title. So if you are a staff engineer at Google, then they&#8217;ll probably try to bring you in a staff engineer here at Meta. Now a lot of companies like Meta don&#8217;t have public levels so it can be difficult to see just from someone&#8217;s LinkedIn what level they are. So that&#8217;s why they rely so much on years of experience.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=456">00:07:36</a>] A lot of people, their companies, I&#8217;d say it might be someone outside of FAANG who has many years of experience and their title is extremely high. Let&#8217;s say they&#8217;re principal.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=469">00:07:49</a>] So they work in finance and they&#8217;re a vice president.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=471">00:07:51</a>] Yes, yes, exactly.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=472">00:07:52</a>] Vice president gets a vice president like four years. Yeah, yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=476">00:07:56</a>] But like let&#8217;s say it&#8217;s, it&#8217;s someone, you know, principal architect at some non FAANG company for instance, what&#8217;s that recruiter going to set them at and how do they get leveled when you&#8217;re not in faang, coming into faang.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=490">00:08:10</a>] So sources understand this and recruiters understand that there is level inflation in different parts of the industry. And so we would take somebody, you know, who worked at even sometimes big tech companies, but non, non FAANG companies, like maybe companies that are, that are more oriented towards business, we would take them and download them significantly. So they would be, they would even be supporting maybe 10 or 15, 20 people as a manager, maybe even more, maybe 50 or 50 or 75 people as a manager.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=515">00:08:35</a>] And sometimes we would down level them and just give them a team of eight or ten FAANG engineers right at Meta and likewise for, for, for ICs. So it&#8217;s not just that if you put on LinkedIn, I&#8217;m a principal engineer, you can suddenly get principal engineering sorcerers reaching out to you. They understand that that different companies have different expectations for, for their levels and maybe there&#8217;s some world which we would like to live in that this is all consistent, but it&#8217;s not, that&#8217;s not the world that we live in.</p><h3>00:09:02 &#8212; Unethical candidates</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=542">00:09:02</a>] Just out of curiosity, what if you had some really unethical candidate who they were, they worked at Google, but let&#8217;s say they, in reality they were only a senior engineer or something wherever they were, but they had the years of experience where it&#8217;d be believable that they could be maybe a senior staff engineer or something like that and that was listed on their resume. What would happen if someone did that?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=569">00:09:29</a>] And I imagine that first hop would go to senior staff. What then happens that prevents that from working?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=576">00:09:36</a>] Yeah. So the, for example, the first phone screen with an engineer that you have for staff level engineer or above is usually some kind of, not just a simple coding exercise like you would for a mid level or a senior engineer, but it is also sort of scope check. There&#8217;s a mixture of coding system design, oftentimes a conversation with you about your past experience where you walk yourself, they walk you where the candidate needs to walk the interviewer through some large project that they shipped now.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=605">00:10:05</a>] So that&#8217;s the first, the first sort of check. Can you pass a sort of system design conversation at a high level such that we would pass you through for the on site, the real system design interview. And then can you tell me a story which is of sufficient scope of what you&#8217;ve executed now? You know we can talk about lying, right? There are some really famous liars in the world, we call them actors.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=623">00:10:23</a>] So. But I will tell you that Los Angeles restaurants are filled with people who are trying to get into the lying business, right? And they can tell you how difficult it is to be an actor. So yes, I do think you can. Maybe you can come up with a story, right? And maybe you can use AI to tell you, oh let me tell you about this like company wide project that I shipped at Google. It is pretty challenging to lie in a convincing way.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=646">00:10:46</a>] We, as, as you know people, we have this sense of, of is this person really telling me the truth. And then there&#8217;s always the follow up questions. And I&#8217;ve, I&#8217;ve experienced this in my coaching, coaching job where I can tell someone&#8217;s telling me a story that they have gotten from an AI because I start to ask them these follow up questions especially about technology and then they start to give me these kind of vague an answers or they really don&#8217;t.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=667">00:11:07</a>] The answers don&#8217;t sort of don&#8217;t fit together. And then I get the sense of like, this person&#8217;s just not telling me the truth. Am I, am I foolable? Like, yes, everybody&#8217;s foolable. If you&#8217;re a good enough liar, yeah, you can, you can make this happen for sure. But I think it&#8217;s actually much harder to lie than most people expect it to be. And so that&#8217;s the first, that&#8217;s the first step. And then after that, you have this, this barrage of on site interviewers, interviews with highly calibrated people.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=691">00:11:31</a>] So when we put interviewers for staff level or for, or principal level engineers, we send very senior people to those people who have been in the industry for very long time who have interviewed a very, a lot of people. They&#8217;re highly calibrated. And yes, you will have to like, lie repeatedly to these people in a convincing way in order to get all the way through. Now if you can do that successfully, I don&#8217;t know, maybe you are good enough to be a staff engineer or principal engineer.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=715">00:11:55</a>] You know, maybe you&#8217;ll be fine and then we&#8217;ll hire you. Right. And then, then the question is, can you meet expectations at that level? Um, I, I do not have stories about people that we hire that we just, we thought was totally lying to us. Even though I&#8217;ve hired thousands of people, I, I have not heard that story. I think it&#8217;s much more difficult than people expect it to be.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=739">00:12:19</a>] In theory, if someone was a, a generational liar, they, they could, they could do this. It&#8217;s just a lot harder than people think. Okay. Because yeah, I think that&#8217;s, that&#8217;s on a high level when maybe it&#8217;s just an engineering mindset. When I&#8217;m coming in and I&#8217;m thinking about interview prep, my, my first thought is, okay, I got to be good at the technical, but the behavioral, I can kind of, I can kind of wing it.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=764">00:12:44</a>] You know, I can tell some stories. It&#8217;s a little bit of a softer thing.</p><h3>00:12:50 &#8212; How leveling is determined</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=770">00:12:50</a>] What is it in the behavioral interviews that leads to the leveling determination? So you mentioned there&#8217;s an initial leveling determination, kind of a gut call by the first hop in the layer. And then at some point you&#8217;re placed into. Sounds like a range. You mentioned in one case.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=797">00:13:17</a>] Exactly.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=799">00:13:19</a>] They&#8217;re trying to figure it out. And so then you&#8217;re Maybe staff, maybe senior. And they give you another loop. What do you need to do such that you are placed in staff if that were your goal?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=810">00:13:30</a>] One of the most important things when you&#8217;re choosing any kind of story to tell in a behavioral interview or when you&#8217;re having a conversation with a recruiter, which is also kind of like a behavioral interview, is to ensure that you&#8217;re establishing yourself as a certain scope. And that scope is about what size business problems have I solved with technology and what level of ambiguity and what level of organizations have I operated within and what have I been able to accomplish in that operation.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=833">00:13:53</a>] So when you&#8217;re having a conversation with a recruiter and you&#8217;re talking about your past, past experience, you have got to land in that first tell me about yourself kind of thing. Like, oh, hey, who are you talking about? You&#8217;ve been up to that conversation is super critical. And people think about it from an interviewing perspective, but it starts there in that conversation with the recruiter. And so you have to come in and say, I have demonstrated and delivered large business value with, with technology.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=854">00:14:14</a>] And it&#8217;s kind of like the greatest hits from your resume, right? People always tell you have, you know, measurable impact and results that&#8217;s, that&#8217;s present on your resume. That&#8217;s, that&#8217;s using some kind of metrics, right? That&#8217;s super important. It&#8217;s also to convey a sense of depth, right? A sense of complexity. You could say something like, well, you know, I improve performance in the Facebook app.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=871">00:14:31</a>] And then people say like, okay, that doesn&#8217;t sound super hard. But if you said something like, well, you know, I organized across 100 engineers, this entire organization, to spend a 12 month performance improvement project that ran into multiple very difficult, you know, technical issues that required multiple staff level engineers in order to solve. Many months of investigation and experimentation.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=892">00:14:52</a>] And then we came out with these like three core principles. And then we, then we, you know, we shipped this performance improvement. So I think when you start talking, talking about the complexity of the work, you need to communicate the technical depth, you need to communicate the organizational depth, you need to communicate the business value and the business impact that you delivered. And those are the things that the recruiter is listening for.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=909">00:15:09</a>] And likewise, everybody in the process is listening to that. All the interviewers listening for the same thing. So getting really crisp and practicing that tell me about yourself piece is the first place where you can ensure that you&#8217;re getting into the right leveling bucket.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=923">00:15:23</a>] I noticed there&#8217;s a lot of correlation between what you&#8217;re talking about and also promotions as well. For instance, when you&#8217;re talking about promotional behaviors for staff, your projects don&#8217;t just want to be, hey, I ship this thing and it&#8217;s good for my team. You want to be doing things that are across the org and larger and complicated and challenging. So are you saying that those are pretty similar and.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=948">00:15:48</a>] Oh yeah. Oh yeah. In fact, preparing for behavioral interviews will actually make you a better engineer. And I think being a great engineer is how being a great communicator, especially about your impact is the thing that you need to do is to be a great behavioral interview. So yes, for sure, you need to be able to quantify your impact, communicate it efficiently, communicate effectively and honestly.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=968">00:16:08</a>] We&#8217;re talking about lying earlier and trying to keep people from lying. But most of my clients, most of the people I talk to in my coaching business, they have a problem not telling enough of the truth. Like not telling. They&#8217;re not boosting themselves enough, not talking to me enough about the accomplishments that they&#8217;ve done. So to me, that&#8217;s the thing that most people need help with. They need help showcasing how difficult the problem was.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=990">00:16:30</a>] They need to help showcasing what kind of impact they made not just on whatever top line business metric it was, but also what kind of impact did it have on the team? What kind of impact did it have on code quality? What kind of impact did it have, you know, long term in the organization that they were, they were operating within? So for me, think about, if you&#8217;re, you know, I&#8217;m coaching engineers to do this, I spend a lot of time thinking about, you know, what are all the implications of the work that you&#8217;ve done and then how can you be really crisp about having that conversation?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1014">00:16:54</a>] Because the flip side of that is like, well, if I want to talk about all the things I&#8217;ve done, then it takes a really long time. So that&#8217;s why it takes some, some, some preparation, but certainly getting really good at behavioral interviews. Communicating, telling stories, for example, telling stories about what you&#8217;ve done. You do that all the time. You do that to your manager every week in a one on one.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1030">00:17:10</a>] You do that to the executive whenever you&#8217;re presenting your results.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1034">00:17:14</a>] learn as a senior engineer in the interview process. It sounds like at every point, whether you think you are or not, you&#8217;re actually being assessed. What I mean is usually that first call, at least from my recollection, it was pitched to me as, hey, this is a little chat you don&#8217;t need to prepare for just Go ahead and come and talk to me. I&#8217;m just the recruiter but actually that call is hey, talk to me.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1060">00:17:40</a>] I&#8217;m trying to figure out what level you are so I can place you in the right loop and even see if you&#8217;re worth talking to for follow up. So am I understanding that people should just sell themselves at every single minute of this recruiting process?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1075">00:17:55</a>] Yeah, always be closing for sure. Definitely. This first call is an evaluating call. They are interested in you. Right. Usually they, they may have contacted you or they have you applied and they&#8217;re contacting you. So it is a softer kind of evaluation. You shouldn&#8217;t be super nervous about it. They are your, they are your, your buddy, they&#8217;re your partner. Let&#8217;s remember that especially at a big company, these sources and recruiters are incentivized by how many hires they can deliver.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1097">00:18:17</a>] So no, they&#8217;re not your friend. Right. There are certain, certain conversations you should be care very careful about, especially about compensation with these folks. But they are advocating for you. It is actually benefits them to find some a great candidate and be able to get them all the way through the process that is in their best interest. So it is a, you know, it is not a confrontational experience you need to prepare for.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1118">00:18:38</a>] But yes, it is evaluative. Like you should not just show up to that phone call emotionally disconnected or unprepared to talk about your past experience. You should and if you&#8217;re, if you are like that, then I would delay the call. So reschedule the call. Spend a little bit of time preparing what you will say to the recruiter so that they get an accurate sense of the kind of impact that you&#8217;ve delivered and that&#8217;s going to be your best bet at getting that, that higher level offer.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1143">00:19:03</a>] I&#8217;ve had experiences where I got through everything and at some point they said congrats, you&#8217;ve got the offer. It&#8217;s verbal, but you have an offer now. So congrats. We just want you to talk to the hiring manager just one last time. And this is for you. They want to tell you about the company, this and that usually is that also a case where the hiring manager is trying to get signal on you?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1170">00:19:30</a>] Oh, of course, of course. I mean the same exact things apply. So yes, it&#8217;s a little bit lower pressure than say the behavioral interview or the coding interview in the middle of the process. But definitely when you&#8217;re having this hiring manager chat or at a place like Meta or Google, they have a team matching phase where you&#8217;re having conversations with Multiple managers and they&#8217;re trying to find a fit for sure.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1189">00:19:49</a>] You know, that conversation is super important for you to have a buttoned up introduction of yourself. Tell me about yourself. I do think that that one is a little bit more social. So in an interview setting, the interviewer has a set of questions. They want to go through the questions, right? So the longer you spend introducing yourself, you&#8217;re actually hurting your time management there. You&#8217;re preventing them from collecting other signal about you.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1211">00:20:11</a>] However, I think this hiring manager conversation, it is more of a like, do I want to work with this person? Right? Do I, do I want to hang out with this person? So you do need a little bit more of a loose social engagement, especially as those early, that kind of, early phase of the, of the, of the conversation, hey, you know, how&#8217;s it going? Whether, you know, sports something, something, right.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1230">00:20:30</a>] I think that, that connecting with the manager on whatever&#8217;s important to them is really, is really key for that, that interview. But certainly it is not just a, a formality or it is not purely for you. It is certainly the case that the hiring manager wants to see, do I want this person on my team? And they need to come out of that conversation with a couple things, you know, one is, do I like this person?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1248">00:20:48</a>] Do I think they&#8217;ll be successful in the team? Will they fit the team culture? Will I, you know, will I as a manager benefit from bringing this person onto my team? And then they need to come out with a sense that you can deliver and solve problems that are similar to the problems that they have. So it&#8217;s so important for you to do as much research with the recruiter and sourcer in advance if you&#8217;re going to have this conversation.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1265">00:21:05</a>] Understand what this manager values, understand what their team is working on, and then be able to tell your stories in a way that, that showcases that, yes, you can solve the problems that this manager has.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1274">00:21:14</a>] You mentioned briefly there. You said the recruiter, the compensation conversations with the recruiter and how you need to be extremely careful in those conversations. What&#8217;s the most common mistake people are making when it comes to those compensation conversations?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1290">00:21:30</a>] Yeah, look, I&#8217;m not a negotiation expert. I won&#8217;t, I won&#8217;t present myself as one. You can even hire people who are, who are really good at helping you negotiate with, with these big tech companies. And I recommend that you go get some advice from them. But I will say that, you know, early anchoring, any negotiation is dangerous. So if, if, if early conversations where they&#8217;re asking you about your compensation expectations you should be very careful about what you tell them because that will, that will anchor you into the expectation to the conversation that you, that you talk about.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1318">00:21:58</a>] You should definitely get some advice and, and understand the laws in your local jurisdiction. So for example, in California and New York, you&#8217;re required, the recruiter is required to tell you about the bands and salary bands and total comp bans for, for each, each of the, the jobs that you&#8217;re being applying for. So you can leverage that to understand where you are in the comp bands at that point.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1338">00:22:18</a>] But I would not say I&#8217;m an expert at negotiation. I think probably the, probably the biggest mistake most people make is they don&#8217;t have multiple offers. So if you are negotiating from a position of weakness like I don&#8217;t have any other offers, I&#8217;m just talking to you and you&#8217;re the only company I&#8217;m talking, it&#8217;s gonna be very difficult for you to get to extract anything from that company. And which is why it&#8217;s so important for you to orchestrate your offers to land at a somewhat similar time.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1360">00:22:40</a>] I know that&#8217;s more stressful. I understand it takes more work to go through the interview process at the same time. But if you have multiple offers in hand, that&#8217;s your best bet for being able to improve your compensation position.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1374">00:22:54</a>] So I guess going back to the leveling side of things, let&#8217;s say I&#8217;m staff engineer and I, I will only take an interview if it&#8217;s staff and I make a mistake early in the process. Like I&#8217;m talking to the recruiter, like</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1390">00:23:10</a>] on the phone screen, for example. Yeah, yeah.</p><h3>00:23:12 &#8212; Can you negotiate level mid-process</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1392">00:23:12</a>] Can I be direct with the recruiter and say, hey, I&#8217;m, I see that I&#8217;m getting a lot of coding interviews. I think maybe I got the wrong, I might have sent the wrong signal. In which case it&#8217;s fine, let&#8217;s just end the process. Or can I get leveled at a higher. Can you negotiate at that level in mid process?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1411">00:23:31</a>] Yeah, that&#8217;s a really good question. I&#8217;m sure it depends on the company in the process. I would say that&#8217;s a good conversation to have with your recruiter. If, if you know that you&#8217;re being placed in to consideration for a level that you don&#8217;t want to be. What I will say is that there are many times when we would up level people as well as down level people. And so the recruiter will, it&#8217;s their interest.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1430">00:23:50</a>] They&#8217;ll try to keep you in the process. They will say, let me stick around, you know, maybe we&#8217;ll Evaluate you and maybe we&#8217;ll, you know, we&#8217;ll, we&#8217;ll offer you this second thing. And I would push for to go ahead and try to get as much of that evaluation process done for the level that you would like to, to be hired for as much as possible. That way you don&#8217;t have to go through follow up interviews or they don&#8217;t have to, you know, change something about the process late in the game.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1450">00:24:10</a>] Try to collect as much information for the hiring committee as, as possible at once as possible. So yes, I think that&#8217;s a good conversation to have. But you know, if it was a job you were really interested in and they were offering, they were considering you for one level below and they were not willing to change anything, I, I would, it depends on the job obviously depends on the total comp. Opportunity and where you&#8217;re at.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1471">00:24:31</a>] But I would say try to rock the interviews as much as possible and then get that consideration for the higher level. And you can do that in a couple of key ways. So the first way is to make sure that you&#8217;re anchoring every conversation you have with all of your interviewers at that higher level. Which again comes back down to that. Tell me about yourself when, when they especially behavioral and system design interview and you&#8217;re having these conversations and you are talking about very large scope projects, talking about impact which is commensurate with that higher level.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1496">00:24:56</a>] The behavioral interviewer especially will notice that and then they will want to dive into that and they will want to ask you questions and they will then you&#8217;re re resetting their mind about what, what to expect from the interview and that&#8217;s super important. And then the second place is in, that is in the story choice that you have for your behavioral interviews. So remember that this, whenever someone&#8217;s asking you a behavioral interview question, there&#8217;s always a question behind the question.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1517">00:25:17</a>] Like why are they asking me this? They don&#8217;t actually really care about my favorite project. Or like, like they really don&#8217;t actually care that much about some time I had a conflict with my manager. They&#8217;re probably going to forget a bunch, bunch of those that, that, that detail right after the interview. What they want to see is are you operating at the level that they&#8217;re expecting you to operate.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1532">00:25:32</a>] So make sure and I talk about this in the book. There&#8217;s four different considerations for whenever you choose a story and the number one choice is scope. You want to make sure that you have come out of that behavioral interview telling the stories that that are the highest scope and the ones that represent you the most, the ones that you would love to tell to a hiring manager. So that&#8217;s your job as a behavioral interviewer interview candidate.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1551">00:25:51</a>] I want to leave that interview having told the most important stories from my career. And sometimes that can be kind of challenging because they, they you are not driving. Right, the interviewer is driving. But your task as a candidate is to guide the interviewer towards that signal, towards that place in your career where they&#8217;re going to collect the signal that you think best represents you. And, and you do that by choosing stories that are of the highest scope and the highest impact that you&#8217;ve delivered.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1575">00:26:15</a>] So around a year ago, a buddy of mine, he was applying for a senior role at all of the top AI labs and he actually got an offer at Anthrop. When he was going through the process, I remember him telling me that the single most impactful tool for him in preparing for system design was the free resources that hello Interview has on their website. If you are preparing for technical interviews, I highly recommend you check out hello Interview.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1599">00:26:39</a>] I would have said that even before they sponsored this episode. I think they&#8217;re providing something that&#8217;s great for the community. Also, if you&#8217;re preparing for behavioral interviews, they&#8217;re actually partnering with Austin to provide more interview behavioral interview resources on their website. So I&#8217;ll put a link in the show notes so you can check it out. This is the absolute first ad I&#8217;ve ever done for this podcast after over a year.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1618">00:26:58</a>] Right now the podcast is running net negative. Hopefully it can sustain itself soon. This is a step in that direction and I just want to say thank you so much for supporting the podcast with that. Let&#8217;s get back into the episode. Austin&#8217;s about to tell us how to avoid being down leveled accidentally. The big question then is how, how do you do it concretely? Maybe we can go over some concrete examples.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1641">00:27:21</a>] What would a senior Scope project look like? What would a staff project look like? Senior staff, principal? Maybe we can take the same example and kind of evolve it so people can hear. What are the keywords people are looking for?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1655">00:27:35</a>] Right. I&#8217;ll give you a sense of where big tech companies like faang oriented companies are at with their levels now. But for the specific company that you&#8217;re applying to, you should go do some research and figure out what is expected of a mid level engineer. What is a staff level engineer? Oftentimes you can find this information on the Internet, but I&#8217;ll tell you, the very simple rubric is something like a, you know, a new grad engineer is doing tasks.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1675">00:27:55</a>] You know, they do a task, come back to the team, go to the manager or Jira, whatever, whatever is giving them the task, they go do another task, right? That&#8217;s their job. A mid level engineer is doing a feature. A feature has many tasks and, and the feature is something that might take, you know, a couple of weeks or something. And that&#8217;s what they&#8217;re, that&#8217;s what they&#8217;re working on. And the senior engineer is doing projects.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1694">00:28:14</a>] Projects have many features which have many tasks. Oftentimes projects are ones that are working through others, perhaps other mid level engineers or other junior engineers who are working underneath them. So there&#8217;s some kind of leadership and delegation and organization and communication expectation for this level 5 person or the senior person, staff person. Level 6 at Meta, for example, would be somebody who is responsible for some kind of goal, right?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1718">00:28:38</a>] So this is the goal. In order to accomplish this engagement goal or this, you know, revenue goal, we have need to have multiple, multiple projects which have multiple features or multiple tasks, right? So there&#8217;s this natural cascading hierarchy of what&#8217;s expected based on ambiguity, right? That&#8217;s what levels really mean is how much ambiguity can you handle. The ambiguity of an intern is very different than the ambiguity of the CEO.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1739">00:28:59</a>] And that&#8217;s what differentiates the levels and differentiate compensation. And then this like level seven or this principle or distinct, whatever you want to call it, this next level is more about organization. So I&#8217;m responsible for an entire organization which has many goals, which is many projects. It&#8217;s just many features, many tasks. And then maybe whatever the next level is, it sometimes it&#8217;s distinguished or different people have different names for this thing, but that&#8217;s responsible for industry.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1765">00:29:25</a>] I&#8217;m responsible for this industry which has, over this entire business, which has many organizations, which has many goals, etc. So I think that when you&#8217;re choosing stories to tell about landing a certain job, you understand what those level expectations are at the company that you&#8217;re targeting and then making sure that you&#8217;re telling stories that hit those, hit those notes. So let&#8217;s take for example, staff, Staff level engineer is a big difference between that and a senior engineer.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1792">00:29:52</a>] And really it comes down to how the, the breadth of impact that you&#8217;re making. So you&#8217;re, you are making impact more than just your small project and your small area. Oftentimes it&#8217;s an entire team or maybe multiple teams you&#8217;re working with. Oftentimes you&#8217;re telling stories that involve a lot of, of working across an organization, a very large organization. So this is why it&#8217;s so difficult for, for startups up engineers, unless you were the founder, for example, to get a job at staff or higher is because those, those experiences are oftentimes limited by the number of people that you&#8217;ve worked with.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1822">00:30:22</a>] So if you didn&#8217;t have to, you know, if there was only one stakeholder CEO and like two or three engineers, it&#8217;s pretty difficult for you to demonstrate the kind of depth of organizational leadership that is required for that, that staff level position. Then there&#8217;s like a technology complexity. So here you can, and it&#8217;s really difficult. In a behavioral interview, how do I communicate the difficult to this technology problem, this, this bug or this, this, this decision?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1845">00:30:45</a>] And you have to quantify that. So you have to talk about the amount of time it has you to quantify the risk. You have to talk about the number of people you had to talk to to get advice. Or you have to somehow give me a sense of how risky it was, right, in order to make this choice, how difficult it was for you to back out of this choice, for example, so you can, you can talk around the complexity of this technical problem and give me a sense of what is there.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1867">00:31:07</a>] And then there&#8217;s oftentimes leadership pieces. This is something that people forget about. They talk, maybe they, maybe they talk about tech. Almost always they talk about technology, right? Engineers, oh, I love talk about tech. You know, probably if anybody, they talk too much about tech, right? Then there&#8217;s this organizational thing which I talked about before. But sometimes people forget to even talk about the leadership parts.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1885">00:31:25</a>] A lot of projects involve some kind of influence and mentorship, for example, over others. So now you&#8217;re convincing people to do things maybe they don&#8217;t want to do. That&#8217;s a big part of a staff engineer. Motivating people or getting concessions out of other teams, aligning on roadmaps, that sort of thing. And then there&#8217;s also mentoring. So how did I mentor and help the people who worked underneath me and made them better?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1904">00:31:44</a>] How did I make the team better? How did I make the org better, better? So those things are oftentimes forgotten about when people are trying to anchor this, the listener and make them think, yes, this is a staff level engineer. So really, and we go back to what you said earlier. If you can reflect on your own career and understand what makes you successful and you can identify those pieces which differentiate you from other engineers, those are the things that you need to talk about in the behavioral interview and vice versa.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1930">00:32:10</a>] So if you reflect back on your career as A behavioral candidate and you think about what made me successful, then you can start to repeat those things in your day job and you&#8217;ll be more successful in what you do.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1940">00:32:20</a>] If you know the rubric, then you can do the rubric. And you can also talk the rubric as well.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1946">00:32:26</a>] Right. So know the rubric. Right. That&#8217;s the most important thing.</p><h3>00:32:30 &#8212; How non-tech leads can signal scope</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1950">00:32:30</a>] I think one of the biggest ways that you talked about scope was kind of in the organizational complexity or how many. What&#8217;s the leadership position you are in the org. But what about specialists? So I&#8217;ve worked with engineers who. They&#8217;re solving problems that no one else can solve. They&#8217;re their own snowflake and we need that person because they&#8217;re pushing the industry forward and it&#8217;s having a lot of impact.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1972">00:32:52</a>] How is someone like that supposed to talk about their work?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1975">00:32:55</a>] Yeah. So the first thing is to understand business impact of what you&#8217;re doing. And I think this is really hard for some engineers, right. Who are focused more on the technology. But there is some reason why this technology was required and some kind of context around which it lives. And I always encourage people to think about, what would Steve Jobs say about this technological advancement that you&#8217;ve brought about?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=1996">00:33:16</a>] Why is it that that this project was so important or so critical to the company? What&#8217;s the business context? So make sure that you&#8217;re delivering that one.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2003">00:33:23</a>] Framing. I know that&#8217;s common in promo committees is this person solved problems that those people couldn&#8217;t and, well, those people are staff. So then if he&#8217;s solving problems, staff people, then he or she must be greater than staff. So when your manager&#8217;s saying that on your behalf in a promo committee, it makes sense. If you say that on your own story, you say, yeah, I landed this project and actually there&#8217;s a team of five staff engineers that failed for a year before I got there.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2035">00:33:55</a>] like too much, I don&#8217;t think. Actually, I don&#8217;t think so. I totally disagree. So I think this is one of the methods that I hear and is very successful is again, you&#8217;re talking around this complexity to give people a sense and to pattern match in their mind. So behavioral interviewers are pattern matchers. They are looking to see if you match the patterns that they expect for this level. And one of those things is going to be whether or not you have solved problems other people haven&#8217;t.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2058">00:34:18</a>] So I don&#8217;t think it is necessarily bad to say something like, when I took on this project, I was the third owner and this is where they had Failed. And this is where I&#8217;m looking for. There is not just like, haha, I&#8217;m better than all these other people. I&#8217;m looking for the insight that made their efforts unsuccessful. So oh, these people attempted, you know, this product market fit and that didn&#8217;t work.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2077">00:34:37</a>] Or these people attempted, you know, this technical approach and that didn&#8217;t work for these reasons. And that kind of judgment and reflection is a big part of, of, of, of of assessing someone at a senior level and something that people often forget. They just tell the story. I had a problem, I solved the problem, I&#8217;m done. And not giving me some sense of what they learned or what the deeper insight is.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2098">00:34:58</a>] And to me that&#8217;s the sign of somebody who&#8217;s, you know, above staff level.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2103">00:35:03</a>] The analogues between promotion conversations and recruitment conversations. It makes a lot of sense to me. And one thing that I see actually because when I was looking through the YouTube comments of previous interview done, there were some people were saying people can just oversell themselves and the person was a little bit salty that someone could manage the optics and kind of get a good recruitment outcome.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2131">00:35:31</a>] And I see very similar stuff on the promo. The promo content that I&#8217;ve made is some people, usually a vocal minority is saying, oh, this person just really knows how to sell themselves. And I think that&#8217;s true and unfortunate that it can just be not necessarily your achievements by themselves just objectively being true. You kind of have to, it&#8217;s a very human process. So how you sell it, that is going to have a big impact on how it&#8217;s perceived in both of these.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2166">00:36:06</a>] So I, I guess it&#8217;s one of those things where it&#8217;s just how it is and you need to learn how to play that game if you want to have good results in the game.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2175">00:36:15</a>] Yeah. Welcome to the world. Right? And this, this works for, this works. This is the case in our careers, this is the case in our personal relationships. Don&#8217;t you know that I love you? Can&#8217;t you, can&#8217;t you just feel that I love you? That doesn&#8217;t work. Right. You have to do the behaviors. You have to demonstrate the things that in your relationships. You have to demonstrate the things in your career and you have to, to, to tell people.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2196">00:36:36</a>] Right? You have to communicate those things. And that may be unpleasant for some, some folks and it can be difficult. But this is part of, of, of us maturing as, as people and us, us maturing in our careers is understanding that there are certain things that are worth doing that maybe is a tax like on our, on Our progress. You don&#8217;t have to do this them, but you also will not get promoted or you also will not get the like staff level engineer the job.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2224">00:37:04</a>] Right. I, I, I tell people, look, on the other side of this principal engineering job is a million dollars a year compensation. So you better eat your Wheaties before you go into that interview. Right. You better be ready. And, and you can say what you want about like how difficult it is to assess people, whatever, but they&#8217;re going to give you a million dollars a year. They&#8217;re going to put you through the ringer.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2243">00:37:23</a>] So you need to be to ready, ready for that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2246">00:37:26</a>] So going back to the, the, the promo committees, I, I wanted to understand. I&#8217;m just kind of like recollecting all the people you mentioned. So there&#8217;s the sorcerer, there seems to be a hiring committee. There&#8217;s the people, there&#8217;s a recruiter. Okay, yeah, the recruiter. There&#8217;s the people in the hiring committee. There&#8217;s the people who conduct interviews and I guess they draft up notes that the hiring committee reviews.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2269">00:37:49</a>] But who&#8217;s the actual interview decision maker in these processes?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2273">00:37:53</a>] Right, right. So we should talk. There&#8217;s a sourcer. There&#8217;s also a different person called a recruiter. I forgot to mention them. But usually the source for someone who finds you, they typically will hand you off to someone called a recruiter. Once you get into the process, once you get through the phone screen and this person is the person that you&#8217;re going to be doing the negotiation with, the person who&#8217;s going to be organizing your loop.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2290">00:38:10</a>] The person&#8217;s going to be advocating for you in front of the hiring committee. So there are obviously many decision makers. There&#8217;s a sourcer who&#8217;s just looking at your LinkedIn and deciding whether they should contact you. There&#8217;s that, that decision. There&#8217;s also the decision of the, you know, the initial phone screener or whoever&#8217;s talking to you at different levels that could be again that, that sourcer doing a, a multiple choice question or it could be an engineer who&#8217;s giving you a phone like a coding phone screen.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2314">00:38:34</a>] Then there&#8217;s the hiring committee. So the committee makes a decision based on, and usually it&#8217;s driven by consensus. So but sometimes we would have to fall back into voting but the consensus would be established of whether or not this person should be hired at this level or whether we should do a follow up or whether we should drop the person from the process. And then again, like I said, there&#8217;s this decision being made generally as a consensus among Two or three engineering directors who are, you know, who are above us making that final call.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2345">00:39:05</a>] And those folks would operate mostly in consensus, but sometimes they would vote in the hiring committee.</p><h3>00:39:11 &#8212; Referrals and bias</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2351">00:39:11</a>] Have you ever seen cases where there was some obvious bias? Maybe someone&#8217;s son happens to land in the hiring committee of the father or something like that?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2366">00:39:26</a>] I&#8217;ve never seen an experience where there&#8217;s any kind of overt nepotism or bribery or anything that&#8217;s really exciting like that. But I have seen cases where referrals play a huge, a huge, you know, huge role. Whether or not the referral comes from somebody who&#8217;s very senior or whether or not someone has actually showed up to, in the room in the hiring committee. So sometimes there&#8217;s a friend or there&#8217;s someone who&#8217;s worked with this person before and they will show up and advocate for you in the room and to the hiring committee.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2391">00:39:51</a>] And that does make a big difference. So if you can find a referral, I know this is not news or to anybody, but if you can find a referral, you can find somebody who knows you and who will be willing to go and spend their time in a meeting that will make a big difference.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2404">00:40:04</a>] When I worked at Meta, I mean referrals and as a low level engineer, they just kind of felt like this thing where I just fired it off and forgot about it. It. But are you saying that at a higher level, like the, the level of the person matters and to the point where they can even hop into the hiring committee, Is that right?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2424">00:40:24</a>] For sure. So. Well, yes, for sure. The level, the person who&#8217;s, who&#8217;s providing this advice is, is very much matters. So if it&#8217;s a VP or a director who is referring this person, they understand that their, their reputation is on the line. They are not just passing through someone they found on LinkedIn to this, to this process. They are, they, I&#8217;ve directly worked with this person, most likely and are willing to put their personal reputation on the line to, to hire this person, that&#8217;s a big deal.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2448">00:40:48</a>] I will say that referrals of course have varying qualities. So we talked about level, also the content of the referral. So if it&#8217;s like, hey, I knew this person in school, like maybe consider them is very different than I work with this person. They have this quality, this quality, this quality, this quality. And that&#8217;s why you should hire them. And so for certainly when you are asking for a referral, especially if the person has worked directly with you, you should provide information to them.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2468">00:41:08</a>] You should like write the referral for them, provide them information about that they should pass on to them, the, to the hiring committee. And we would certainly look at that. So we would, we would read through those referrals and understand whether or not this is just somebody who happened to come across one of our employees and that&#8217;s how I got referred, or someone who worked directly with them.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2481">00:41:21</a>] And if it worked directly with them and they say relevant things, that makes a big difference. And I would say the biggest difference it makes is when you&#8217;re on the border, when you&#8217;re on the bubble. So if you are, you know, maybe you, you flubbed a couple of interviews. I actually think this was my, my situation. So when I applied I, I flubbed a couple of the interviews, especially in the phone screen stage.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2499">00:41:39</a>] And I got an, I got a follow up and I&#8217;m pretty sure I got the follow up because I had a, a referral from somebody that I was in school with who worked directly with me. And so. Thank you. Thank you, Nathan. I appreciate it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2508">00:41:48</a>] Let&#8217;s say I, I did relatively bad. Like I probably would not have passed. Not, not terrible. But it&#8217;s pretty lukewarm from everyone in the room at best in the hiring committee. But my, my referral is the strongest referral you&#8217;ve ever seen from a vp. Let&#8217;s say at their previous startup I was their chief of staff and I was really organized and I did an excellent job. And then now they&#8217;re a VP at Facebook or something like that, and then that person comes in, guns a blazing.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2542">00:42:22</a>] Would that type of referral make me pass in that case?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2546">00:42:26</a>] So typically referrals are going to be helping you on that bubble. And this was saying earlier. So it&#8217;s really about whether or not you&#8217;re going to get a follow up interview. I have never seen a case where there&#8217;s a general consensus that we should not hire this person. But yet the referral results in them getting a hire. I think that may happen more at leadership levels where the kind of people that you bring from your previous jobs that, that could be very sensitive to that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2569">00:42:49</a>] And leadership hiring is a different, whole different ball of wax. But on the engineering side, I&#8217;ve never seen a case where there&#8217;s almost a, you know, unanimous consensus that we should not hire this person. They don&#8217;t meet the bar and suddenly a like VP comes in and then is able to push the, the committee to, to hiring them. I haven&#8217;t seen that case, but I have seen the case where the VP will be able to, or whoever it is we&#8217;ll be able to push the committee into giving a follow up or maybe multiple follow ups.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2592">00:43:12</a>] Right. And so I think that you, there is a, you still have to perform in the interviews as an engineer, but if you have reached like a senior manager or director level, I think that it is a little bit more about who you know sometimes than, than your raw performance. I will say that a good hiring process is not like that. So good hiring process is one where you have identified what success, what makes people successful inside the organization and then the hiring process is evaluating that and people are making a non biased decision.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2617">00:43:37</a>] But I think the number of decision makers is smaller as you move up and more influenceable by those around them.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2625">00:43:45</a>] One thing that I think you can only really see with experience and you worked at Meta for quite some time is I&#8217;m always curious what is the correlation between someone&#8217;s performance on interviews and their downstream performance at the company? And I know that you, you&#8217;ve been involved in hundreds of interviews and you&#8217;ve seen people go and enter the company. What would be that correlation? Like how often do you see that that person smashed interviews and they&#8217;re doing excellent at the company or maybe they&#8217;re off.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2658">00:44:18</a>] So what we have looked at is not so much in terms of the number of interviews that they succeeded or failed, but rather the confidence level. So the confidence level oftentimes people would assess the interviewer&#8217;s confidence level. You would put in a hiring decision level decision. And like how conf are that confident decision does correlate with someone&#8217;s future performance. And I think what that goes to show is that people, there is some sense that, that the interviewers are sort of applying to their.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2684">00:44:44</a>] Even there&#8217;s a rubric and they try to structure it as much as possible. There is this kind of, kind of sense that they get from, from whether or not someone will be successful. And that is predictive of, of future success. And it makes sense, right? We, you know, if you&#8217;ve done hundreds of interviews as a calibrated person, you, you kind of know what of kind good looks like. It may be hard to define and you try to define as much as possible.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2703">00:45:03</a>] It reduces bias when you do that. But ultimately sometimes it comes down to these kind of, you know, feel things. I will say that certainly there have been people who rock the interview and don&#8217;t do well and certainly people who are kind of rocky in the interviews and they do great. And I, I think that what that shows you is, is what we&#8217;re talking about earlier, interviewing is a skill. So it is not the same skill as doing the job.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2723">00:45:23</a>] And unfortunately, in the world we live in, you do need to spend some time getting good at the interviewing skills skill.</p><h3>00:45:28 &#8212; What the rubric looks like</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2728">00:45:28</a>] We talked earlier about the rubric that those interviewers are trying to fill out and I&#8217;m curious for the, the behavioral side of things, what does that rubric look like?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2739">00:45:39</a>] So every company is a little different. A well run company, especially big companies, oftentimes they hire PhDs in industrial psychology. They&#8217;re called selection scientists. And what they have done is they&#8217;ve assessed, they&#8217;ve gone around your company, they&#8217;ve talked to different people, they&#8217;ve tried to understand what makes an engineer or whatever the role is very successful and they&#8217;ve codified those things into a set of signal areas that they look for in the behavioral interview.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2759">00:45:59</a>] So at, at Meta, there&#8217;s five of them. They are driving results, embracing ambiguity, resolving conflicts, growing continuously, and communicating effectively. Every company is going to have different ones. They might purely just be the company values and we can talk about that. But for example, at Meta, those are not the five company values at Meta. So you, you should definitely talk to the recruiter and as you&#8217;re having, as you&#8217;re preparing for the interview and get this rubric in advance, it&#8217;s very important if you can get it or go on the look for it.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2786">00:46:26</a>] So these, you know, whatever five to eight things, generally they fit into a broader set of categories that I talk about in the book that I call signal areas. And there&#8217;s eight of them. And so when you&#8217;re, when you&#8217;re working on your stories and your preparation, you need to have this rubric in front of you as you&#8217;re thinking about your stories and then you&#8217;re categorizing your stories based on these signal areas.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2807">00:46:47</a>] And then what you&#8217;re doing inside the interview is this decode, select, deliver, loop. This is your core operating system. When you&#8217;re inside of a behavioral interface interview, when you&#8217;re listening to a story, you&#8217;re understanding, decoding what this, what is it? Why are they asking this question? What is, what is it they&#8217;re interested in? And it&#8217;s probably one of these eight areas or something related to their, to their company values.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2827">00:47:07</a>] And so if you can identify that, then you can select a story which is appropriate and fits that, you know, delivers the kind of signal that the interviewer is looking for. And then you can deliver that in some kind of engaging way. And that&#8217;s your core loop, decode, select, deliver. So it is really important that you understand what these rubrics are oftentimes a recruiter will give it to you, you.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2844">00:47:24</a>] And at a smaller company, it&#8217;s a lot harder. They may not have thought about this at all. They may not have structured their, their, you know, their behavioral interview process with any kind of rubric. So there, I think you rely on company values. You also rely on conversations with the recruiter, usually at smaller places. You may have even talked to somebody on the team before you get to the behavioral interview.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2863">00:47:43</a>] And I think you should ask them questions like, what makes engineers successful in your company? What do you look for in the hiring process? And then take that and build your own little sense of what&#8217;s valuable for that company and then use that as you&#8217;re going through your decode select deliver loop.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2877">00:47:57</a>] That decode part is so important because, I mean, I&#8217;ve also been an interviewer for hundreds of interviews. I did a bunch of engineering management interviews as well. And it&#8217;s interesting is a lot of candidates, I feel they would tell me something and I&#8217;m looking for a signal and I ask a very targeted question. I say, can you tell me about this? And then they don&#8217;t get. And they talk past it or they continue on their spiel.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2908">00:48:28</a>] I thought you&#8217;re missing opportunity. Help me, please help me fill this out. I got a blank spot here I&#8217;m trying to fill out. I asked you the specific thing, but you&#8217;re continuing on some rehearse thing. It&#8217;s actually like a mutual exercise and helping fill out this rubric. So, yeah, I think that&#8217;s so important to interview to what they&#8217;re actually thinking about.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2932">00:48:52</a>] Your job as the candidate is to sort of tell the story from a perspective. Like you would build a trailer out of a movie. Different trailers. Robert Hamilton, the PM behavioral coach, talks about this and he says, like, well, this movie, this movie may have some action parts, may have some romance parts, right? And you can sort of remix the trailer in different ways to see what this movie is. Right?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2950">00:49:10</a>] And at the same way with these stories. So when you have a story, it may have a part about ambiguity, it may have a part about communication, it may have a part about conflict resolution. And so you can take the same story. And in fact, you probably should take the same story. Like I said earlier, you should identify what are those core stories of stories. You really want to get out and be able to build a movie trailer which sort of fits the question that they&#8217;re asking about.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2972">00:49:32</a>] And you need to do that early, right? To your point. So you can&#8217;t be that in three Five minutes in, then we&#8217;re starting to get to the ambiguity part that the person asked about ambiguity. It needs to come up upfront in that initial context setting. And this is, this is the way that you know that you are internalizing you being a partner with the interviewer. I think people forget about that, that like you said, the interviewer is trying to accomplish a task, trying to evaluate you.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=2995">00:49:55</a>] You need to be a partner in that and you need to help the interviewer get to the signal that they&#8217;re looking for.</p><h3>00:50:00 &#8212; OpenAI and Anthropic specific discussion</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3000">00:50:00</a>] You mentioned tailoring your stories and your experience to the specific values of the company. And I was thinking what might be interesting, we could go over some concrete examples maybe with some hot companies right now like OpenAI and Anthropic. And yeah, I&#8217;d be curious to hear what you see in their values and how you might mold stories to help people who are looking to get hired at these companies.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3027">00:50:27</a>] Yeah. So the first thing I would say encourage people to do is first understand your stories from the perspective of these eight core areas that I talk about. Because most company values come can be bold down into these eight different areas. We could talk about them at some point, but inevitably, especially for newer companies like these AI companies, there&#8217;s some part of their company values that don&#8217;t fit within that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3047">00:50:47</a>] So, for example, OpenAI has this one that&#8217;s called act with Humility. Really what that means is growth. That&#8217;s my one of the eight areas. Do you respond well to feedback? You know, do you, do you, you know, are you, are you seeking to improve yourself, improving the people around you? That&#8217;s kind of the same thing. But they do have one called Feel the AGI, which is not really one of my eight areas.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3066">00:51:06</a>] So you&#8217;ll need to understand what that that means for them. And so what that means to them is that you are very optimistic and positive about what AGI and what AI could do for the world. Now, Anthropic has one called Hold, Light and Shade. And really what they&#8217;re trying to assess there is that you can understand both the positive and the negative implications of AI in the future. And so for me, you need to understand what the cultural zeitgeist is of this company that you can assess via their company values and by researching them them before you go in.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3094">00:51:34</a>] So how might you do that? Right. If you are telling a story about how you leveraged AI in the past to Anthropic, you would really want to mention how you thought about the potential negative implications of this project from an AI perspective. How did you go about mitigating those, how did you go about assessing those? And if they don&#8217;t hear those things, they&#8217;re not going to feel comfortable about hiring you.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3115">00:51:55</a>] And likewise on OpenAI, if you are not somebody who&#8217;s very AI forward and very much excited about, about new domains that we can apply AI to, they&#8217;re not going to be as interested in hiring you. So when you&#8217;re reviewing your stories, you need to understand what every behavioral interviewer looks for. Those are those different, those eight different areas. Things like ownership, handling ambiguity, conflict resolution, the things that we do on a daily, daily basis, but also mixing in what are those specific things that are, that are unique to their company.</p><h3>00:52:22 &#8212; Most common mistakes senior candidates make</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3142">00:52:22</a>] We covered how to avoid getting down leveled and, but I&#8217;m, I&#8217;m also curious, before we kind of leave that kind of topic, what are the most common mistakes that people make in behavioral interviews that lead to worse results than they should have?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3158">00:52:38</a>] Yeah, let&#8217;s stay focused on senior engineers for a second because I think that, that they are slightly different. So the number one, what we talked about before, which is inappropriate choice of stories, so you didn&#8217;t choose stories that fit the appropriate scope that you&#8217;re targeting. So that&#8217;s number one. One, I would say the, another one is usually as you&#8217;re more senior, you&#8217;re a better communicator and so you might talk a lot.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3178">00:52:58</a>] So this happens especially for manager loops. Oh yeah. Like, let&#8217;s be talking about this project and da, da, da, you should talk, talk, talk, talk, talk. So this sense of giving around too much context is really common. And the, and the key there is something like you should only give the kind of context which is required for me to understand the behaviors. Again, that&#8217;s what I&#8217;m assessing you on, is the behaviors that you&#8217;ve done in the past.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3197">00:53:17</a>] And if you give me too much context as relevant for this, then, then I&#8217;m, you&#8217;re just, you&#8217;re just using your own air, wasting your time. And another guideline there is when you&#8217;re, when you, even if you are talking about the middle part of the project and what you did, if it&#8217;s been like 30 seconds since you have told me something that you did, like some kind of action, you know, some kind of verb is coming into this conversation.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3217">00:53:37</a>] If it&#8217;s been that long, then you should rethink that. Like maybe I&#8217;m providing too much content, too much technical detail, too much backstory, too much asides. Whatever it is, you need to keep the, you know, keep the, keep the action coming. Keep that Work stories are just not that exciting. Okay, let&#8217;s just be honest, like Stranger Things versus like me listening to a behavioral interview like I&#8217;d rather watch Stranger Things, right?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3237">00:53:57</a>] So I, I think people want to, want to be, they want to see action and movement in the story. So keep it, keep it moving. Another one that&#8217;s really common for senior engineers is opening themselves up to uncharitable interpretations. And I call this one the opposite is thinking defensively. You need to think defensively. So in this, in this kind of senior role role, it&#8217;s very risky to bring people on, bring leaders on.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3257">00:54:17</a>] They have a huge impact on the team. And so interviewers are very risk averse. So if you start presenting and telling stories like, well, you know, the code base had a lot of technical debt, so we decided to do X. Sounds like a great story, right? Hey, you&#8217;re, you&#8217;re somebody who solves technical debt. But if you&#8217;re the senior engineer in the room then like how did we get this technical debt? Right?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3274">00:54:34</a>] It&#8217;s your fault, right? So I think this kind of how can my stories be interpreted as unfavorable is really important for you to consider and the, the way around that is to make sure that you are compensating when you&#8217;re telling the, the context in the story. So it could be that like we were a startup, we needed to, to close, you know, our next round of funding. Therefore we decided to, to take on this technical debt and then it was our role to solve it and I decided to prioritize it because xyz.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3303">00:55:03</a>] So here we are giving some kind of thinking or backstory or judgment people piece to how you ended up in this situation. We touched on it briefly before, but another one is not talking enough about the non technical parts of the work that you do. Obviously technical parts, super important. You need to establish yourself as somebody who can solve hard technical problems. But if you&#8217;re a senior engineer or a staff engineer, principal engineer, a lot of what you do is working with people.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3325">00:55:25</a>] How you mentored, how you organized, how you delegated, how you influenced the roadmap, how you resolve conflicts, how you worked across teams, how you managed up, right? So those parts of the story are super important. Other thing is that oftentimes you&#8217;re telling stories that are very long. Okay. So you&#8217;re talking about, especially a principal engineer, they&#8217;re telling stories that are often multiple years, two, three years worth of refactors or, or some, you know, large product build in a new product space.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3349">00:55:49</a>] So you need to have your stories well organized. And you need to understand what&#8217;s really important for the listener out of that story. So I recommend people have some kind of table of contents at the very top, which requires you to understand what&#8217;s important. So you could say something like, well, some business context and this is why I&#8217;m doing this thing. Da, da. And then you say, oh yeah, there are like five interesting parts of the story.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3366">00:56:06</a>] You know, how I initiated the idea with management, how I aligned the stakeholders on the technical approach, how I solved some difficult technical problems and like how we did this very complex rollout over, you know, multiple, multiple years, something like that. So now set the stage for the conversation and then I can tell a longer story, keeping it organized in these different verticals. And it also gives me a way to come back to them.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3388">00:56:28</a>] So if I&#8217;m a candidate and the interviewer is peppering me with follow up questions and they&#8217;re interrupting me, which is super common for these senior engineers, senior, senior interviews, then I can always come back to, oh, you know, remember that part that I was telling you about the hard technical problems? Like let me go back to that. Then you can, then you can bring the listener back to the most important part.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3405">00:56:45</a>] So that story organization piece is super, super important for senior, senior candidates. We didn&#8217;t talk very much about choosing those stories. And I did say that the most important thing is scope, which I don&#8217;t think is immediately apparent to most people who&#8217;ve thought about behavioral interviews. Oftentimes you would think, well, relevance is the number one thing. I have to tell a story which fits the question that they&#8217;re asking.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3427">00:57:07</a>] And that&#8217;s very logical. Right? But like I said earlier, the most important thing is that you get out of the behavioral interview having told the stories that showcase your impact the most. So scope is the number one thing when you&#8217;re choosing a story. How can you fit a big scope story into the question, question that is asked? Number two is relevance. Obviously you can&#8217;t tell a story about, you know, sometime when that wasn&#8217;t very ambiguous.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3448">00:57:28</a>] If you&#8217;re being asked about ambiguity, the third thing is recency. So of course, you know, newer stories are more important than older stories, but I would rather hear a large scope relevant story from a senior engineer versus someone that&#8217;s very new. So recency is not the most important thing. And the guideline there is something like two to three years for sure is okay beyond three, four years.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3472">00:57:52</a>] Now you have to have a really good reason for telling that story. And of course this scale increases as you get more Senior. So if you have a 30 year career then telling and you&#8217;re applying for a principal role, then telling a story from 10 years ago probably isn&#8217;t that bad. And the last one is uniqueness, which is some people don&#8217;t often think about. But how can I tell a story that I haven&#8217;t told already?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3492">00:58:12</a>] And this becomes super important for interviews where there are multiple behavioral rounds where you&#8217;re likely to tell multiple answer, multiple tell me about a time kind of questions. So maybe the, the question in the like Project Deep Dive might not be the same story that you use when you&#8217;re just asked about an ambiguous project in the general behavioral interview. So thinking about how you can balance uniqueness across the, the portfolio of behavioral interviews that you&#8217;re being given as this loop is important.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3517">00:58:37</a>] When you said that scope is more important than relevance. Is it like let&#8217;s say I&#8217;m in a behavioral interview, I&#8217;m, I&#8217;m giving my stories and it almost reminds me of a politician where they ask a question and I, I have my rehearse thing that&#8217;s not exactly what they asked, but it&#8217;s filling in the rubric is that you&#8217;re saying that&#8217;s best as opposed to saying that is best exactly what they say.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3541">00:59:01</a>] So be like a politician I guess is unfortunately what I&#8217;m advocating that you do. Because I think that again, you want to, to leave the interview having showcased the ways that you have delivered business value, solve problems, done the things you do as an engineer the best. Right. And if, if you just stay focused on answering their specific question. For example, like a question like tell me about the time you had a conflict with a product manager.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3565">00:59:25</a>] Maybe you do have a story that you had a conflict with a product manager, but maybe the bigger story is a conflict with, with the director of engineering or a conflict with your direct manager. So what I would do is I would try to pivot that, that story into the one that is, is larger. And they may, they may constrain you, you know, they may come back to it and then you&#8217;re stuck telling the smaller story.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3585">00:59:45</a>] But what I would do is I would showcase that you have this other story. So you can say something like I did have a conflict with a product manager. It involved this and this. And I was able to overcome that conflict by compromising on this. You know, I could tell that story, but there is this other story that I could tell about how I had to go through a longer conflict resolution experience where I had to collect data and I had to, you know, collect other People and we had to have multiple meetings about it.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3607">01:00:07</a>] That might be a more interesting story. I can&#8217;t tell that one. So you can pivot the conversation focused on conflict resolution into a story that might fit better for what the interviewer is actually looking for. They may or may not really care about when you had a conflict with a product manager, they might just be collecting conflict resolution signal.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3625">01:00:25</a>] Let&#8217;s say you&#8217;re in the middle of the interview and you&#8217;re trying to figure out, am I talking for too long or is this person still with me, or should I, am I saying the right thing things? How often should the interviewer be talking? How often should you be talking?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3640">01:00:40</a>] So there are different style of interviewers. So some interviewers really are listening. So I tend to be that kind of person where I would. Interested in what I think. Interested in what you think is interesting. So. And I&#8217;m assessing you based on what you think is interesting and where you&#8217;re taking me. And I&#8217;m getting a lot of communication signal out of that. But some interviewers are not like that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3658">01:00:58</a>] They are. They interrupt you frequently. They look at, they want to look at, pick out some part that you mentioned and like, turn it over a couple times in their hand and then get back to you. So they may have a lot more thoughts, follow up questions. They may interrupt you a lot more or they may switch questions. They may collect a little bit of signal on this question and then like, move rapidly to the other one.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3674">01:01:14</a>] So I think you&#8217;ll figure out which kind of interviewer you have pretty, pretty quickly in the, in the interview. And you should be emotionally prepared, especially for the second one. This person who interrupts you frequently can be kind of jarring for you. And you can think, oh, I&#8217;m failing, I&#8217;m not doing the right thing. But no, you&#8217;re just getting an interviewer who likes to interrupt people and likes to bounce around.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3691">01:01:31</a>] But to answer more specific to your question, I think you can look for signs. So this is where you need to use your human part of your brain, not just your, your structured and organized part of your brain, but you need to assess, like, are they looking at me? Are they taking notes? Are they any kind of indication that they&#8217;re. That they&#8217;re engaged? And if you notice some lack of engagement, then I would pause and ask them, is this what you&#8217;re looking for?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3710">01:01:50</a>] This is what I was about to say, like, is that still relevant? And give them this opportunity. Can. A good interviewer is willing to interrupt you. A good interviewer, a calibrated interviewer, someone who is, is confident in what they&#8217;re doing, they will be a little rude to you because they are, look again, they are looking to acquire that signal and they are willing to, to go through a little bit of social awkwardness in order to acquire it.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3728">01:02:08</a>] But some interviewers aren&#8217;t that good. And so you need to make that easy for them to be able to stop you. Which is why I recommend not talking for more than, you know, two to four minutes if you&#8217;re over. If you&#8217;re talking for more than four minutes, five minutes, you got to be really good at giving a monologue like that. It better be really interesting for the, for the listener. And you probably, you probably should know what you&#8217;re doing if you&#8217;re talking for that level of time.</p><h3>01:02:31 &#8212; How to prep depending on your level</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3751">01:02:31</a>] When it comes to interview prep, I mean, a lot of what you said sounds like there&#8217;s a difference between the levels. Senior engineers make different mistakes than junior engineers. And I imagine the weight of the behavioral interview&#8217;s importance differs across the level. Sounds like as you get higher up and higher up, they add extra behavioral interviews. So I&#8217;m thinking if someone was preparing for interviews across those high level buckets, how would you recommend they split up their interview prep time across coding, system design and behavioral?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3788">01:03:08</a>] Most people are spending way too much time on coding and not enough time on system design and behavioral interviews because those are the more murky ones to prepare for. However, I will say that junior engineers, your most important signal is going to be technical. So making sure that you nail those coding interviews, mailing the system design interview interview, it&#8217;s going to be the most important.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3804">01:03:24</a>] And then the behavioral interview, the key to focus on is your thinking, your motivations because you may not have a ton of accomplishments to lean on there, but you can lean on what you thought about or what kind of ideas you had or things that you tried. Maybe they didn&#8217;t work. So those kinds of signals of what my future performance could be or my future impact is going to be super important for junior engineers.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3826">01:03:46</a>] For mid level engineers, I think you need about balance. I would say that AI is changing this game. In the past, I think you could still focus even as a mid level engineer, only on the technical parts and just make sure that you didn&#8217;t flub the behavioral. I don&#8217;t think that world exists anymore. Number one, there are so many candidates in the market with so many layoffs recently that you need to shine across all different interview types.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3847">01:04:07</a>] And the second thing I would say is more and more of that technical work is being done, you know, by an agentic coding experience. And so we are looking for mid level engineers who can own problems problems end to end. And how do you see that kind of ownership? You&#8217;re going to see that in the behavioral. We need mid level engineers who are excited about growing and learning new things because the technology and the approach to engineering is changing so rapidly.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3866">01:04:26</a>] And how are you going to assess that? It&#8217;s going to be assessed in the, in the behavioral interview. So I would, I would balance more balance your time. Right. The beginning part of the interview process that we talked about before is often some kind of coding assessment. So you need to get your coding interviewing practice in early. But you know, once you get that on site schedule or ideally even before that, some weeks before that, you have spent some time thinking about your behavioral questions.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3887">01:04:47</a>] You&#8217;ve spent some time identifying the core stories from your past that you&#8217;d like to tell. You&#8217;ve looked at their, their values. You&#8217;ve looked at the rubric that you find for the behavioral interview. You&#8217;ve made sure that you have some stories that fit each one of those key areas that they&#8217;re going to be asking you about. And then once you get to senior and above, a lot of it&#8217;s going to come down to the behavioral interview.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3905">01:05:05</a>] So like I said before, first thing I would do when I look at a staff level packet is I would go to the behavioral interview. There just aren&#8217;t that many different ways to design like a web crawler in a system design interview. Or aren&#8217;t that many ways to solve twosome in a coding interview such that I could see whether or not someone is a staff level or just a senior level. And I would go directly to the behavioral interview to see what the organizational impact is, what their level of influence is on others, how they resolve conflict.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3932">01:05:32</a>] I would look to see what scope of projects they&#8217;ve they&#8217;ve been able to, to accomplish and what, what level of business impact they&#8217;ve been able to deliver deliver. And that would be my how I would determine whether or not they were really truly a staff engineer. And like you mentioned at that, that you know, super senior like staff plus kind of percent principal distinguished level. They&#8217;re adding additional behavioral interviews and oftentimes they&#8217;re looking at specific things, things like how you work cross functionally with, with partners.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3956">01:05:56</a>] They may give you a PM for example, or another person from a cross functional partner that will interview you and see how you work with others. Or they&#8217;re going to be wanting to get more information about one of Your bigger stories, one of your bigger projects. So they&#8217;re going to give you some kind of project deep dive interview where you walk them through some technical and organizational challenges you&#8217;ve solved in the past.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3976">01:06:16</a>] And so those become the differentiators and the technical ones become kind of like check marks. Like you have to pass, you have to get over the bar. But really what&#8217;s going to get you hired is going to be shining on those behavioral sides. So certainly a slide. I would say that most people under invest in behavioral interview. So, so it&#8217;s probably going to take you at least a few weeks to, to, to perform well.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=3997">01:06:37</a>] And if you are at that staff or above, I would say, you know, start, start when you start doing your leetcode right, Start thinking about those past stories, start working on how you position them. Get some feedback, go do some mock interviews at least with a friend, if not with a professional. And especially if you&#8217;re going to be applying for a FAANG or, or you know, open eye or anthropic one of these big companies that&#8217;s very in demand.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4021">01:07:01</a>] I would try to find somebody who is calibrated at that company who can give you a mock interview and give you that, that squishy cultural sense that we were talking about earlier and reflect back to you whether or not you&#8217;re hitting the right cultural notes.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4033">01:07:13</a>] When you were in hiring committees in the past for maybe more senior candidates. When you have a candidate who does okay on the technical sides but really kills it on behavior girl. Is that the type of packet that could go through at the highest levels?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4052">01:07:32</a>] Certainly at the highest levels, definitely. If there&#8217;s a place where you&#8217;re going to flub a coding interview and be okay, I think that staff or principal level or manager level, those places where we just don&#8217;t expect you to be doing as much day to day coding. And so we would discount poor performances in those interviews for sure. I think it&#8217;s much harder to do that at the junior levels. I will say that I had a candidate that I did the behavioral for and this candidate was, had not accomplished a ton in their career.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4080">01:08:00</a>] The, the technical things were just okay. But I kept seeing glimpses of, you know, ideas that this candidate had had that maybe they weren&#8217;t able to execute on or the manager didn&#8217;t agree or they couldn&#8217;t get it done in their organization but they kept thinking about things. And I said now this person has so much like potential in this person&#8217;s career that I pushed for that person to be hired. And that person ended up Being a staff person eventually.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4102">01:08:22</a>] And I think that that was a good indication that, you know, there is a. There is like a. There&#8217;s a slope that we&#8217;re trying to assess, and the slope is often assessed there in that behavioral interview, even for junior folks.</p><h3>01:08:34 &#8212; Subjectivity and bias</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4114">01:08:34</a>] We talked about some of the subjectivity in. In this type of interview and talking about how you talk about the. The scope of your work and all of those things that kind of help you with leveling conversation. But also another part of subjectivity is just how much does this person like you and their bias towards you based off of a lot of the soft influence you might have as you speak to them. So I&#8217;m curious how much influence you think that has on the outcome of the interview.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4143">01:09:03</a>] It scales exactly with level. So with a more junior candidate, I think that at least at a big company where they&#8217;ve spent some time structuring these behavioral interviews, interviews, and they&#8217;re trying to reduce this kind of do I just want to have a beer? You know, with this person kind of vibe that they&#8217;re. That they&#8217;re collecting. They&#8217;re trying to reduce that by structuring it and making. Giving the.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4162">01:09:22</a>] The interviewer some sort of form to fill out or some clarifying what&#8217;s. What&#8217;s important in the hiring decision. But as you get more senior now, they&#8217;re expecting you to influence other people on the job and that. So how you come across in the meeting, are you confident? Are you comfortable? Are you able to hold on to this kind of like casual. Casual excellence. Right. Which I think is very much a quality, a cultural quality that, that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4185">01:09:45</a>] That Silicon Valley has in particular, this idea that I can kind of show up and I look cool, and I look. Not look cool, but I look calm, but yet I&#8217;m still very competent and can sharply discuss things and deliver things. I think they are looking for that kind of signal. And it&#8217;s. It&#8217;s definitely subjective. And so I think your. Your ability to connect with the interviewer in the first few minutes, if you come in and you&#8217;re disheveled or you come in and you&#8217;re nervous and you&#8217;re not able to be present in the meeting, well, that&#8217;s part of the signal they&#8217;re acquiring because you&#8217;re gonna have to show up into meetings and be, you know, put together and be confident and be able to stand in front of the CEO and deliver, you know, deliver good news or bad news or ask some questions or whatever, and they are looking for somebody who will do a good job with that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4228">01:10:28</a>] And they&#8217;re you know, this is a high pressure situation, an interview. You&#8217;re going to be in a high pressure situation at work and they&#8217;re assessing you there as well. So I think this is where you need to understand the cultural expectations of your companies that you&#8217;re, that you&#8217;re, that you&#8217;re applying for. Different countries have different expectations around leadership and hierarchy and how they approach things.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4247">01:10:47</a>] I think we&#8217;re talking mostly about like a US centered kind of Silicon Valley centered or you know, associated places. Seattle, New York, those kinds of culture. And that place is one, one of, we need to be able to start the meeting with some kind of playful banter, you know, and then we continue with like hard hitting pieces. But sometimes I, I&#8217;m self deprecating and I kind of pout out of that and we laugh about a few things, but then we&#8217;re back in it and we&#8217;re doing this like intense thing.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4271">01:11:11</a>] So that&#8217;s super common for, for, for those environments. Other countries, other companies, they may have different expectations. I think you need to understand what those are before you go in.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4280">01:11:20</a>] Let&#8217;s say someone is maybe a staff engineer. They&#8217;re not necessarily the most, they wouldn&#8217;t describe themselves as a people person, but they want to come off strong in that interview. How would you reverse engineer how to represent yourself strongly in terms of all those soft influence type of things?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4298">01:11:38</a>] So the first thing I say is that the inside always comes out on the outside. Okay, I know you don&#8217;t want to hear that, but the reality is what you believe about yourself, what you believe about others really changes how you present yourself. So the first thing I would say is it is not just some like list of things that we need to do or a checkbox stuff that you kind of put on. It&#8217;s not a mask that you put on, put on.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4316">01:11:56</a>] You need to change your, your internal beliefs. And Sam Lesson has this, this book he just released about Silicon Valley etiquette and he did this podcast recently where he talks about the importance of lowering your own heart rate before you go into the conversation. So yes, this might be your like one and only shot at this job. It&#8217;s possible. Oftentimes that&#8217;s less the case than, than most than most candidates believe.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4338">01:12:18</a>] So sometimes we think like, oh, this is my one shot at getting this company. Well, if the company&#8217;s gonna be around for a while, you probably have other shots. So don&#8217;t put so much pressure on yourself. I know it&#8217;s hard, but it, that is the reality. You need to tell yourself, give yourself an internal Belief structure that makes it okay for you to make mistakes in this environment, you will come across a lot more calm.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4355">01:12:35</a>] The second thing I say is try to, try to understand what. And be empathetic of the other person. So again, this is an internal thing. Believe that the other person is looking for a great engineer, a great manager. Whatever it is, whatever the role that you&#8217;re applying for. They&#8217;re looking for somebody who&#8217;s going to do really awesome. They really want, they want to find that person. They&#8217;re spending their time interviewing you.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4375">01:12:55</a>] They really want to find somebody who&#8217;s great. And they&#8217;re not just looking to nitpick you and like, throw you out and judge you. Right? So I think this kind of internal belief where you believe, you know, this person is, is, is not my enemy. This person is, is, is, is, is, is a human doing their job. I would love to do my job alongside this person. Let&#8217;s have this great conversation. So that&#8217;s the first thing you have to start, start on the inside.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4397">01:13:17</a>] If we are looking for other things, then I would say how you show up physically, so what you&#8217;re wearing, you know, go that like one notch above. That&#8217;s classic interview advice. What&#8217;s in your background so you know, how, how does your room appear when you&#8217;re doing a video call? Especially, how are you. How are you expressing care and interest in the person in the first few minutes of the meeting?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4420">01:13:40</a>] So if you&#8217;re just, if you come in and you&#8217;re just waiting for the other person to say something, this is a very. You&#8217;re taking a very passive role and you&#8217;re showcasing that, you know, maybe you&#8217;re not ready for these kinds of, of more active of roles where I need you to build relationships with other people. Show me that you can be, be. You may not be like the most extroverted person, but you probably do value people in some way.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4438">01:13:58</a>] Like, people are probably important to you. You know, your mom is important to you. Maybe your significant other is important. This, There are people who are important to you. And so let that come across in that first few minutes. Hi, how are you? I&#8217;m doing good, you know, or I, I&#8217;m, I&#8217;m interested in, in. I&#8217;m really excited to be here. Right. You can express enthusiasm even if you&#8217;re, you know, not the most extroverted person.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4455">01:14:15</a>] So those first few moments, the, the brain is really looking at that, like kind of just figuring out, is this the kind of person I want to be with? And you&#8217;re making a lot of. They&#8217;re making a lot of split, split second decisions. And so how you show up in those first few minutes are important. Practice that, practice that with your mock interviewers. Don&#8217;t just jump right into the questions. Practice that kind of, you know, early, early part.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4477">01:14:37</a>] Make the other person feel comfortable. Sometimes the interviewer is, is nervous too. Actually giving a behavioral interview is quite complicated, quite difficult, I would say. It is hard to, to engage the person in some meaningful way. Ask relevant follow up questions, but making sure that you&#8217;re collecting the information that you want to collect, also making them feel comfortable so that they give you the best signal.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4495">01:14:55</a>] Also the behavioral interviewer, sometimes the hiring manager or some kind of leader in the organization. And so how they are coming across in the meeting is affecting the candidate&#8217;s perception of the company and perception of the team. So, you know, have some empathy for that, for that person who&#8217;s given this behavioral interview. Make them feel comfortable, make them feel like you&#8217;re right. Ease.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4513">01:15:13</a>] How you do that is by changing first what you believe about the, about the situation.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4518">01:15:18</a>] Who do you think would perform better on average in a behavioral interview? Someone who is extremely curt and cold, but excellent. Everything you ask them, they give you the right words, really concisely, great stories, but they&#8217;re not there to be your friend. They&#8217;re kind of cold and they&#8217;re silent and they wait till you ask a question. Follow up questions, they say no follow up questions. Okay, thank you for your time.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4547">01:15:47</a>] Or someone who&#8217;s very warm and bubbly and oh, how&#8217;s your day? Okay, let&#8217;s get into this. Oh, I hope I do well. And they kind of build some rapport with you and then they, they do so. So on the, the actual stories themselves across the body of people who conduct behavioral interviews, which one do you think would do better on average?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4569">01:16:09</a>] Well, that&#8217;s the key. Who conducts the interview? So if I&#8217;m conducting the interview, the second person will probably be doing better because I, I like to engage. Or you might have, might have noticed that, right? I want to get those more people sides. So this is where, when you say building rapport. Building rapport doesn&#8217;t mean that you&#8217;re bubbly. Building rapport means that you are connected to the other person.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4587">01:16:27</a>] So you need to understand in that first few minutes, like what kind of person is this? Is this a person, person who wants to be more business like and wants to assess things in a more, you know, cold and calculating way? Fine, that&#8217;s okay. Or is this person, you know, somebody who will kind of chop it up with me in the first, in the first few minutes. So I think you can, you should start on a positive note.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4606">01:16:46</a>] I think you should start energetic. You should start, you know, believing that with some excite, showing excitement to be there but respond to the other person and how they, you know, how they present themselves. They may, for example, if there&#8217;s someone who doesn&#8217;t even ask you for introduction, doesn&#8217;t even ask you for tell me about yourself. They may jump into, tell me about a time when you had an ambiguous problem.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4626">01:17:06</a>] Well, you know exactly who you get now. And somebody who just wants to go down the list and, and, and, and, and bang out the signal and, and be very efficient. And so you need to, to match that and be very efficient with what you, what you say. But if the person starts two or three minutes of weather sports, you know, how you feeling? How&#8217;s the rest of the interviews going? Like, you know, you have a different kind of person that you&#8217;re talking to and so you need to match their energy.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4650">01:17:30</a>] When it comes to these subjective parts of the interview experience. What do you think&#8217;s more important, the first impression or the last impression?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4660">01:17:40</a>] Do we have to choose? Like, why do we have to choose? So let&#8217;s, let&#8217;s do, let&#8217;s knock it out on the beginning and the end. But if I&#8217;m forced to choose, I would say the beginning. I think most of the time I am making a decision within the first 10, 15 minutes of the interview about whether I&#8217;m going to hire the person. And it&#8217;s because I have been asking usually my biggest scope questions. Tell me about your favorite project.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4679">01:17:59</a>] Tell me about your most ambiguous project. Tell me about something that you&#8217;re really proud of. And then I&#8217;m seeing what they&#8217;re saying. And if I would like to have that kind of performance replicated in my organization, then the rest of the interview is more like, let me check the other things. Let me check conflict resolution, Let me check growth. Let me make sure that this person is going to be successful.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4694">01:18:14</a>] But ultimately I would love for them to replicate their past success in my organization. So if I had to pick one, I would pick the beginning. But you can rock the end. Like, why not? And the most important way to rock the end is to have relevant questions for the interviewer. And people oftentimes forget about this in their behavioral interview prep. They spend all the time talking about their, their stories and they&#8217;re getting really excited about telling, answering questions.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4714">01:18:34</a>] But then when it comes to, you know, a question that questions they have for the interviewer they come up with something like, tell me about a day in the life of the engineer. Like the day of life of the engineer is pretty much the same across the company. Okay. You know, it&#8217;s like, hey, we go get up, we do some work, go to meetings. It&#8217;s just not that interesting of a question. So I think if you&#8217;ve thought deeply about the team, about the organization, about the product, about the company, and then you have some question which is helping you decide whether or not you want to work there, the interviewer is assessing you on that even.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4741">01:19:01</a>] And so you can leave the impression that you are engaged in the process, you&#8217;re excited about the role, you&#8217;re really evaluating whether it&#8217;s right for you. That&#8217;s a great way to leave the conversation.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4751">01:19:11</a>] What percent of these interviews? Because you mentioned the, the first impressions. More important, if you had to make the call, what percent of interviews do you think the result is decided within the first 20% of the interview?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4767">01:19:27</a>] Yeah. So lots of social science has been applied here. I&#8217;ve not seen any social science applied directly to tech interviews. And sometimes you cannot apply like cross apply, you know, interviewing at a fast food company to interviewing at a tech tech company. But the, the, the research says something like in the first 15%. Right. The first like 10 minutes of the interview, most maybe like 40% of of the decisions has already been made.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4790">01:19:50</a>] And I would say that that happens for sure in, in our experience as well as, as you know, in engineering. Again I, I&#8217;m, it&#8217;s rare that I don&#8217;t want to hire you in the first 10, 15 minutes and then suddenly you say something at like minute 38 that&#8217;s making me, oh, I changed my mind. I think it is common for me not to, to know. Right. So for me to kind of feel like I&#8217;m not sure. Let me think about it.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4811">01:20:11</a>] And then when I go back and I would write the notes down, I would consider it, consider them according to the rubric, which is the goal of the rubric, right. To shift our decision making out of this initial gut response and into something which is more cerebral, left brained. And there would be times when I was not sure and then I would make a decision later. But if I&#8217;ve made a decision in the first 10 minutes, it&#8217;s pretty hard for you to overcome that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4837">01:20:37</a>] And most of the time it&#8217;s because you&#8217;re choosing the wrong stories or I can clearly tell that you just, you have not done work at the level that we&#8217;re expecting for this company or you can&#8217;t communicate very well. So like you can&#8217;t tell stories very well. And that&#8217;s giving me for one thing usually means I can&#8217;t collect enough relevant signal to. To on the other axes to hire you. But also I know that if I hire you into my organization, like you&#8217;re not going to be a very good communicator.</p><h3>01:21:02 &#8212; The questions you ask at the end matter</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4862">01:21:02</a>] I, I guess a lot of people, I&#8217;ve experienced this as well too, where you&#8217;re in the interview and it&#8217;s not going so hot and then halfway you realize they&#8217;re zoning out because they&#8217;ve already decided that you&#8217;re not getting hired. So that first half is so important. Another interesting thing I wanted to follow up on is it sounds like that last few minutes of the interview where they say, hey, do you have any questions for me?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4888">01:21:28</a>] This sounds like a not evaluative part of the interview you. But it actually is and you should continue to sell yourself by saying, hey, I ask questions that matter that are important. I am aware of the things that are important and I&#8217;m asking about those. So what are good follow up questions to ask to make sure that you get the most out of that section?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4912">01:21:52</a>] Yeah, so one of the themes here in our conversation is everything is evaluative, right? So the early conversation with the recruiter is evaluative. The end of the behavioral interview is evaluative. The like hangout chat with the hiring managers, evaluate. Everything is evaluative. And I think that makes sense. That&#8217;s just part of life. But yes, definitely. So I think first, first off, you should understand what&#8217;s important to you.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4929">01:22:09</a>] So what do. Are you concerned about the like long term product prospects of this company? If that&#8217;s concerning to you, why don&#8217;t you ask about that? If it&#8217;s, if what&#8217;s important to you is career growth and a manager that&#8217;s going to be supportive of your promotion and you&#8217;re talking to the hiring manager. That&#8217;s key. Then I would ask about that. Tell me about a time when you, you tell me a story about how you help somebody grow from my level to the next level.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4952">01:22:32</a>] Right. So that&#8217;s the story that you want to hear, understand what&#8217;s important to you. And it could be about the, the technology, although I think that those tend to be a little bit more on the junior side. If somebody&#8217;s asking me about like what kind of stack we use or how we overcome this particular technical problem, to me that feels a little bit more junior. Although if, you know, maybe in an AI context that might not be so like you could ask a question about, you know, model construction or evaluation or something like that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4976">01:22:56</a>] That could be really important for, for you to join the company. You could ask about the role. So oftentimes one that I really liked would be something like tell me about what makes this role really successful. Like someone in this role really successful. And you can get us a lot of signal on how to be successful in the, in the, in the company once you get there and showcase to the interviewer that you&#8217;re interested in in being successful by asking a question like that.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=4998">01:23:18</a>] I mentioned company ones and manager ones. So like I think those are the, your categories for, for choosing one some kind of insightful question. But it. I wouldn&#8217;t, I wouldn&#8217;t approach it as in like how can I impress this person with a deep question. I would approach it more like what&#8217;s important to me? And then that will come across in as a deep question to the person that you&#8217;re. You&#8217;re talking to.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5019">01:23:39</a>] But I would avoid certain things that might be important to you. Some questions like tell me about the conversation of this role. Right. That&#8217;s not a conversation that you have with the painful interviewer or like how is the free food? Right. These things might be important to you but like this is not the time to talk about those things. I think it needs to be more related to, you know, something that the hiring manager also or the interviewer also cares about.</p><h3>01:23:59 &#8212; Storytelling tips</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5039">01:23:59</a>] One last thing I think on behavioral interviews we did, we did a lot of, a lot of stuff on, on behavioral. Here is there&#8217;s this idea of storytelling that kind of unifies everything. If you can storytell well, you&#8217;re going to do well in your behavioral. You&#8217;re going to do well when you&#8217;re advocating for yourself actually on the job job. So I want to get your thoughts on how to tell stories. Well. What are the most common ways to get the most benefit with the least amount of time?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5070">01:24:30</a>] Yeah. So a story has to have an arc. Has to have some beginning, middle, end. It needs to give the person whatever the story listener is looking for. Maybe in some kind of novel. We&#8217;re looking for entertainment and we&#8217;re looking for something deeper meaning about. About life. In a behavioral interview, I&#8217;m looking to. To see if you are demonstrating past behaviors which are repeatable in that organization.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5093">01:24:53</a>] I&#8217;m hiring you into which align with the signal areas. Right. So that&#8217;s the goal. So let&#8217;s just remind ourselves that is it have a sort of arc and it needs to deliver this, you know, this signal area. There&#8217;s A couple of different frameworks people have talked about in the past for shortcuts for how we can get to this. And the most common one is Star. Right. Situation, task, action, result. If you&#8217;ve looked up anything about behavioral interviews, you&#8217;ve definitely seen Star Method.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5113">01:25:13</a>] If you. I will begin by saying I don&#8217;t love the Star method. However, if you have an interview tomorrow and you have a bunch of Star stories that you prepared, go for it. That&#8217;s great. It&#8217;ll give you that arc. It&#8217;ll, it&#8217;ll showcase those actions. It will bookend the actions you have with some kind of context to understand them and then some kind of impact or results so that they can understand why you did the things that you did.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5133">01:25:33</a>] I prefer one called Carl, which is context, actions, results, learnings. I don&#8217;t think the difference between a situation and a task is like super relevant when you&#8217;re telling a story story. Oftentimes stories just have context like what&#8217;s going on in the business, what&#8217;s happening on the team, why I got this project in the first place. So I think trying to you as a preparer, trying to figure out like what&#8217;s the situation here?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5154">01:25:54</a>] And then I&#8217;m moving to the task and what is the task on like a two year project. Right. Like many, many, many tasks really which are attached to the actions. Right. So I think that thinking in terms of just context and jumping into the actions is super relevant. And then I think for senior engineers, STAR doesn&#8217;t provide any kind of, of space for reflection or any kind of space for, you know, judgment or learnings.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5177">01:26:17</a>] Right. And that&#8217;s, that&#8217;s why I like adding learnings to the end of every story. Especially for senior engineers. I&#8217;m looking to see whether or not you can look at your past experience, understand what made you successful or unsuccessful, and then apply that going forward. So this gives you a nice and easy mnemonic, right to, to remember to add those things to your stories. But I also think that when you&#8217;re telling stories, you need to be cons cognizant of where you are in the interview.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5200">01:26:40</a>] And I think this is another, other differentiator between junior interview and junior candidates and senior candidates. A senior candidate is managing the time so they understand that hey, when I ask some kind of big, I call it trunk question, trunk, branch, leaf, trunk question, which is like talking about, you know, a project that was really ambiguous, then you&#8217;re giving, you&#8217;re being given a carte blanche by the, the interviewer to tell a longer story.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5223">01:27:03</a>] So you tell A longer story. But then if I ask something about like, well, you know, who did you talk to in order to get this, you know, piece of information, then to, you know, to, to do some action as part of the story, then now I&#8217;m asking some kind of like, middle grounds, maybe. I probably have some thought about who I talk to and how I talk to them. It&#8217;s a communication signal, right? So I should give them something, but I shouldn&#8217;t give them like a complete Star or Carl story at that, at that level.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5245">01:27:25</a>] And sometimes they just want like some very specific information like, oh, like tell me about the framework that you used for this particular project. Okay. They&#8217;re just kind of like checking off a box. Right. So I understand a little bit of context I didn&#8217;t have before. And so that&#8217;s a leaf question. Just give them the answer and move on. So I think your ability to detect what kind of question, how long the interviewer wants to listen to a response is going to be an indicator of seniority and also like an important skill for you, managing the interview for storytelling.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5275">01:27:55</a>] What do you think is more important, what you say or how you say say it. So, for instance, is it the actual words that are coming out of my mouth that makes the biggest difference or is it my presence, how confident I am, and is there one versus the other that you&#8217;d say people should really focus on to really nail their stories?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5296">01:28:16</a>] Engineers tend to be pretty structured people, and engineering interviews tend to be very structured. Even at smaller places, someone will at least perceive that they are structuring the interview and some kind of rational way. And so I think it is less about how you say it and is more about what you say. So if I, even if you came across confident and positive and encouraging and like somebody I would love to work with, but if somehow I did not hear that you were handling ambiguity in some kind of structured way or that you were applying some kind of conflict resolution framework to the conflicts that you had, then I&#8217;m, I&#8217;m, I&#8217;m.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5330">01:28:50</a>] That interview is not going to go well and I&#8217;m not going to be able to support hiring you. So I do think that, that it really does come down to substance. I think that&#8217;s the most important thing. You know, form follows function as in most engineering environments, and I think that it&#8217;s the case here as well. However, I would say at more senior levels, then how you come across and how you tell the story does make a lot more, does make more impact because we are expecting you to be telling stories like this one one, for example, when the VP says how&#8217;s that project going in the, in the, in the status meeting?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5364">01:29:24</a>] You need to be able to tell like a. An engaging and entertaining. As much as entertaining as any work thing is entertaining story about how the project is going. And so I, I am looking to see if you are providing interesting details, for example, like a detail that might be showcase something that some thinking that you did or some unique situation that you were in. Oftentimes whether to include details is a big part of what you&#8217;re going through as a behavioral interviewer.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5391">01:29:51</a>] So you should only include details which help to accomplish some tasks. So maybe the task is that I want to showcase, I&#8217;m deeply technical, I want to include a few details like that. Maybe the task right now for me as the candidate is to showcase that I am somebody who can work across teams. So I want to include the part about how the other tech lead had had a mean look on his face when I went to talk about this thing.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5414">01:30:14</a>] Maybe that detail is relevant, right, because it showcases how I push through difficulty and pushback on other teams. So yes, I think those things are relevant. I think most candidates probably need to spend more of their time on basic story structure, basic identification of what actions they did that are repeatable.</p><h3>01:30:31 &#8212; How he got promoted to Senior Manager (M2) at Meta</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5431">01:30:31</a>] You know, I wanted to ask you about your senior, your promotion to M2 at Meta. Actually, you&#8217;ve told me so much about how to speak about scope at this point, maybe you could tell me or tell the audience how you got promoted to M2, why you got promoted to M2 and speak about it in a way that illustrates the scope of a senior manager.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5454">01:30:54</a>] In order to get to M2, I had to solve some difficult problems in the recruiting space. And probably the most important one was around diversity. So I left a team which was focused on building things for teenagers, which is another hard problem that I got myself involved in. Very difficult time for Facebook during that time. But I left that team to lead a couple of teams within their internal recruiting products organization, which is all about supporting candidates, supporting recruiters and sourcers and their goals.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5483">01:31:23</a>] But the thing that really drew me over there was working on supporting a team that was hiring more diverse engineers. That meant a lot to me. So how can I help make the world a better place? Place as in my position as a manager would be to make what is the most, the largest wealth opportunity in the world today, which was technology and is technology. How can I make that available to more people in the world?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5505">01:31:45</a>] That&#8217;s really motivated me. So I. That is not an easy problem to solve. It&#8217;s not, definitely not an easy problem to solve from a perspective of a, a product team. Right. I&#8217;m not an education institution. Right. I, I don&#8217;t get to make all hiring decisions, for example, example. I don&#8217;t get to pick, you know, what people learn in school, so. But we were able to move the needle there by improving preparation of all things like interview preparation and that&#8217;s how we were able to help improve the diversity hiring for meta and that as well as supporting a number of other teams, helping to establish high quality of candidate data that would be established for Facebook&#8217;s applicant tracking system system and being able to, you know, clarify like what&#8217;s important in, in terms of candidate data and being able to improve the quality that we have significantly over time.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5554">01:32:34</a>] I think that&#8217;s, those are the reasons why I was promoted to M2.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5558">01:32:38</a>] So when I, when I think I. That story I just heard as if I was an interviewer. I heard that you were supporting multiple teams. I heard that you were taking on a, an ambiguous problem like how do you solve diversity? It&#8217;s not immediately obvious and it sounds like you had a significant self motivation to go towards this problem space and solve for the company. So am I hearing that those are the signals that you hope that an interviewer would have got if you were interviewing for a behavioral interview?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5592">01:33:12</a>] Yeah, for sure. I would say I would add a few other ones. So one thing that I didn&#8217;t mention is impact across the company. So. So I think leading the iOS and Android recruiting pipelines is an important way that you&#8217;re scaling yourself and applying yourself across more than, than just the teams that you&#8217;re directly responsible for. So that was also a big part. I should have included that.</p><h3>01:33:32 &#8212; His biggest career regret</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5612">01:33:32</a>] I understand you left Big Tech at this point and you know, looking back on your experience in Big Tech, is there anything that you regret or anything that you wish you could have changed?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5622">01:33:42</a>] I don&#8217;t regret leaving. I think I had a really great time. I worked with a lot of wonderful people. I think that I regret the anxiety that I put into the teams and the anxiety that I put into myself. I think we can all look back on parts of our life, whether it&#8217;s school or early career or even now, and we think, wow, I really wish I hadn&#8217;t worried about that. At the end of our lives, we don&#8217;t say things like, I wish I&#8217;d just gotten a few more percent out of that engagement number and that project xyz.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5649">01:34:09</a>] Like nobody thinks that way. Right? People value relationships. They Value, value. They value connection. And I, I think that I added a lot of anxiety to my life in various parts of my career and I, I regret that part. I think that like I told you earlier, I made conscious choices to optimize for my life experience versus my career. I think there were times which, when I was not honest with myself about that, when I was not honest about what that that trade off was, would mean in terms of compensation or in terms of career progression or in terms of status for myself.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5684">01:34:44</a>] And I think being honest with yourself about what you really value and being okay with the trade offs in advance. And since I&#8217;ve left Big Tech and supporting my wife as she&#8217;s building her, her, her business, certainly that has come with like a decrease in pay. And one of the things, one of the ways that I have been able to apply the learning that I&#8217;m telling you is before I left, I knew, okay, I&#8217;m paying, cash flow is going to be low.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5707">01:35:07</a>] I&#8217;m going to be okay with that because I&#8217;m making decisions to spend more time with my kids, because I&#8217;m making decisions to support more community organizations here and volunteering and I&#8217;m going to be okay with that choice. And that&#8217;s been really helpful. I&#8217;ve been able to go back to that choice a number of times when the cash flow situation has, you know, maybe wanted to improve that, maybe we missed that kind of paycheck and maybe you&#8217;ll experience this, I don&#8217;t know, you know, having, having just, having just left Big Tech.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5732">01:35:32</a>] But I think having that honest conversation with myself has really helped in the last couple of years. And I wish I had done that earlier and said, you know, what I really value are these things and that means I&#8217;m not going to have those other things in life. And that&#8217;s okay, that&#8217;s okay if that&#8217;s what you want, right? So making that kind of conscious and values driven decision and then coming back to it, maybe sometimes revisiting it, maybe you want to change it, but that kind of intentionality is something I wish I had was more honest with myself about.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5758">01:35:58</a>] So when you&#8217;re saying you were, you were not honest, you still thought you wanted that cash flow and those things.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5764">01:36:04</a>] I think I was frustrated. I think I was frustrated at various points about, about not being able to progress. And I think that there was, I would even say bitterness at times when I would say I&#8217;m frustrated that so and so got this job, so and so got promoted, you know, so and so was able to do XYZ right here, look at me. You know, I&#8217;m doing this, I&#8217;m doing that. But not being honest with myself of, of you know what, you, you didn&#8217;t do the things that they did.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5785">01:36:25</a>] You did not move teams as rapidly as they did. You did not work as hard as that person. You prioritize other things in your life. You prioritized your family, you prioritized in making an impact in, in, in the community around you outside of work. And, and that has consequences, right? So I, I think we, we can live in this world where we think you can have it all, right? Like you can, you can be a, whatever level 7 IC and go home at 5 o&#8217; clock clock, right, and have a wonderful and engaging family life.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5813">01:36:53</a>] And maybe some people can do that. Right. I think that that could be a skill that people have, but that depends a lot on, on your, your talent level and what kind of skills you&#8217;ve built up over time. But the reality for most people is that if you want to accomplish something extraordinary in your life, you have to have extra, you have to take extraordinary steps. And I don&#8217;t think I was honest with myself and I think that that resulted in some frustration and bitterness along the way.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5836">01:37:16</a>] But I think that once I decided, decided kind of in the middle what&#8217;s important to me, where I really want to be, what I want my kids to say about me in 10 years, that was what really what guided me, what do I want them to remember about me 10, 15 years from now.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5852">01:37:32</a>] that intentionality got rid of those feelings for you.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5856">01:37:36</a>] Well, I think that it comes back sometimes. So especially living in a place like this where people are stacking wealth in and as fast as they possibly can and you&#8217;re going to see people like that around you all the time, living in Silicon Valley. And so you have to, to, to ask yourself like, is that what I want? No. Maybe it is, that&#8217;s fine, maybe it&#8217;s not. And then, so it&#8217;s going to come up and it comes up in my life, you know, on a, on a semi regular basis.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5880">01:38:00</a>] But it&#8217;s really helpful to be aligned with your own values and have that kind of mission statement or vision that you have for your life and what&#8217;s important to you in the future. And if you live like that, you&#8217;ll be satisfied.</p><h3>01:38:13 &#8212; The best advice he ever received</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5893">01:38:13</a>] You worked a long time at Meta across other companies as well. And I&#8217;m curious, what was the best advice that you ever received in your career?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5902">01:38:22</a>] I would say that the best advice that I ever Received was the importance of creating scope. So if you would like to get promoted or if you would like to advance in your career, oftentimes we are waiting like we are waiting for somebody to give us that opportunity. And I remember one of my managers said, like, if you want this, you know, M2 role, you have to create an M2 scope. Scope team, right? You have to, to accomplish and solve problems that are, you know, that are, that are of this scope.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5935">01:38:55</a>] And so I think that this, this kind of honest reflection on like what it really takes to get to the next level that you have to change not just how, what you do, right? That&#8217;s often advice that you hear not just doing the same thing that you&#8217;re doing at your level better, you have to do something different. But what is that difference? And really that differences about creating additional scope and creating space for the, the organization to succeed?</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5958">01:39:18</a>] That was another key part of that advice was, you know, what is your VP saying about your project? And if your VP is not going to be talking to any of their peers or their manager about what you&#8217;re doing, then the question is, am I doing the right thing? So what can, what kind of, what kind of. How can I work backwards, right? And we do this a lot. We work backwards in the behavioral interview. What do I want to present kind of signal to area do to.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5978">01:39:38</a>] I want present. You work backwards in a promotional experience. What do I want the packet to be like? And I think you can work backwards in terms of creating scope, which is what do I want the, you know, the VP or the organization&#8217;s leadership to say about what we&#8217;ve accomplished and then go and figure out a way to do that thing.</p><h3>01:39:54 &#8212; Advice for younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=5994">01:39:54</a>] Yeah, that&#8217;s, that&#8217;s great advice. I mean there&#8217;s, there&#8217;s always situation and luck when it comes to career growth and promos. But I feel like the most satisfying promotions are the ones where, where you take initiative and you create the scope and no one can stop you in that case. So you don&#8217;t need anyone&#8217;s permission. And then the last question I&#8217;d ask is if you look back on your entire career and right when you graduated college and you could give yourself some advice now that you&#8217;ve learned what you&#8217;ve learned, what would you say?</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=6028">01:40:28</a>] I had a lot of imposter syndrome, so I avoided. For example, I got a PhD out of, in computer science, out of, out of undergraduate school. But during the summers I would work just in, in, in the research in the university when a lot of my peers would go and work in in industry they would go get a, like a internship right at Google or Facebook or wherever and work there. And really what held me back was insecurity.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=6052">01:40:52</a>] I didn&#8217;t want to go through the interview process. I, I didn&#8217;t want to be rejected. And so I, I think that kind of fear and allow the imposter syndrome that I felt to hold me back from those choices. I, I do think that that had a. My career was great. I love my career. It&#8217;s great. I&#8217;m not sure I would change a ton, but I think it did help me back. I think I was slower to understand how big organizations operate.</p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=6072">01:41:12</a>] I was slower to understand how large code bases operate, certainly coming from, from academia. So I think that that kind of insecurity and fear. Fear really held me back. I know that&#8217;s super common kind of advice to give oneself in the past is like don&#8217;t give into fear. But that&#8217;s the biggest advice I would tell myself is don&#8217;t give into fear.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=6096">01:41:36</a>] Awesome. Well, thank you so much Austin, for your time. I really appreciate it and I hope it&#8217;s helpful for people.</p><p><strong>Austen:</strong></p><p>[<a href="https://youtu.be/nOapM8i5jr0?t=6103">01:41:43</a>] Yeah, thanks Ryan. Great to be here.</p>]]></content:encoded></item><item><title><![CDATA[OpenAI Codex Tech Lead On How His Career Grew And How He Uses Codex | Michael Bolin]]></title><description><![CDATA[Learnings from working at Google, Meta, and OpenAI]]></description><link>https://www.developing.dev/p/openai-codex-tech-lead-on-how-his</link><guid isPermaLink="false">https://www.developing.dev/p/openai-codex-tech-lead-on-how-his</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 09 Mar 2026 09:02:18 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/190231024/8d992c3cfc6ab344aea7e945ef82d41f.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p>This is <a href="https://www.linkedin.com/in/michael-bolin-7632712">Michael Bolin</a>, the tech lead for the open source Codex repository and a former distinguished engineer at Meta. We talked about his career path, how OpenAI engineers use Codex and the difference between research-led vs engineering-led company cultures.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/hN5ZFzWFhhg">YouTube</a>, <a href="https://open.spotify.com/episode/2Z1CEf8FVMIJE7M3qPdFeB?si=ZBZj8qGORVaumcoMHb7-Sg">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-hN5ZFzWFhhg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;hN5ZFzWFhhg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/hN5ZFzWFhhg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/190231024/chickenfoot">00:00:56 - Chickenfoot</a></p><p><a href="https://www.developing.dev/i/190231024/working-at-google">00:02:45 - Working at Google</a></p><p><a href="https://www.developing.dev/i/190231024/overhauling-facebook-s-build-system">00:06:34 - Overhauling Facebook&#8217;s build system</a></p><p><a href="https://www.developing.dev/i/190231024/rewriting-facebook-s-ide">00:16:36 - Rewriting Facebook&#8217;s IDE</a></p><p><a href="https://www.developing.dev/i/190231024/struggles-after-principal-eng-e8-promo">00:26:01 - Struggles after Principal Eng (E8) promo</a></p><p><a href="https://www.developing.dev/i/190231024/building-a-virtual-filesystem-for-facebook">00:28:39 - Building a virtual filesystem for Facebook</a></p><p><a href="https://www.developing.dev/i/190231024/delayed-distinguished-promo-e9-and-learnings">00:35:47 - Delayed Distinguished promo (E9) and learnings</a></p><p><a href="https://www.developing.dev/i/190231024/joining-openai">00:39:56 - Joining OpenAI</a></p><p><a href="https://www.developing.dev/i/190231024/research-led-vs-engineering-led-cultures">00:43:05 - Research-led vs engineering-led cultures</a></p><p><a href="https://www.developing.dev/i/190231024/the-story-behind-codex">00:44:53 - The story behind Codex</a></p><p><a href="https://www.developing.dev/i/190231024/how-he-uses-codex">00:51:00 - How he uses Codex</a></p><p><a href="https://www.developing.dev/i/190231024/why-codex-s-harness-is-open-source">00:57:00 - Why Codex&#8217;s harness is open source</a></p><p><a href="https://www.developing.dev/i/190231024/top-technical-book-recommendations">00:59:50 - Top technical book recommendations</a></p><p><a href="https://www.developing.dev/i/190231024/why-deep-technical-skills-are-still-valuable-for-now">01:05:02 - Why deep technical skills are still valuable (for now)</a></p><p><a href="https://www.developing.dev/i/190231024/how-to-start-projects-well">01:11:07 - How to start projects well</a></p><p><a href="https://www.developing.dev/i/190231024/advice-on-writing-better-and-career-planning">01:14:27 - Advice on writing better and career planning</a></p><p><a href="https://www.developing.dev/i/190231024/advice-for-his-younger-self">01:17:06 - Advice for his younger self</a></p><h1>Transcript</h1><h3>00:00:56 &#8212; Chickenfoot</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=56">00:00:56</a>] I was looking deep into your website and there was something, most everything I could find more information about. There&#8217;s this one thing that you seem to be pretty excited about at the time, but I couldn&#8217;t find any information about it because all the links were dead. What is chicken foot?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=71">00:01:11</a>] Oh man. That&#8217;s strangely relevant because it&#8217;s. It was my, my master&#8217;s thesis pro project. It was a Firefox extension project, probably one of the very few that was written, you know, in JavaScript for Firefox as a thesis project. And it was, it was actually a little coding tool in a sidebar Firefox. And it was like a little repl. It was called end user. The idea was end user programming for the web.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=95">00:01:35</a>] And so there were functions like enter and click and things like that. And you&#8217;d say enter and you, you know, have pass the string arg and it would like find the box and you&#8217;d say click search or whatever. And a lot of the work was all these heuristics that we built under the hood that if you said enter first name, finding the words first in name and finding the text box that was closest and then using that, and then through JavaScript using that as the input.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=123">00:02:03</a>] And I just think about that now because it&#8217;s really funny. We did a lot of work and that&#8217;s a lot of what these agents are doing right now is similar, but now actually truly in natural language, not in this little JavaScript replacement.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=137">00:02:17</a>] Oh, interesting. So it parsed the front end and had this repl where you could say, I don&#8217;t know, find the first name field.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=143">00:02:23</a>] And, you know, yeah, we&#8217;d use like, you know, the accessibility tags and alt. Alt text for images and we&#8217;d, you know. And it worked well. It was really good at Craigslist, actually, because that&#8217;s one of the simplest websites you could. You could use. But I had, I had friends who like, made like, automated tasks and like, made real money off of things they automated with this tool, which is really fun.</p><h3>00:02:45 &#8212; Working at Google</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=165">00:02:45</a>] When you entered the industry, you were really excited about going to Google and specifically working on Google Calendar. So what drew you to Google and what was that like?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=175">00:02:55</a>] Yeah, I mean, you know, so I got online in the 90s, right? I remember, you know, browsing the web and it was at a time you&#8217;d go to like, you try five different search engines to like, hopefully find the thing that you wanted. And I. And it&#8217;s funny because I distinctly remember my roommate in March of 2000 saying, like, hey, there&#8217;s this site, this search engine that looks a little bit better. I think it was still Stanford Google Edu.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=198">00:03:18</a>] And I was like, oh, this is better. And like, you know, and then you started reading and they, they were just so different, right? Yahoo. Was all like, very cluttered and like, they tried to be very sparse and were more, I think, principled about it at that time. And then, you know, like a lot of things, you start seeing people who, you know, who gets a job there, and you&#8217;re like, oh, man, they&#8217;re taking really good people.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=218">00:03:38</a>] Like, I want to work with, with those people. And I felt like they just, you know, really got the web. Like, especially at that time when, like, Microsoft didn&#8217;t. Around that time, Microsoft killed the Internet Explorer project altogether. And I was like, this is the portal into the web and you guys are, you know, dismantling it. Whereas, you know, Google was way more, you know, web forward. And so between that and like, the quality of engineering and the.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=239">00:03:59</a>] And the impact they were having, you know, certainly a place that I was really excited to go to, coming out of the school.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=245">00:04:05</a>] And what was the culture like there at the time? Like, I think in some of your writing you talked about, like, products versus infrastructure.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=253">00:04:13</a>] You know, a lot of companies, especially ones that get big like that, you know, it&#8217;s kind of like whatever they&#8217;re good at first is I feel like the founders always have a. Have a soft spot for, right? So certainly information retrieval and infrastructure, right, were like, key to, you know, growing that. That company. And whereas I was drawn there at the time because, like, you know, they put out things like Gmail, Right.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=278">00:04:38</a>] Which, which were vague. Right. But it didn&#8217;t, it still I think didn&#8217;t have the, the same cachet inside the company. Right. As the search and that sort of thing. And so you know we, when I was working on it, Calendar, it was still like mostly consumer. It was like kind of, it was also sold to enterprises. Right. But like we were not the ones making the money. Like we were probably a call center. Right.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=302">00:05:02</a>] At that point in time.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=303">00:05:03</a>] I saw eventually you ended up leaving Google and I, from your post it looks like it was pretty bittersweet. So what left you to leaving Google?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=312">00:05:12</a>] I had been there for four years and you know, I mean realistically like investing was a thing, like finances definitely changed after that four year period ended. But you know, also it was just tough like I, I guess a bad habit at that point of working really hard on things that like really were important to me but maybe weren&#8217;t important to Google. Right. So like I worked on Calendar, that was pretty important.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=338">00:05:38</a>] And then I worked on Google Tasks, which was like a very small feature within Calendar. Right. Like probably at least two to three orders of magnitude fewer users. Right. But I was really passionate about it. And then I was really passionate about the like the JavaScript infra and the, the closure, that suite of JavaScript tools. And you know, it&#8217;s great. I mean I enjoyed and I&#8217;m proud of all the effort that I put into the things, you know, that I went and wrote the book on Closure because I was so motivated but career wise, maybe not the best move, right?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=371">00:06:11</a>] You&#8217;re like, but I&#8217;m doing all this high quality stuff and you see other people getting recognized. You&#8217;re like, but I&#8217;m working so hard, you know, like that&#8217;s, you know, kind of like the harder, not smarter type of mistake. And so, you know, it&#8217;s kind of like I should go somewhere or try something else and see if like the things that I&#8217;m excited about or the things that like the company I&#8217;m working at is most excited about.</p><h3>00:06:34 &#8212; Overhauling Facebook&#8217;s build system</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=394">00:06:34</a>] Later you came back into big tech and you started working at Facebook. I understand that you were kind of like a JavaScript expert at the time. And then one of your first big projects at Meta was kind of build tooling in the Android code base. So I want to know the story behind how you got involved in that.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=413">00:06:53</a>] So at the time it was like, Facebook&#8217;s going to make a phone, right? Actually there were some failed projects, but it was like, this time it&#8217;s really going to happen. We&#8217;re going to partner with htc, we&#8217;re going to fork Android and do some stuff. So that seemed super exciting, right? As a person just coming into the company and I&#8217;d done quite a bit of Java. I was more JavaScript, but at this point, this is also where they called it Face Web, the version of.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=448">00:07:28</a>] They put HTML5, Facebook on the phone, and that was clearly not working. And it was clear that mobile was going to be the future that was make or break for the company. And suddenly, you know, a friend was like, hey, like, I know you really like JavaScript, but, like, you should really pick Java or Objective C and, like, get good at this or you want to be a product person. And that was really, really great advice.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=476">00:07:56</a>] And so I was like, well, I like Java, I don&#8217;t like Objective C, so, like, let&#8217;s go. And so that&#8217;s how I found myself on that project. And I, you know, we. We had a very short timeline because unlike almost every other project, there was a hard deadline. Usually, you know, you ship when it&#8217;s ready. This was like, nope, we gotta send a bill to htc because they&#8217;re gonna, like, burn it into phones on, like, March 1st or whatever it was.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=506">00:08:26</a>] So, you know, it was really a scramble. But. And the original Android code base was. Or a bunch of. It was also, like, inherited from a contractor that Google paid. Like, it&#8217;s like Facebook didn&#8217;t want to make a native app and they paid some guy. And then it was like the app in the store and they&#8217;re like, here, the code&#8217;s yours now. And we should have thrown it away, but we didn&#8217;t. And so a lot of things that were frustrating, but also, like, iteration time, right?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=534">00:08:54</a>] I think for everybody, if you&#8217;d been a web developer for such a long time, you&#8217;re used to this edit, refresh, and then, you know, like, the Android build system was. Was rough, right? It was this. Some build tools and Ant and it. Like, there were no. There was no way to modularize it out of the bot. Like, we had to hack it up just to even have, like, four modules or five modules or something like that.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=557">00:09:17</a>] And it was so painful to get anything done that I was like, I need to. I need to fix the build system. Like, I was like, I know I&#8217;ve done a lot with Java. I know it&#8217;s not like, fundamentally this slow to, like, iteratively, you know, build this sort of thing. And so, you know, Facebook has this hackathon culture. So I was like, all right, hackathon, totally gonna, like, make a new build system. You Know, like unceremoniously in the style of Google&#8217;s build system.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=588">00:09:48</a>] And there&#8217;s actually another build system called FB Build that was already a different mirror of, of the Google build system as well. That one&#8217;s written in Python, only did C, but yeah, and I was like, either I&#8217;m going to make this work or. And like, and then I&#8217;m going to be happy to be a developer or like, I don&#8217;t even know if I&#8217;m going to make it here because it&#8217;s just going to be like tearing my hair out, you know, working on this thing.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=617">00:10:17</a>] If you didn&#8217;t fix it you would have quit the company?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=618">00:10:18</a>] Or I&#8217;ll at least switch projects or I need to find a way to find a happy place, right, and come into work every day. Like, I came, I want to write code, I want to do work, I just want to, you know, try to do my best work. And so it was funny, actually. I give people credit. A lot of people told me what I was doing was a very bad idea. Almost everybody, except one person.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=644">00:10:44</a>] I was a senior Android engineer, but nobody said no, you know, whereas I felt like at Google, like, people said no more. And so, so I just rolled with it and, you know, it quickly, relatively quickly, had something that was, you know, dramatically better, like at least like twice as fast or something like that. And so that, you know, I turned a lot of heads and people were like, okay, you know, I guess we, yeah, we&#8217;ll go with that one, right?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=673">00:11:13</a>] Like, I think the interesting thing to me is it seemed like all the odds were stacking. A lot of people who are an engineer notice the same problem, would not have chosen to start the project because there&#8217;s an existing one. And then also Google&#8217;s got some competing one. Maybe you&#8217;re not going to beat that one. What gave you the conviction that your project could beat the other ones and become the default?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=699">00:11:39</a>] Yeah, I mean, I guess a couple things. One, like I said, I&#8217;d done other Java stuff. I was like, this shouldn&#8217;t be that slow. Or just as a software engineer, this fundamentally should not be as slow as it is. And actually most of the pushback was of the nature. Like, well, if we deviate from the standard thing, we&#8217;re not going to be on the standard thing. And what if it gets like 100x better next week and now we&#8217;re stuck on your thing?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=727">00:12:07</a>] Which is really funny when you think about it, because there&#8217;s so many things like making their own PHP virtual machine and language. They&#8217;ve certainly embraced doing their own thing many times. Why this one was different, I don&#8217;t know. I mean it was, it was just, I guess everything about mobile was like, how are we going to make this work? I guess there&#8217;s just like a lot of fear and you know, again, like timelines.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=749">00:12:29</a>] It&#8217;s like we have the senior person, like, why it seems sounds like they&#8217;re going to go off and do a science project but we have a hard deadline. Like, is that the best use of our, of our time? But, you know, it worked out. It worked out. I will say another thing too was I also tried to couch it a little bit. I was like, hey, I&#8217;m just trying to make an Android build system. I&#8217;m trying to take over the company.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=772">00:12:52</a>] I&#8217;m not trying to change anyone else&#8217;s project because I certainly felt that that was going to cause more, I was going to invite more friction. And so I knew that I tried to make it in a way that it could support more of the company, but I never pushed it. And so I was really heartened when the company, year or so later, the iOS people were like, hey, our build system sucks. You know, can we use Buck?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=799">00:13:19</a>] I was like, yeah, sure. Like I don&#8217;t, you know, come on board.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=802">00:13:22</a>] Yeah, that, that&#8217;s also another interesting because you, you came in and you didn&#8217;t have a whole lot of credibility. You were just hired.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=809">00:13:29</a>] And then you&#8217;re trying to build something and get every. And also everyone&#8217;s saying, don&#8217;t do this. And then you have to convince them, hey, this is the right direction. How&#8217;d you influence that change without any credibility?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=824">00:13:44</a>] I mean, I borrowed some. There&#8217;s one senior Android engineer who was also ex Google, John Perlow. And he was like, I think he said, right. He&#8217;s like, you&#8217;re going to do it, just do it fast before anyone gets cancers you or something. He&#8217;s like, well, I&#8217;ll support you if you get this done. So he was one of the first people and he was a very prolific coder. So he was genuinely very happy to have a faster dev cycle.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=839">00:13:59</a>] So he was one of the first people to give it kudos and I think that that helped a lot also. But I will say I made some big mistakes on my way in there. You mentioned about having no credibility is like, I came from Google and I was like, oh, this is where the X Bell Labs people are. All these great people. And then you go to Facebook and you&#8217;re like, oh, it&#8217;s a bunch of college kids. How could they possibly know what they&#8217;re doing?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=874">00:14:34</a>] And a few times certainly I made the mistake. Well, at Google we did it this way and people were like, we really don&#8217;t care. And they were right in most cases. Right. That just because it worked there didn&#8217;t mean it was going to work here.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=891">00:14:51</a>] One last thing on this topic is, I mean, what you built was way more performant than anything else by many multiples. What&#8217;s the intuition like the technical intuition behind what was done and what you did that made it so much more efficient?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=908">00:15:08</a>] I think the, the big thing was is that I just sat down and looked at the, the tool from Google and I was like, what is it actually doing right? And where. And I think the big thing is that the Google one would kind of just, if you changed anything, it would just start over from scratch. And so that&#8217;s why it was so slow, especially for, for incremental builds. And so then I started really understanding like, okay, but what depends on what, because there is these still Archer, like Android resources, which had a very bespoke thing and it was complicated.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=941">00:15:41</a>] And because it was somewhat complicated, I think that&#8217;s probably why just by default I blew everything away and started over. But once I got in there and I was like, oh, okay, we can take advantage of it, if these things don&#8217;t change, then we can cache this result from this step and we don&#8217;t have to redo it. And suddenly that made things quite a bit faster. And then also just even supporting the idea that you could have more than the four modules that we had.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=967">00:16:07</a>] I mean, I think every time someone added a module, they had to add like 200 lines of XML of ANT build script that nobody really understood. And so it was not. So no one wanted to modularize anything. Right. You didn&#8217;t want to be responsible for that. So a big thing with Buck was making it that it was like a lot simpler to add a new module. And so then that also meant we ended up with more modules and then builds are more incremental as a result.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=990">00:16:30</a>] Right. So it&#8217;s really a change in the mindset.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=993">00:16:33</a>] So less redundant work, basically.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=995">00:16:35</a>] Yeah.</p><h3>00:16:36 &#8212; Rewriting Facebook&#8217;s IDE</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=996">00:16:36</a>] After you solve this build problems, I guess, in Android builds and obviously I went later to further parts of the company, I saw that you started to work more on like the ide. What was the problem that you saw that you saw in ides that made you want to get into that?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1013">00:16:53</a>] So I, yeah, I took, I did a brief stint after buck on messenger, iOS messenger. So I was like, okay, I&#8217;ve done Android. Maybe I should actually branch out. Even though I don&#8217;t like it and I still didn&#8217;t like it. People don&#8217;t even realize in Objective C there&#8217;s a thing that happens for a long time now called arp, like the automatic reference counting. Nowadays the compiler injects it, but you used to have to actually add code in Objective C to do every reference count.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1047">00:17:27</a>] Like memory allocation. Yeah, or like every reference that you created. Like, you would have to do it. And, and the. And most people have never seen this type of code, but the iOS messenger code that came in through acquisition was so old that it was still written in this other way. And it&#8217;s, It&#8217;s. It&#8217;s incredibly painful. I guess now you&#8217;d have like, Codex cleaned it up or something like that. But at the time we just sucked it up and just Xcode just didn&#8217;t feel right to me.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1072">00:17:52</a>] I didn&#8217;t like header files and implementation files. I still don&#8217;t. And also the. I would say for Both Android and iOS, you know, Facebook always had like, the biggest app, right? We had like one app with every. With every feature in it, and we, you know, ship it as opposed to Google. Like, they&#8217;d have like a drive app and a, you know, a sheets app or whatever, but they also owned one of the platforms, so they could put 20 apps by default on there.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1101">00:18:21</a>] And so what that meant was, is that Facebook was always hitting the scaling limits of every mobile developer tool before everybody else, which was painful. But actually, as a DevTools person, it was kind of interesting because we got to solve problems that nobody had solved before, and not just as a science project, but because it was real business value. And so Xcode, similarly, we talked to Apple.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1126">00:18:46</a>] We&#8217;re like, hey, Xcode&#8217;s not really scaling to our project. They&#8217;re like, your project&#8217;s too big. You should make it smaller. That was kind of the feedback that we got from them. And so it seemed justifiable to like, go and build an editor. It was similar thing. It was like, I was like, what is, you know, what is an IDE doing, right? It&#8217;s like it&#8217;s talking to Clang, the language server and that sort of stuff.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1146">00:19:06</a>] I was like, we could build like a nicer shell on top of that, you know? And then we had started, by that point, deviating from Git and switching to Mercurial as a company. I was like, no one&#8217;s going to support Mercurial out of the box, right? And so like that should happen. And then like, oh, actually if Buck is going to be our build system, then like we really like, you know, like that&#8217;s Xcode&#8217;s never going to do all of these bespoke Facebook things.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1168">00:19:28</a>] Right. So it seemed justifiable to like invest the time to, to try to like improve that experience. And I didn&#8217;t feel that way About Android because IntelliJ was actually like quite good and we had figured out how to make that work at scale. But, but Xcode was a little more difficult at that point.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1185">00:19:45</a>] So there&#8217;s Xcode which was bad, didn&#8217;t fit the existing needs. And then there was another IDE that another team was building. I think it was web based. If I.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1196">00:19:56</a>] It was, it was web based. I&#8217;m not laughing at that part. That part&#8217;s fine. It was, but it was built off of an abandoned Google open source project written in gwt, which is Google Web Toolkit where you would write Java and it would code gen to JavaScript for everything. And I tried to build on what they had. I tried to build some credibility, even actually sped up their build a bit. But again, kind of like looking at the iteration times and also I was like, this is an abandoned open source project, it&#8217;s written in Google Web Toolkit.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1230">00:20:30</a>] And I was like, we are the react company at that point, right? Like how. Why would we not empower people who want to build dev tools to use to build on a, you know, technologies that we are the leader in and actually really like, because, you know, we think we&#8217;re actually really good. So I was like, you guys are crazy. And so I started. And it&#8217;s similar to the thing where I, you know, I mentioned with the buck.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1258">00:20:58</a>] I was like, I started it as the, the Java build tool, not the everything build tool. Right. I was like, it was a similar thing. I was like, hey, I&#8217;m going to go over here and start this other editor. But we&#8217;re just, we&#8217;re just going to focus on iOS like you. I&#8217;m not trying to take things over.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1272">00:21:12</a>] Yeah, you didn&#8217;t want all the friction. And I mean that team, they had all the existing users though, right?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1278">00:21:18</a>] They had thousands of engineers, maybe a thousand.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1282">00:21:22</a>] I think eventually leadership sided with what eventually became nucleide, which is what you, what you built. But why did they side with you when you didn&#8217;t have any users on your shared profit?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1295">00:21:35</a>] Yeah, I mean, I think it was a combination of two things. I mean I think the arguments that I made in favor of like the technology stack to build on another Was that new cloud was a desktop application. And part of it was, if this is actually going to be an iOS Xcode replacement, like, people are going to want to use it, needs to be able to talk to the simulator or plug in the phone or whatever. Like, in theory, we could go through the web and do all those things, but it just seems like a lot more.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1324">00:22:04</a>] A lot of extra work. And. And I think the other part is that, you know, I had built up some credibility with the. The Buck thing that they&#8217;re willing to, like, take a gamble. Like, well, the last thing, you know, worked out, like, let me try this one.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1342">00:22:22</a>] I saw that this, in combination with some of your other work, led to your promotion to E8, which is also known as principal in the industry. What was your reaction to that at the time?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1353">00:22:33</a>] Yeah, I mean, certainly I was. I was very excited. You know, I felt like, you know, in the ways that I had been out of step, I felt like, you know, when I was at Google, I was like, this was also. Not just. It was also validation that, like, oh, now I&#8217;m also growing, not just, like, technically, but, like, understanding, like, what it means to kind of, you know, do the things that, like, are in line with your employer.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1377">00:22:57</a>] And so, like, that also just was equally valuable or satisfying.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1381">00:23:01</a>] I know that Nucleide was open source, and I think Buck was as well, if I recall correctly. What&#8217;s the rationale for open sourcing?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1394">00:23:14</a>] Yeah, I mean, let&#8217;s see. Buck is the more interesting one. Nucleud kind of didn&#8217;t really get adopted externally, I think in both cases. I think, you know, all these companies have benefited so much from open source. Like, I think there&#8217;s just a feeling of, like, if it&#8217;s not really the secret sauce. Like, but let&#8217;s share this with other people, right? Like, I mean, like, Codex as well and a number other things in my career.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1419">00:23:39</a>] So I do feel like that sharing of information is just good, even if no one uses your tool. Just as, like, seeing as a reference of, like, how a thing could be done could be great, you know, in the better scenarios, you actually get, you know, meaningful contributions back and things like that. And, you know, I remember, like, I think Uber adopted Buck. I think Airbnb did. Like, it was funny, right?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1445">00:24:05</a>] Like I said, like, Facebook was the biggest app, so we would hit all these problems first, and then this next wave of companies would start hitting these things and be like, let&#8217;s check out what These guys did. I think, I mean honestly we also, you know, at Google it was, internally it&#8217;s Blaze, externally it&#8217;s Basil. So we were open source first and we always, we always did kind of wonder like if we put some pressure on.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1469">00:24:29</a>] Ultimately they did. I think you&#8217;ve gotten a little bit of credit from that unofficially from some of the folks who worked on that. But I think also that it&#8217;s also a recruiting thing too or just showing like, hey, if you want to being at the leading edge in whatever area this technology is and you want to do this all the time, not just as a drive by contributor, this is what we do, this is who we are.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1494">00:24:54</a>] And then this decision to open source, is this, was this a bottoms up decision where engineers said we&#8217;re just going to do this or is this kind of also leadership buy in? Hey, this is going to be valuable. And you got like a doc.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1507">00:25:07</a>] Yeah, yeah, I think, I think both cases it was certainly like bottoms up. I don&#8217;t think so. You know, things like React and Pytorch, like those are like the, the big success stories right? Where, where the value back to the company is like unquestionable. And then there&#8217;s this like longer tale of things where I think depending on the economy and other things, the managers get grumbly if they feel like their engineers are like doing too much open source or things like that.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1537">00:25:37</a>] So it&#8217;s almost almost always I feel like, like bottoms up. I think. Yeah, I would say that&#8217;s, that&#8217;s often the case, but it wasn&#8217;t like met with a lot of resistance, you know, and you usually get like a good conference talk or two and a nice blog post. And those blog posts like, you know, do I would say pay dividends over time? Right. Like trying recruiting? Yeah, like they have like a longer shelf life than I think people realize.</p><h3>00:26:01 &#8212; Struggles after Principal Eng (E8) promo</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1561">00:26:01</a>] Okay, so you got your E8 promo at this point and I imagine the expectations maybe in your mind are kind of going up a little bit and now you need to go and find an E8 problem, I guess. So what&#8217;d you do after you got promoted?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1577">00:26:17</a>] I think that&#8217;s where I did a. I got a little over my skis and I tried to help with web speed, I think is what I did because again it was a thing that was like a really big problem for the like, like the, just the load time of facebook. com was, was not in great shape. You know, the architecture was a bit stale and it was just, the problem was so big and I didn&#8217;t have, I think the A lot of people who had worked on web at Facebook had worked on it for a long time.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1612">00:26:52</a>] And I had put myself in mobile and dev tools. I actually wasn&#8217;t in that world. And I remember I was like, what do we do? I mean, actually I sat down with another person. We started compiling V8 from Source and trying to see if we could change the way that we generated JavaScript, if it was going to be friendlier to V8. We were just trying to whack things. None of which panned out, by the way. And I just.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1636">00:27:16</a>] It was, it was. There&#8217;s different. There&#8217;s different people who are, like, good for different projects, and I think that was just not the one. Like, I&#8217;m better in a project that involves writing a lot of code from the beginning. And I think a project like that was like, more about, like, looking at data and talking to a lot of people. And, like, I just. That&#8217;s not my strength.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1656">00:27:36</a>] I think you mentioned that at this point in your career, the, the idea of a hero quest. Yeah, what&#8217;s. What&#8217;s that mean?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1659">00:27:39</a>] The idea that, you know, that it&#8217;s like, you know, it&#8217;s embarrassing because there&#8217;s like some. About ego. This idea that, you know, there&#8217;s this like, you know, Gordian not. And all these engineers are like, if only someone would come in and, like, solve this, you know, engineering problem. I was like, I know JavaScript, right, okay, just come in that way and.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1685">00:28:05</a>] But I didn&#8217;t. I. I definitely did not. You know, and I think that it&#8217;s been an important learning and I&#8217;ve had to relearn it, like, at least one other time that, you know, I can do a lot of things, but there&#8217;s a smaller subset of things that I genuinely enjoy doing and that I&#8217;m going to be a lot more successful. Right. If I stay in the things that I genuinely enjoy doing. You know, I try to expand that over time, but, you know, we don&#8217;t all have to be the best at everything.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1715">00:28:35</a>] Right. I think that&#8217;s accepted and, you know, embrace it.</p><h3>00:28:39 &#8212; Building a virtual filesystem for Facebook</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1719">00:28:39</a>] So then how&#8217;d you find the E8 scope problem after that? Like, what was the next day?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1724">00:28:44</a>] That was, I think, a bit of luck as well, I guess. You know, we had. We had. Sometimes we&#8217;d have these little summits with, like, smaller groups of engineers about, like, brainstorming what&#8217;s going to bite us in the future. I mentioned, I was like, you know, the repo keeps growing, they&#8217;re going to have some scaling problem at some point, and a person or my manager Then he became my manager, Brian o&#8217;.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1749">00:29:09</a>] Sullivan. He decided to get some people together to work on making a virtual file system to try to get ahead of that problem. And so we got myself and Adam Simpkins and Wes Furlong, both tremendous engineers, actually thought I was the worst engineer on the project for quite a bit.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1770">00:29:30</a>] You mentioned a virtual file system on a high level. What&#8217;s the benefit to a company like Meta for if you had something like that?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1779">00:29:39</a>] If you have bought into the Monorepo philosophy, right? Put all the code in one repo. Most things that people do need only a subset of that repo. They have to look at the files at any point in time. The idea is that you design all your tooling around this virtual file system so that when you say clone the repo or then you update to a different commit or anything like that, you don&#8217;t actually have to like write out every single file in the repo on disk when you make that change, which is.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1812">00:30:12</a>] Which is the default in your traditional file system, because that is going to grow proportionally to the time with the size of the repo, Right. So at some point you&#8217;re going to be very sad. And so there&#8217;s actually kind of two, at least two parts to it. One is building this virtual file system that&#8217;s like, hey, I know the users at this commit. If the operating system asks me for the contents of the file, I can go get it and it will appear like they had actually laid out all the files.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1843">00:30:43</a>] The other part of it, which is the part that maybe I was actually better at, I think is then trying to anticipate, well, we have all these tools in our tool chain that are used to just reading all the files. You know, you just rip grep. It just reads everything, right? That sort of thing. And how do we start changing also our development flow and our tools such that they are designed with the virtual file system in mind, because if you just, you know, materialize all the files with your tool now, you&#8217;ve like actually just lost all your.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1873">00:31:13</a>] The benefits that you&#8217;ve made.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1875">00:31:15</a>] So on a high level, it&#8217;s basically just lazy loading a huge file system. So it&#8217;s more efficient because you don&#8217;t need to do everything at the beginning.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1883">00:31:23</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1884">00:31:24</a>] And so that part of this project that you said you&#8217;re better at is. Is integrating everything into this on top of that primitive.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1891">00:31:31</a>] Yeah, yeah. So one thing I did actually with Hanson Wang, who&#8217;s here actually, I&#8217;m on the Codex team with me now, was I was like, oh, okay. You know, the traditional way you have, you know, you want really fast file search in your, in your ide and your editor. And you know, the way most of these things do is the first thing you do is they walk the entire file system to find out what the files are.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1912">00:31:52</a>] And I was like, well, that&#8217;s going to be a serious problem, right? It&#8217;s going to undo all the benefits. And then it&#8217;s one of these things is like not, you know, first it was like, okay, how can we implement file search? That&#8217;s not going to undo all the benefits? And then it was, how can we do it even better than how it&#8217;s done today? And so we ended up building this file system called miles short for my files.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1938">00:32:18</a>] And on a cron job, it would index, it would ingest all the new commits that had come in on trunk and keep track of which files had been added or removed. So just the names of the files, not the contents because all you need is the names. And then Hanson had some clever ideas about how we maintained that index such that we could support fuzzy file matching. So instead of just substring matching, you type, you know, like if you have like a camel case thing, you want to be able to type just maybe the uppercase letters or just your spelling&#8217;s bad or what have you.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=1975">00:32:55</a>] And so it came up with this really interesting way to represent, you know, kind of all the files that had been seen at some point and then some bits to represent, you know, if I&#8217;m at this commit, was this file present or not present at that point in time? And then also when you ask, I mean, you sent a query to this thing, so you&#8217;d send like what commit you&#8217;re at. And like if you&#8217;ve added any files locally or removed any locally.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2002">00:33:22</a>] And I think we got this, you know, like, you know, over a million files in like, I don&#8217;t know, like 10 to 20 milliseconds or something like that, so that you would be in your editor, you know, typing. And so that was way faster than I think than, you know, like what xcode or like MDS code or something like would give you out of the box. And so that was, you know, so like it was solving a problem for Eden.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2026">00:33:46</a>] That was the name of the file system originally, the virtual file system, you know, in anticipation, before it was even ready. But then it was so fast and it was available as a thrift service internally. Like people started using it for all sorts of other things. I think when I left, like, I don&#8217;t know, I think there were at least like 30 servers running miles like spread around the globe. So clearly that was more than just people like personally searching for files if they needed that much capacity.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2053">00:34:13</a>] Yeah. I mean when you talked about, I guess the implementation details, most, most people, they, they don&#8217;t use leetcode on the job. But that sounds like. I was thinking about the. I don&#8217;t, I don&#8217;t even know how you input that. Is it like a tree, like a try thing?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2070">00:34:30</a>] So that&#8217;s what&#8217;s funny that try. Yeah, this was, this was pretty cool in that we had kind of like two parallel arrays. One was like the file contents and one was maybe an integer into that index. I forget. And then we had a 64 bit mask that was like, it was like. So you had like 26 lowercase, 26 capital 10 digits and like maybe dash and whatever. And every bit was set if that character was used at all in the file that you were searching.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2111">00:35:11</a>] And so the first thing was we could blow through that list and exclude a bunch of things right off the top. But we also very designed. All these arrays were in parallel to each other so that for cache wise we knew it&#8217;d be very efficient for the CPU to read memory linearly and then it led itself to. You could just partition that array, it lend itself to parallelism. </p><h3>00:35:47 &#8212; Delayed Distinguished promo (E9) and learnings</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2147">00:35:47</a>] I understand that you worked on Eden and then obviously Myles as well. And then these eventually led to another promotion but prior to that promotion there was some learnings you might have had about influence and conflict?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2165">00:36:05</a>] Yeah, I mean that&#8217;s one of the things I guess about being an E8 who primarily writes code. Right. There&#8217;s other people. I&#8217;d say actually the majority of people that level or higher are not writing code. Right. They&#8217;re, they&#8217;re actually kind of exclusively spent doing more like influence or working across teams, you know, writing the big Google Doc and getting everyone on board and all that sort of stuff.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2193">00:36:33</a>] And so you know, as an E8 trying to have that level like, you know, that level of impact that you&#8217;re expected to have. It&#8217;s like, oh, it&#8217;s hard to do that just writing code. So it&#8217;s like I need to spend at least some time probably influencing other people. That would probably be good for me. That would probably make my manager Happy. And I think, you know, sometimes you&#8217;re just so confident in some insights you have.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2227">00:37:07</a>] That or certainly I was, that I would just, I, I just came down like way too hard, I would say. And, and that did not go well for me. And yeah, so like, like promo got delayed because I was very excited or anxious about when Microsoft acquired GitHub. And oh yeah, because New Clyde was built on this, you know, primarily GitHub technology. And I was like, that&#8217;s going to go away because VS code is going to not make them be a project anymore.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2260">00:37:40</a>] Which was true. Which did happen. And I was just so anxious that, that this was like now a risk. Right. And I was pushing people, but you know, people were, I didn&#8217;t really account for the fact that people were happy with what they were doing at the moment and like, didn&#8217;t want their cheese moved, you know, like right out from under them. And so, you know, I got like a little bit of a talking to.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2286">00:38:06</a>] I, you know, I had to wait a little bit for promo and things like that. But I, you know, I actually even got some coaching. I think after that point, I can&#8217;t remember the exact chronology to, to work on that. Like, specifically.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2298">00:38:18</a>] What&#8217;s the number one thing you learned about Coach?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2301">00:38:21</a>] I would say for me is like, I think I&#8217;m more aware of like things that trigger me, like technical decisions or what have you and recognize when that&#8217;s happening and be like, okay, let&#8217;s not act in that moment. Or you know, if I, if I don&#8217;t think I can have the conversation like, or I&#8217;m not the, in the best place to have it, like, maybe I go talk to the person&#8217;s manager instead rather than like, you know, like bull and china shop to the engineer and be like, so I have this thing, I&#8217;m thinking about it this way.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2332">00:38:52</a>] I&#8217;m kind of riled up about it. Like, help me. Like, how can I, you know, work with your team or whatever? Like that&#8217;s happened to you.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2339">00:38:59</a>] Well, it&#8217;s interesting to me in your career because the promo got postponed and you were, you were seeing that VS code was going to come up and the thing that New Clyde was built on was going to go down. And you were actually right in hindsight too, like, in the future that is what happened and you were battling for what was right, yet you were told, calm down a little bit and this. So I mean, yeah, what are your thoughts when you saw things play out and you go, actually, I was right the whole time.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2373">00:39:33</a>] I did have some conversations, like about A year later and I was like, hey, can we balance the ledger a little bit? Like it ding. Could be pretty hard for that thing. And it was kind of of good and we, we worked it out, I would say.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2386">00:39:46</a>] Okay, so I guess the, the learning is just how you went about it, not what you were like.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2392">00:39:52</a>] Yeah, yeah, I would say that&#8217;s true.</p><h3>00:39:56 &#8212; Joining OpenAI</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2396">00:39:56</a>] You seem to have a great time at Meta and eventually you left. So what was the thing that drew you to OpenAI?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2403">00:40:03</a>] Yeah, I mean a number of things. I mean one was so I, I interviewed at the end of 2023 with OpenAI I believe. And, and I had SPEN Meta trying to do LLM based developer tools, right with there&#8217;s a, you know, we had our own license version, even metamate. There&#8217;s like a little version of GitHub Copilot, right? That one did like a paper and a talk on that one. It was a code compose, right? That was code compose, yeah.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2431">00:40:31</a>] And you know, we like now there&#8217;s a lot of enthusiasm around, you know, delivering quickly and pushing the boundaries of that sort of stuff. And, and you know, I mean truthfully, I mean, you know, you get feedback on some of these things. It&#8217;s like why is this not, you know, GPT4? And I was like, well we&#8217;re on like Lamba 2. It&#8217;s not the same thing. And you know, I was not, not a researcher, right?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2459">00:40:59</a>] I was like, but I, and I, you know, just wanted to, to build the experiences, right? And that sort of thing. And, and so, so that was, that was one thing was that like I wanted to build stuff and I wanted to go to the place where I could actually build with the best model, you know. Two again was similar to like, you know, Google originally like seeing the people who were coming here to OpenAI. And I was like, well those are people I really respect.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2484">00:41:24</a>] I was like those are. I could actually work with more senior people, you know, like Meta eights and nines at OpenAI felt like that I could where I was and you know, third was just like this also seems like. And it has been just a very special place at, at the point in time. So I told a lot of people, I was like, you know, I felt like this would be like the most similar to starting at Google in 2000.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2513">00:41:53</a>] So not like, not to 1998 but like let&#8217;s say 2000, right. Like they kind of got some footing and got some you know, product market fit. And so like just as a personal level that was just a very exciting thing and you know the last one was that funny thing is that when I really enjoyed Calendar because it was consumer and I shipped to a lot of people, I went to Facebook because I thought huge consumer place.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2538">00:42:18</a>] Ended up not doing consumer at all. Right. Ended up doing developer tools. But like, you know, my users were my friends at work. It was just like 20,000 people, not like a billion people, but it was good enough for me at the time. And then, you know, thinking about OpenAI and then the chance to actually, you know, come back to consumer or at least like have a large user base. Right. And so now working on Codex, you know, I wonder if over a million weeklies or I forget how much it is right now and just keeps growing like, like, you know, hockey stick.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2570">00:42:50</a>] More like vertical line than hockey stick, even that, you know. So it&#8217;s like way more than the 20 to 40,000 developers, you know, it could affect it at Meta.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2580">00:43:00</a>] Yeah, absolutely. And dev tooling for the industry almost.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2584">00:43:04</a>] Yeah.</p><h3>00:43:05 &#8212; Research-led vs engineering-led cultures</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2585">00:43:05</a>] Meta, when I think of the company, it&#8217;s kind of engineering driven. Like engineers are king and queen, I guess. And it kind of like drive everything. It&#8217;s very bottoms up from that sense. And I feel like a lot of the lab companies are also like that, but on the research side. So rather than engineer is the first a class citizen, it&#8217;s like let&#8217;s make sure the research goes well and for good reason.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2609">00:43:29</a>] Right.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2610">00:43:30</a>] Like that&#8217;s also part of why you came is the models are good. But as an engineer or you mentioned, you know, you weren&#8217;t doing research. What are your thoughts on that? Research led culture versus engineering led culture.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2621">00:43:41</a>] I mean it was certainly an adjustment, right? I&#8217;m not, I mean I think of anyone who comes here and says otherwise is a liar. But you know, if you&#8217;ve been at like the Fangs or whatever and. But you know, they are, you know, you talk about impact, right. Which I think is important. Like a real. Like you genuinely, you know, mean it. Like I, you know, I love the work that I do on Codex and the harness and I think we do a lot of very meaningful things.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2647">00:44:07</a>] But you know, if the model weren&#8217;t very good, it wouldn&#8217;t really matter what we did, you know, on the harness. Right. And so, so I don&#8217;t. So you know, that that&#8217;s how it is, I would say. But I feel really great. We sit right next to the research team, we&#8217;re really close with them and so that relationship that we have that we get to co develop the thing, that was another reason leaving Meta in the LLM space was like I want to build the product with the people who are building the model so that we can do this thing together.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2686">00:44:46</a>] Maybe you could do that there, sort of, but not, but anyway, the impact was not quite the same.</p><h3>00:44:53 &#8212; The story behind Codex</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2693">00:44:53</a>] So you mentioned, I mean, when you got here, it sounds like you were working on Codex and starting that project up. So I understand with the initial launch of Codex cli, it was not exactly what you hoped for in terms of how it was received, but later it kind of really all came together. Can you tell that story?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2713">00:45:13</a>] Yeah, sure. It&#8217;s been a wild ride. So codec CLI, we launched it in April 2025. It was kind of like this, like one more thing moment at the end of the 04 mini live stream. And so we demoed it live, we open sourced it, you know, Core3Pro at that point, a lot of people tried it out. You know, everyone was excited to try a new coding agent, you know, and it was, and it was pretty good, but it was, it was pretty rushed to get it out the door right there was.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2744">00:45:44</a>] Which in some ways was good for engagement because now we&#8217;re open source. We were getting pull requests, you know, coming in all over the place. And I forget it, you know, we were, I feel like we&#8217;re like 10 to 20,000 stars in like a week or two or something like that. So like that, that part was fun. And you know, there were people who did like it. You know, it&#8217;s not like nobody liked it or anything like that.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2763">00:46:03</a>] But then, but that I, I think we didn&#8217;t, we weren&#8217;t maybe quite staffed to like really drive that the way that we needed to because, you know, we&#8217;re trying to cover multiple things as a company. And so, you know, just a month after that and you know, team of like seven engineers and I forget how many researchers launched Codex Web or cloud web where, you know, you&#8217;d use Codex in a container or you could just, you know, kick off a new thing from your phone, which is super cool.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2793">00:46:33</a>] And that was like a more well staffed effort. And I think, you know, that one is still the, I think the long term vision is correct, but I think with a lot of this stuff that we&#8217;ve seen, you have to bring the users with you. And I think that was just a little bit ahead of its time and people were still actually more into the local coding agents. And so we saw the web product. There&#8217;s a big adoption.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2823">00:47:03</a>] Initially it wasn&#8217;t as sticky, I would say, as we had hoped. And then through the summer, you know, both products still Kept, kept, you know, we&#8217;re working on both. But then somewhere that mid summer, again like I said, it&#8217;s like, you know, this moment like local agents are still the, I guess the stronger product market fit, but again I still think in the limit personally. Right. Like you&#8217;re going to need more machines than just your laptop as a place for agents to run.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2852">00:47:32</a>] And so we shifted quite a bit over the summer so we brought more people onto the codec. Cli. Yeah, a few kid things bring more people on. You know, GPT5 was going to come out and that was looking really, really good. And I think I was personally excited about, because I prototyped it a couple times before was that in addition to the cli, then we also had enough staffing. We also started working on the VS code extension and I felt actually very strongly that the terminal is good for a lot of things, but it has a lot of limitations.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2890">00:48:10</a>] Always you make a lot of compromises to make a nice UI in the terminal, whereas VS code we didn&#8217;t have to make quite as many compromises. August I think was a crazy month. I think GPT5 came out. I think we released our new refresh terminal ui also the GPT open source model came out. We supported that in the TUI as well. So that was really cool that you had an open weights model and an open harness.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2918">00:48:38</a>] And then later that month the VS code extension came out and so we were just like shipping like crazy. And that&#8217;s really where that confluence of things I would say is where we started to see the inflection point that&#8217;s brought us to like, you know, the vertical growth that we&#8217;re, that we&#8217;re at today. And so that&#8217;s, you know, that&#8217;s been really exciting. I mean, you know, some of these things you can, you can go in the repo check for yourself.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2945">00:49:05</a>] Right. And you know, gut check on some of these things in terms of number of people, number of commits and all this sort of thing. And yeah, so it&#8217;s, it&#8217;s, it&#8217;s been quite a ride.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2957">00:49:17</a>] You mentioned the local versus the remote version of these coding agents and it sounds like you have a lot of conviction that the right long term direction is not the local versions, it&#8217;s remote in the cloud. Why is that?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2971">00:49:31</a>] Well, I think about, I think that the people who actually for whom it is sticky now and I think there&#8217;ll be more of it is that you imagine, if you imagine you want to just automatically, you know, set for the agent at every like GitHub issue or linear task thing that comes in or anything like that. I mean, obviously, you know, there&#8217;s, there&#8217;s costs with those things, but. Or you can, it could be abused, but like, you know, let&#8217;s say for an internal private repo, right, that you, yeah.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=2996">00:49:56</a>] Want to be able to just have it be a piece in any sort of automation pipeline. Right. And so you can&#8217;t. You have all that happening on your, on your laptop. And so I guess, I mean, you know, as a, as an individual ic, maybe we&#8217;ll still personally spend more time with the local agent. But in terms of, you know, compute time of agents doing work. Right. I think getting that set up in the cloud, I think, you know, a little bit, it&#8217;s like a little more to get set up right now, but once you have it, it&#8217;s, it&#8217;s quite nice.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3027">00:50:27</a>] I see. Okay, so you&#8217;re not saying that product, the local one will change. You&#8217;re saying that like across the industry, the compute that goes towards agents majority will be in the cloud.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3038">00:50:38</a>] And yeah, I mean, even in. I think when the freeze code extension first came out, one of the things was the ability to take the conversation that you were having and hit a button, have it transfer to the cloud if you were set up to do it. Right. So I think that we&#8217;ll continue to see that where maybe you&#8217;re working on something, you want to throw it over here. You&#8217;re like, bring it back when it&#8217;s done.</p><h3>00:51:00 &#8212; How he uses Codex</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3060">00:51:00</a>] Codex usage is up 5x since the beginning of the year and over a million people are using it now. I&#8217;m curious, has your AI workflow changed a lot since you&#8217;ve started to use this newer version of Codex?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3074">00:51:14</a>] Yeah, it has. I&#8217;m a much bigger user of the app now maybe than I thought I would be. For a while I was very strongly in our VS code extension. I want that sidebar. I want all the code there next to me. I feel like these things should be together. I&#8217;m not a person who doesn&#8217;t look at the code. I&#8217;m not like, I don&#8217;t for projects that are like true prototypes that are throwaway, I will actually not look at the code.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3105">00:51:45</a>] It&#8217;s very freeing. I understand. I&#8217;m so excited about it. But for the code that goes into Codex itself, I&#8217;m like, no, I still need to look at this. This is pretty important. This is what&#8217;s going to affect everybody else. But you start to get a sense of, okay, I&#8217;m confident the model&#8217;s going to be able to do this change. And this Sort of thing I need to babys it. I&#8217;m going to just like write a lot up front.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3129">00:52:09</a>] And so, you know, I have like four or five clones of the Codex repo of my machine and I, I have enjoyed in the Codex app like the multitasking I just is, is just a lot easier because now you&#8217;re just kind of hang out in one window and you know, I try and it&#8217;s off the game. Exactly. But it&#8217;s like, you know, it&#8217;s like how much throughput can I get right. In terms of how many balls can I juggle in the air?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3154">00:52:34</a>] Sometimes it feels like, it can feel like a little hectic when you&#8217;re really trying to context but at the same time you&#8217;re like I&#8217;m getting a lot more done and that I almost feel a little bad writing code by hand sometimes because you&#8217;re like, if I had asked this in the right way. It&#8217;s like when you started it was like, oh, I&#8217;m just going to change these three lines. And then 30 minutes later you&#8217;re like, oh, I can&#8217;t kind of, you know, that, you know, we all, we all like to type still, I think, and that sort of thing.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3188">00:53:08</a>] What percent of your code would you say is human written versus the model generates it these days?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3194">00:53:14</a>] Oh man, it&#8217;s model&#8217;s got to be like 80 to 90%. I mean, yeah, yeah. I mean like especially like debugging a test or like the CI thing is bad. Like, I&#8217;m like, I&#8217;m like, hey, you know, you know how to write, you know, print, debug, whatever, like. And that&#8217;s great, that&#8217;s really freeing.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3212">00:53:32</a>] Digging into the problems that are suitable for LLMs and the ones that are not. Like what, what do you need to see where you think, okay, I need to go in and you know, write it myself. What&#8217;s that? 10% and also what&#8217;s in that? 80, 90%.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3227">00:53:47</a>] Yeah, I mean that&#8217;s a good one. I think about that, you know, because every time I sit down I&#8217;m like, like, should I write this? I mean the answer is almost always no. There&#8217;s things that are like lower level and someone, you know, so Codex, the, the harness. The part that I, you know, spend my time on is in rust. And that means that, you know, we can do and we do do like operating system specific things in that code base.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3255">00:54:15</a>] And actually. And I spend a lot of time on, on the sandboxing. Right. So the thing that really upholds like, you know, the security integrity of what? Of what we&#8217;re doing and that the model can&#8217;t go outside, you know, the bounds that you set. You know, I, I do more of that by hand because I need to make sure, really sure that that&#8217;s all correct. Right. That our test coverage is, is good or sometimes I&#8217;ll, you know, seed it and then you know, once I&#8217;ve got like the groundwork and like, okay, I have the pieces that I, that I was a lot of feelings about and then could let it like fill in the rest and that sort of thing.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3290">00:54:50</a>] But, but you know, a lot of like refactors and things like that. Actually, I think like a lot right now is like, you know, I&#8217;ll have a build up a big, you know, PR that does too many things. But I know it does too many things. I&#8217;ll be like, okay, please, you know, please split this up into reviewable sized commits, things like that. Like I think about how much time I probably spent on that sort of stuff before and now I can.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3312">00:55:12</a>] Right. Alligate frees you up.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3315">00:55:15</a>] What about like code review? Is there like what percent of lines of code do you and at OpenAI generally are people reviewing manually or are there agents that are like, you know, imagine you write a test or something. I don&#8217;t really need to review that.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3331">00:55:31</a>] I mean, yeah, I would say I liked the approach where you know, the, the agent should do, you know, multiple rounds of review or whatever until it&#8217;s confident and that it&#8217;s like, you know, worth a human&#8217;s time of looking at it. But we still do look at it ultimately before it goes in. I would say generally speaking, I think there&#8217;s, we have our agent&#8217;s empty file like everybody else does. There&#8217;s still sometimes you find a gap in knowledge that needs some context that needs to get added back into there or it&#8217;s just things that we haven&#8217;t memorialized the agent this but as a human I still happen to know and things like that.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3373">00:56:13</a>] So we do catch things. But I&#8217;ll say actually now that people are also using AI to write their pull request summaries, our summaries across the team I would say are getting way better. So now also when I&#8217;m going into review, it&#8217;s been reviewed by Codex, there&#8217;s a summary that&#8217;s like that we actually make sure it has the why and the what of why, the reason behind the pr. So that is certainly, I think helping get through these PRs faster, which is good because there was a lot more review to do.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3405">00:56:45</a>] That&#8217;s, I mean that&#8217;s Amazing. I feel like 50% of diffs have, like, you know, almost blank. The test plan says, you know, I don&#8217;t know, arc build or whatever.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3416">00:56:56</a>] The commander.</p><h3>00:57:00 &#8212; Why Codex&#8217;s harness is open source</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3420">00:57:00</a>] I want to talk about the. The codec cli. That&#8217;s open source. Why is it open source</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3429">00:57:09</a>] for something that&#8217;s that critical to what&#8217;s going on on your machine? That&#8217;s one of the aspects of open source. I&#8217;m not the most zealous about this sort of thing, but I sympathize with it. This idea that, hey, you&#8217;re going to put this thing on my machine. I care about what it&#8217;s doing, and I think in this domain in particular, it&#8217;s really important that people can look at it and have an idea of what it&#8217;s doing, because people have a lot of questions about AI agents and that sort of thing.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3463">00:57:43</a>] And so I think this area, this domain, I think it&#8217;s actually really important. And also we have gotten a lot of, I think, great contributions and bug reports and things like that that we would have missed out on. And. And then also I think it&#8217;s, you know, just, you know, sharing with the world with, like, how this is done. So we do it through code. Right. I&#8217;ve. I&#8217;ve put out one blog post about how the Agent Loop works.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3494">00:58:14</a>] Like there is a plan to do more of that. I&#8217;m actually excited to. It&#8217;s just, you know, just. It&#8217;s just time is this limiting factor. So it&#8217;s. The higher. Yeah, it was funny because I had two candidates who came through, and one&#8217;s like. He&#8217;s like, hey, I wrote it, right? I was like, no, no, I. I wrote it. And another person came in. He&#8217;s like, oh, you can tell that. That, you know, that you did not outsource the.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3515">00:58:35</a>] Okay, good, right? I was like, oh, thank you.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3516">00:58:36</a>] You know. So, yeah, you mentioned the blog post. How does Codex find what is available to it in its environment? When I&#8217;m running these things, I&#8217;ll see. It&#8217;s kind of amazing. It&#8217;s thinking to itself and, like, discovering all these things in my terminal. So. Yeah. How does that typically work?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3535">00:58:55</a>] Yeah, I mean, there&#8217;s, you know, there&#8217;s a few. I mean, there&#8217;s obviously what is, you know, in Codex&#8217;s base training, like, it loves to use RIP grep. It uses RIP Grep very well to find all sorts of things. And then there&#8217;s, you know, if you have your agent&#8217;s MD file and you&#8217;re saying, hey, in this repo, like, these tools are really important. Right? You should Use these. Right. Or the readmes or whatever.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3555">00:59:15</a>] Or obviously if you use MCP and you associate these MCP servers with your, you know, where you&#8217;re working on. Right. That injects the set of tool definitions, like at the start of the conversation. Right. So then that kind of. Yeah, so that&#8217;s not even like discovery on Codex&#8217;s part. Right. It&#8217;s kind of just like put it front and center there. I see.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3578">00:59:38</a>] So some of it&#8217;s the harness explicitly throwing that into the context. And then there is a big chunk though, where the model is just doing all the heavy lifting of finding things. Is that right?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3589">00:59:49</a>] Yeah.</p><h3>00:59:50 &#8212; Top technical book recommendations</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3590">00:59:50</a>] Kind of like reflecting over your career the breadth and depth of your work. If we look across all of it, I mean, it&#8217;s insane. You were JavaScript front end. Then you have all these dev tools, build fuzzy file, search, virtual. Now you&#8217;re working on Codex. I&#8217;m sure you had to continue your engineering education to kind of get through all these projects. What are the top technical books that have helped you educate yourself?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3620">01:00:20</a>] Yeah, I mean, you know, so one was this, this book on operating systems. It&#8217;s like a thousand pages or something like this. It&#8217;s the Addison Wesley book. Trying to remember the author. But it was funny because I was, when I was working on the virtual file system, so I had actually gotten to that point in my career without ever writing C, like undergrad. Like, it was like more theoretical. Like we just never had to touch it.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3645">01:00:45</a>] And then yet I&#8217;m like working on a virtual file system project and now it&#8217;s like very low operating system. That&#8217;s why, you know, joke. That was the kind of the worst engineer of the project. And you know, and someone said something and I realized I was like, I don&#8217;t know what they&#8217;re talking about. This is kind of embarrassing. And I was just like, you know, what book do I have to read? And I think my manager, Aaron Kushner at the time was like, he was like, well, there&#8217;s this thousand page book.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3667">01:01:07</a>] And I was like, done. So Pipe bought it, read the thing cover to cover. It, like took it away with me. I took it everywhere until I finished it. It&#8217;s. It&#8217;s kind of amazing and sad or weird like how, how far many of us can get like in software engineering without really having a clue how computers work. Like, there&#8217;s just so many of those levels of abstraction. But, you know, one hand it&#8217;s very freeing and then on the other hand it&#8217;s a little bananas.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3693">01:01:33</a>] And I think that what I would say to people right now is, is, you know, actively trying to go like deeper through the layers and understand these things. And like, because many times I saw other people do it and now I can do it, is that there are problems some other people could solve that I couldn&#8217;t solve because I just didn&#8217;t know that like there was this cruft between these two layers and if you got rid of it, right, you get like a 10x improvement or something like that.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3722">01:02:02</a>] Right. If you, if you&#8217;re just operating so high up you don&#8217;t really know, you know, what you can, what you can break down, you know, so that. And so in terms of books, like I&#8217;ve enjoyed The, like the O&#8217;Reilly, the Rust books, you know, big fan of Rust, but they&#8217;re also like well written and thorough. And then honestly, another thing I&#8217;ve been telling people that&#8217;s not in the book category but probably more fun and I learned a lot actually are these CTFs are like capture the flag, like security type competitions and just, you know, it helps with like kind of like adversarial mindset.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3761">01:02:41</a>] It helps with. I think they&#8217;re usually just like. It&#8217;s like a, it&#8217;s like a decathlon, like a computer decathlon, I feel like. Right. Because like, like there&#8217;ll be multiple challenges and maybe this one you need to like understand assembly and this one you need to understand like what someone&#8217;s like janky PHP admin page is doing and all that sort of thing. And it&#8217;s. And it just forces this breadth on you in a way that&#8217;s kind of hard to generate otherwise.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3789">01:03:09</a>] And it&#8217;s also just more fun because it&#8217;s like a game and that sort of thing.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3792">01:03:12</a>] Can you give some context on what CTF is?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3795">01:03:15</a>] Yeah. So it can be a number of things, but it&#8217;s usually a competition usually in like the infosec, the security domain. And there&#8217;ll be a set of. There&#8217;s like the Jeopardy style one which is like there&#8217;s a bunch of challenges and like, you know, designed like crafted ahead of time and they all have point values associated with them. And so, you know, there&#8217;s usually some fixed amount of time and it could be individual, it could be with a team and you&#8217;re trying to solve these things.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3822">01:03:42</a>] And there&#8217;s a flag. There&#8217;s always like a secret, you know, piece of text in there that usually has some format. And the way is that you basically, if you can discover the secret piece of text that means that you have the, the challenge is set up that you would Only have gotten that if you had figured out, you know, reverse engineered or whatever you were supposed to do. And then you get submit that piece of text and that&#8217;s your, you know, token to demonstrate that you solved the challenge.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3847">01:04:07</a>] And so it could be like a race to like solve everything first or get the most points in a certain amount of time or different things like that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3854">01:04:14</a>] So it&#8217;s like an escape room, but in your terminal and you have only computers to figure everything out.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3859">01:04:19</a>] Yes, I see.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3860">01:04:20</a>] Okay. And your recommendation is people who want to become better engineers, they should invest in doing some of these CTF because they make you solve problems that make you a better engineer.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3871">01:04:31</a>] Yeah. And you know, and then you, you know, also develop skills and things that you just wouldn&#8217;t have. You know, if you&#8217;re just like a, you know, writing react every day, like, you&#8217;re probably not gonna like open up GDB and like reverse a, you know, a tic tac toe game. But like, I did that because of, you know, a CTF challenge was to do, you know, exactly that. Right. And, but then it&#8217;s like, but then I learned how to use GDP and like, and then, then you start, you know, when you&#8217;re faced with other problems, you&#8217;re like, oh my.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3898">01:04:58</a>] Just toolkit of, of ways to solve things is just much broader now.</p><h3>01:05:02 &#8212; Why deep technical skills are still valuable (for now)</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3902">01:05:02</a>] A lot of people, especially earlier in their career, they see the power of Codex doing everything for them in the terminal and I just imagine them saying, oh, well, I don&#8217;t need to learn gdb because Codex knows it.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3916">01:05:16</a>] Wwhat would your advice be given the landscape of these AI tools for people thinking about their engineering education?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3924">01:05:24</a>] Yeah, no, that&#8217;s, I mean, I think everyone&#8217;s like struggling to answer that question right now. I do think about it, you know, a lot and I, I don&#8217;t have a great answer. I, I, I kind of personally come back to my thing about like, I still think like trying to forcefully kind of go through the levels of, of abstraction and just understand, you know, more like at a deeper level how things work is going to be important.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3951">01:05:51</a>] I mean, I think this will change, I&#8217;m sure this will change over time, but right now it&#8217;s still kind of like, you know, the questions that you asked the agent is going to affect the quality of the thing that you get out. Right. So if you&#8217;re not asking the right questions, you&#8217;re not maybe going to get the best engineering solution out the other side. You know, as things go on, perhaps that will also be another Layer that&#8217;s removed.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=3975">01:06:15</a>] I mean, I think that&#8217;s certainly where we&#8217;re going. I don&#8217;t know what time frame we&#8217;ll get there. Things do seem to be happening faster than we expect. But yeah, I think in general learning how to ask what the right question is. And I haven&#8217;t for myself even totally pinned down what that means for someone who&#8217;s starting out new. I fortunately have experience to, to fall back on or like that&#8217;s where that, that, that taste or that intuition of what to ask has, has developed.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4005">01:06:45</a>] But you know, if you&#8217;re, if you&#8217;re starting out, I&#8217;m still not sure yet. And it&#8217;s also hard to say because we, we don&#8217;t really know a hundred percent where everything&#8217;s going.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4014">01:06:54</a>] Yeah. When you reflect over your career, the expectations at these really high levels is kind of crazy. I mean it&#8217;s like already for Most people this E7 or senior staff level is this unattainable level of impact. So someone who gets promoted to that level is thinking, I gotta really work super hard now because the bar is like up here. And then you went two levels past that. And so I&#8217;m curious in the day to day now, what are your thoughts on these crazy expectations?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4048">01:07:28</a>] Is this stressful for you?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4050">01:07:30</a>] I mean it never, it was never not stressful, I think for me because I really, I think also because I sat in calibrations, right? And I, you know, so for a bunch of other people, you know, you talk about their level, you talk about their impact and you know, you want to be really fair and have this integrity around. Well, this level means this thing and this is the impact.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4071">01:07:51</a>] Like that&#8217;s what it meets all is, that&#8217;s what it exceeds is. And then knowing that like then you&#8217;re, you know, playing it out in your mind like, well, someone&#8217;s sitting in my calibration and talking about this thing and they want to be fair, right? And it is a little scary. Like, you know, you get to E8 and you&#8217;re like, oh, you know, it&#8217;s a D1 or a director and you&#8217;re like, how do I have as much impact as a person who has maybe like over a hundred people in their org?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4093">01:08:13</a>] And so that&#8217;s hard. A lot of people do it again, a lot of people who are an IC who do it, do it more by a different form of people management, right? Where they&#8217;re trying to, you know, like write the right doc and get the people aligned and do that sort of thing. And the reason that they do it and are Not a director is that oftentimes the people I&#8217;ve talked to, people who are in this, like, that they&#8217;re like, well, I have this technical credibility or because I built this thing, like when I go to the team and talk to them, it lands differently than if like a engineering director does or some version of that.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4126">01:08:46</a>] Right. Happens a lot. And so then, you know, when you, when you say you&#8217;re influencing, you know, 50 to 100 people as a senior IC, then you&#8217;re like, oh, okay, that&#8217;s like, you know, D1 impact, you know, whereas as if you&#8217;re a coder, I see. Being really thoughtful about the projects that you pick. And it can&#8217;t just be like, this is fun for me type of project. I mean, if you actually care about not getting fired or you&#8217;re getting like Sam eats all or better.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4162">01:09:22</a>] And even when I would start a project, certainly like the later I went on, I would think a lot about like, okay, like I maybe there&#8217;s this feature, I just want to write it because it&#8217;s fun. And I&#8217;d be like, no, I should let somebody else do that and think about, okay. I mean, it&#8217;s kind of like with Codex now, like, what code should I personally write to maximize my impact versus if someone else could do it about as well as me, let&#8217;s say 80% is good, I should probably let you know, have someone else do that.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4191">01:09:51</a>] But even then, if you&#8217;re leading a five person project, is that still, you know, still getting to E8, E9 impact still hard. So really finding that project that&#8217;s a force multiplier. So, you know, like the virtual file system was a really great project because that was going to, you know, we knew that down the road like this was really going to unlock so many things, prevent us from being completely blocked.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4219">01:10:19</a>] Right. Actually, another big part of it is, and you know, one of my managers talked to me about it is, you know, not actually recognizing senior managers enough who are the person who pairs the senior IC with the right project. And because some senior engineers are amazing, you know, fixers, coders, but they&#8217;re not the idea come uppers with, but they&#8217;re the person you want for very difficult technical projects.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4254">01:10:54</a>] I don&#8217;t want to out anybody here, but I have people in mind. But a lot of times it&#8217;s the manager who realizes, oh, this project needs this person. And that person would have never realized it themselves.</p><h3>01:11:07 &#8212; How to start projects well</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4267">01:11:07</a>] One of your old colleagues, Adam Ernst, I think. Hi, Astemia. What are some other engineers that you admire and why? And you know he mentioned your name, of course. And specifically he talked about your ability to start projects was really good. And obviously, I mean, look at all these projects, right? I mean, a lot of them, you created them out of nowhere. Like it was just, you had an idea and you went off and built a prototype.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4290">01:11:30</a>] You came back and you were very convincing that it was a better solution. Do you have any advice for engineers who they have a problem and a solution and they want to like build a project from scratch?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4301">01:11:41</a>] I mean, I think, I know a lot of good projects, I think come from being a little bit dissatisfied about, about something. Right. And I think, you know, it&#8217;s funny, like sometimes I, for better or for worse, I was just so charging ahead and just like building the thing that like, not really thinking about like what the best way to do it was. So actually a really funny example is Google Calendar going back really far.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4326">01:12:06</a>] I was like, I want weather. I want to have weather, little icons showing the weather in Google Calendar. And I was like, I&#8217;m going to do it. And I had mostly been JavaScript especially and not done any of the backend stuff. And I just charged through and I cobbled things together and made it happen. And then my tech lead was like, wait, how are you storing that information about the weather and stuff?</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4350">01:12:30</a>] And I was like, oh, I just threw a blob of XML and everything. He&#8217;s like, we should have talked about protocol buffers. I was like, binary formats to save bytes. That I was just so set on weather of all things that I never bothered to ask anybody if there was a better way to do what I was doing. I was like, it&#8217;s done.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4371">01:12:51</a>] So I guess that&#8217;s a unique skill of yours, is the digging into the dissatisfaction and solving your own problems. Seems like almost every single one of these projects is I want my, I want something to happen. This, this shouldn&#8217;t be this way. And then you went and you solved it.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4388">01:13:08</a>] Yeah, yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4390">01:13:10</a>] Well, I think another unique thing that I see is a lot of people, they, they get to work and they, I don&#8217;t know, they&#8217;re, they&#8217;re in their dev environment. I&#8217;m sure there were many other people who saw with the buck story, for instance, they go, oh wow, this build is really slow. Oh well, like I guess I&#8217;m going to go to the micro kitchen and get it and call its builds. What gave you the confidence to know that you could make it so much better?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4414">01:13:34</a>] I mean, that one was, you know, I have to credit, like having been at Google, I never worked on the Blaze Team. I never knew how that like worked I ever touched the code or anything, but I was like, I know that there&#8217;s a thing out there that has this shape and is a lot better than this thing. So that&#8217;s an existence proof whether I could do it or not. Like tbd. Right. But I think that was helpful on that one.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4439">01:13:59</a>] There&#8217;s a lot of, I guess, prior art that gives me confidence in things and I usually generally identify myself as a coding machine. I guess with Codex now everyone&#8217;s a coding machine, but that I felt that I always had confidence. Build a prototype quickly and at least answer that question or test my basic hypothesis spiritually. Should there be a way forward to this thing that I think should exist.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4463">01:14:23</a>] And generally, you know, you&#8217;re, if you are determined, you find a way.</p><h3>01:14:27 &#8212; Advice on writing better and career planning</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4467">01:14:27</a>] Yeah, I&#8217;ve noticed that pattern. A lot of people who go to big companies, they see this world class infrastructure and then they go to the other company, oh, you don&#8217;t have this, you don&#8217;t have this. And they build their, you know, those new versions of it. I&#8217;ve read a lot of your writing at this point and it is so clear. It&#8217;s some of the best examples of good technical writing. What advice would you have for engineers who want to write better?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4492">01:14:52</a>] I mean, I think a lot of it is, well, I think reading other good writing is certainly a good start. Right. Maybe, you know, consciously or subconsciously start to pick up patterns of like, what, what is out there? I think, you know, really high level thinking about like what what is, what is it that I&#8217;m trying to convey? What would someone actually really want to know? And, and outlining a lot up front right is I think a lot of people will give this feedback.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4517">01:15:17</a>] But it&#8217;s, it&#8217;s impressive how really important that is. And just being like, does this set of things like linearly follow? I think is a big thing. And then asking yourself, oh, I went from this point to this point, was that too big of a jump? Is there something that somebody actually would have reasonably missed? And I think personally I feel like that&#8217;s a reasonable feel for where that gap would arise.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4544">01:15:44</a>] And then if you can kind of anticipate that and magically put in the example that like someone would have that someone needed to make that jump, I think like that, at least for technical writing is like, is a big deal.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4559">01:15:59</a>] You have that career note that I love and at the beginning of it you lay out this three step plan for impact. Can you explain that three step. I feel like that&#8217;s a good algorithm for people to use in their careers.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4572">01:16:12</a>] Step one is figure out what you really like to do. Right. And you know, as I mentioned, like, it&#8217;s good to broaden that, but it&#8217;s also good to, to be honest with yourself so you don&#8217;t know. And like the, the quote, the hero quest that I went on, that, that didn&#8217;t pan out because I was working on stuff I didn&#8217;t really, you know, truly love. And then two, step two was figuring out what your employer is, what&#8217;s really invaluable to them.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4597">01:16:37</a>] Right.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4597">01:16:37</a>] And as I talked about at Google, I, I didn&#8217;t do a good job of that. I did stuff that I was really excited about, but it wasn&#8217;t, you know, it wasn&#8217;t, you know, AdWords for Google or anything like that. Um, yeah. And then step three is like, find that intersection and then just really lean into that. Um, and you know, the more that you can do that, I think the more successful, you know, you&#8217;re going to be.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4618">01:16:58</a>] And, and, and the, I think the challenge is sometimes it&#8217;s not always there. Right. And maybe you have to go, you know, find somewhere else to make that happen.</p><h3>01:17:06 &#8212; Advice for his younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4626">01:17:06</a>] Okay, and then, yeah, last question for you is if you go back to yourself at the beginning of your career, knowing everything you know now, what advice would you give yourself?</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4634">01:17:14</a>] I think I should have been open to learning more things sooner. And, and I, I, you know, to be a little gentle to myself and I think other people are in that situation is that, you know, there&#8217;s so much to learn when you&#8217;re starting and then whatever your first programming language is. I think it&#8217;s funny, I think everyone has a soft program spots for, they&#8217;ll like make excuses for it like ever. Like, oh, no, it&#8217;s a totally good language.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4657">01:17:37</a>] And I think it&#8217;s because it&#8217;s like the first thing that enables you to do a thing, you know, do anything, right. And, and then it&#8217;s like, oh, okay, I can finally do something. It&#8217;s such a relief. And, and, but it&#8217;s also like a hazard because like then you kind of want to hold on to that thing because like you&#8217;re finally productive and now you&#8217;re like, ah, it took so long to get to this foothold. I don&#8217;t know how long it&#8217;s going to take to get to the next foothold.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4680">01:18:00</a>] So I think like, in my particular case I probably did maybe went too deep with JavaScript. And like, like I said, it took a long time before I wrote nec. And I think, you know, if I had been a little bit more curious and a little more flexible in terms of what, like, types of projects I was willing to take on or things I was willing to learn. You know, it came eventually, but I think if that is probably the biggest thing that maybe could have made a shift for me earlier.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4706">01:18:26</a>] I gather from your story there was a point with the xcode where you said you hated Objective C and then you were coming up with ways to compile the Objective C into Java into Objective C or something like that, maybe. And then also talking about the C for miles, it seemed like a very concerted, okay, I&#8217;m going to learn this as opposed to just kind of being open to it. Yeah, yeah, it makes sense. Well, maybe with Codex in the future it&#8217;ll be less of a hurdle for people.</p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4739">01:18:59</a>] You could just kind of say, hey, I know JavaScript, write this in Rust or whatever.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4744">01:19:04</a>] No, it&#8217;s true. Opens a lot of doors. Sure.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4746">01:19:06</a>] Awesome. Well, thank you so much for your time, I appreciate it.</p><p><strong>Michael:</strong></p><p>[<a href="https://youtu.be/hN5ZFzWFhhg?t=4748">01:19:08</a>]  All right, thank you, Ryan.</p>]]></content:encoded></item><item><title><![CDATA[Distinguished Eng On Stack Ranking, Competing with Bezos, Regrets | Bryan Cantrill]]></title><description><![CDATA[His career learnings through booms and busts]]></description><link>https://www.developing.dev/p/distinguished-eng-on-stack-ranking</link><guid isPermaLink="false">https://www.developing.dev/p/distinguished-eng-on-stack-ranking</guid><dc:creator><![CDATA[Ryan Peterman]]></dc:creator><pubDate>Mon, 02 Mar 2026 10:02:36 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/189409621/e84e96d4c9cb0c442b761b5611bdac34.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/bryan-cantrill-b6a1/">Bryan Cantrill</a> was a distinguished engineer at Sun Microsystems and has now founded his own company called Oxide Computer Company. We discussed his career experiences through boom/busts, what competing with Bezos was like, and career regrets.</p><p>Check out the episode wherever you get your podcasts: <a href="https://youtu.be/qhSL-5GtmQM">YouTube</a>, <a href="https://open.spotify.com/episode/7jFM4QnghCfp7WIMKJp8J3?si=Pt0Sxm3yRa6koImkHFcphg">Spotify</a>, <a href="https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835">Apple Podcasts</a>.</p><div id="youtube2-qhSL-5GtmQM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;qhSL-5GtmQM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/qhSL-5GtmQM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><h1>Timestamps</h1><p><a href="https://www.developing.dev/i/189409621/working-at-sun-microsystems">00:00:42 - Working at Sun Microsystems</a></p><p><a href="https://www.developing.dev/i/189409621/his-growth-to-distinguished-eng">00:10:17 - His growth to distinguished eng</a></p><p><a href="https://www.developing.dev/i/189409621/why-goaling-on-promotion-is-bad">00:19:14 - Why goaling on promotion is bad</a></p><p><a href="https://www.developing.dev/i/189409621/stack-ranking-and-layoffs">00:29:34 - Stack ranking and layoffs</a></p><p><a href="https://www.developing.dev/i/189409621/why-he-hated-the-oracle-acquisition">00:36:00 - Why he hated the Oracle acquisition</a></p><p><a href="https://www.developing.dev/i/189409621/why-bezos-is-the-apex-predator-of-capitalism">00:44:19 - Why Bezos is the apex predator of capitalism</a></p><p><a href="https://www.developing.dev/i/189409621/differences-between-cto-and-vp">00:48:04 - Differences between CTO and VP</a></p><p><a href="https://www.developing.dev/i/189409621/starting-his-own-company">00:49:58 - Starting his own company</a></p><p><a href="https://www.developing.dev/i/189409621/grilling-him-on-his-past">01:02:37 - Grilling him on his past</a></p><p><a href="https://www.developing.dev/i/189409621/ai-boom-and-bust-advice">01:11:57 - AI boom and bust advice</a></p><p><a href="https://www.developing.dev/i/189409621/when-he-was-happiest-in-his-career">01:14:41 - When he was happiest in his career</a></p><p><a href="https://www.developing.dev/i/189409621/top-career-regret">01:17:22 - Top career regret</a></p><p><a href="https://www.developing.dev/i/189409621/advice-for-younger-self">01:19:21 - Advice for younger self</a></p><h1>Transcript</h1><h3>00:00:42 &#8212; Working at Sun Microsystems</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=42">00:00:42</a>] Your career started at Sun Microsystems and that&#8217;s kind of a legendary company. It was before my time. What was the industry like when you first entered it? Was there FAANG equivalence at the time? What was Sun Microsystems like? What were the other companies like?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=64">00:01:04</a>] Yeah, you know, it&#8217;s kind of funny cause there&#8217;s always been like a FAANG kind of equivalent. You know, in the 60s it was called the bunch. Burroughs, UNIVAC, NCR control data and Honeywell were the bunch. It was IBM and the Bunch. So for kind of every era there&#8217;s always some hot group, some growing sector. And in my day though, so things were, I mean, I think in a bit of a divot. So I graduated in 96, so I was really interviewing in 95.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=97">00:01:37</a>] And there was for sure on campus interviews happening. But Microsoft was very dominant in that era. And I definitely knew I was not going to go to Microsoft as a kind of a point of principle.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=112">00:01:52</a>] Why was that?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=114">00:01:54</a>] Oh, I view Bill Gates robbed me of my childhood. Microsoft had such garbage. I mean, they really did. In what sense? Their operating system was. You know, I came up in the personal computer era, so I came up in the 80s. And it wasn&#8217;t until, you know, I went to University in 1992 and it wasn&#8217;t, you know, I had just been accustomed to kind of like garbage on the computer. And it&#8217;s like it&#8217;s garbage in a way that is kind of unfathomable.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=145">00:02:25</a>] Now DOS itself, the disk operating system from Microsoft had no memory protection whatsoever. So if an application misbehaved, the machine would just reboot. And this just became like part of life. It&#8217;s like the machines reboot. You gotta boy, you gotta save your work because you&#8217;d be in WordPerfect or WordStar, whatever. This is where I sound like a true like living fossil. I feel like I&#8217;m relaying like coming across the Oregon Trail or something.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=171">00:02:51</a>] But you&#8217;d be in your word processor, you know, working on your English paper and all of a sudden the machine would reboot. And actually that was just, that was life. And you hope you saved it, hope you had a hard copy. And it was only when I got to college that I realized like, wait a minute, hold on, there&#8217;s actually something called there&#8217;s memory protection in the microprocessor. And for much of my adolescence there had been memory protection present and DOS didn&#8217;t use it at all.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=198">00:03:18</a>] And the, and Windows used it. I mean with Windows it gets complicated. But the answer, the short answer is Windows didn&#8217;t use either. And so it wasn&#8217;t until I got to like Unix on a workstation. And I just remember being like, you know, 18 years old and having like having a command line shell up in one window, having an FTP to woo archive, downloading some like EGA game that I would want to go play back in my dorm in another window, having something else going on in a third window, having a compile in a fourth window and having this happen magically concurrently was just mind bending.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=235">00:03:55</a>] It&#8217;s like, how is this even possible? I mean again it sounds, and I appreciate how old this sounds, but this is what it was. And then looking back I&#8217;m like, why do I have garbage from Microsoft? And Microsoft was just not an operating system company. They were the dominant operating system provider. But in their DNA, the most fundamental, like the nucleotide base pairs of Microsoft are compilers.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=261">00:04:21</a>] They were a compiler company, not an operating systems company. And Apple was, you know, Apple, what was Apple at that time? I mean Apple had this is long fired Steve Jobs. This is the, the Apple was kind of the Mac was really honestly not that much better. It was like cleaner but also didn&#8217;t make use of memory protection. So this is just like unconscionable to me. And there was just, and this is like aside from all the bad behavior from Microsoft, and there was plenty of bad behavior from Microsoft.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=288">00:04:48</a>] Microsoft was very anti competitive. And you know, the findings of fact in the Netscape, you know, years later would be just very underhanded, very wanting to. It was not a company that had the best technology. It was a company that jockeyed for position and then would kind of abuse its position.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=308">00:05:08</a>] What&#8217;s the TLDR of that abuse?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=312">00:05:12</a>] So what Microsoft would do and this is a pattern you would see repeated since. But what Microsoft would do is they would announce, you know, you&#8217;re a promising company that has something that&#8217;s, that&#8217;s a application that people might use. They would announce that it&#8217;s going to become a forthcoming feature of the operating system. But as it turns out then it wouldn&#8217;t show up. It was vaporware that the term vaporware, I think if it didn&#8217;t originate with Microsoft.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=338">00:05:38</a>] Microsoft definitely perfected the art of vaporware, of announcing something that didn&#8217;t exist. And they were kind of dominant with this mediocrity. Now to their credit they also when they went in. So for example Microsoft Word, which I mean still exists but WordPerfect was the really the dominant word processor. WordPerfect and WordStar but Microsoft Word was very bad and to their credit it would get better over time and ultimately supplanted WordPerfect in part because they started bundling it with the operating system.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=370">00:06:10</a>] So they, they were very deeply anti competitive. And that&#8217;s not like an opinion, that&#8217;s like a, that&#8217;s just a judicial finding of fact. That&#8217;s a judge Alsop finding a fact. And that changed a lot when Gates, I mean Gates when he hit middle age, that company changed a bunch. And after the antitrust case in the late 90s. But I was not going to work for Microsoft.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=392">00:06:32</a>] I saw in your goodbye post for from Sun Microsystem when you were leaving the company you wrote public post and you said that when you joined the company and you interviewed you only knew two things that you one, you wanted to work on an operating system kernel development and two is that you didn&#8217;t particularly want to work for sun but it looks like you had an amazing time. So what flipped the switch from going from I don&#8217;t want to work here to I love working here.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=425">00:07:05</a>] So the, when I, I had kind of talked with other groups at sun and I just like the people I dealt with at sun were fine, but just not where it didn&#8217;t feel energizing. And certainly PBN did not feel energizing. And I was kind of accustomed to being the youngest person in a group. But you don&#8217;t wanna be completely by your lonesome. You wanna feel like there are other people that have that kind of, that same shared passion.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=452">00:07:32</a>] And when I met Kevin Clark and Jeff Bonwick, it was like a bolt of lightning. Those two were energized, passionate really. They saw all of the same things that I saw in terms of the pot operating systems to be innovative and were and wanted to go, like, rip out broken code and replace it with, with beautiful code and all that. That same verve that, that I felt. And yeah, it was, it was absolutely.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=483">00:08:03</a>] Meeting those two. You&#8217;re just like, okay, I, I, I. There are. I am going to work for Sun. I remember actually very vividly coming back from that trip being like, oh, my God, I&#8217;m going to go work for Sun. If they make, they&#8217;re going to make me an offer and I&#8217;m absolutely going to go work there.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=495">00:08:15</a>] I saw that eventually you grew to a distinguished engineer there. And what was the career ladder like?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=502">00:08:22</a>] It would be interesting to know where the kind of member of technical staff, staff engineer, senior staff engineer, distinguished engineer comes from. I think it might come from Sun. I think it&#8217;s possible that sun is the originating company. It&#8217;s also possible from Xerox parc. You&#8217;d have to kind of take it apart where. And I actually remember when, you know, I had interacted with some folks at sun and they&#8217;d give me a business card, and I remember like, coming out to sun, being like.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=526">00:08:46</a>] And not really knowing what my rank was. And I&#8217;m like, Because I was gonna make business cards, I&#8217;m like, why? I&#8217;m an engineer and I&#8217;m on staff. So I like, I think I&#8217;m a staff engineer. So. And, you know, I kind of go to make business cards. And then I kind of like didn&#8217;t, didn&#8217;t complete submission on the form or whatever. And then of course, it wasn&#8217;t that long afterwards. Everybody was like, oh, wait a minute.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=543">00:09:03</a>] That was like. That would have been like saying I had got tenure. Like, I definitely am not a staff engineer. I&#8217;m a member of technical staff. I was an MTS3. So the, there was the, uh, you would kind of climb up through those ranks and then to, to staff engineer, senior staff engineer, distinguished engineer.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=557">00:09:17</a>] And three was the start of the.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=560">00:09:20</a>] No, I mean, it&#8217;s supposed. I think it did start at MTS1. Um, no, most college hires would start at MTS2, but they, but I, I was an unusual college hire in a lot of ways.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=570">00:09:30</a>] Interesting. So they brought you on two levels deep as a new grad.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=574">00:09:34</a>] Yeah, yeah, yeah, that&#8217;s right. Um, I mean, I&#8217;d had a lot. I. So sun was actually not the first company I worked for. I worked for a company called QNX in Canada and I done kernel development there. So I had done OS development at QNX for two summers and done some, actually some work that I was, that I still think is actually. I love That I love working for qnx. I love being in Canada and really. And I had decided that I didn&#8217;t want to go back to QNX professionally.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=601">00:10:01</a>] That I did. The other thing I would say is I decided that I wanted to come out to Silicon Valley. I did not want to be. I&#8217;d gone to school in the Northeast, had worked in Canada, but I really wanted to come out to Silicon Valley.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=611">00:10:11</a>] I see. So then when you, when you look at your journey growing from I guess this MTS3 to.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=617">00:10:17</a>] Yeah.</p><h3>00:10:17 &#8212; His growth to distinguished eng</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=617">00:10:17</a>] Up to where you grew, like if you were to break down that. I guess the story behind that growth and kind of what are the highlights that, that stuck out to you, that made you grow?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=626">00:10:26</a>] Yeah. So, I mean, I was not, I was very much not focused on my, my grade, my rank or promotion that was not on. I was not interested in that. My view was always like, I would much rather be under promoted than over promoted. I&#8217;d much rather be doing work where people are like, wait a minute, why are you back here? Like, what happened to you? That&#8217;s just. I am not interested in being kind of doing work performatively.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=659">00:10:59</a>] I was always going to do what I felt was the most important thing to go do. And sun was a company that was very accommodating of headstrong engineers. And so I, that&#8217;s what I, what I wanted to do was solve the problems that our customers had, make the operating system what I believed it could be, kind of realize that vision for what the OS could be. Sun was the only company, honestly in 1996 that was really invested in the operating system.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=688">00:11:28</a>] Every other company was mortgaging its future to Microsoft and Windows. And all these computer companies were giving up on their own operating system, giving up on Unix. It was really Unix&#8217;s darkest hour. And being in that group in Solaris Colonel development during those years was enormously energizing and allowed us to do all sorts of things. And then along the way you get promoted, right? Along the way, like, promotions were just the kind of thing that happened as you, as you went along the way.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=716">00:11:56</a>] I mean, sons became. I learned, I would say I took away a lot of life lessons in terms of what works and doesn&#8217;t work. I found that the cause, of course, we had formalized performance review. And I found this is like not a deep thought, but that formalized performance review never resulted in me having higher performance. And this is like, this is one of these things that you kind of like feels very naive to say because it&#8217;s like no dummy, like performance Review is not about you performing better.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=748">00:12:28</a>] It&#8217;s about us measuring your performance. It&#8217;s like, well, that&#8217;s not what it should be about. What it should be about is, like, what feedback is great. Like, we should be making everyone be the best that they can possibly be. And the, The. The. The formalized, the annual cadence of it, I felt was very broken. You know, we would have you submit a self review, of course, and then your review is like, oh, wow, my review looks stunningly like my self review, albeit with grammatical errors introduced.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=777">00:12:57</a>] And you know that in every review, even the reviews in which I was promoted, they were just not uplifting. Like, that was not. When I look back at the moments of, like, what were the highlights for me during that progression, it was never being promoted. It was always doing a significant body of work or nailing a hard bug or working with someone on something that we thought was impossible. Like, that was the stuff that.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=801">00:13:21</a>] That. That was really catalytic for me. And then this, like, son just kind of had to promote me along the way. Now, the one exception, though, I would say to that is that the. The promotion to Distinguished Engineer was very regrettable and stupid. I mean, not my promotion, but just in general. Like, the process. The process for being promoted at SUN was, I would say, very traditional in that, you know, you&#8217;re taking your folks that are performing very well and you&#8217;re promoting them up to the next grade.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=828">00:13:48</a>] The SUN did have a very silly process thing that, you know, they had three grades. They would give you superlative, excellent, and good. And then I think there was like a, you know, like 70% good, maybe 20% excellent, and 10% supportive, something like that. And they had this thing where if you were superlative, they had to promote you. Like, that was like the index for promoting you. Like, if you got that superlative grade, they promote you.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=854">00:14:14</a>] But also they had to promote you if they gave you that superlative grade. So you would. I had these. I had these reviews that were like, apologetic, being like, look, I have to give you an excellent grade, even though, like, the work that you&#8217;ve done over this past period has been extraordinary and innovative and actually better than the work that you did two years ago or a year ago. But I can&#8217;t actually give you the supportive grade because if I give you the supportive grade, I would have to promote you.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=880">00:14:40</a>] And we just promoted you a year ago, and it&#8217;s really like, we don&#8217;t want to promote people any faster than every 18 months. And you&#8217;re like, okay, does this make sense to you? I mean, this doesn&#8217;t like, I was just like, okay, if you&#8217;re satisfied with this. Fortunately, I just don&#8217;t care one way or the other, so. Sounds good. Okay. Can I get back to work now? Are we done here? It&#8217;s like, are we? And then again, trying not to be trolled by the grammatical reviews in my.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=903">00:15:03</a>] In the review that&#8217;s being handed to me. So now the difference for that was the. And you know, the promotion of staff engineers was a big deal. And like, great, fine. Actually, it was funny because all the staff engineers. So sun had this thing called keep, the key employee incentive program. And KEEP was effectively like an annual dividend. It was like a bonus. So, you know, and there was like a keep pool that was set across the company and, you know, kind of a traditional thing.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=931">00:15:31</a>] Right. And the. The metric was based on, like, company performance. That&#8217;s what they. And so I did hear when I was, you know, in mts 3 mts for the staff engineers, like, you know, they would get their keep bonus. And if the keep bonus is really good, they take everyone out to dinner. And it was kind of like, you know, it was like being at the mining town, right when there&#8217;s a big or strike or what have you.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=949">00:15:49</a>] Gold strike. So I was like, okay, wow, this is like, this will be great. So of course, I mean, just like, of course, like, when do I get promoted to staff engineer? It must have been in like 2000, 2001. I get promoted to staff engineer as like the dot com nuclear bomb goes off. And the keep bonus was. I never got like, keep bonus was zero. From then on out, sun lost 98% of its value in the public markets.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=971">00:16:11</a>] And like, I never. So it&#8217;s a good thing that I wasn&#8217;t doing it for the keep bonus because the keep bonus was zero. But then getting. So that&#8217;s what staff engineer, senior staff engineer, and then distinguished engineer was really unfortunate in that there were kind of two paths in to distinguished engineer. And this may be true of a lot of companies. I don&#8217;t know. I mean, I don&#8217;t have ranks at oxide for this reason.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=993">00:16:33</a>] Like, I think ranks are corrosive. I don&#8217;t think they get people to do their best work. I&#8217;m not interested in them. But the at sun, there were two ways to be a distinguished engineer. One was, of course, to be like, promoted from a senior staff engineer to a distinguished engineer. And that was a very, very. I mean, I would say rigorous, but it&#8217;s giving it far too much credit. It was a very political process.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1014">00:16:54</a>] The des would vote on whether you should be admitted to this country club of distinguished engineers, which is a terrible idea. Putting like, this is like the wrong place for democracy in a society. Right. For so many different reasons, but. So that&#8217;s how you would get promoted. Distinguished engineer. Very hard to get promoted. The other way to become a distinguished engineer is sun is buying your little company, is acqua.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1038">00:17:18</a>] Hiring your company. And the company&#8217;s got just enough leverage during that process to be like, oh, by the way, our CTO needs to be a deep. So you would have these like, DEs just kind of like, pop in the side. You&#8217;re like, who&#8217;s this? Like, oh, yeah, we acquired their company. So. And. And there was definitely a difference in, like, you knew the. The homegrown DEs versus the ones that had been. Had been aqua hired in.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1062">00:17:42</a>] But when I. And I actually, like. And this is like, I just do not want to even think about this process again, I&#8217;m not really a political person. Like, the last thing I want to do is. Fortunately, we had. I&#8217;d done work that was kind of so indisputable at that point that it was going to be. It was pretty clear that if sun is going to have such a rank, I was probably worthy of it. But again, I didn&#8217;t want to deal with it.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1083">00:18:03</a>] Sun&#8217;s CTO at the time, Greg Papadopoulos, very grateful to Greg. Greg had chartered this group that we developed actually in San Francisco, first on Mission called Fishworks, where we had developed a new storage product. Storage product was going to gangbusters. Was a great product, although a great product with asterisks on it wasn&#8217;t as great as we thought. It was mishap that we learned a lot about it.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1107">00:18:27</a>] But the product was doing really well. Greg, again, I was not in the meeting, so this was told to me secondhand. But your DE case needs to be presented by someone. Another de. Well, Greg presented my case, and so you had the CTO of the company. And son was not a very hierarchical company, and Greg was not a very hierarchical person. But Greg put apparently my materials up, and it&#8217;s like, I don&#8217;t expect anyone to vote against this.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1131">00:18:51</a>] Take your vote.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1132">00:18:52</a>] He said that?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1133">00:18:53</a>] Yeah. And apparently it was unanimous. So it&#8217;s like, thank you, Greg. Deeply appreciative. So, Greg, I didn&#8217;t have to deal with that bullshit because Greg was dealing with it for me. And it was kind of like, you know, honestly, it was kind of a validation of my hypothesis. Like, Greg honestly viewed it more of a reflection on the company than a Reflection on me, it&#8217;s like, great. I had done work that was, at some level, kind of indisputable, and that&#8217;s kind of the way I had wanted the chart my career.</p><h3>00:19:14 &#8212; Why goaling on promotion is bad</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1154">00:19:14</a>] There&#8217;s two schools of thoughts on. On, you know, how people structure their careers within these ladders. If a really ambitious new graduate engineer comes to you and they say, hey, I want to be a distinguished engineer one day, I have two ideas. One idea is I&#8217;m going to just focus on the work and just, you know, promotions will be a byproduct. Or I&#8217;m going to do the other thing where, you know, I talk to my manager.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1181">00:19:41</a>] I&#8217;m like, hey, how do I get to that next level? And hey, what are those things that the next level needs to do? And then I will do work that molds to that mold.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1191">00:19:51</a>] Yeah. I would try to steer someone to a third path.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1194">00:19:54</a>] What&#8217;s the third path?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1196">00:19:56</a>] Why. Why do you want to be. What does it. Why do you want to be distinguished engineer? Because if that&#8217;s the goal, if the goal is to be a distinguished engineer, you get there, you&#8217;ll be distinguished engineer. Now what. I mean, you can be so fixated on that. It&#8217;s like, at some level that doesn&#8217;t actually, that&#8217;s not the thing that matters. That doesn&#8217;t give you meaning. And to me, if I had a young engineer who&#8217;s like, I want to be a distinguished engineer.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1225">00:20:25</a>] I&#8217;m like, that&#8217;s a recipe for a midlife crisis. So let&#8217;s try to dial you differently. And I think what I would steer someone to is what&#8217;s get you on a path that has meaning, where you&#8217;re going to be developing and what drives meaning for you. What&#8217;s important to you? And it&#8217;s like, well, what&#8217;s important to me is to be a distinguished engineer and be like, okay. I mean, you&#8217;d want to tease it apart, get them on the couch a little bit.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1252">00:20:52</a>] Like, why. I mean, are you not. Were you not loved enough as a child? Like, what&#8217;s going on? Like, you know, and you kind of work through some of these issues because you don&#8217;t want to be dependent on that kind of external validation. I would want to be like, let me introduce you to people who&#8217;ve achieved what you are putatively setting out as your goal and are miserable. Like, let me introduce you to some miserable des.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1275">00:21:15</a>] You want to be wealthy. Let me introduce you to some miserable wealthy people. So you know that it&#8217;s like, that can&#8217;t be. It there&#8217;s got to be something else that is the fuel in that furnace. And like let&#8217;s go find that thing. And then, then like the promotions will happen and the work will happen.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1295">00:21:35</a>] Okay, but let&#8217;s say. Okay, Mentee comes to you and says, you have a good point. I want financial independence. A lot of people I think want that as they, they want to.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1306">00:21:46</a>] Yeah. What&#8217;s financial independence though? Because like we are in such a well compensated domain. It&#8217;s like you and I right now could go out and get a cup of coffee that is the best cup of coffee. We&#8217;re in San Francisco, we&#8217;re in the Mission. We can get some coffee that is like some Ethiopian coffee, some amazing coffee that is like the, and that is attainable to you and me and to basically everyone else.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1330">00:22:10</a>] It&#8217;s like a six hour cup of coffee. Right?</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1333">00:22:13</a>] Yeah. Yeah. Well, okay, well let&#8217;s say you define it as you don&#8217;t need to work for money ever again.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1340">00:22:20</a>] But then what this is like, okay, you don&#8217;t need to work for money ever again. Like okay, I get that. But, but so you can go off and do the thing that actually motivates you. Well then go off and do the thing that actually motivates you.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1350">00:22:30</a>] But what if it doesn&#8217;t make money?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1351">00:22:31</a>] Well, I think and I, this is where I, you want to take it apart and so like you want to find a way. I mean certainly you&#8217;re going to have things like the, the, the, the difference that you want to make, the meaning that you&#8217;re going to find is going to be something that&#8217;s like, yeah, this is, this is just not a career path at all. Like I can&#8217;t actually sustain myself at all. So then you need to find a way.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1371">00:22:51</a>] Balance that I would say with your career and you want to keep that balance. I think, I also think it&#8217;s a mistake to be like I&#8217;m going to achieve financial independence and then I&#8217;m going to do the thing that is meaningful to me. It&#8217;s like. And again you just. And I definitely had the blessing of most people were like me made a lot of money on paper in the dot com boom and just lost every penny of it.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1394">00:23:14</a>] I mean I had a loss carry forward for so many years that I actually like one year I lost track of my lost carry forward. I&#8217;m like so. But I had a lost carry forward and I was, you know, I had like fond memories of the dot com bubble when I would take my, whatever it was, $3,000 a year against my. From a Lost carry forward the. That was most people around here. Most people kind of like lost it all, but also were fine.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1419">00:23:39</a>] This is the other thing, like the dot com bust was super helpful because if you had geared yourself to be really economically motivated in 99, 2000, 98, 99, 2000, which would&#8217;ve been easy. 2001, 2002, 2003, like, that was not why you were here. Because this place was nuclear winter. And, and you had to, had to find something else. And I knew like, so the funny thing, I knew like lots of people that like had to remind themselves why they got in this and it wasn&#8217;t money.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1450">00:24:10</a>] I also knew people, I did know people that made a bunch of money in the dot com boom. The people that made a bunch of money in the dot com boom weren&#8217;t that interested in tech to begin with. So when it went up in, you know, late 99, 2000, they were like, I&#8217;m selling it all. Like, I actually don&#8217;t want to do this. And those people, and there are a couple of them that I knew and some of them really, really struggled in the next decade because they didn&#8217;t have to work for the rest of their lives.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1475">00:24:35</a>] But now what, like, you don&#8217;t have to work, so like now what do you do? And they were on their own search for meaning and like, not easy and going through periods of like, oh, like, I&#8217;ll buy six houses. Then you realize that like, six houses are kind of like a pain in the ass. It&#8217;s like you and I could go drink six cups of coffee concurrently, but you&#8217;re just like, what am I doing here? Am I just like proving that I can buy six?</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1496">00:24:56</a>] So why do I want six houses? Okay, then you scale that way back. I mean, it gives you like, it really opens your eyes about what matters and what, what doesn&#8217;t matter. What doesn&#8217;t matter as much. Certainly you need to be able to provide for yourself and provide for, for a family. You want to be able to raise a family and so on. So you want to be able to have that, but you want to do that in a way that&#8217;s honestly sustainable.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1519">00:25:19</a>] I think that, that too many folks are focused on like, I&#8217;m going to do this so I can leave. It&#8217;s like, then maybe you shouldn&#8217;t be in this industry at all. Like, go do something. Go do the thing you would do when you left and find a way to do that in a way, like, and go pursue that dream and because you&#8217;ll be happier, you&#8217;ll have meaning doing that quit your job at Meta and become a podcaster, you know.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1540">00:25:40</a>] Well, I did.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1543">00:25:43</a>] Well,</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1545">00:25:45</a>] it&#8217;s interesting you say that because there&#8217;s this subreddit, this community that&#8217;s all about financial independence, earning enough. I&#8217;ll see a very regular post that says, guys, I did it and I don&#8217;t know what to do now. Exactly.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1563">00:26:03</a>] Yeah, yeah, I did it. I did. And also, like, I geared. I mean, I think this is like, this is a problem, by the way, in engineering. Not even in. Even when the goal is. Has meaning, this is a problem. This is what I. This is what I call postpartum in engineering. When you are really focused on shipping something and you&#8217;re just like, shipping this thing is just the lens through which you&#8217;re doing everything.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1584">00:26:24</a>] And when we shipped our first rack of oxide, I was very concerned about, like, we are going to have postpartum and there are going to be people who are like, I was working so hard and pulling so hard for so long, and now we shifted and like, now what? And I&#8217;m. I. So even when the thing you&#8217;ve done is obviously meaningful and you&#8217;ve achieved something extraordinary, you&#8217;re going to have that when the thing you&#8217;ve also achieved is like, well, I can like buy any cup of coffee.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1607">00:26:47</a>] It&#8217;s like the thing I want. Like, now I&#8217;m not even, like, I got, like, what am I supposed to do? It&#8217;s just easy to see how you people wonder what the meaning of it really is. And then there are some people that just like, snip all the wires and they&#8217;re like, well, the meaning of it is to get even more. And then just like, you know, then you get like Larry Ellison or whatever. But like, that&#8217;s also not something that people should aspire to.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1629">00:27:09</a>] Right. I. Well, what would you say? Because I, I do know someone who is genuinely happy just doing nothing. By doing nothing, I just mean, like relaxing in bed, you know, watching their shows, you know, going to. Hanging out with friends and stuff. Yeah, I mean, I think they had the billion dollars. They just do that every day. Yeah, but what you said doesn&#8217;t work in that case, because that doesn&#8217;t earn anything.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1656">00:27:36</a>] You know, I actually did know a guy. I knew a guy. I actually did know a guy who did this.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1659">00:27:39</a>] Who.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1660">00:27:40</a>] I was thinking about people who made money in the dot com. I knew one of, I, I believe one of Yahoo&#8217;s like, first employees, but not because he was like crazy sharp or anything, because he, like, they. They wanted to hire a web surfer and he was like, A pothead who&#8217;s like this, like this sounds like the level of work that I&#8217;m a. So he gets a job as like a web surfer one at Yahoo, but as like employee number like single digit.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1686">00:28:06</a>] He gets the equity grant as part of like joining the company. Never gets another equity grant, but makes a king&#8217;s ransom because he&#8217;s very early at Yahoo, Never promoted above like web server rank one or whatever and was complaining to everybody about how much his job sucked. And it was like you surf the web for a living. Like you&#8217;ve somehow managed to like win this insane lottery where you&#8217;re getting paid to do like very close to nothing.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1712">00:28:32</a>] And he like when it started he owned like all of Yahoo in terms of like surfing. Because the way Yahoo worked you. You may be wondering what the hell am I talking about. Yahoo was a curated directory of links. This is again where I sound pre Google. Very much pre Google. This is like pre Google. This is not just pre Google. This is like pre Lycos, pre Hotbot, pre altavista.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1730">00:28:50</a>] This is.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1731">00:28:51</a>] This is like basically pre the ability to search the Internet. You would have these curated directory of links and someone needs to go like find this content. And it was like this guy, Yahoo employee number six or whatever he was. And so he originally like owned the entire directory. But he&#8217;s like not very good and not very energetic. It was like, you know, stoned all the time. So they kind of like carved.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1753">00:29:13</a>] And so finally he. I believe at the end before he finally quit, he owned only like snowboarding in Northern California. That&#8217;s what it was his like responsibility to. It&#8217;s like this is a job. And so that is the kind of person who was. And you would like to think that, that he found something that was actually meaningful to him, but clearly it was not the work, or work for that matter.</p><h3>00:29:34 &#8212; Stack ranking and layoffs</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1774">00:29:34</a>] Right. You said earlier there were these ratings. It was superlative, excellent, excellent, something like that.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1781">00:29:41</a>] Yeah, yeah, yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1781">00:29:41</a>] I noticed you didn&#8217;t mention there&#8217;s. There&#8217;s a bad rating, right?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1784">00:29:44</a>] There was a. Yeah, no there was not. Basically not sun. Did not the. The idea of like a PIP or the. The whole like rank and yank, which is what intel famously did the ranking yanking Yank.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1800">00:30:00</a>] Is that was. Was that just Stack ranking?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1803">00:30:03</a>] It was their name for Stack ranking. Yeah, it was ranking Yank. Yeah. Stock ranking is organizational cancer. It is. It is very, very, very bad news when you. Especially if you are going to terminate a bottom end percent that is. That&#8217;s death. I really think that is just a wall to wall terrible idea. Because you&#8217;ve incentivized people to have dead weight on their teams that they can. That.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1826">00:30:26</a>] Oh, is that. Oh, so they have fodder.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1829">00:30:29</a>] Got someone to throw into the wood chipper.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1831">00:30:31</a>] Wait, so you think that a manager is strategically keeping around.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1835">00:30:35</a>] Oh, I know so. I mean, that definitely happened to son. For sure. Oh, yeah, for sure. I mean, there were people that were like, why are they still here? Like, they don&#8217;t. They don&#8217;t not seem to be doing anything. And someone kind of took me aside and like, yeah, that person is in your best interest because, like, do you know what that person&#8217;s rating is? It is always, like, good. Like, they. They get a good.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1854">00:30:54</a>] So you can be an excellent or a superlative. And I&#8217;m again, I&#8217;m like, does this make sense to you? Like, why are we. Okay, so. No. All sorts of perverse incentives. All sorts of perverse incentives with stack ranking. Was that Stack ranking, fundamentally, stack ranking teaches you that your team are adversaries. And that&#8217;s a bad idea. That is. And it&#8217;s just not the way I want to operate. Like, my big belief is that teams do extraordinary things and that everybody should want to be serving the team.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1887">00:31:27</a>] It is the team that wins or loses, the team that succeeds. And I think that stack ranking really operates very much contrary to that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1896">00:31:36</a>] You mentioned that Sun. I mean, the stock price went down by 98%.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1902">00:31:42</a>] Yeah. Trading below our cash at one point.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1905">00:31:45</a>] I mean, was there not some management at some point saying, hey, we gotta. It&#8217;s time to.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1909">00:31:49</a>] Oh, we did.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1910">00:31:50</a>] I mean, mass layoffs.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1912">00:31:52</a>] Oh, no, no. Sun did. I mean, sun resisted layoffs for a little while. Scott was kind of. Famously did not. McNeely famously did not want to lay people off. But that. Which was a mistake. He waited too long for that.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1922">00:32:02</a>] That.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1923">00:32:03</a>] But no, once the layoff started, I mean, I think at one point I counted the. The number of layoffs that had. The rounds of layoffs was like 35 layoffs. 35 rounds of layoffs over, like eight years.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1934">00:32:14</a>] That&#8217;s. I mean, it&#8217;s more than. For a year.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1936">00:32:16</a>] Yeah. Yeah, absolutely. Yeah. No, it was. It was brutal.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1939">00:32:19</a>] That&#8217;s. That&#8217;s insane.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1940">00:32:20</a>] You get these, like, small layoffs, big layoffs. I mean, this is actually before the War Act, I think, but you would get. We actually. I mean, this is dark, but we. You could. You could. There was an API effectively to the. Although this is like before the era of rest APIs. But there was a way to get the employee directory programmatically, and so we would run what we called the obits and the obits would run every day and would tell you who is no longer at the company.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1969">00:32:49</a>] And so you would see these small layoffs that were not actually like you. You would see, you know, a group that was like, oh. Or you would see. And then you would see like, oh, my God, like that&#8217;s 1500 people or that&#8217;s 3000 in today&#8217;s OB bits.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1981">00:33:01</a>] Was the company aware that you had that access to that data?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=1986">00:33:06</a>] Son, Sun&#8217;s strength and weakness was that no one was truly in charge. So I mean, I think it would not have been. I would not have been surprising. But I mean, sun, to its credit, was a pretty transparent company. So I don&#8217;t think that we would have. I think that we weren&#8217;t violating any kind of policy. We were accessing a. We were accessing the. Org tool, which was the tool they had to show you kind of organizational layouts.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2011">00:33:31</a>] And we weren&#8217;t doing anything untoward. But it was a way for us to know like, what&#8217;s happening in the company as the. So no, it was layoff after layoff after layoff after layoff after layoff.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2020">00:33:40</a>] I mean, 35 layoffs. It almost.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2024">00:33:44</a>] Yeah, it&#8217;s crazy.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2025">00:33:45</a>] I.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2025">00:33:45</a>] But that was everybody too. Again, that was not like, like. Oh. I mean, the. It is hard to express the period from the. com bust when, you know, kind of pets. comcraters in the spring of 2000, they kind of ran on momentum until the end of 2000. And at the end of 2000, the dot com bubble truly, truly burst for everybody, for sun included. And 911 did not help. Right. And the economy was. Tech was basically dead for five years.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2062">00:34:22</a>] And Y Combinator is formed kind of at that. Y Combinator is, I think 2006, I see and starts to form, I think in part because I think get Graham&#8217;s perspective on this. But the. I mean, there was a. There was a capital deficit at that point. There were like people that could solve interesting things and there was like no way to start a company to go do it. So the. It was really, really bleak here for many, many years.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2090">00:34:50</a>] I see slightly off topic, but I was stalking your Twitter and I saw that Paul Graham had blocked you. Do you know is Paul Graham blocked me?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2099">00:34:59</a>] He did block me. I think he. Yeah, that was a point of pride that I did felt. I felt like I really arrived when Paul Graham blocked me. Yeah, Paul Graham blocked me. Yeah. I definitely feel like I&#8217;m on the right side of history on that one.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2108">00:35:08</a>] Well, what do you think that was for.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2110">00:35:10</a>] No, I know what that was for. That was for. I think that Paul Graham was defending some of the worst behavior of Richard Stallman. And the worst behavior of Richard Stallman does not age very well. It&#8217;s truly, truly some, some pretty gross kind of behavior. And he was defending that and I was attacking him for it and he was blocking me for that. So like, all right, I&#8217;ll take that. Yeah, I mean, Paul Graham is complicated for me.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2136">00:35:36</a>] There are a couple of people like this in Silicon Valley that are complicated in that there are says some things that I really strongly agree with and some things that I really strongly disagree with, often in the same sentence. So often you&#8217;re just like, my brain&#8217;s getting zapped. Like, okay, this is like wrong, but also not wrong. And so, yeah, you see, he&#8217;s a complicated one. There are a couple people like that.</p><h3>00:36:00 &#8212; Why he hated the Oracle acquisition</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2160">00:36:00</a>] I understand that Sun Microsystems was eventually acquired by Oracle. Invaded.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2165">00:36:05</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2165">00:36:05</a>] And I just want to know why was it so controversial at the time? There&#8217;s even a Wikipedia page that says the acquisition of Sun Microsystems and it&#8217;s almost like an obituary. And there&#8217;s a lot of top level engineers.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2180">00:36:20</a>] Well, it was dramatic. There&#8217;s actually a really interesting SEC filing because it&#8217;s a public company that IBM and HP were both jockeying to try to buy sun and each was trying to sabotage the other and each was trying to get their. Because they almost wanted to buy sun punitively. They were both competitors with sun and while they were kind of screwing with one another, Oracle swept in and bought the company.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2208">00:36:48</a>] So Oracle, that happened really quickly. The actual acquisition itself was necessarily controversial. It took a while to close to the contrary. I mean, there&#8217;s nothing really controversial about Oracle because Oracle is what it is. Oracle is just. There&#8217;s not a lot of depth to Oracle. Oracle is just an octopus that knows how to feed itself. And the sun was very much not that way. Sun was. There was a level, I wouldn&#8217;t call it purism, but there was.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2242">00:37:22</a>] Sun was always endeavoring to do the right thing by its customers. Sun was endeavoring to solve hard, interesting technical problems that had commercial relevance. And it gave its engineers us tremendous freedom to go do so. And it tended to attract people that wanted to do that, that wanted to be bold. And it was a great place for that reason because it rewarded that kind of technical boldness. So that&#8217;s why NFS and Spark and Java and Solaris and then all the technologies that I worked on, all these things came out of Sun.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2280">00:38:00</a>] There were so many of these seminal technologies that came out of sun because of that kind of that passion and independence. Oracle doesn&#8217;t have any of that. That Oracle&#8217;s just like. Oracle truly is focused on, really on one thing, namely its own profitability, which is like, I thought when the acquisition happened, I&#8217;m like, well, this will be interesting because we&#8217;ll get someone with, like, great business savvy.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2301">00:38:21</a>] Maybe. One of the things that was frustrating me about sun is that sun on. In terms of business execution, sun fell down a bunch of times. And I thought we would have someone in Oracle that would be just better at the execution of a commercial enterprise. As it turns out, I was really overestimating Oracle. Oracle, really, about being able to get effectively a monopoly, a natural monopoly over its own customers, Asphyxiating competition and then raising the rent on its customers.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2330">00:38:50</a>] Like, that is really what Oracle wanted to go do. And it&#8217;s not a company I wanted to work for.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2336">00:38:56</a>] I see. Because there&#8217;s a talk that you gave that where you really.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2341">00:39:01</a>] I mean, you know, I didn&#8217;t even. Yeah, I know. You&#8217;re talking. The talk is the Lisa Talk from 2011.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2347">00:39:07</a>] Yeah. Before you even got to talking about it, you said, I&#8217;m gonna try and make it through this slide without crying.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2354">00:39:14</a>] Oh, that was on the slide.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2357">00:39:17</a>] Yeah. Yeah. And then I think you were talking about Oracle and you said that they screw customers and lie. I guess you explained the screw customers part. But that&#8217;s the lie part of Oracle. Yeah.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2371">00:39:31</a>] Oracle is. Has made many promises to its own customers that it does not keep. Oracle has not earned the trust of its customers. If you ask customers, do you trust Oracle, the answer to that will be no. And I would kind of let that speak for itself. Making that slide without crying bit was not about Oracle. That was about very much about Sun. And that was the. And Scott McNeely&#8217;s epitaph for sun. Kicked butt, had fun, didn&#8217;t cheat, loved our customers, changed computing.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2400">00:40:00</a>] Yeah, you said that.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2400">00:40:00</a>] Yeah, yeah. That was the bit that, like, it still chokes me up a little bit just because it. It&#8217;s true. It was true. And we. When we started Oxide, it&#8217;s like, adopted that as our own mission because that. That&#8217;s exactly what we wanted to go do at Oxide, and I thought was a very concise distillation of that. And that was just not Oracle. Oracle&#8217;s not interested in that. When.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2424">00:40:24</a>] When a lot of the top engineers. It seems like there&#8217;s a. An exodus, a big exodus. Were people confiding with each other? Like, were you talking to other high level engineers, say, hey, we gotta get out of here.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2434">00:40:34</a>] Oh yeah. Oh yeah. I mean, it&#8217;s not even like, I mean, you&#8217;re just like, you&#8217;re in a burning building. Are people confiding with one another they should leave the burning building? It&#8217;s like, no, actually people are just like running for their lives. I mean, you&#8217;re just not like, oh, what do you think of the burning building? Like, do you think the building is burning? What do you. And no, I mean, it was pretty clear and there were actually.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2452">00:40:52</a>] The real true jockeying came from those engineers. Before it actually closed, there were going to be some engineers that would be laid off before it closed. But as the acquisition closed, in other words, there were some people that were sun employees that were not going to be Oracle employees.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2470">00:41:10</a>] ACWA laid off. Like, they wouldn&#8217;t, there wouldn&#8217;t be a existing company.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2474">00:41:14</a>] They just, that&#8217;s right. So they would lose their job.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2478">00:41:18</a>] Okay, okay.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2478">00:41:18</a>] But they would get like a pretty rich severance package. So you had like an absolute line at the trough for how can I get laid off? Lay me off first. This was not me. This was not us. We were, I, I was, I mean, I mean, at least to the credit of the, like the people lining up at the trough, at least they knew what was going to happen. And there&#8217;s still people to this day that are a little resentful of.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2501">00:41:41</a>] People are like that guy, that guy got laid off. And I, I mean, I quit because I could not work there in good conscience. After 45 days, that guy got laid off and got a year of salary or whatever it was. But we know I, I was not that I was. We were at this fishworks Group in San Francisco and I was really optimistic that. I&#8217;m really optimistic, somewhat optimistic that we could combine the best of both companies or what I perceive to be the best of both companies.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2526">00:42:06</a>] And as it turns out, that&#8217;s not the case.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2527">00:42:07</a>] So what&#8217;d you see? Because you left really quick. So what did you see?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2531">00:42:11</a>] That, oh, it was really clear to me that this was a very, very different company. I mean, Oracle gave me like, I decided like, I can&#8217;t work here anymore. And the time between I decided that and I actually left, which was only like 30 days more, a little longer than that, maybe 45 days. Oracle gave me like four other reasons to be like, oh my God, I just can&#8217;t, I can&#8217;t stomach working here. I mean, and I mean it was a bunch of things.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2557">00:42:37</a>] One, it was sun for all of its faults and there were many, many faults of Sun. Sun had the trust of its customers. Our customers actually were rooting for us at Sun. Our customers wanted us to prevail. Why? Because we actually, they. They trusted us. And they. Even when it wasn&#8217;t in our own best interests, like, we would. We would be straight with our customers. And I think that that was. We did not lie to our customers.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2583">00:43:03</a>] Right. And that was something that our customers found very, very appealing. That was not Oracle. Oracle does not have the trust of its customers. And I realized something very important about myself. I can&#8217;t work for a company that has that kind of profound distrust. I mean, in terms of, like, we&#8217;re talking about meaning. That so eroded my own sense of meaning. I felt ashamed. I felt ashamed to work there, and I had never felt that.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2607">00:43:27</a>] I&#8217;ve never. You know, for Sun, I was embarrassed from time to time, but never ashamed. And with Oracle, I was ashamed.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2615">00:43:35</a>] You mentioned people were eager to get themselves laid off. How do you even do that?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2621">00:43:41</a>] You just like, oh, you tell your manager, look, there&#8217;s a list. Put me on it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2625">00:43:45</a>] Okay.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2625">00:43:45</a>] Yeah. Oh, there is a list. Okay. Who else is on it? Like, I want to be on it. I mean, just like, all the ways that you. I mean, it&#8217;s not like. Like, you don&#8217;t fill out a web form. I mean, you&#8217;re obviously, like, you know, you&#8217;re. You&#8217;re a courtier kind of whispering about trying to figure out, like, what&#8217;s the scuttlebutt who&#8217;s gonna get laid off.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2640">00:44:00</a>] I thought you&#8217;d have to, like, really, you know, underperform and like.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2643">00:44:03</a>] No, no, no, no, no. I. I think that they were. No, it was all about, like, hey, I, I&#8217;m, I. I have no value to Oracle. Could you. I mean, it was much more like, oracle&#8217;s not interested in what I&#8217;m doing. Right? And then you get like, Oracle is interested. You&#8217;re like,</p><h3>00:44:19 &#8212; Why Bezos is the apex predator of capitalism</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2659">00:44:19</a>] So, okay, so I get why you left Oracle. And obviously sun was acquired. And so the next place you worked at was Joyent. And I understand that this company competed with aws.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2672">00:44:32</a>] That&#8217;s right. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2673">00:44:33</a>] And I listened to some of the conversation you already had, and, yeah, interesting quote. You said bezos is the apex predator of capitalism.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2682">00:44:42</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2683">00:44:43</a>] What makes you say that?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2685">00:44:45</a>] Just Amazon was. Amazon at its height was such. So relentless on execution. And what made Bezos really, really good is that. And I would say, like. And when I say it&#8217;s height, I mean Amazon hits the mother load. And they hit the mother load, not because they&#8217;re lucky. There&#8217;s luck involved. You know, they allow S3 to be developed, right? They develop EC2, then they, they realize what they&#8217;re onto and they&#8217;re on cloud computing before anyone has figured it out.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2717">00:45:17</a>] And the, the, the, the, those reinvents like from 2010 to say 2015 were relentless. Every re invent was a price cut. It was price cut and it was a bunch of new services. And if you&#8217;re a customer, you&#8217;re like, this is awesome. I love this. This is great. Like, why would I not. I mean, so it was so. And that&#8217;s what I mean by the apex predator. Because he was on something that was wildly profitable.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2745">00:45:45</a>] He pulled off a, just an absolute move of moves in that Amazon did not break out their revenue. So it&#8217;s just like Amazon. It&#8217;s like you got the dot com side, you have aws. They&#8217;re not breaking out any of that. They&#8217;re just like, literally like this is how much Amazon&#8217;s making. Analysts would ask in the call. They&#8217;re just like, yeah, we&#8217;re not talking about that. Which apparently you can get away with as a public company.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2767">00:46:07</a>] And so they actually created this idea, especially with the relentless price cuts. People are like, oh, the cloud&#8217;s a terrible business. Like no one, no one should get into the cloud because it&#8217;s a terrible business. And so people didn&#8217;t. And meanwhile, like what we knew because we did compete with Amazon, we did have a public cloud and we knew it&#8217;s like, no, the actual, the margins on this thing are great.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2786">00:46:26</a>] Like this is actually a great business. And Amazon, and Amazon is executing very, very, very, very well. And they did extraordinarily well in those years. And I mean they are still. Obviously it&#8217;s a, it&#8217;s a, it&#8217;s a very profitable company, but they have am. Has. Is not what it was in, in those years. I not sure when the last price cut was announced at Re Invent, but it&#8217;s been a while. It is not that.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2813">00:46:53</a>] That&#8217;s not what you get at re invent. You don&#8217;t get the kind of, the new services that you can&#8217;t live without. So it&#8217;s, it&#8217;s a different company.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2820">00:47:00</a>] AWS was, was early and they already had I guess a dominant market share.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2826">00:47:06</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2827">00:47:07</a>] Why would Jeff Bezos continue to just, just like ruthlessly keep going and keep going instead of milking it?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2834">00:47:14</a>] Because he is not merely a predator, he is an apex predator in capitalism. This is what makes him so good. He&#8217;s like, I&#8217;m not gonna. No. Like I&#8217;m gonna I&#8217;m gonna press my advantage. Like, I&#8217;m gonna make it so no one can compete with me. And I&#8217;m gonna make it so no one wants to get into this business. And I&#8217;m gonna do it honestly, like the right way. I&#8217;m gonna do it by like giving a great product at a reasonable price.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2857">00:47:37</a>] It&#8217;s like, damn, yeah, that&#8217;s good. That&#8217;s a win, win. That&#8217;s a win win. And it was essential for innovation during that era of companies that were cloud born. And I mean, it was really. And it was very, very hard to compete with Amazon, I&#8217;ll tell you that. You had to really like, find a lane and we found lanes where we could go compete with Amazon, but it was brutal. Their execution was extraordinary at this company.</p><h3>00:48:04 &#8212; Differences between CTO and VP</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2884">00:48:04</a>] I saw that you start out as a VP and then you transition to CTO at some point.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2889">00:48:09</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2890">00:48:10</a>] What&#8217;s the difference in the roles?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2892">00:48:12</a>] That&#8217;s a great question. I actually gave a talk on this with Joyent CTO at the time on the contrast between VP of Engineering and cto. And I&#8217;m not sure how much I buy the difference now. I mean, I think in both capacities, you&#8217;re serving as an engineering leader and I think that, you know, I guess you can argue that a CTO is more outward looking for.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2914">00:48:34</a>] Sure.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2914">00:48:34</a>] Chief Travel Officer is kind of the pejorative for it. You&#8217;re on the road talking to customers a lot. You are VP of Engineering may be more focused on some of the necessary mechanics that you have in an engineering organization. For me personally, I mean, they brought me in as a VP of Engineering because they frankly already had a cto. So I mean, like, I, again, it&#8217;s just like the grade I was at, at, at Sun.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2939">00:48:59</a>] I didn&#8217;t particularly care. What I did care about is when the, you know, the CTO had left and then another CTO that we had CTO who had been a founder of the company and when he left, so there was kind of like the, the, the empty CTO position. I didn&#8217;t care. What I did care was that we didn&#8217;t hire externally for that because I did so that I did care about a lot about, like, look, if there&#8217;s going to be a cto, I&#8217;m happy to be the VP of Engineering in perpetuity.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2964">00:49:24</a>] But like, like, I, I would rather like if there&#8217;s going to be a cto, I would like to not hire externally for that, please. Or let me be involved in that anyway.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2973">00:49:33</a>] Why not hire externally?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2975">00:49:35</a>] I just didn&#8217;t want to deal with like having to bring in. I didn&#8217;t need that. That&#8217;s not what we needed at that time. What, what we needed at, at that time especially? Well, we had, we got rid of the CEO and we, we really were, we, we needed really a terrific CEO, which we, which we later got.</p><h3>00:49:58 &#8212; Starting his own company</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2993">00:49:53</a>] So then you started oxide.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2996">00:49:56</a>] Started oxide in 2019. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=2998">00:49:58</a>] And what&#8217;s the story behind you starting your own company?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3001">00:50:01</a>] Well, I knew again, I kind of had in my mind that like, I want to start a company. And the thing that I knew is I want to start a company with Steve. Steve and I had worked together at that point. I mean, Steve was the. When I went to Joyent, I had not talked to Steve prior to going to Joyent and I was going to Joyent in part because I was running away from Oracle and it was going to allow me to hire folks and so on.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3027">00:50:27</a>] But I didn&#8217;t talk to Steve until after I came to Joy in and I&#8217;m like, this guy is amazing. And Steve and I just worked very closely together. Steve came up on the go to market side, on the sales side. And I knew, I&#8217;m like, I definitely want to start a company with this guy. And fortunately he felt the same. So we both felt like, all right, whatever we do next, we do it together. Other and so now it&#8217;s like, all right, well now what?</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3052">00:50:52</a>] Now we got to figure out what we want to go do. And we had these long walks in the city because we were working in San Francisco and we had so many bad ideas. I mean, it was just, it was just basically one bad idea after another. So then we&#8217;re trying to come up with ideas that like, we&#8217;re a better match for the kinds of things that people would fund. And we recommend people not do this. It&#8217;s understandable.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3075">00:51:15</a>] I did it. I understand. But we&#8217;re trying to like come up with, with things that people would fund and coming up with things that were just like not in our heart. You know what I mean? Like, this is like, okay, I could do this, but like really, I mean, it&#8217;d be fun to do it with Steve, but just doesn&#8217;t feel like that&#8217;s not gonna. I wanna do something that is like that is this next long chapter of my career.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3095">00:51:35</a>] And so as we&#8217;re kind of struggling with that and I was trying to figure out like, okay, we actually need to start talking to venture capitalists at some point. We need to like start like get this ball rolling and understand like I and I had always known venture capitalists and had gotten lunch with them over the years, but had not really, like, you know, kind of gone deep and known in the venture capitalists associated with Joyent for sure.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3117">00:51:57</a>] And so I got, I was reminding myself of the email address of one VC in particular, actually a very famous vc, but someone I had known since early, early, early in his career. And he and I had just gotten lunch periodically through our careers from when he was first in venturing and I was in engineering. And we, it&#8217;s like. And he had kind of become pretty famous. And I was just wanting to remind myself of the email address and the last email he had sent to me, which was maybe, you know, 18 months prior, was like, hey, Brian, really enjoy getting lunch with you today.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3146">00:52:26</a>] I just want to remind you, I will fund literally anything you put in front of me. I think I&#8217;m like, wow. And I was like, Steve, you know, remind myself this email of this guy&#8217;s email address. He said he will fund literally anything we put in front of him. So we should just go big. We should do the thing that is in our heart. And Steve&#8217;s like, what do you mean? I&#8217;m like, we should build the computer that we want to build.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3177">00:52:57</a>] We should build a Rack scale machine. And he&#8217;s like, yeah, that&#8217;d be amazing. Do you think we can get that funded? And I&#8217;m like, I, yeah, yeah, I think so. And you know, that was very much in our heart. That was what we had lived, that he had lived, that Steve had been at Dell prior to Joyent. He&#8217;d been at Dell for a decade. I&#8217;d been obviously at sun for 14 years. We, and then together at Joyent for another decade.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3205">00:53:25</a>] And this is we. This was truly in our marrow. And we found like, okay, like we can go. And we, as we started talking VCs about this, about building, and we again envisioned Rack scale design. We wanted to do our own board design, do our own switch, do our DC bus far basis line, do all of our own software, build the machine that we ourselves wish we could have had at Samsung after Samsung acquired Joyent.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3233">00:53:53</a>] And what was very catalyzing actually was going to. You were at what would have been Facebook at the time, before they renamed it, and going to their open computer, going to the Open Compute Summit and looking at like Tioga Pass, and you&#8217;re like, what is this, like Tioga Pass? Like, I mean, it was like I would liken it to discovering Unix as an undergrad when I had been living with dos and Be like, what is this?</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3257">00:54:17</a>] And you go, look at Tioga Pass. You&#8217;re like, this is what a computer can be like. This is gorgeous. This is amazing. We gotta go build this for the enterprise market. And what we discovered is this was very contrarian, but things that are contrarian are attractive to venture. So we would get this thing where people would actually be pretty interested in it. And, I mean, I don&#8217;t have to tell you how the story ends, but we went back, we&#8217;d actually talked to a bunch of venture capitalists before.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3286">00:54:46</a>] I went back to that same VC that sent me the email. And I get maybe 45 seconds into describing the problem we want to go solve at Oxide. Brian, stop, stop, stop. If you are talking about starting a computer company, I want nothing to do with it. And I&#8217;m like, you know, it&#8217;s funny. You sent me an email years ago that said you would fund literally anything I put in front of you. And he said, doesn&#8217;t sound like me.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3313">00:55:13</a>] I&#8217;m like, well, okay, what do you want me to do with that one? I&#8217;m like, you sent me the email. It&#8217;s like, is your admin writing all your emails? Did you have your kid write the email? I. I don&#8217;t know what to do with that one. Like, you did send me the email. Are you calling me a liar? I mean. And I&#8217;m like, all right, fine. And it&#8217;s like, fine. And I. We go over the phone, I go to hang up on him, and of course, like, VCs, this is just like, it&#8217;s in the animal brain, right?</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3332">00:55:32</a>] If you. You go to hang up on a vc, they&#8217;ll be like, wait, wait, wait, wait, wait, wait, wait, wait. I was like, oh, okay. He&#8217;s like, wait, wait, wait, wait. I&#8217;m like, fine, got it. He&#8217;s like, wait, wait, wait, wait, wait, wait. I&#8217;m not going to invest. And I&#8217;m like, I know you&#8217;re not going to invest. And I knew the reason I knew he wasn&#8217;t going to invest is he&#8217;s had some big zeros in this department.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3349">00:55:49</a>] And when a VC has had zeros in something that looks close to what you&#8217;re doing, that are like, I want nothing to do that again. Like, nope, nope, nope, nope, nope, nope. Was in a bad relationship with one of those. Don&#8217;t want to do that again. And in part, in their defense, it&#8217;s often because, like, actually, I understand this problem a lot better, and now I understand all the headwinds, and now I can.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3367">00:56:07</a>] I mean, in some ways, like, you need VCs to be. And they need themselves to be like, like naive at some level. Optimistic is a. Be a better way of phrasing it where they can like envision the world as it could be, as opposed to getting all mired in the way the world is. You gotta be kind of blind to the odds to a certain degree. And I knew that he was not blind to the odds because he&#8217;d had two big zeros.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3388">00:56:28</a>] And so I knew that he was gonna be like. And one zero that like looked a lot like oxide. And so he&#8217;s like, look, I&#8217;m not gonna find it. I&#8217;m like, again, I knew that, that. But I do want to help you. Like, okay, it&#8217;s great. And I always tell people, like, when you are. VCs will ask this a lot, especially a VC that&#8217;s like, where you&#8217;re not a fit for them, you&#8217;re not a portfolio fit for them, you&#8217;re not a thesis fit, whatever it is, you&#8217;re not a stage fit.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3413">00:56:53</a>] If they like you, they&#8217;ll be like, look, I&#8217;m not going to invest, but how can I help? And you always want to have an answer to that question of how you can help. And I had an. I knew how he could help. I had a very concrete idea. It&#8217;s like one of those zeros. I want to talk to him, I want to talk to the founders. I want to understand everything that went wrong. And I did. He&#8217;s like, okay, that I can do.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3433">00:57:13</a>] He made the intro and it was really, really interesting and like the mistake that that company had made. And again had a thesis that looked like oxide. But they didn&#8217;t raise a lot of cat. They raised kind of arguably too little capital. They got something working that&#8217;s smaller than what we built at oxide Minimum viable product at oxide is a rack. It&#8217;s big. Took us three years, three plus years to develop.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3455">00:57:35</a>] They developed something a little bit faster, but it was much smaller. It was basically, you could view it as like Nitro, circa like 2013. Nitro from the enterprise acquisition at AWS does a lot of really important offload for aws. So you could view it as like very early nitro. But it didn&#8217;t really have a market. But they had a customer and they got a customer and they&#8217;re like, great. And the customer was happy and they wanted to use it in particular on their active directory servers.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3481">00:58:01</a>] Great. We have product market fit. Raised a bunch of money, hired a huge go to market team. Problem is that customer huge bank only wanted to run it on like their six active directory servers. So they were gonna buy like quantity six. And this is one of the world&#8217;s largest banks. You&#8217;re like, oh, so you&#8217;re like, how many world&#8217;s largest banks are there? Like, well, they&#8217;re like a couple of others, but like we can sell like you know, two dozen of these things, like we&#8217;ve got it.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3508">00:58:28</a>] And. And by the time they realized that they had a lot of mouths to feed on the go to market side. And that wasn&#8217;t a zero. They were acquired, but they were acquired in a way that left the founder extremely bitter and really felt like the VCs had pumped too much capital in him at the wrong time, had gotten him to do the wrong thing, and was then trapped at the acquiring company and was really not happy about it.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3536">00:58:56</a>] He was also the one. So I was describing what we wanted to do at Oxide. He&#8217;s like, that is a suicide mission. And I just remember writing down a little notebook, almost like writing down suicide mission, kind of underlining it, like, okay, we&#8217;re on a suicide mission. That&#8217;s fun.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3548">00:59:08</a>] When I think of Rack scale compute, especially these days, I think of racks of GPUs more than CPUs. Is that something that you&#8217;re building?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3559">00:59:19</a>] Yeah, right. A very reasonable question. And when we set out, we&#8217;re like, we, I mean again, set out in 2019. The GPGPU was around obviously and important, but that&#8217;s not what we were focused on. We were really focused on general purpose compute, General purpose compute, general purpose storage, general purpose networking. And our belief had always been like, that&#8217;s what we actually want. There is so much to go build there and go differentiate there.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3584">00:59:44</a>] And of course along the way people are like, what about an accelerator? Like what about an accelerator gpu? And the problem is that the way we want to build systems, we want to really build systems from first principles where we have components that have transparency at that hardware software interface and we want to write that lowest layer of software. We are the company, ultimately we are building a hardware software co design product.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3606">01:00:06</a>] In order to be able to do that, you need to be able to write very low level software. The problem is that&#8217;s really not compatible with Nvidia. Nvidia is a pretty proprietary company, executes well, but a very proprietary company company. And what that meant is there are effectively two doors for Oxide. One is labeled compete with Nvidia and the other is labeled partner with Nvidia. And I didn&#8217;t want to do either of those things.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3627">01:00:27</a>] Have not wanted to do either of those things because I certainly don&#8217;t want to compete with Nvidia and I think that that&#8217;s getting more plausible now. But we can&#8217;t partner because we just have a very different view of how systems should be built. And Nvidia wants to like their view is like we should own the whole stack. Like forget you, whoever you are. So like, okay, that&#8217;s fine, we&#8217;re going to focus on general purpose cpu.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3650">01:00:50</a>] We got plenty to do over here. I think the thing that&#8217;s been interesting and a bit surprising is that because the GPU landscape is so cluttered, I mean you&#8217;ve got this very aggressive, the very well executed company in terms of Nvidia, you&#8217;ve got a lot of competitors around it, it&#8217;s gory right over there, there to get. And meanwhile on the general purpose CPU side, it&#8217;s like hp, Dell, Super Micro, the same companies that are, are doing the same kind of junk honestly that they have been doing.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3682">01:01:22</a>] And so we are by our lonesomes in terms of a hardware software product over there. So over and over and over again we have had people come to oxide that we think like no, no, we&#8217;re not a fit for you because you like, you do a lot of different GPU. You&#8217;ve got a ton of GPUs. Like you company famously have a lot of GPUs. No, no, no, we do have a lot of GPUs. We also have a lot of CPU as it turns out, because certainly the emergent AI workloads, not just AI workloads, but certainly AI workloads, but high performance computing workloads.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3714">01:01:54</a>] There&#8217;s a lot of general purpose CPU that&#8217;s attached to the special purpose compute. You know when you&#8217;re sitting there on ChatGPT and it&#8217;s surfing the web, you got the little spinny saying, it&#8217;s surfing the web. That is not a GPU that&#8217;s surfing the web, that is a CPU that&#8217;s surfing the web. And the CPU is really, really important. So for us we are more focused than ever on the general purpose cpu.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3735">01:02:15</a>] And there is a ton to go do there, fortunately to get this product to be where we believe it can be. And I think we will do an accelerator at some point. But I&#8217;ve been kind of saying it&#8217;s like 18 months away for a while or 18 months that we would really start thinking about it. And again, I know we&#8217;ll do it in the limit, but boy, not in the foreseeable future.</p><h3>01:02:37 &#8212; Grilling him on his past</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3757">01:02:37</a>] Coming to the end. I want to ask you some career reflections.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3762">01:02:42</a>] Yeah, you bet.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3762">01:02:42</a>] Some kind of just all over the place type of questions. You wrote a tweet a while ago. I thought it was a really interesting idea. Which was. You said it would be interesting to have a conference called In Retrospect, where presenters revisit talks that they&#8217;ve given prior and describe how their thinking has evolved since. And I pulled a bunch of stuff that you&#8217;ve, I guess, written or said in the past.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3788">01:03:08</a>] I&#8217;m curious if your perspective has evolved since then. So we&#8217;ll go through each of those.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3793">01:03:13</a>] Sure.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3794">01:03:14</a>] So, first one, which is actually really famous, when I saw. I kind of did a double take. So in. In 1996, as a new grad, there&#8217;s this. I don&#8217;t even know what Usenet was. I had to do research, actually. But there&#8217;s a guy who. He writes this long technical response.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3813">01:03:33</a>] David S. Miller.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3814">01:03:34</a>] Yes. And part of it, too. It&#8217;s not nice either. I saw there&#8217;s a line in there, it says Linux is lightweight, Solaris is a pig. Which Solaris is what I guess sun was.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3826">01:03:46</a>] Yes.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3826">01:03:46</a>] And then he writes this long thing and you reply with. With just a few words, you say, yeah. Have you ever kissed a girl?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3831">01:03:51</a>] Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3833">01:03:53</a>] Oh, first of all, I want to know the context behind it. And then also knowing what you know now.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3836">01:03:56</a>] Oh, definitely in the regret department, if that&#8217;s what that&#8217;s asking. Like, yeah, I&#8217;ve got very few regrets in my career, but, like, you can put that one, like, pretty firmly in the regret column. Yeah, no, that. That was, that was. And also had no idea that this was going to live in perpetuity, that. I mean, if you could have told me In, I think 1997 is maybe when I posted. Maybe it was.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3857">01:04:17</a>] It was 96. It was 96. 97. Certainly. Like, I&#8217;m like 22. Like, I&#8217;m. I&#8217;m very young. If you had told me, like, oh, by the way, 30 years in the future you&#8217;re gonna be asked about this, I&#8217;d be like, what the hell? No, no, trust me. It&#8217;s like, the world gets weird. You&#8217;re gonna be asked about this. So it was actually a. Okay, this is. I&#8217;m not defending it. I just want to be sure that. I want to be clear that, like, it was a mistake.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3886">01:04:46</a>] It was actually a reference to a Saturday Night Live sketch. So there&#8217;s an SNL sketch that is from an era of Saturday Night Live that it&#8217;s like you can&#8217;t even Find the video. But they have. So the. William Shatner is guest starring on Saturday Night Live. And the skit is that William Shatner is at a Trekkie convention. And the Trekkies are asking him all of these questions. And they&#8217;re asking questions.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3914">01:05:14</a>] And of course, like. Like, you know, in episode. You know, this season of this episode, you know what. What was the combination on the safe? He&#8217;s like, what? I don&#8217;t know that. I don&#8217;t.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3922">01:05:22</a>] I don&#8217;t know that. Why would I know that? Like, I don&#8217;t. That&#8217;s not even. And he&#8217;s like, these two people are kind of arguing themselves and they&#8217;re asking him questions that are like this. That are all about, like the. The kind of. The canon of Star Trek. And then he&#8217;s like, hey, can I just say something? Get a life, people. You. You. Have you ever kissed a girl? That was the. That was. Where you going?</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3940">01:05:40</a>] To a 30. Going to John Lovitz when. Like, Vulcaneers. John Lovitz. Yeah. Yeah. It&#8217;s like Lost history. Why am I doing this? And kind of like looks down at himself and so, like, it was actually like an obscure Saturday Night Live reference, which again, like, I&#8217;m not. It doesn&#8217;t make it any better. The. Yeah, it was that. That was. That&#8217;s definitely in the. In the. The regret department.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3963">01:06:03</a>] What did he say back to that?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3966">01:06:06</a>] Oh, he had a whole lot to say about. Back to that. And I actually did have a longer post, kind of taking apart what he had said about the. About, like. All right, like, a lot of what you&#8217;ve said here is actually wrong. And so, like, really going through kind of point by point, I think, you know, I&#8217;ve actually never. I&#8217;ve never met him, never talked about this very talented guy. I think he actually.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=3989">01:06:29</a>] I actually did read. I think it was in the Rebel book about Linux. Remember him reading that? He&#8217;s like, yeah, I kind of, like, was shooting my mouth off and a son engineer kind of put me back in my place. And I&#8217;m like, man, if that is his read on it, he&#8217;s being very generous to me. So I&#8217;d like to believe that maybe he and I both regretted a little bit. We were both like a little, you know, a little young and excitable.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4012">01:06:52</a>] But, yeah, that was definitely. That was a life lesson. I would say that history forgot about that, though.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4018">01:06:58</a>] So on another tweet.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4019">01:06:59</a>] Yeah, sorry. Yeah, here we go. This is great.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4022">01:07:02</a>] This is.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4022">01:07:02</a>] We&#8217;re. This is like the cleanse. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4025">01:07:05</a>] Okay. This is in 2022. You wrote a tweet. You said, if you&#8217;re tempted to blame a team for a startup&#8217;s failure, please don&#8217;t. Success is often due to a great team, but failure is almost always due to bad leadership.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4038">01:07:18</a>] I, I wrote that. That&#8217;s a good one. That&#8217;s a good. I don&#8217;t remember writing that. That&#8217;s it. I, I agree with that guy. He&#8217;s on to something. I guess the question, what was I responding to? I wonder. I must have been something. Must have been something that day on the Internet or some weather on the Internet. I&#8217;m subtweeting Paul Graham there somewhere. I think that must have been it.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4053">01:07:33</a>] But 2022, I&#8217;m curious, do you think that&#8217;s true for. For sun because sun ultimately failed.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4060">01:07:40</a>] So, okay, I don&#8217;t agree that sun failed. I don&#8217;t agree that sun failed because sun, again, sun is founded in 1983 and is invaded in. In 2008, 2009. That&#8217;s a good run. That&#8217;s a really good run. Sun was a public company. Sun was in the Fortune 200. Lots of people, like kids went to college because their, their parents were able to work for sun. And you got, you know, so I, I don&#8217;t view. I do not view sun as a failure.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4087">01:08:07</a>] Son is like, sun did not, I mean, arguably did not or not maybe inarguably did not succeed to the scope of its own ambition. But sun, to me, is not a failure. Sun is a success.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4099">01:08:19</a>] Was its collapse at the end, I guess, changeable in hindsight, with different leadership?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4106">01:08:26</a>] I think so. I think that there are. I mean, this is a classic power game of, like, why did sun ultimately not survive as an independent entity? And why is that? I think there were a bunch of reasons. I think that there&#8217;s a degree to which sun got very strung out on the very high margins during the dotcom boom and never quite, quite, like, got off of that. Never like, we embraced x86 too late. We kind of thought of ourselves.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4137">01:08:57</a>] I mean, the company itself became fractured. The layoffs didn&#8217;t help. I mean, I think we. At Fishworks, we were developing a storage appliance. I felt that we could have been an example of an exemplar of what the kinds of products I felt sun could develop, an independent sun could develop. But it was going to be. There&#8217;s a lot of like, like stuff that needed to be changed for that, and you needed leadership that really was very, very interested in that.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4162">01:09:22</a>] And it&#8217;s like, that just wasn&#8217;t like that. That&#8217;s not what we had. And in hindsight, it was probably time for a change. It was, you know, it&#8217;s like kind of the way a forest fire in a normal healthy forest fires is kind of a part of the life cycle of a forest and you need that to have, to have rebirth. And I think that, that, I mean, ultimately, I think that that son had succeeded, but had also run its course.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4190">01:09:50</a>] And it was, it was time for.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4192">01:09:52</a>] Had its time.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4193">01:09:53</a>] It had time. Absolutely had its time.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4196">01:09:56</a>] Okay. And that next past take of yours you wrote in 2022, perhaps this shouldn&#8217;t have been surprising, but Musk has absolutely no idea what he&#8217;s doing. And so. And this is about the takeover of Twitter. And yeah, I actually don&#8217;t even know what&#8217;s going on Twitter because it&#8217;s private.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4212">01:10:12</a>] Excuse me, I&#8217;ll. I will thank you to not refer to SpaceX that way.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4215">01:10:15</a>] Oh, right.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4217">01:10:17</a>] It has been acquired by Xai and then Xai has been rolled into SpaceX. So like we&#8217;re now, I guess Gwen Shotwell now runs. Runs Twitter.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4224">01:10:24</a>] So I guess. Do, do you still agree that it&#8217;s. It&#8217;s run poorly?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4228">01:10:28</a>] Oh, God, yes. Yes. Yeah, I agree that. I mean, because it. Yeah, yeah, definitely. It&#8217;s so. I mean, yes, yes. I mean, yes. I really, like, I literally feel dirty being specific about that. But when, I mean, when there&#8217;s a lot of. There&#8217;s rampant bad behavior on Twitter. Community notes. Yes, community notes. Great. Everything else, pretty much a tire fire.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4256">01:10:56</a>] What&#8217;s your number one thing that this tire fire.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4259">01:10:59</a>] The number one thing of tire fire is that they all will tell you this. The reason that we at Oxide don&#8217;t engage on Twitter. I can&#8217;t have an Oxide tweet that is sitting next to some of the tweets that I&#8217;ve seen. Oh, you see how it&#8217;s like the level of racism, bluntly, I mean, crazy racism. Crazy crazy racism. Crazy. Anti Semitism crazy and crazy. The anti Islam, just crazy hate crazy levels. The kinds of things that you literally could not say.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4298">01:11:38</a>] And they&#8217;re like, oh, well, it&#8217;s free speech. It&#8217;s like it&#8217;s not free speech. It&#8217;s so deeply offensive and reflective. It&#8217;s like, it&#8217;s so deeply offensive that I don&#8217;t want my content to be anywhere near it. I don&#8217;t want someone to be looking at that chat and looking at my content. I&#8217;m sorry, I&#8217;m just not going to do that.</p><h3>01:11:57 &#8212; AI boom and bust advice</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4317">01:11:57</a>] You live through a bunch of booms and busts and honestly, I don&#8217;t even know if we&#8217;re in a boom or a bust right now, I mean, AI is going crazy and there&#8217;s all these layoffs.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4329">01:12:09</a>] Crazy. Yeah, that&#8217;s a good point. Yeah.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4331">01:12:11</a>] What advice would you give, given your experience through the booms and busts for people who are in today&#8217;s market?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4338">01:12:18</a>] Yeah, yeah. And I would say that some of this I do think is endemic. I mean, when I first moved out here, I&#8217;m like, oh, this is great. My. My grandfather was a petroleum engineer, and so I kind of grew up with stories of, like, plants that were gonna be built and then shut down or pipelines that were gonna be built and then shut down, like, everything. Tracking the price of oil. Right. Very oil. The oil patch is very boom and bust.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4355">01:12:35</a>] And I&#8217;m like, oh, this is great. I&#8217;m in software. Like, I&#8217;m immune from booms and bust. I remember thinking this, like, you know, you&#8217;re just like. And of course, looking back at it now, you&#8217;re like, oh, my God.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4365">01:12:45</a>] No, no. We are. They are a bit endemic. And they&#8217;re endemic for reasons that are somewhat endearing in that, like, we get so optimistic that we kind of get ahead of ourselves from an optimism perspective. We also get ahead of ourselves from a pessimism perspective. And the. And what I would say is, like, you gotta be really careful about listening to other people. People will tell you that this is gonna be the future or that thing is dead.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4393">01:13:13</a>] And you gotta be like, just be your own judge. I had people tell me that operating systems are done in 1996. I&#8217;m really glad I didn&#8217;t listen to them. Really glad I didn&#8217;t listen to them. People tell us, you can&#8217;t start a computer company in 2019. I&#8217;m really glad we didn&#8217;t listen to them. VC firms, we only fund SaaS. Those VC firms are like, well, it&#8217;s like SaaS is struggling right now. But I would also say similarly, like, if SaaS is in your heart, as an example, where people are like, right now, people are like, SaaS is going to be the Gen AI.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4428">01:13:48</a>] The LLM assisted coding is going to really put a squeeze on these SaaS companies. And I think there&#8217;s definitely truth to that. But if one&#8217;s heart is in that, you should ignore the pessimism or treat the pessimism and the optimism with a grain of salt. Be your own judge and be true to what you want to do. Don&#8217;t do the things that like, well, I&#8217;m doing this because it&#8217;s like a hot space. It&#8217;s like, you should do this because I think it&#8217;s.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4458">01:14:18</a>] And there are plenty of people for good reason. I mean, these things are amazing. I mean, where we are with respect to these LLMs is just bonkers. And you could easily say, I want to be very. Find a great deal of intrinsic appeal to that. But that&#8217;s the reason that you should be going into these systems is because you&#8217;re thinking like, no, no, this is. This is to. To quote Steve Jobs, this is the dent I want to kick in the universe.</p><h3>01:14:41 &#8212; When he was happiest in his career</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4481">01:14:41</a>] I notice your career, almost everything&#8217;s driven from fulfillment and intrinsic motivation. Is there a time in your career that you look at and say, that&#8217;s the happiest time of my career?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4494">01:14:54</a>] Yeah, that&#8217;s a great question. We ask this at Oxide. We ask you, when have you been happiest and why? For exactly that reason. And I would say that, like, it&#8217;s not necessarily an era. It is times that I&#8217;ve been happy. I mean, bluntly, I&#8217;m pretty happy right now. Oxide&#8217;s great. The moments for me, and this was an important kind of question for me to reflect on as we were starting Oxide, and this is actually due to a friend of mine who had been at a startup, and he and I were taking a walk in San Francisco as kind of Steve and I are talking about bad ideas.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4529">01:15:29</a>] And he was like, you really need to answer for yourself, why do you want to do this? What is drawing you to start a company? And because it wasn&#8217;t financial return for me, and people should not start a company for financial return. That&#8217;s just not a good. That&#8217;s not good life advice. But what was drawing. Well, the thing that&#8217;s drawing me, actually, is that the moments that have been the happiest have been working on an incredible team and being on a team that.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4555">01:15:55</a>] Where everyone individually is like, I don&#8217;t think we can pull this off. Like, this is actually too difficult to pull off. And then everybody works together, compliments one another, and you pull it off. Man, that feeling is extraordinary. And the times that I&#8217;d had that I&#8217;d had it with D Trace, I had had it at Fishworks, I&#8217;d had it at Joyent, a couple of times with lx, with Triton. Those times have been like, oh, that&#8217;s what&#8217;s amazing to me.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4584">01:16:24</a>] And so, I mean, in many ways, like, the bedrock of Oxide is like, what if we found a company around. Part of the reason we were appealing, that larger problem was appealing to us is like, we&#8217;re going to be able to Attract an extraordinary team. And we have a team that is, it is so uplifting to be on a team. I&#8217;ve always said that the organizational model for, for Oxide is a heist movie. You know, you&#8217;ve got your safe cracker, you&#8217;ve got your getaway driver, your demolitions expert, right?</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4609">01:16:49</a>] Like, heist movies are great because of that. And like, because it&#8217;s the, it&#8217;s the group coming together. Everyone&#8217;s skill set&#8217;s kind of coming in at exactly the right moment. And man, I love that. I love that so much. And Steve loves that. I mean, that&#8217;s part of our shared bond, is he and I are both very, very team oriented and we built a company around that. And it&#8217;s extraordinary. It is truly, truly extraordinary.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4633">01:17:13</a>] It&#8217;s why we&#8217;ve been able to pull off what we&#8217;ve been able to pull off with the small team that we&#8217;ve got. I think people are kind of shocked at how small a team that we&#8217;ve got, given what we&#8217;ve been able to pull off.</p><h3>01:17:22 &#8212; Top career regret</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4642">01:17:22</a>] When you look back on your whole career, is there a particular top regret that you have?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4648">01:17:28</a>] I mean, I made an extraordinarily bad hire at Joyent. I think the worst hire in human history. Many people in Silicon Valley will say, like, well, that can&#8217;t be the worst hire in human history, because I feel I have made the worst hire in human history. And as I tell people, like, look, I&#8217;m happy to give up the crown, but you should know that my guy presented himself under an assumed name and just got off parole for violent felonies from San Quentin.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4670">01:17:50</a>] And it&#8217;s not what made him a bad employee. And usually people are like, no, no, no, I think you&#8217;ve made the worst hireful time. Mike, thank you, thank you very much. That was a bad experience. It was also very eye opening because everything I was doing about hiring was wrong. And we, after we rectified that situation and got him out, we stripped hiring to the studs and really rethought hiring from the, from the very first principles.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4695">01:18:15</a>] That hiring process, a very writing intensive process, one that really gets to intrinsic motivation, became the hiring process at Oxide. And there was a moment where I&#8217;m like, oh my God, like this extraordinary team at Oxide very much, I think, related absolutely to the hiring process that we have. This hiring process that I built because I made the worst hire of all time. I needed that guy.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4718">01:18:38</a>] So you don&#8217;t regret, regret it?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4719">01:18:39</a>] I don&#8217;t regret it. I don&#8217;t regret it. In fact, I&#8217;m even Like to kind of go back into the time machine and remove it. I think oxide, I don&#8217;t think no oxide makes it because I would have continued to hire the way I was hiring, which was naively, it was hiring not rigorously, it was not selecting people based on their values. So no, I absolutely needed it. So I think, and I view that way of a lot of things that have maybe not gone the right way, way, but all of those failures were really, really important and it&#8217;s very hard to go back and you don&#8217;t want to take those away.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4754">01:19:14</a>] I mean, if I go to the time machine, maybe I would take away the Usenet post and maybe that wouldn&#8217;t have any long lasting consequences. But boy, that&#8217;s about it.</p><h3>01:19:21 &#8212; Advice for younger self</h3><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4761">01:19:21</a>] Awesome. And then last question is, if you go back to the beginning of your career knowing everything you know now, what advice would you give yourself?</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4769">01:19:29</a>] Jesus, don&#8217;t fuck it up. I would just think because I feel like so lucky. So I&#8217;ve been so lucky in so many regards. I&#8217;ve been in the right place at the right time, so many different times over and I&#8217;ve trusted my gut when sometimes that was not the thing that, when that was kind of a contrary thing to do. I mean, I would be scared to give myself advice because I would be worried that I would somehow tamper with what I feel has been an extraordinarily lucky career where I&#8217;ve been able to do so much with so many extraordinary people.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4809">01:20:09</a>] I&#8217;ve been blessed with so many incredible colleagues and that has been so essential for everything that I&#8217;ve done. And I wouldn&#8217;t want to do anything to endanger that. So I&#8217;d be going back to my past self. I&#8217;d be like, I got nothing to say. Just, yeah, I don&#8217;t want to screw anything up. Like I just. Because I, I feel that I feel really, really lucky. And it wasn&#8217;t always because of. Because again, it&#8217;s like I, I made mistakes along the way, but the mistakes became load bearing and important and I wouldn&#8217;t want to.</p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4837">01:20:37</a>] I wouldn&#8217;t want to not make those mistakes. Those mistakes were really important.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4841">01:20:41</a>] Well, doesn&#8217;t get better than that. And thank you for your time today. Really appreciate it.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4845">01:20:45</a>] Absolutely. Thank you for the thoughtful questions, really great conversation. And thanks for doing the. The hall of Shame here on, on the past tweets. I. That was a lot of fun.</p><p><strong>Ryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4853">01:20:53</a>] Yeah. Awesome. Thanks so much.</p><p><strong>Bryan:</strong></p><p>[<a href="https://youtu.be/qhSL-5GtmQM?t=4855">01:20:55</a>] Thank you.</p>]]></content:encoded></item></channel></rss>