Pioneers Insight Method Research Author
Dave Plummer: Programming, Autism, and Old-School Microsoft Stories | Lex Fridman Podcast #479
Back to Episodes

Dave Plummer: Programming, Autism, and Old-School Microsoft Stories | Lex Fridman Podcast #479

Summary

  • Microsoft’s 1990s moat was talent density married to distribution, not product complexity. Plummer calls it “the single most potent assemblage of smart people” he ever joined, while Gates relentlessly pursued a computer on every desk and hired people “as smart or smarter than him.” MS-DOS was largely a command launcher, but making it the PC standard created leverage Microsoft could compound for decades.

  • Task Manager shows how tiny, defensive software can become infrastructure when one builder owns reliability end to end. Plummer’s original NT 4.0 application was about 87K, avoided linking the C runtime—roughly 96K by his estimate—pushed potentially blocking calls onto separate threads, and repainted only changed cells. He says the original code remains beneath layers that have expanded it to roughly 4MB, while usage has reached “two billion a month or something.”

  • Scarcity forced an engineering discipline that modern abundance can obscure. Under MS-DOS, wasting 10K meant “every machine in the world now has 10K less”; NT debugging meant reading assembly across Intel, MIPS, Alpha, and PowerPC, without source-level debugging or Git. Plummer estimates his professional life was 20% creation and 80% debugging, turning bug-fixing competence into a scarce organizational asset.

  • Plummer repeatedly converted private tools into products, distribution, and eventually Microsoft features. HyperCache sold a couple thousand copies at $20 or $40 and helped him cold-email his way from Saskatchewan into Microsoft; Visual ZIP financed a used red 1993 Corvette before becoming Windows ZIP folders. Later, a $10,000 uncapped banner campaign produced about $38,000 in sales, demonstrating powerful software economics—but also how quickly optimization can cross regulatory and reputational boundaries.

  • The Windows debate is ultimately about whether platform breadth compounds trust or maintenance cost. Lex argues that power-user customization creates an aura of care and attracts developers; Plummer counters that every taskbar position expands code, testing, staffing, and security surface, and cutting features might ship a rewrite four months sooner. They agree that constant UI churn prevents craftsmanship and that an operating system loses long-term goodwill when “recommended settings” feel like an attempt to override the user.

  • Plummer treats autism as an operating model with exceptional focus and explicit communication requirements, not a synonym for low empathy. His framing is monotropism: a “serial single-tasker” can bring extraordinary intensity to rewarding work but may miss implied motives, sarcasm, or emotional cues. His career advice is therefore concrete—“sell what you can do, and not yourself”—while his management lesson is to ask directly because every employee has different incentives.

  • AI already gives experienced programmers leverage across unfamiliar languages, but Plummer rejects the idea that expertise has become optional. He used generated Python while building a Dueling Deep-Q agent that reaches about level 36 in Tempest, versus his own level 96 play, because he can read the output and specify what comes next. His longer-term model is bridge design: programmers will move components and interfaces instead of individual lines, though “give me a Linux kernel that’s compatible with Linux” remains beyond current systems.

Deep dive

1. Programming began as physical access, not a curriculum

  • Around 1979 or 1980, 11-year-old Plummer bicycled to RadioShack and volunteered to assemble its unopened TRS-80 Model 1, Level 1, 4K machine. He knew nothing about computers and initially typed English at BASIC; PRINT 2+2 worked, encouraging commands no interpreter could understand.

  • RadioShack let him return every Thursday and Saturday, creating the first half of his vocation: “All I wanted to do was ride my bike back there and have more time with it.” In retrospect, he ranks the Commodore 64 above the Apple II because its higher sales probably exposed more people to computing.

  • A failed Commodore 64 floppy drive forced him onto cassette and a machine-language monitor with no assembler. He entered 6502 opcodes in hexadecimal and built a Galaga clone whose sequential, non-relocatable structure resembled “programming a tape”: adding code meant jumping elsewhere, doing the work, and jumping back.

  • His first data-management lesson was brutal—he copied a blank floppy over weeks of work. The loss carried “a huge amount of guilt” because it came from rushing, but the vanished game remains his most complicated project written directly in machine language.

