Skip to content
Lex Fridman PodcastLex Fridman Podcast

Dave Plummer on Lex Fridman: How Task Manager got shipped

Plummer cold-emailed the shell team using names from Microsoft registration cards; HyperCache revenue paid for school, and Task Manager got shipped sideways.

Lex FridmanhostDave Plummerguest
Aug 29, 20251h 50mWatch on YouTube ↗

EVERY SPOKEN WORD

  1. 0:001:22

    Introduction

    1. LF

      The following is a conversation with Dave Plummer, programmer and an old school Microsoft software engineer who helped work on Windows 95, NT, and XP, building a lot of incredible tools, some of which have been continuously used by hundreds of millions of people, like the famed Windows Task Manager. Yes, the Windows Task Manager. And the zip/unzip compression support in Windows. And he ported the code for Space Cadet Pinball, AKA 3D Pinball to Windows. Today, he's loved by many programmers and engineers for his amazing YouTube channel called Dave's Garage that you should definitely go check out. Also, he wrote a book on autism and about his life story called Secrets of the Autistic Millionaire, where he gives really interesting insights about how to navigate relationships, career, and day-to-day life with autism. All this taken together, this was a super fun conversation about the history and future of programming, computing, technology, and just building cool stuff in the proverbial garage. This is the Lex Fridman Podcast. To support it, please check out our sponsors in the description, and now, dear friends, here's Dave Plummer.

  2. 1:227:00

    First computer

    1. LF

      Tell me about your first computer. Do you remember?

    2. DP

      I do. I didn't own my first computer for a long time, but the first computer I ever used was a TRS-80 Model 1, Level 1, 4K machine, and I rode my bike in fifth or sixth grade, so I was about 11, to the local RadioShack. And, you know, they, they had the standard component stereo systems, everything else RadioShack had, but they had a stack of boxes that was labeled computer, and so I was asking the people that worked there about it, and they said they just got it and they hadn't set it up yet. And so I was rather precocious and I figured, "Well, I'll set it up for you," and they said, "Okay, have a shot." (laughs)

    3. LF

      Did you know what you were doing?

    4. DP

      Absolutely not. I mean, it's no worse than a component stereo, the only thing is that Tandy in their infinite wisdom used the same five pin DIN connector for power, video, and I think cassettes, so they were all identical, and if you plugged them in wrong, you'd blow it up. So I read the label and, uh, got it working and wound up playing with it and not knowing anything about computers, so I'm typing English commands into it and, you know, PRINT 2+2 works perfectly, yet more s- simple English that you enter into a basic Level 1 interpreter is not gonna get you very far.

    5. LF

      So you're trying to talk to it in English?

    6. DP

      Yeah.

    7. LF

      (laughs)

    8. DP

      Didn't know any better. And I still have an old foolscap that I wrote in sixth grade of a, of a program that's kind of illogically correct, but has no chance of working on any interpreter that existed at the time, so it took me a while to figure out what was actually going on with them. But, uh, I rode my bike down there every Thursday and Saturday, and they were gracious to let me use the machine.

    9. LF

      When was this?

    10. DP

      '79, '80.

    11. LF

      Okay. What was the state of the art of computing back then? So what are we talking about?

    12. DP

      Well, the big three had come out. There was the TRS-80 Model 1, there was the PET 2001, and the Apple II came out roughly simultaneously.

    13. LF

      Apple II. Would you say that's the greatest computer ever built?

    14. DP

      Probably in retrospect. Well, I would probably give that to the Commodore 64.

    15. LF

      Yeah. You and I agree on this, that that was my first computer probably many years after it was released, but yeah, Commodore 64's incredible. But yes, Apple II had a huge impact on the history of personal computers.

    16. DP

      Right. It's hard to gauge the long-term impact, but I think the 64 itself probably influenced more people, so that's my reason for picking that one.

    17. LF

      You think so?

    18. DP

      The sales were certainly higher.

    19. LF

      So Commodore 64 sold a lot?

    20. DP

      Yeah. I mean, the numbers are hard to believe. It depends which numbers you believe, but even the medium estimates were pretty high.

    21. LF

      All right, cool. So you eventually graduated to the Commodore 64. Uh, like, tell me about that machine. What did you do on the, on the Commodore 64?

    22. DP

      Well, the first thing I did was overheat the floppy drive on it, which was unfortunate because it wasn't a warranty machine we had. My parents didn't have a lot of money so we bought it from Computer House as opposed to one of the major retailers, which meant when it died, it had to go back to Germany or something to be fixed. So I was left with no floppy and so I had a cassette deck, which was the best you could do at the time, and so I was writing small things, and I had a machine language monitor that you could load from cassette. Didn't have an assembler built in, but it had a dissembler so you could enter the op codes in 6502 in hex, and if you were careful about planning, you'd be able to write some basic programs, so that's kind of how I learned. And, uh, the first thing I ever wrote on it was a clone of Galaga. Now, it's a bad clone of Galaga, but it has the major enemies that attack over time and it's all written in hand-coded machine language and you can't relocate 6502, so if you need to add code in the middle, you need to manually insert a jump to somewhere else, do your work, jump back to where you were. It's just hideous spaghetti code. But it all worked eventually. And I went to make a backup of it to preserve it for future scholars or whatever the hell I was doing.

    23. LF

      (laughs) Okay.

    24. DP

      And, uh, I copied my blank floppy onto my data floppy. So that was my first experience with data management.

    25. LF

      Oh, no.

    26. DP

      So I don't have a copy of my first program anymore.

    27. LF

      What was that feeling like? Do you remember, of, of, uh, just doing something, um, i- if I may say so, like stupid, you know, which is a part of the programming experience?

    28. DP

      Yeah, there was a huge amount of guilt because right, you destroyed several weeks of work-

    29. LF

      Yeah.

    30. DP

      ... and you know it was because you rushed or you did-

  3. 7:0014:41

    Dropping out of high-school

    1. LF

    2. DP

      Yeah.

    3. LF

      All right. You dropped out of high school.

    4. DP

      Yeah. Not the smartest move.

    5. LF

      Okay. But you ended up going back to school and being very successful at school and just, in general, successful as a programmer, as a developer, as a creator of software. Uh, how were you able to find your way? Can you tell that journey of dropping out and then-

    6. DP

      Yeah.

    7. LF

      ... finding your way back?

    8. DP

      There's no moment when I dropped out. You just go less and less and less until you realize it's going to be embarrassing if I show up 'cause I haven't been there in a long time, and then pretty soon, you're just not going, and that's how you drop out of high school. So if you find yourself on that path, stop doing that. Um, but that's precisely what I did. And so now, I'm not at school and I have to get a job, so I'm working at 7-Eleven and a paint warehouse and stuff like that. And 7-Eleven is actually kind of an interesting job because it's a job, I think they keep rotating for people that are smart enough to do the night shift with all the accounting and the administration stuff they make the night shift do, but that have reasons personally that they need to work at 7-Eleven. Um, and I was one of those people 'cause I had no high school diploma.

    9. LF

      What are some memorable moments from that time at 7-Eleven? Uh, w- well, maybe what do you, uh, appreciate about the difficulty of that job?

    10. DP

      Probably the worst moment for me, I mean, I got held up at knife-point and stuff, and that's all entertaining, but the worst (laughs) , the most, the, the suckiest part for me was doing the gas dips. We've got a long, it's like a 15 or 20-foot wooden stick and it's measured in gradients of inches and feet, and you drop it into the gasoline tanks and then you bring it up and you measure where the gasoline sits 'cause there's no electronic sensor.

    11. LF

      Mm-hmm.

    12. DP

      So I'm doing that, and the first time I do it, I drop the pole and I regrab it. Well, that's about a thousand splinters of wood into your hands and it's 40 below out, and that really sucked.

    13. LF

      Oh, wow.

    14. DP

      Um (laughs) , and I realized, "I don't want to do this for a whole life." I knew that, so...

    15. LF

      Okay. So you stand there frozen with splinters in your hand.

    16. DP

      And at some point, I have a revelation about my life that next time, I'm going to do it differently. And then how ludicrous that is hits me about three seconds later, right? And I think that was really the moment for me where I realized that I've got to do something different. And so even though I was 21, I went and I talked to the, uh, principal of my local high school, and I was like, "Can you let me back in?" And he's, "No, you're too old and we don't have room," was his main reason. And I said, "Well, between now and then, somebody's going to drop out. So you'll have room. So let's assume you have room. Can I come back?" And he was gracious and let me come back. And so I did the three or four classes that I needed.

    17. LF

      Yeah. You know, just if we can linger on that, the slow dropping out. That's a weird thing that you can do with your brain. You realize to yourself that you don't have to do the thing that everybody else is doing. And that's a dangerous realization because, like, you kind of have to- to be part of society to do certain things.

    18. DP

      Right.

    19. LF

      And if you realize, like, you don't have to do what everybody else is doing, uh, you can either (laughs) have an incredible life or a really difficult life.

    20. DP

      Well, the problem with that process is you're making a much smaller decision. "I'm just not going to go to class today."

    21. LF

      Yeah.

    22. DP

      And that's all you're deciding. But you do that enough times, you're making a much bigger decision.

    23. LF

      Mm-hmm.

    24. DP

      And that's the problem.

    25. LF

      So it's better to make... If you want to live life in a non-standard way, it's better to make the big decision explicitly, and then you can stop going.

    26. DP

      Yeah.

    27. LF

      Uh, don't allow yourself to make the- the- the ... slip mistake.

    28. DP

      It'll be made for you eventually.

    29. LF

      (laughs) Yeah. Okay. Well, you got back and you e- eventually went to college and were very successful as a student, and you weren't that good of a student before.

    30. DP

      No, I was a terrible student in high school, and even my first semester of college, I still wasn't taking it quite serious because I got mercy passed in Geometry 90, which is, like, the makeup class for the geometry 12th grade class that I didn't have. And that scared me 'cause I realized, by 1% or the grace of the prof- professor who let me through, I just about ended my entire university career here. So fortunately, those marks don't count on your transcript 'cause they're remedial classes. And so I got kind of a fresh start the next semester and did it for real, and I did it for me, and that made all the difference.

  4. 14:4116:53

    Joining Microsoft

    1. DP

    2. LF

      Let's go to that time. It's such an interesting time with Bill Gates and Microsoft. Why do you think Microsoft was dominating the software and the personal computing space at that time and, and really for many, many, many years after?

    3. DP

      At the time, it was the single most potent assemblage of smart people that I've ever been a part of, and I've been in academia and I've been in industry to a certain extent, and... You know that when you're working at a regular computer company, the one guy who actually knows what he's doing, his smarter friend? He probably works at Microsoft. So when you get there, you're the big cheese from your small town, you think you know a lot, and all of a sudden, you're just in an environment where, like, "Uh-oh, I'm just not gonna speak 'cause I don't want to look stupid."

    4. LF

      Mm-hmm. Okay. Uh, what are, what about Bill Gates himself? What are some qualities of Bill Gates that you think contribute to the success of Microsoft?

    5. DP

      I think he was relentless in the pursuit of his one dream, which was his old slogan of a computer in every home and a computer in every desk. It was his special interest, and he was a smart guy, super determined, and he hired people that were as smart or smarter than him to help him execute it. And he built an almost unstoppable machine of intellect to go forth and make, let's say, very simple products. MS-DOS is not a complicated product by any stretch, but it's exactly what the market needed at that time.

    6. LF

      Yeah, I mean, MS-DOS changed the game, and, uh, that's actually the team you joined, the MS-DOS team, and I think you joined before Windows 95-

    7. DP

      Yeah.

    8. LF

      ... was released. Uh, so tell me about the story of MS-DOS. Its, uh, success of MS-DOS is probably pivotal to the success of Microsoft.

    9. DP

      Yeah, before DOS, they were largely a language company. So they had made BASIC for a lot of computers, and they had a Fortran compiler and a Pascal compiler, that kind of thing, but their deal to have MS-DOS included with every version of, or every instance of the PC effectively, set them as a standard, uh, that they were ale- able to leverage for decades going forward. And to a certain extent, they lucked into that, and on a- another hand, they were smart to have done it, so... 'Cause I, they didn't charge IBM a lot of money for it, but making it a standard really played out to their advantage over time.

    10. LF

      Uh, so at that time, MS-DOS,

  5. 16:5320:05

    MS-DOS

    1. LF

      no graphical interface. Can you just speak to what the heck MS-DOS is?

    2. DP

      It's largely a command launcher. So you type in a name of a command, it looks it up to see if that's in the current directory or on a special path of folders, and it loads it into memory and executes it if it's there. And that's 90% of what MS-DOS does. Now, it has environment variables and some complexity and a small scripting language built in, but it is basically just an operating system shell that allows you to, uh, use the resources of the computer, like the hard drive or the CPU, and it doesn't allow you to multitask. There's no graphical interface. Now, Microsoft did a- add a text-based graphical interface for things like an editor and QuickBASIC in DOS 5.0, I believe, and there was a DOS shell, which was sort of a graphical file manager in MS-DOS 4.0. So they experimented with it, but it's largely a command prompt.

    3. LF

      Did- does it have ability to communicate with, uh, external devices, so drivers and all that kind of stuff? Like, how expansive of an operating system was MS-DOS?

    4. DP

      Well, it was limited by the original x86 instruction set, which limited it to 640K.

    5. LF

      Right.

    6. DP

      And then there were various Band-Aids on top of that to do high mem and then extended memory beyond that, and, uh, a lot of hoops have to be jumped through to make anything work without consuming base RAM.

    7. LF

      Yeah, I mean, you, so you programmed on MS-DOS. What- what's it like? What are some interesting details there? Like you said, there's the memory constraints of s-... 640, uh, kilobytes?

    8. DP

      Yeah. 640K is the maximum that's ever going to be available, so it's not what's available to you as an operating system developer, because whatever you use is what the user won't get. So if you use 10K needlessly, you're going to... Every machine in the world now has 10K less, so it's kind of a big responsibility.

    9. LF

      Is that a true quote from Bill Gates, where he said-

    10. DP

      Nobody will ever need more than 640K?

    11. LF

      Yeah.

    12. DP

      Yeah. No. It's not him.

    13. LF

      Okay.

    14. DP

      It's been attributed to him, but not real.

    15. LF

      Uh, okay. So, I mean, w- what are some interesting aspects of w- that you were able to do as an intern and when you joined on MS-DOS and beyond?

    16. DP

      Well, one of the first things I did was to take SmartDrive, the disk cache, because I had familiarity with disk caches-

    17. LF

      Mm-hmm.

    18. DP

      ... and to add CD-ROM caching to it, because that was new. (laughs) CD-ROMs were just, just coming out. Microsoft Bookshelf is one of the few products you could run for it. And as you can imagine, caching a CD speeds it up by dozens of times if you're smart about it. So it, it was a big performance win and a nice thing to work on. Um, a bigger part of that was moving a bunch of SmartDrive and eventually the double-space compression engine up into what's known as high memory.

    19. LF

      Mm-hmm.

    20. DP

      And without rat holing on the technical aspect of it, on the x86, there's something, I believe, called the A20 line. And I probably have this backwards or I got a 50/50 shot at it, but if you've got the A20 line asserted, then your memory pointers wrap at the one megabyte mark.

    21. LF

      Mm-hmm.

    22. DP

      And if not, they don't, so you continue going up in memory. So you can rewrite memory above by combining your segment and offset registers to a number bigger than one megabyte, and you get an extra 64K. And you put your code in there, and then you just put stubs to jump to it from low memory. And so you can get another 64K out of the machine that way, and we did that for a couple other products, and that's... I had no idea what high mem was because I was an Amiga programmer, and I'd never written any x86 code before I got there, so.

    23. LF

      So that was, like, a cool optimization that you got to be a part of.

    24. DP

      Yeah.

  6. 20:0526:52

    Windows 95

    1. DP

    2. LF

      So what about Windows? There was a parallel development of Windows 95, right, at that time? Did you get, d- did you get a chance to interact with those folks?

    3. DP

      I actually worked on Windows 95 for about three or four months. I was on the COM/OLA team doing their presentation cache, which is when you insert a, say, a Word or an Excel spreadsheet or chart into a Word document. You don't want Excel to have to be loaded to render it every time, so there's a presentation cache of enhanced metafiles, and I was working on that. So that shipped in Windows 95, but I moved to the shell team about six months after getting to Microsoft, and so I worked on NT from there forward.

    4. LF

      Okay, and what's 95? What's NT?

    5. DP

      Uh, Windows 95 is an evolution of the original 16-bit Windows 3.1, which was the very first popular version of Windows-

    6. LF

      Mm-hmm.

    7. DP

      ... and it adds 32-bit support and then VXD drivers and a bunch of new technology and an entirely new user interface. And it's something that, at the time, was revolutionary. The people lined up at night to, uh, wait in line to buy the thing.

    8. LF

      Can you just take us back to that time and describe why 95 was such a big leap from 3.1? So Apple already had a graphical interface. Uh, Windows 3.1 had a graphical interface. W- why was Windows 95 such a gigantic leap?

    9. DP

      I don't want to make it as basic as the Start menu, but I think-

    10. LF

      (laughs)

    11. DP

      ... it's a big part of it. I know when I first saw it-

    12. LF

      Yeah.

    13. DP

      ... I couldn't quantify what about it was different and awesome, but I realized that I wanted to be a part of it. And that's why I started writing a shell extension, which became, uh, zip folders at some point.

    14. LF

      Mm-hmm.

    15. DP

      But I was just fascinated by the new shell, and that's why I wound up working on the team that brought that shell over to the NT and what's Windows today.

    16. LF

      Would you say that's the greatest operating system ever? What's the most im- impactful operating system ever?

    17. DP

      Windows 95 would be number two for me. I think OS/360 is going to be number one.

    18. LF

      Okay, interesting.

    19. DP

      Because you could take a machine and write a COBOL program for it in 1962, jump in your time machine, go to Poughkeepsie, and boot up an IBM z17 mainframe and run it today. And they've been doing it for however many years, that is. And it's all on the business side, so we as consumers don't have much access to it, but I think it was probably as influential in the commercial side as Windows 95 was in the home side. And then probably Linux would be number three for me. I put Linux b- as bigger than Unix, which doesn't work because you can't have one without the other. But the impact of Unix, BSD, and so forth is largely in the academic space. It's by programmers for programmers.

    20. LF

      So yeah. Linux created... I mean, it was the embodiment of the open-source spirit at its largest scale, right? So it almost created a community, and it, it created a spirit of programming that, uh, propagates to this day. That's true. That's true. Like, scale matters.

    21. DP

      Yeah. And its penetration on the server side of things now is... I don't know if it's equivalent to what System/360 achieved, but it's almost ubiquitous, so.

    22. LF

      Yeah. The world... (laughs) I mean, s- this is the quiet secret of the universe, is it runs on Linux. Okay, so, uh, tell, t- tell me about the days, uh, your workdays. W- what were they like back then, back, uh, back in the MS-DOS and Windows 95 days? Take me through a productive day.

    23. DP

      Well, your day starts coming in, and you got to download the address book, (laughs) which is... Microsoft has between 10 and 15,000 employees at this point, and we're all on MS Mail. We're just getting off of the PDP-11 called Miss Piggy, which ran Whizmail, and, uh, we're running MS Mail. But MS Mail has a fixed address book that every user must download every morning, and when there's 10,000 people downloading 10,000 people, it gets pretty messy. And I think we're on 10 megabit networking at the time. So your first hour is downloading the address book, which was always frustrating. But you'd use that time to look at the crashes that would have happened overnight from a process we called Stress, which is in NT, all the machines that are unused run tests all night long, and they try to crash themselves. And if they manage to crash themselves, it will drop into a debugger with a serial cable to another machine, and you can connect to that other machine and remotely debug the crashed machine. So you come in, and they will have triaged bugs. You know, there was a crash in the Start menu, so we'll assign that to Dave. And so you come in, and that's your first thing, is to connect, because you got to get that machine back to the guy that owns it and unlock the machine, so...... that's your first hour of your day, is basically triage for bugs that have come up from stress overnight. And then at that point, it's probably back to coding, which, unfortunately, 80% of the time is fixing bugs, especially in my career. It was porting code and fixing bugs. I wasn't writing a lot of new code. And there were exceptions. I wrote a lot of new code on the side to get it out of my system-

    24. LF

      Mm-hmm.

    25. DP

      ... from a day, day-to-day grind of always fixing bugs in other people's code, which is amazing learning experience.

    26. LF

      So you did a lot of the... At Microsoft, you did a lot of the porting of, uh, what is it? Windows 95 code to NT?

    27. DP

      Yeah. We took the entire Windows 95 user interface and we ported it to NT, which me- meant making it Unicode for one thing. So everything that was eight bits is now 16 bits, so pointers... It's, it's quite a mess when you switch the code over, as you can imagine.

    28. LF

      Can you give us insights in what is involved in porting?

    29. DP

      It's like breaking into somebody's house and going through all their stuff and seeing the stuff in their drawers that they didn't want you to see.

    30. LF

      Yeah.

  7. 26:5231:48

    The man behind Windows

    1. DP

      to start with.

    2. LF

      You said that Dave Cutler is the man, the mind behind Windows. Can you, uh, can you explain?

    3. DP

      So Dave Cutler is the architect of the kernel. So he is Linus in the Linux world. It's Dave C in the Windows world.

    4. LF

      Dave C, okay.

    5. DP

      And, uh, it's not that there weren't other people that contributed, of course, huge pieces to it. But, uh, I think he's the driving force behind it and always largely has been, and he still... I think he's 85 now, and he still codes every day. He's a Microsoft Fellow. He's, as far as I know, still goes into work, so.

    6. LF

      Uh, can you speak to the genius of that guy? Like, what's, what's interesting about his mind, having, having worked with him, having interacted with Dave Cutler?

    7. DP

      Well, the dude's wicked smart, but he's also like a farmer. He's like the guy that will follow you around and make sure that stuff gets done and gets done right to make sure that you're not checking any crap into his operating system.

    8. LF

      Mm-hmm.

    9. DP

      And he won't tolerate it. And he's a real taskmaster in that regard, but I think it really paid off 'cause it was a very big paradigm shift for Microsoft developers to be subjected to the Dave Cutler Digital Equipment style of leadership.

    10. LF

      Uh, what did you learn from that about, uh, successful software teams where there's a large number of people collaborating? Because Microsoft had a lot of brilliant engineers back then, and like you said, Dave Cutler. They had to, uh, they had to create completely new systems, many of which we still use today. What have you learned about great software engineering teams from that time?

    11. DP

      Tools are everything, I think, for one. A- and people are everything, we'll, uh, give that as a granted, but the tool set is a huge fact. If we went ahead Git, it would have been immensely easier. We were using Diff and, you know, manual Deltas-

    12. LF

      Mm-hmm.

    13. DP

      ... to do the supporting and stuff. So being able to fork a branch of source code would be a luxury that is new to me.

    14. LF

      (laughs)

    15. DP

      So at the time, it would've been really handy.

    16. LF

      What were some memorable conversations from that time when you walked over next door?

    17. DP

      Uh, well, what-

    18. LF

      Talked to some of these folks.

    19. DP

      ... I was not present for was, somebody was complaining, a new hire came into the team and was working on what I believe was called Cairo. And Cairo was going to be the next future operating system, was going to be beautiful, and have a whole new user interface newer than Windows 95, and it never materialized. But while they were working on it, one of the guys who was working on Cairo was kind of flaming on the open NT dev alias, which is thousands of people, how shitty the NT boot experience was. And (laughs) the response that came back was, uh, an epic flame that I wish I would have saved, and I won't name the guy who wrote it. He knows who he is, but, uh-

    20. LF

      (laughs)

    21. DP

      ... it was a work of art of angry flame mail, kind of like the ones you see Linus send every now and then about kernel stuff. So it's a very similar sentiment.

    22. LF

      Were there, like, kind of intellectual debates, like-

    23. DP

      Oh yeah.

    24. LF

      ... there was some, some heated stuff with the engineers?

    25. DP

      It was... Yeah, it got contentious. So you've got intellects competing, and eventually the technical merits for some people are secondary and it's about besting the other person in that argument, and it's no longer productive at that point half the time, but there was a fair bit of that.

    26. LF

      Yeah, I've- I've seen those kind of debates in, uh, like, programming language design communities like Guido van Rossum, the leaders of those communities, it can wear them down 'cause people get... You almost, like, forget the mission you're on and start being very nitpicky about the details. And e- engineering minds get together and you s- just go to war over the stupidest, like, syntax subtlety.

    27. DP

      Right.

    28. LF

      Well, it's- I shouldn't say stupid, but it's a small-... syntax subtlety. Now, for it, that's for programming language. I'm sure there's internal battles about specific kernel components.

    29. DP

      Yeah, I mean, there was one that I lost that still bugs me to this day, I think.

    30. LF

      Yeah?

  8. 31:4837:05

    Debugging

    1. DP

    2. LF

      Yeah. So, uh, yeah, I mean, you mentioned MIPS and RISC. How deeply did you have to understand the lowest level, sort of the lowest level of the software and even the hardware with the stuff you were building? Like, w- what are the layers of the abstractions you had to understand to be successful with all the stuff you're doing with NT, and before that, with MS-DOS?

    3. DP

      Well, about half your day is going to be spent debugging, and h- and most of that time is going to be spent in call stacks that are in pure assembly language, 'cause there's no source level debugging.

    4. LF

      Mm-hmm.

    5. DP

      So it's not like we're in Visual Studio and you hit a break point and it pops up and there's the source code. You can go look at the source code, but you're looking at the raw assembly dump from the machine at all times.

    6. LF

      So even if you're programming in C, the debugging is in assembly?

    7. DP

      Yeah, 100%.

    8. LF

      Oh, man.

    9. DP

      So it's a little cumbersome.

    10. LF

      (laughs) Oh.

    11. DP

      And better yet, we're doing four instruction sets, 'cause we're doing Intel, uh, MIPS, Alpha, and PowerPC, so depending on which machine it crashes on, you've got an entirely different instruction set-

    12. LF

      Yeah.

    13. DP

      ... and registers and... So you get reasonably adept at debugging all four, but, uh, I had more experience in MIPS, so MIPS stuff would come my way.

    14. LF

      That's a real endurance event. I mean, can you speak to that? The, the torture that is debugging, especially that kind of debugging, without the, without the tooling associated with it? I mean, that's, you know, programming... (laughs) Kids these days. (laughs) Uh, programming isn't all about creating beautiful things, right? It's, uh, also about fixing things.

    15. DP

      Yeah, I would say that 20% of my professional life has been creating and 80% has been debugging and fixing.

    16. LF

      Yeah.

    17. DP

      And, I mean, I got a bit of a reputation as somebody who could fix stuff, and so stuff like that would flow to me, and so I would spend more time doing that. I wasn't renowned as a creative UI genius where I'm flowering all these new ideas, so I got to fix ugly stuff. But you get really good at that, so... I don't mind it until it's one of those things where you've been chasing it for so long that you don't know what to do next, and you can't understand why it doesn't work or how it ever worked or whatever situation you happen to be in. And, uh, you know, after a day of it, it can get pretty trying.

    18. LF

      Yeah, debugging can be real torture. It's, can be really, really difficult. There's a psychological, I think, component, I think, of perseverance.

    19. DP

      I think the ones that l- you know, take you a day? They resolve one of two ways. Either it's like, "Oh, extra semicolon," and then you finally see it. (laughs)

    20. LF

      Yeah.

    21. DP

      Or it's some horrible manifestation of cross-threaded apartment nonsense that was really hard. But it can go both ways. Um, I had a bug, uh, it wasn't my bug actually, but it was a manifestation of a bug in Task Manager, where every now and then, it would say, "Greater than 100% total CPU usage." And this looks pretty silly for a task manager, so... I had tried to resolve it for a long time, and I'd talked to the kernel guys about my issue and they were unsympathetic, let's say, 'cause the kernel guys are a special breed and they weren't interested in my user land problems. It's probably some issue in my code, right? And they're probably right, but it wasn't in this case, and I was sure of it, and so I kept adding asserts all through the code to make sure that the, that the preparatory steps of adding the stuff together were never more than 100, and that the final sum was never more than 100, and finally, it never asserted. But occasionally we would get this bug where people would still see it, and so I put, finally put my phone number in the assert. And I was like, "If you see this message, call Dave PL at 425-836, my phone number." (laughs)

    22. LF

      (laughs)

    23. DP

      Um, and finally we did get a catch in the actual stress debugger that I was talking about earlier where it happened to somebody with a debugger connected. We were able to go through and it was actually a kernel accounting issue and it wasn't a task manager issue so they just fixed it in the kernel once I was able to prove that it was, in fact, a kernel issue. And, uh, you'd think we would then remove my phone number, but we just commented it out. So it's shipped and it's in all the damn source code leaks for NT that are out there, so-

    24. LF

      (laughs) That's awesome.

    25. DP

      That's how I find task manager code is I search for my phone number on Google and it will reverse find-

    26. LF

      Oh, that's fascinating.

    27. DP

      ... the NT source code.

    28. LF

      Can you speak to the assert thing? By the way, I saw, I think you tweeted or you said somewhere that if you want to take your asserts really seriously, you add your, your home phone number, uh, in there.

    29. DP

      Yeah.

    30. LF

      It's true. It's true.

  9. 37:0542:14

    Task Manager

    1. DP

    2. LF

      You mentioned Task Manager. Obviously, we have to talk about this, the legendary program that you created, the Windows Task Manager. Tell me every detail of how you built it. What is Windows Task Manager?

    3. DP

      So Windows Task Manager is a way to go in and find out which apps on your system are using the computer, using the hardware, using the CPU, using the memory, and which ones might be using too much or locked up or going crazy and it gives you the ability to terminate and kill those ones. So it's an inspection and a fixing tool.

    4. LF

      Yeah, it lists all the processes. I mean, it's a legendary piece of software. It's crazy. We, you just take it for granted. It's like the Start menu, right?

    5. DP

      Yeah.

    6. LF

      It's, like, genius.

    7. DP

      Well, I had the great fortune of working on a lot of things that people are familiar with and Task Manager is one of those side projects that I started as something that I wanted for myself and eventually came in-house. So I started writing it at home and I got kind of the basics up and running and I was using, I think it's HKey Current Perform- or HKey Performance in the registry to get the stats because I didn't have access to the internal APIs because I was working from home and I don't call those as if I'm working from home.

    8. LF

      Mm-hmm.

    9. DP

      And, uh, when I brought it in-house, then I was able to call things like NT Query System Information or NT Query Process Information and get the real answers very quickly, which enabled it to become a very fast and responsive app. So, people have come to rely on it because I wrote it to be as reliable as possible. I wasn't worried about the features. There was a basic set of functionality that I wanted in there and I got everything I wanted, but I wanted it to be really robust. And so that, and small. And the original was like 87K.

    10. LF

      Okay. Can you speak to what it takes to build a piece of software like that that doesn't freeze?

    11. DP

      Uh, you don't assume much, right? If you're going to call the shell to run an app, well, that could be a network path that's on a TCP/IP share that takes 90 seconds to time out. So any time you do any kind of APL, API call like that, that could take time, you're gonna wind up doing it on a separate thread. And so the app becomes a little more complex because everything's multi-threaded.

    12. LF

      Okay. So what programming language were you working in?

    13. DP

      C.

    14. LF

      So this was for Windows N- NT?

    15. DP

      Yes.

    16. LF

      Okay.

    17. DP

      So this shipped initially in NT 4.0.

    18. LF

      Okay. So what are some interesting details about this program? Because you have to get it as simple as possible, but also as robust as possible. Uh, what are some interesting optimizations, for example, you had to implement?

    19. DP

      There's a couple of things I, that are a little hardcore now, I'm surprised I did. Like I didn't want to link to the C runtimes at all, so I made sure never to call a runtime call and I didn't link to them and that saved me whatever the C runtime is, 96K or something. So, you know, it almost doubled the size of the app if you just touched any C call. So I was careful not to do that. But then I was actually writing in C++, which is r- C with objects more than anything. But, uh, in order to get it to work, I had to go through and call all the object constructors manually from the dispatch table and stuff because you don't have the runtimes to do it for you. So you're working with a compiler that doesn't have its runtime and I don't want to rat hole on the technical issues, but it's a lot of extra work to get it to work. But when you do, it's incredibly small and tight.

    20. LF

      That's about the size-

    21. DP

      Yeah.

    22. LF

      ... of the program. Um, what are some interesting aspects of tracking down, like, every, every process and how much CPU usage in that process?

    23. DP

      One of the cooler things that I saw is, I don't want to say I invented Hamming code, but I kind of invented Hamming code without (laughs) knowing Hamming code existed. So every column and every row in Task Manager has a bit on whether it's become dirty or not and then I can look basically the same way Hamming code looks in your X and Y columns to find out which rows have changed, go through and find out which ones actually need to be repainted. So Task Manager is super efficient and it works in concert with the ListView control, which provides that functionality to go through and repaint as little as an individual cell that changes from frame to frame. So it could paint very fast, it could resize very smoothly and resizing was probably my biggest, uh, personal goal with that app so you can size it to any size and it still works. And even if you have 32 CPUs, which wasn't possible in the day, it will draw I think only eight graphs and then it wraps but, uh, it still works today. So I'm kind of proud of that.

    24. LF

      It is incredible. Um, you've gotten the chance to sort of observe the evolution of Task Manager. In some ways, it really hasn't changed much. Maybe there's some prettier aspects to it that fit into the whatever version of Windows it's in but it's really basically the same thing.

    25. DP

      The functionality is very same. Um, the reporting is more because they've added GPU and thermals and things like that, which is really nice to have. And we didn't have that ability in the day, so.

    26. LF

      I mean, what can you say? Do you know about, w- like, uh, was there any refactoring done or is it basically the same code? (laughs)

    27. DP

      Uh, as far as I know, the original code's still mostly all there. So there are layers of drawing code and dark mode code and whatever else, XML, schema code that goes on top of that that makes it four megabytes instead of 87K, but that's the world we live in, so.

    28. LF

      Yeah. It's one of those pieces of software you create and just s- stay o- once it's there. It's just really like the Start menu and then I'm sure if you remove it, people would just lose their mind. (laughs)

    29. DP

      Yeah, it might be locked in for a while and that one might be good.

    30. LF

      Yeah. I thought that would be true for Clippy but, uh, Clippy will make it back one day. All right. What are, what are

  10. 42:1447:13

    3D Pinball: Space Cadet

    1. LF

      some, uh, other pieces of software you created at the time that are legendary? So you were part of Space Cadet Pinball, at least porting.

    2. DP

      Yeah. So they came into my office and said, "Hey, what are you doing?" And I said, told them what I was doing and they said, "Well, how do you want to spend your next three months?" I said, "I have no idea." And he said, "Do you want to port Pinball?"... and I had, I'd seen Space Cadet Pinball as a game standalone for the Win95 platform, and it had a couple of different tables and it was a cool game. So, I was kind of excited, and what they wanted was some visual splash for NT, to show that NT can do, for then, high speed graphics, and, or at least responsive graphics. And so I took a shot and unfortunately, a lot of the code was in Assembly, and I was on the MIPS so I had to rewrite the code in C so I could then port it to all the different platforms. And at the heart of the game is a huge state engine. And it's like a giant switch statement with, if I remember, like 50 entries in it.

    3. LF

      Yeah.

    4. DP

      And it's got an Easter egg built in. And decoding the state, it's like running a neural network through this thing as you hit it with different states, and I just put it aside and treated it as a black box. And so my code runs on top of that and does the drawing and the sound and everything else. But the original game is still running. And somebody recently asked me, uh, why is it slightly different, the physics are slightly different from Windows 95 version, but it should be the same code, because I'm trying very hard to preserve that. But what it is, is I had a bug where I will draw as many frames per second as I can, which on a modern computer could be 5,000 frames a second for pinball because it's a pretty basic game. And so all your physics are interpolated 5,000 times per second instead of 30 times a second, or whatever you would have gotten on the old ones. You're getting arguably better, or at least different physics. But they fixed that since, so...

    5. LF

      Wh- why is that game so awesome?

    6. DP

      I think it's a great design. I mean, I take no credit for that. That's all totally the guys at Cinematronics. But the original game is a great design. It's very similar to Black Knight 2000, which I own as an actual physical pinball machine, and the layout is actually very similar. I don't know if it was inspired by it or not. So, it's a good game.

    7. LF

      Yeah. Sometimes I think about like Tetris, about certain games with pretty primitive graphics that captivate the, uh, the excitement of a large number of people. And m- maybe it's the excitement of a large number of people that contributes to the awesomeness of the game. So when a l- when many people together get excited and talk about it, that sort of gets implanted into your head. But that's one of the great games. I mean even s- even like Solitaire and Minesweeper. I mean, there's just a generation of people that have gone to war on Minesweeper, right? (laughs)

    8. DP

      Well, those things were included in the OS not as games, but as educational tools to get you to use a mouse.

    9. LF

      Oh, interesting.

    10. DP

      So Solitaire is there to show you how to do drag and drop.

    11. LF

      Yeah.

    12. DP

      And Minesweeper's probably right click. I think you put a right, a flag or some item.

    13. LF

      Yeah.

    14. DP

      I'm not a Minesweeper guy, but so each one of them teaches you something.

    15. LF

      (laughs) Minesweeper guy. That's funny. (laughs) Yeah. Wow. I didn't know that. That's interesting. And that's true, but I don't know how many hours I've spent on these games. And like millions of people have spent millions of hours on these games.

    16. DP

      I used to volunteer teaching computer science at my kids' school, you know, for the third graders and stuff. So it's more like logging in than computer science, but uh, the kids of course, all their dads work at Microsoft so nobody's impressed by anything you do. But so one of the kids found out I worked on Pinball and then they were like, "Whoa, you worked on Pinball?" Because they all knew that in those days. Now the kids are probably aged out, they don't know it anymore, but for a brief period.

    17. LF

      Uh, you're behind the Windows activation.

    18. DP

      You say it like it's a bad thing.

    19. LF

      (laughs) Um, everything's a matter of perspective. So tell the story of that. What's Windows activation? What, uh, how'd you get involved?

    20. DP

      So they came to me late in the XP ship process. I don't know if the beta had gone out, I don't think the beta had gone out yet, but they had intended to take the Office activation code and then adapt it to Windows and add activation to Windows. But whoever was responsible for doing it had slipped it enough times that it wasn't gonna happen, and so I had kind of a reputation for being able to fix things quickly, so they came to me and said, "Can you get this done in time for XP?" "I don't know, but I'll try." So with the help of the guys who were doing the DRM stuff on the DRM side, and the research guys doing the math for the product keys and everything else, we cranked it out in time for XP. And I don't know what it, actual impact is for revenue, but I imagine it's substantial when you start enforcing license keys.

    21. LF

      I wonder what it is.

    22. DP

      I don't know.

    23. LF

      Because it's also annoying.

    24. DP

      It is, especially if you have to phone activate. And that was just the case that we had to carry with us as a albatross around our neck where you've got to pass data up to the clearinghouse, the backend systems that are going to approve your key. You've got to tell it all your hardware parameters, like how much memory and hard drive space and the various things the hardware key is bound to, as well as the product key. And you've got it encoded in letters and numbers that somebody is willing to read in over a phone. And if you think doing product activation is painful over the phone, could you imagine being the person that worked on the other end of that line? I mean, that's just got to be a mind numbing job to listen to product keys for eight hours

  11. 47:1358:12

    Start menu and taskbar

    1. DP

      a day.

    2. LF

      Yeah, one of the challenges with Windows, and it's been a frustration point for me, but I, I understand from a design perspective it's very difficult, is so many different kinds of people use Windows. But, uh, it's been frustrating how over time Windows has more and more leaned into the direction of like the not, not the power user, I should say, which is why sort of Linux has always been really wonderful. But from, from an activation perspective or from any kind of configuration, it's been, it's been a, it's been a source of a lot of frustration.

    3. DP

      Yeah. One of my more popular episodes of late has been why you can't move the Windows taskbar.

    4. LF

      Yeah.

    5. DP

      And I had no idea, but the outrage is palpable amongst people that you just put it on the left or top and you can't any more, and it is an affront to their existence. And I understand it to a certain extent.

    6. LF

      Well, it's one of the main reasons I really just dislike Win- There's a lot of aspects about Windows 11 I dislike, one of which is like you can't customize things as much about the position of the taskbar, just basic customization. Can we just configure stuff? Because there's going to be a small contingent of power users that are just gonna enjoy the hell out of this operating system if you just give them that option, it costs you nothing, just give them that freedom.

    7. DP

      Well, it does cost, right? Because the, uh, freedom to put the start menu on the left or the top or the right-... really increases the complexity of the code that renders the Start menu and lays out the tabs and does all the things. And now it's a much larger surface for bugs, and it's a much larger piece of code to maintain. So you probably need more developers or another developer or some portion of a developer's time. So the question becomes, at what point is it still worth it to satisfy the niche needs of a small set of users? And I, I just not- those decisions weren't mine to make, but I could see it from both sides.

    8. LF

      I think just like the people who make movies and insert very nuanced details that only a small number of people will realize are there, that's gonna really pay off. There's a kind of reputation that builds over time that has a very powerful ripple effect. Uh, that I think i- it has- it, (laughs) it has so many benefits, including for hiring great software engineers. (laughs) It's like you create this aura of a place, uh, that puts love into every detail, that puts- that really takes care of the power users, that takes care of the developers. And I think Microsoft has more and more moved in that direction with GitHub and acquiring GitHub and just taking care of the developers. But on the Windows interface side, come on, some customization. With, you know, with VS Code, you can customize everything. Why, why can't we customize the Start menu, right? Anyway, uh, uh, and the taskbar, um, and really every aspect of the Windows interface. I don't, I don't- I... Maybe you're right, maybe it in- increases the complexity of the code. I suspect that's just not the case.

    9. DP

      I bet it was. I bet it was a scheduling decision when they rewrote the Start menu. I think they rewrote it because it's different than the old taskbar.

    10. LF

      Mm-hmm.

    11. DP

      And somebody was tasked with, "You've got to deliver this set of functionality, and if I cut out putting it on the left and the top and the right and two rows of tabs and all the other cool features, I can deliver it four months sooner." And I'm not saying that's the right decision, but I'm guessing that might be the kind of thing that motivates it. And they're on such a different release schedule now. It used to be... Y- you won't see much craftsmanship unless somebody owns a component for a long time and it settles to a point that then you can work on polishing, right? But if it's always churning and the UI is changing every release, it's never gonna get that level of polish. Although I think the UI is pretty nice, but...

    12. LF

      I- Y- yeah, i- it is nice, but I think there- I think it's- I just don't think it's a scheduling thing, I think it's a, I think it's a craftsmanship thing. Just like you with a- with a task manager. If there's a guy or a girl in there who take ownership of it, who have a, like passionate- like for them, it's a thing that they take pride in, uh, over a period of time, they can like by themselves in a short amount of time create something truly wonderful.

    13. DP

      Right.

    14. LF

      And like, I- I think if you have large software engineering teams with managers and sch- scheduling of meetings and all this kind of stuff, yeah, okay, then, then your argument applies. But if there- if you allow the flourishing of individuals that create cool shit and like their own sort of the side project, which Google is very good at-

    15. DP

      They've tried that, right? Google, yeah.

    16. LF

      Yeah, like have fun with it, like do some crazy stuff and then we'll integrate it. We'll, we'll try to integrate it into the whole ecosystem. I don't know. I don't know. Uh, uh, cause like to me, (laughs) there's- it's such a great joy from an individual developer to create something like customization of the Start menu or the taskbar, because you know that millions of people are going to use it, uh, the, the taskbar. And then you know that thousands, tens of thousands of developers might be using to customize even little subtle aspects of the taskbar. You know how much joy you create, you give to people to customize, to have some kind of JSON thing where you customize something about the taskbar?

    17. DP

      Okay, but how do you respond to the Steve Jobs aspect of giving you customization implies that we couldn't figure out the right answer for you? Or maybe there is no right answer and all four answers are equally right, I have no idea, but-

    18. LF

      Right. Uh, I think I've always- the- I- I'm glad Apple exists, it's a beautiful thing and that idea of love design is wonderful, but I always thought that their- that Windows creates the contrast. Like the point of Windows is to be the operating system that works on all kinds of devices, that just is mu- it's supposed to be much more open. And they've moved towards that direction more and more with Windows Subsystems for Linux. It's just this whole developer-friendly ecosystem. It, it- the interface should be in the spirit of that, I think.

    19. DP

      Right.

    20. LF

      But, but I do think that there could also be security vulnerabilities that created with that. It's not just the complexity of the code, because Windows is just under attack.

    21. DP

      Yeah.

    22. LF

      (laughs) It's very difficult to keep it secure. Anyway, taking that, that tangent, you also developed a zip file support for Windows, uh, creating Visual ZIP, like you mentioned, zip folders that eventually evolved into zip folders. Tell the story of that.

    23. DP

      So that was a piece of software that I, I wrote at home again. And, uh, what happened was I was out with my wife and I think it was a Sunday afternoon, we're driving around, this is 1993 and we're living in our apartment and we're just seeing what the housing market is like out there. And there's a guy, he's got this beautiful three-bedroom house and a Corvette convertible, 93 red, torch red, parked in the driveway and the house is for sale and it's like 300K I think, and there's no chance I'm coming up with 300K at that point, or even the down payment on that. So, um, I took the flyer and I cut the picture of the house out and I taped it to my monitor. And that was my incentive to just write something at night because when I came home, I was doing two things. I was, one, expressing a creativity that I couldn't get out at work when I was just fixing bugs, and I was trying to make some extra money. And so I wrote a Shell extension before I actually went to the Shell team, I started it, and that's what led to my interest in going to the Shell team based on an MSDN sample or MSJ at the time, MSJ sample that I saw on how to like-... bring up a folder. Now, once I had the very basic bring-up-a-folder template, adding zip file support to it was just incremental all the way. And, uh, I released it as a shareware product. I think it was 19.95 or 29.95, and I sold, whatever, a couple of hundreds or thousands of copies. And one day, I'm getting ready for work and I get a call, and it's a lady, and she says, "Are you Dave Plummer?" And I said, "Yeah." And she said, "Are you the guy that wrote VisualZip?" And I said, "Yeah." And she said, "Well, this is Betsy from Microsoft, and we'd like you to come by and come in and talk about an acquisition of it." And I said, "Okay, what building are you in?" And she's like, "What do you mean?" And I said, "Well, I'll come by." And she said, "Well, no, you gotta talk to travel and you gotta talk to legal, and this all has to be set up." And I'm like, "I don't get it. We both work at the same place. Why can't I just stop by?" I don't know if I said that literally-

    24. LF

      Yeah.

    25. DP

      ... but it was a few minutes of back and forth where we both realized that she didn't know I worked there.

    26. LF

      Yeah (laughs) . That's funny.

    27. DP

      They had just cold-called the author and then found out that it was me.

    28. LF

      Yeah. That's funny.

    29. DP

      And, uh, so they made me an offer on it. And it's the kind of thing where if I don't accept the offer, w- now my choices are, I can keep selling my own version and quit Microsoft, or I can stop selling my own version and work for Microsoft. Neither of those is great. I mean, I'd like to keep my job, of course, but I'd like to h- still have this income stream. And the other option was accept their offer, which is what I did. So then I bought a used '93 red Corvette and...

    30. LF

      (laughs) And you got to continue building it internally?

  12. 58:121:00:21

    Blue Screen of Death

    1. DP

      so.

    2. LF

      Tell me the story of the infamous blue screen of death.

    3. DP

      What it is, is when Windows has no other option, when the kernel gets into a state where something illegal has happened... So let's say a device driver is trying to write to a piece of memory it doesn't own, or it's trying to free a memory, piece of memory twice, something that just cannot happen. And the kernel has no other option. It will shut the machine down to save your work.

    4. LF

      Mm-hmm.

    5. DP

      And... Well, not save, but prevent further damage. And it puts up a blue screen and it, uh, prints out the stack information. Depending how your settings are, sometimes it's just a sad face-

    6. LF

      (laughs)

    7. DP

      ... (laughs) in the current Windows.

    8. LF

      Yeah, I wonder what the first version of Windows where the blue screen came to be.

    9. DP

      So, Windows 3 had a blue screen-

    10. LF

      Mm-hmm.

    11. DP

      ... but it's completely unrelated to the blue screen in Windows NT. And I talked to the guy who wrote the blue screen in Windows NT. His name's Jon Virt. And, uh, the reason he picked white on blue, I had thought... I'd always heard it was 'cause w- in the labs, you could walk through a lab where we have 50 PCs all running stress. "Oh, that one's got a blue screen. It's crashed."

    12. LF

      Mm-hmm.

    13. DP

      It wasn't that simple. It was just the MIPS firmware that he was building it on was blue on white, and s- VisualSlickEdit that he was using as an editor was also the same color scheme. And so you could code, boot, crash, and reboot, all in the same color scheme.

    14. LF

      Why do you think so many problems with computers can be solved by turning it off and turning it on back again?

    15. DP

      I think there's two major things that happen with computers as you run them over time. One is memory gets used and not freed.

    16. LF

      Yeah.

    17. DP

      And so it accumulates on a heap or in the swap file or wherever, and things get sluggish. And the other is, code gets into a state that the developers didn't anticipate or didn't test very well.

    18. LF

      Mm-hmm.

    19. DP

      And maybe that's a rare state, but now that Notepad or Word or Excel is in that state, your system is goofy. So if you just reboot the thing or shut it down or restart it, you're getting a fresh state and there's no memory leaks, so it covers a lot of sins, basically.

    20. LF

      And, uh, the intricate ways that several pieces of software in a goofy state interact with each other creates sort of a meta goofy state (laughs) that just kinda ha- j- just the entire system starts acting a little weird.

    21. DP

      Yeah.

    22. LF

      And then somehow fixes it.

  13. 1:00:211:08:22

    Best programmers

    1. LF

      What's, uh, what's some of the best and the worst code you've seen during that time at Microsoft? What's some beautiful code and what's some ugly code that pops to memory?

    2. DP

      In terms of beautiful code, there's two that stand out for me. One is the kernel in general. When you get down into the Windows kernel-

    3. LF

      Mm-hmm.

    4. DP

      ... and the actual NT APIs and stuff, it's very well written. And it's written to a standard that you don't see on the user side, or at least is uncommon on the user side.... on the user side, probably the coolest code I remember seeing was a guy named Bob Day wrote a named pipe implementation to eliminate the use of shared memory. So Windows 95 had a big shared segment amongst all the shell processes where it would store stuff that's common to all the shells. We didn't want to do that. Shared memory is a bad idea on NT and at an industrial level. So he came up with a way to do it with named pipes. And, uh, I remember doing a code review on it, and it was very impressive to walk through the code. It was one of those things where it was like, "Oh, I don't think I could have done that if I was trying."

    5. LF

      Who's the greatest programmer you've ever encountered?

    6. DP

      You know what? I don't think there is any one. I, I've met a number of great programmers. But I'll tell you one story that impressed me a lot, was when I was brand new at the company, I'd been there like six weeks, and I'm working on this OLE Presentation Cache that I'd mentioned earlier. And I'm on Windows 95, and I've got Excel inserted into Word, and I'm in the kernel debugger, and something's going wrong in the scheduler. And I've been there, you know, I've barely written any x86 code and I'm looking at the Windows Scheduler trying to figure out why my thing is deadlocked. And eventually, I get stuck, so I'm kind of out of my element and I send an email to the Windows 95 kernel team and say, "Could you send somebody by?" And so about 10 minutes later, this developer strolls in and they're just holding a null modem cable, which is to connect my two machines together so they can debug one with the other in case I didn't have it, but it was already set up. And so they sit down and they're using WinDbg, which is just a horrible debugger. It's just, it's accursed.

    7. LF

      (laughs)

    8. DP

      But, uh, they're very, very competent with it and they are just blasting through the call stacks and they're checking all these objects in the kernel and trying to find out who's waiting on what and why things are deadlocked and what things are signaled and what's not. And it's just this quicksilver ballet of call stacks flying by and I'm watching this and I'm pretty blown away because I'm a good programmer, but this person is an amazing debugger and I've never seen a performance like this. And, uh, about five minutes in, I just hear, "Oh, I see." And then they disconnected and got up and left. And that was Laura Butler who became a distinguished engineer at Microsoft. I think she may still be. I'm not sure if she's retired or not, but... So she kind of set my template for, you know, what Microsoft developers were like when they're debugging and what kernel developers were like, and even what female developers were like, because I had such a small sample set. Um, but it was a very high standard, so...

    9. LF

      There's a few things I love in life more than people who are ultra-competent at anything really, but the lower level, the better, in the engineering space. They're able to, for example, like, run or maintain the infrastructure, the computer infra- infrastructure. So not the individual computer, but the computers communicating together and working together. Those people are just magicians.

    10. DP

      Right.

    11. LF

      It's so inspiring to make... It's like watching a great carpenter or...

    12. DP

      I love anything done really, really well.

    13. LF

      Yeah. It's beautiful to see. It's beautiful to see that humans are able to accomplish that. Even in, in civil engineering space, when I look at, like, bridges, it's like, the number of people that had to come together to build that, and now millions of people use it every single day. With software sometimes you don't get to see visually just the number of people impacted by a thing. So imagine how many people are impacted by Linux and all the different open sources, open source systems that make up Linux. It's incredible. And Task Manager is an example of a piece of software. Just how many people have used that over the years and how many times? It's crazy. It's probably, it's like billions, billions have u- used that.

    14. DP

      Yeah, two billion a month or something.

    15. LF

      Two billion? (laughs)

    16. DP

      Something like that. I, I've seen the metrics and it's up there.

    17. LF

      Oh. Crazy to you?

    18. DP

      It is. What I love about it though, and I'm sure you've had this experience where sometimes you design a piece of software and it's complex and you get it working in your head and you get the plumbing working and you know how it's going to run and flow and then eventually you write the code and the code does that thing that you had pictured in your head.

    19. LF

      Mm-hmm.

    20. DP

      And now there are billions of copies of that thing that I had in my head running on millions of peop- or billions of peoples of machines, and that in itself is really cool to me. It's not a vanity thing so much as a, uh, I'm impressed by it, I guess.

    21. LF

      Uh, how's your programming evolved over the years?

    22. DP

      I take a lot more care and complexity these days. So it used to be you would write code and just keep writing code, writing code, and then at some point go back and clean it up. Well, I write the other way now. I try to write really clean initial skeletal code and then flesh it out because I have been involved in too many projects of my own and of other people's makings where things get so messed up that they're just not fixable. And so sometimes the work you put in upfront pays off, you know?

    23. LF

      What programming languages have you used over the years? What's been your main go-tos?

    24. DP

      For me it's been C++ and Assembly language.

    25. LF

      And still to this day, C++ is really what you lean on?

    26. DP

      Yeah. Right now I'm a 100% Lua and Python, but that's just side project I'm working on, so...

    27. LF

      Can you speak to the Lua and the Python detour that you took, and, uh, what do you love about C++?

    28. DP

      What I'm doing is I wanted to build an AI to play the game Tempest. That's the old Atari game, Tempest. And, uh, this is a game that I actually hold the world record on. And, uh...

    29. LF

      Can you take me to this Atari game, Tempest? Okay. Atari Tempest. What kind of game is this?

    30. DP

      So it's a 3D vector game from 1980.

  14. 1:08:221:15:50

    Scariest time of Dave's life

    1. DP

      try to do both.

    2. LF

      Let me ask you about the whole stretch of time that we kind of skipped over. Uh, you built a lot of software over the years after Microsoft, on the side while at Microsoft, and afterwards, uh, a lot of successful pieces of software. Uh, one of your companies was Software Online and it got into trouble for nagging users too much, I guess-

    3. DP

      Yep.

    4. LF

      ... to upgrade. That's what I saw. What was all that about? And, uh, what did you learn from that experience?

    5. DP

      That was... other than, like, family health scares, you know, when kids are sick, that was the scariest time of my life, and the period leading up to it was one of the most invigorating and exciting because what had happened was while I was at Microsoft, I had written all these shareware utilities and I was selling them on the side and sold one to Microsoft, as we talked about, and they started to do really well, and then I discovered banner advertising online. And so I signed up with my credit card for a site, I think it was called Fast Click, and you could say, "I will pay this much for a banner ad impression. Here's my banner," and it would rotate it in, and I didn't set a cap on it. I came back on Monday and I saw I had spent like $10,000 in banner ads. I was like, "Holy crap." (laughs) "How am I going to explain this to my wife? This is a bug, it's a mistake, it was my fault."

Episode duration: 1:50:28

Install uListen for AI-powered chat & search across the full episode — Get Full Transcript

Transcript of episode HsLgZzgpz9Y

Get more out of YouTube videos.

High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.

Add to Chrome