2. A life can change through accumulated small decisions

  • Plummer did not consciously quit high school; he attended “less and less and less” until returning became embarrassing. His warning is sharper than a dropout cliché: repeatedly deciding only “I’m just not gonna go to class today” eventually makes the much larger decision for you.

  • Without a diploma, he worked at 7-Eleven and in a paint warehouse. The turning point was dipping gasoline tanks at 40 below with a 15- or 20-foot wooden measuring pole, catching it as it slipped, and driving roughly a thousand splinters into his hands: “I don’t want to do this for a whole life.”

  • At 21, he persuaded a principal to readmit him by answering the capacity objection directly: somebody would drop out, so “let’s assume you have room.” A 1% mercy pass in remedial geometry later nearly ended university; the next semester he started “for real,” did it for himself, and found that motivation transformed his performance.

3. A shareware portfolio opened Microsoft’s front door

  • Plummer financed university with HyperCache, an Amiga file-system cache. Most was C, with the tight transfer path in 68000 assembly; its N-way associative design matched drive geometry and prefetched around track-level access.

  • Distribution began through Usenet and Amiga forums with a 30-day trial, then expanded into retail inventory. A call for 50 copies at $20—$1,000 around 1989—felt enormous; overall, he sold a couple thousand copies at either $20 or $40 under the applicable terms.

  • While converting a phone company’s UBNet to TCP/IP, he read a history of Microsoft and recognized the culture he wanted. He searched HyperCache registration cards for Microsoft email addresses, cold-emailed three or four people, and reached Alasdair Banks, then likely Ben Slivka, who interviewed him for an MS-DOS internship.

4. Microsoft’s advantage was concentrated intellect and a simple standard

  • Plummer’s first impression was humbling: Microsoft was “the single most potent assemblage of smart people” he had encountered. The local expert’s smarter friend probably worked there, so arriving as “the big cheese from your small town” meant discovering how high the internal standard ran.

  • His explanation of Gates is focus rather than mystique: Gates made a computer in every home and on every desk his “special interest,” pursued it relentlessly, and recruited people as smart as or smarter than himself. The result was “an almost unstoppable machine of intellect” aimed at products that could be technically simple yet commercially exact.

  • Before DOS, Microsoft was largely a language company. Plummer says its deal to have MS-DOS included with every PC, without charging IBM a lot of money for it, established a standard Microsoft leveraged for decades—part luck, part recognition that platform position mattered more than maximizing the initial license.

  • MS-DOS itself was “90%” command launcher: find a named program in the directory or path, load it, and execute it. Environment variables, scripting, and device access added some complexity, but it lacked multitasking and a graphical interface; the famous “nobody will ever need more than 640K” quote was not Gates.

5. Memory scarcity made every byte a global product decision

  • The 640K limit was not merely what DOS developers could use; every byte the operating system consumed disappeared from the customer. Plummer’s framing captures the scale responsibility: “If you use 10K needlessly, every machine in the world now has 10K less.”

  • His disk-cache background made CD-ROM caching a natural first assignment. With CD-ROMs newly arriving and Microsoft Bookshelf among the few applications, intelligent caching could improve access “by dozens of times,” turning an intern’s specialized shareware knowledge into an immediate platform performance win.

  • He also moved SmartDrive and eventually the DoubleSpace compression engine into high memory. Plummer hedges that he may have the A20-line polarity backward, but the technique used segment and offset arithmetic above one megabyte, placed code in an extra roughly 64K, and left low-memory stubs to jump into it.

6. Windows 95 won the home while NT rebuilt the foundation

  • Plummer briefly worked on Windows 95’s OLE presentation cache, preserving metafile renderings of embedded Word or Excel content so the source application need not load repeatedly. Windows 95 extended the 16-bit Windows 3.1 line with 32-bit support, VxD drivers, and an entirely new shell whose Start menu helped make the release feel revolutionary.

  • His impact ranking is deliberately non-consumer-centric: OS/360 first, Windows 95 second, and Linux third. The case for OS/360 is compatibility—a COBOL program from 1962 could, in his example, travel forward to an IBM z17—while Linux’s near-ubiquity on servers gives it greater practical reach than Unix’s more academic lineage.

  • NT was closer to a clean-sheet industrial operating system. Microsoft recruited Dave Cutler and other DEC engineers after projects including PRISM and MICA were canceled; NT was written primarily in C rather than OS/2’s assembly, though Plummer is uncertain how much OS/2 code or design the team could actually reuse.

  • Plummer’s shell group ported the Windows 95 interface to NT, converting eight-bit ANSI assumptions to 16-bit Unicode. Porting meant examining everything line by line—“breaking into somebody’s house and going through all their stuff”—including elegant public rooms and profane, 200-character-wide code hidden in the nightstand.

7. Old Microsoft shipped through overnight stress and raw assembly

  • A workday began by downloading a fixed MS Mail address book for roughly 10,000 to 15,000 employees over 10-megabit networking. While that consumed the first hour, developers investigated machines crashed by “Stress,” the overnight process that commandeered idle PCs, ran tests, and attached failed systems by serial cable to a debugger.

  • Once crashes were triaged, Plummer returned to coding—meaning bug-fixing and porting about 80% of the time. He wrote side projects partly to “get it out of my system,” while the day job of repairing other people’s code supplied an unusually deep education.

  • Debugging NT required reading raw assembly call stacks even when the source was C. A crash could arrive on Intel, MIPS, Alpha, or PowerPC, each with a different instruction set; Plummer became strongest on MIPS, so those failures naturally flowed toward him.

  • Tooling was the missing multiplier. The teams used diff and manual deltas; Plummer says Git and effortless branching would have made the work “immensely easier.” People were foundational, but “tools are everything” because they determined how safely those people could coordinate changes.

8. Strong architects enforced quality, but intellect could become theater

  • Lex likens Cutler to Linus Torvalds in the Linux world; Plummer identifies Cutler as NT’s kernel architect and says he was the driving force behind it. Plummer describes him as both “wicked smart” and “like a farmer”: he followed work closely, demanded completion, and refused to tolerate bad code entering his operating system. That taskmaster style imposed DEC’s engineering discipline on Microsoft and, in Plummer’s view, paid off.

  • Debate could nevertheless deteriorate from technical evaluation into status competition. He remembers an open NT mailing-list complaint about the Cairo boot experience provoking an artfully furious flame, and says some disputes reached the point where “the technical merits…are secondary” to besting the other person.

  • His lingering loss involved variable-length shell ID lists on MIPS. Odd-byte boundaries forced exception handling and manual string copying, making reads perhaps 100 to 1,000 times more work; he wanted Windows 95 to guarantee even lengths despite a beta having shipped, but the argument became personal and he lost.

  • Plummer still believes the resulting Windows path is “thousands of times slower than it has to be.” The practical concession is equally important: nobody cares because it remains plenty fast, illustrating how technically inferior decisions can persist indefinitely when hardware makes the cost invisible.

9. Debugging rigor starts by asserting what cannot be true

  • Plummer estimates his professional output as 20% creation and 80% debugging, partly because competence attracted more ugly failures. Day-long bugs usually resolved either as an embarrassingly small syntax mistake—“Oh, extra semicolon”—or a genuinely difficult interaction such as cross-threaded apartment behavior.

  • Task Manager occasionally displayed total CPU use above 100%. Kernel engineers initially treated it as a user-land mistake, so Plummer asserted every preparatory sum and the final total; when those never failed, he embedded his phone number in an assertion to catch a live reproduction.

  • Stress eventually captured the event under a debugger and proved a kernel accounting defect. The kernel team fixed it, while Plummer’s commented-out phone number shipped and later appeared in leaked NT source—letting him find Task Manager code online by searching for his own number.

  • His rule is categorical: “I don’t assert things that I hope aren’t true. I assert things that I know cannot be true.” Assertions should grow organically with each function’s assumptions—non-null pointers, valid counts, impossible states—because firing is a favor, not an embarrassment.

10. Task Manager endured because failure was designed out

  • Task Manager began at home as a tool Plummer wanted personally. The prototype read performance data from the registry; once inside Microsoft, internal calls such as NtQuerySystemInformation and NtQueryProcessInformation supplied fast answers, enabling it to ship with NT 4.0 as both inspection tool and mechanism for killing failed applications.

  • Reliability mattered more than feature breadth. Any call that might touch a network path and wait 90 seconds ran on another thread, so the interface remained responsive even when dependencies stalled. That defensive multithreading increased internal complexity but kept the app available precisely when the rest of the system was unhealthy.

  • The original executable was about 87K. Plummer refused to link the C runtime, avoiding roughly another 96K, then manually invoked C++ object constructors from dispatch tables; he characterizes the result as C with objects, achieved through “a lot of extra work” for an exceptionally small, tight binary.

  • Rows and columns carried dirty bits so only changed cells were repainted, a technique he independently likens to Hamming code. Resizing remained smooth, 32 CPUs could wrap after eight graphs, and the design survived hardware nobody had then; modern drawing, dark-mode, and XML layers make it roughly 4MB, but he believes most original code remains.

11. Pinball and activation show the value of trusted rescue engineers

  • To prove NT could deliver responsive graphics, Plummer spent roughly three months porting Space Cadet Pinball. Assembly-heavy code had to become portable C for MIPS and other architectures, while a roughly 50-entry state engine—including an Easter egg—was preserved as a black box beneath his drawing and sound work.

  • A timing bug explains why modern Pinball feels different: it renders as many frames as possible, potentially 5,000 per second rather than about 30. Physics are therefore interpolated thousands of times, producing behavior Plummer calls arguably better, or at least different, despite preserving the original game logic.

  • Solitaire and Minesweeper were included less as entertainment than mouse training—drag-and-drop for Solitaire and likely right-click flagging for Minesweeper. Pinball served a different platform purpose: visual evidence that the supposedly industrial NT could also feel fast.

  • Late in Windows XP, a slipped effort to adapt Office activation was handed to Plummer because he could fix things quickly. Working with DRM and research teams, he shipped activation in time; he suspects the revenue impact was substantial but does not know, and calls telephone activation an “albatross” for both users and operators reading encoded hardware and product-key data.

12. Visual ZIP turned craftsmanship into acquisition leverage

  • In 1993, Plummer saw a roughly $300,000 house with a Torch Red 1993 Corvette outside, clipped the listing photo, and taped it to his monitor. Nightly coding gave him both the creativity missing from bug-fixing work and a possible second income stream.

  • Starting from a shell-folder sample, he incrementally added ZIP handling and sold Visual ZIP for $19.95 or $29.95. Microsoft later cold-called its author without realizing he was already an employee; the confusion ended only when he asked which building he should walk to.

  • Refusing Microsoft’s offer would have meant either quitting to keep selling or remaining and abandoning the income, so he accepted and bought a used red 1993 Corvette. Internally, Windows removed encryption—then treated like a munition—and likely multi-volume support to simplify a ubiquitous platform feature.

  • Plummer traces ZIP’s demand to BBS-era modem economics and Phil Katz’s PKZIP, when executables might compress to roughly half size. The old implementation now exposes its era: on a “96-core 7995,” Windows ZIP extraction still uses only one core and “could be vastly improved.”

13. Customization trades user delight against permanent complexity

  • Lex’s complaint about Windows 11 is strategic, not cosmetic: taskbar and Start-menu freedom would reward power users, create reputation, and signal a company where individual engineers can lavish care on details. His analogy is a film whose subtle touches reach few viewers directly but strengthen the whole work’s aura.

  • Plummer’s pushback—worth keeping—is that freedom is not free. Supporting left, top, right, multiple rows, and altered layouts expands rendering logic, testing, bug surface, and staffing; Lex additionally raises the possibility of security vulnerabilities. Removing those branches might let a rewritten taskbar ship four months earlier.

  • Their deeper agreement is that ownership time produces polish. Plummer argues a component cannot settle if its UI churns every release; Lex counters that a passionate individual, as with Task Manager, can still create something wonderful quickly if management allows side-project energy to flourish.

  • Plummer adds the Steve Jobs question: offering four choices might imply the designer failed to find the right one. Lex accepts Apple’s model but sees Windows as the contrasting platform—broad hardware, Linux compatibility, and developer openness—whose interface should express the same pluralism.

14. Growth hacks can monetize demand while quietly spending trust

  • At Software Online, Plummer bought banner ads without setting a cap and returned to find roughly $10,000 charged. The shock reversed when he saw about $38,000 in sales: “All I have to do is scale that,” a loop he repeated for several years.

  • Regulatory trouble was the scariest non-family-health episode of his life. Washington’s attorney general brought about 12 claims; Plummer became stuck on the 10 he regarded as plainly false, while the consequential two concerned a daily post-trial reminder and default physical-media fulfillment.

  • The settlement reduced reminders from at most once daily to roughly once weekly, he believes, and required one-click uninstall. A checked box added $3.95 or $4.95 for a mailed disc because early-2000s buyers expected media, but Plummer says defaulting to the higher price was an a priori violation of negative-option billing in Washington State.

  • Plummer now sees how ads framed around sex, fear, or greed can land differently from intended, particularly when his autism made his own interpretation feel universal. Windows triggers the same trust problem when “recommended settings” may restore Edge: Lex sees passive usage gains but reputational loss; Plummer’s phrase is cleaner—“You don’t want your operating system to be an adversary.”

15. Platform folklore often hides practical engineering causes

  • Plummer helped prototype Windows Media Center around 1996 as a distant-viewing interface. The team initially had only MPEG files including Raging Rudolph and, he thinks, the original South Park Christmas video, then installed a rooftop satellite dish because the building could not receive cable.

  • A blue screen is the kernel’s last safe action when an impossible condition—such as an illegal write or double free—makes continued execution dangerous. NT’s white-on-blue display was not chosen for easy lab spotting: Jon Viert matched both the MIPS firmware and his Visual SlickEdit environment so coding, booting, crashing, and rebooting shared one palette.

  • Rebooting “covers a lot of sins.” It releases leaked memory and resets applications that have entered rare, untested states; multiple programs in such states can create Lex’s “meta goofy state,” making a clean restart disproportionately effective.

  • Plummer’s admired code includes the NT kernel’s unusually high standard and Bob Day’s named-pipe replacement for Windows 95’s shared shell memory. Among releases, he favors Windows 2000 Server; both speakers give XP exceptional marks for longevity, completeness, stability, and what Lex calls consistent design and Plummer simply calls “crisp.”

16. Clean structure and comparable benchmarks expose language tradeoffs

  • Plummer now writes clean skeletal code first and fleshes it out, reversing his earlier habit of accumulating code before cleanup. Too many projects become structurally “not fixable,” so complexity control must begin before feature pressure hardens the wrong shape.

  • His core languages are assembly and C++. He writes either modern C++ 20 without pointers or character strings—“basically as safe as Rust as far as I’m concerned”—or “C with classes,” using polymorphism and encapsulation while retaining C’s mental model.

  • A one-terabyte-RAM machine supports GitHub Primes, where one prime-sieve algorithm is expressed in roughly 100 languages, containerized, and benchmarked nightly. The test sieves to 100 million repeatedly inside a five-second loop across all cores, permits at most one bit per integer, and requires allocation inside the timed loop.

  • Zig was leading when Plummer last checked, but the ranking moves as C++ contributors improve their version and “the Zig guys get angry” and respond. Multiple C, GCC, Clang/LLVM, PowerShell, and exhibition implementations reveal both language constraints and backend commonality; Rucker and Tudor now manage the project after contributions outgrew Plummer’s initial Python, C#, and C++ comparison.

17. Tempest makes AI programming measurable against a human expert

  • Plummer holds the Tempest world record and reaches level 96. The 1980 vector game is “3D Space Invaders wrapped into a shape,” with 360-degree movement, eight simultaneous shots, roughly 11 enemies and spikes, a rotary optical spinner, fire, and an emergency super zapper.

  • To train an agent, he extracted and reverse-engineered the ROMs, mapped zero-page variables and relevant game state, then built Lua code to read memory while the game runs. Lua sends parameters over a socket to Python, where a Dueling Deep-Q system learns the policy.

  • The agent reaches about level 36—already better than most humans but far below Plummer. With a couple thousand lines each of Lua and Python working together, he calls the project 95% complete; the remaining uncertainty is model size, layers, hyperparameters, and whether tuning can cross the learning threshold.

  • Cursor helped because Plummer was new to Python: his hand-written version might be four times longer than terse generated code. He calls this “vibe coding,” but only in the sense that an experienced programmer can understand the output, judge it, and know what instruction comes next.

18. Autism concentrates attention while obscuring implied state

  • Plummer’s foundational model is monotropism: his brain does one thing intensely, then moves to another. He is “a serial single-tasker,” with sensory sensitivities and repetitive behaviors; when those cannot be moderated or accommodated, he says they rise to a disorder affecting perhaps 1% to 2% of people.

  • The advantage is extraordinary focus on work he loves, finds rewarding, and can visibly advance. ADHD creates the paradox: acquiring focus is difficult and distraction easy, but once “locked in,” he becomes very hard to pull away.

  • The central social difficulty is not knowing what other people think. Plummer runs “a little proxy NPC game” using what he would feel in their position; telephone calls remove facial cues, making sarcasm and implied meaning harder than FaceTime.

  • His intentionally crude tests illustrate the pattern: people on the spectrum may prioritize creativity over cooperation, and may say a room still contains 10 chairs after six people sit down. As a child, “big enough to hold a horse” produced questions about bringing a horse into the kitchen, not recognition of hyperbole.

19. Explicit systems can substitute for social intuition

  • Plummer’s career advice is to “sell what you can do, and not yourself.” A portfolio, GitHub history, algorithm, performance, or musical recording gives employers evidence that does not depend on succeeding at the personality theater of an interview.

  • Management exposed the limits of assuming others share his motives. Employees variously want affirmation, money, consequential meetings, or decision rights; he learned to ask overtly because their “hopes, dreams, aspirations” are not inferable from his own incentive structure.

  • His “emotional post-processing” replays uncertain interactions afterward and asks what he missed, whether repair is needed, and how to handle the pattern next time. Ten years after appearing underwhelmed by a three-year car restoration, he emailed his appreciation; the shop owner replied, “I’ve thought of that moment.”

  • Plummer rejects the idea that autism eliminates empathy: he may not detect distress, but can feel it intensely once told. The practical request is “be really specific”; masking means consciously manufacturing posture, expression, gesture, and tone, while meltdowns occur when overload flips the brain into panic and fight-or-flight.

  • His 31-year marriage uses explicit status checks—“You good?”—whose answer and tone together carry the signal. One early sign of their difference came when he wondered whether a neighbor’s brick pillars were hollow or concrete-filled and his future wife asked, “Why do you have a place in your head that cares about that?”

20. Programming will rise in abstraction, but judgment remains the scarce layer

  • Plummer does not believe novices can simply vibe-code reliable production systems. The user must read generated code, understand the domain, detect failure, and direct the next step; for a strong programmer entering a new language, however, AI can make them “incredibly powerful.”

  • His forecast resembles bridge construction: engineers once manipulated individual beams, while architects now assemble larger preformed structures in AutoCAD. Programmers will likewise move components and interfaces and describe interactions rather than place individual lines.

  • The limit is still substantial. Today one cannot ask, “Give me a Linux kernel that’s compatible with Linux,” and receive the whole system; Plummer thinks that day will come, but says “we’re still quite a ways” from whole-cloth generation at that complexity.

  • Having lived from TTL logic and hand-entered machine code through C++, Python, and AI gives him a layered picture that will be hard for newcomers to reproduce. His compact answer to life’s meaning follows directly: “Making cool stuff”—complex, useful things other people can use—then maybe raising a couple of good children to take the baton.