Interview, Fireside Chat
Dave Plummer: Programming, Autism, and Old-School Microsoft Stories | Lex Fridman Podcast #479
Early Computing and Education
- Plummer's first computer was a TRS-80 Model 1 (4K RAM) used in 1979–1980 at age 11; he self-installed the machine after a Radio Shack employee refused to.
- He initially attempted to write programs using natural language commands, eventually realizing the need for specific syntax in the BASIC interpreter.
- His first functional program was a clone of Galaga written in hand-coded 6502 machine language due to a lack of assembler; he accidentally deleted the source code by corrupting his backup floppy.
- The Commodore 64 was identified as a potentially more influential computer than the Apple II due to higher sales volume and broader impact on the population.
- Plummer dropped out of high school through a gradual "slip" of not attending classes rather than a single definitive event; he returned at age 21 after a revelatory experience cleaning gas tanks at a 7-Eleven.
- He describes the "slip" as a dangerous cumulative decision where small absences compound into a major life deviation; he advocates for making non-standard life choices explicitly and intentionally.
- Plummer credited a "fresh start" in college after receiving a Mercy Pass in a remedial geometry class, which reset his academic trajectory.
Career at Microsoft: MS-DOS and Windows 95
- Plummer secured an internship at Microsoft in 1990 by cold-emailing a contact after discovering his email address while looking through registration cards for his shareware product, HyperCache (an Amiga file system cache).
- HyperCache was written primarily in C with 68000 assembly for data transfer; it sold thousands of copies and funded his education.
- Plummer characterizes the early Microsoft environment as an "almost unstoppable machine of intellect" where even top engineers from other companies felt dwarfed by the collective talent.
- Bill Gates is described as relentlessly focused on the vision of "a computer in every home" and hiring talent smarter than himself to execute simple but market-essential products like MS-DOS.
- MS-DOS functioned as a command launcher with a 640K memory limit; Plummer clarifies that the famous "640K is enough" quote is apocryphal but the constraint was real.
- Plummer contributed to MS-DOS by implementing CD-ROM caching and moving memory-intensive components like SmartDrive into high memory (above 1MB) to bypass the 640K barrier using A20 line logic.
- He joined the Windows 95 team to work on the "Presentation Cache," which allowed embedded OLE objects (e.g., Excel sheets in Word) to render without reloading the full application each time.
- Plummer joined the Shell team shortly after, porting the Windows 95 user interface to the Windows NT kernel, a process that involved converting 8-bit ANSI strings to 16-bit Unicode.
- Plummer rates Windows 95 as the second most impactful operating system ever, behind IBM's System/360 (which he views as dominant on the business side) and ahead of Linux (which he views as dominant on the server/programmer side).
- Windows NT was a clean-sheet design led by Dave Cutler (formerly of DEC), involving a team of engineers who switched from Assembly to C and enforced a rigorous, "farmer-like" leadership style.
- Plummer notes that while the engineering teams were brilliant, internal debates often devolved into personal conflicts over trivial syntax details, sometimes overshadowing technical merit.
Technical Contributions: Task Manager and Zip Folders
- Plummer created the Windows Task Manager as a personal side project to monitor system resources; it was originally 87KB and later expanded to 4MB with added layers.
- Task Manager was designed to be robust by avoiding the C runtime entirely and manually managing object constructors to minimize footprint and prevent linking issues.
- He implemented a "Hamming code"-like optimization to efficiently detect and repaint only the changed cells in the process list, ensuring smooth resizing and high performance.
- Task Manager originally shipped with Windows NT 4.0 and remains functionally recognizable in modern versions, though it has been stripped of its original "spaghetti code" and added security checks.
- Plummer famously left his home phone number in an assertion statement while debugging a Task Manager bug that reported >100% CPU usage; the bug was ultimately traced to a kernel accounting error.
- The phone number in the source code became a "digital timestamp" allowing him to trace the source code via Google searches years later.
- Plummer developed "Visual ZIP," a shareware shell extension for Windows that allowed users to create and open ZIP files; it was acquired by Microsoft during the development of Windows XP.
- The acquisition occurred when Microsoft, unable to ship Windows XP with ZIP support on time, cold-called the author of Visual ZIP and negotiated an internal buyout; Plummer used the funds to buy a Corvette.
- The final Windows ZIP implementation omitted features like encryption and multi-volume support to comply with export controls and simplify the codebase.
- Plummer notes that Windows 11's removal of taskbar customization (moving it only to the bottom) was likely a scheduling decision to reduce code complexity and bug surface area, despite power user demands.
- He argues that limiting customization reduces maintenance costs for the OS but sacrifices the "aura" of craftsmanship that attracts high-quality engineers.
Space Cadet Pinball and Windows Activation
- Plummer ported Space Cadet Pinball (3D Pinball) from the Windows 95 platform to Windows NT, rewriting assembly code into C to support multiple architectures (MIPS, Alpha, PowerPC).
- The port preserved the original physics engine, a massive state machine, but introduced a bug where the game rendered at frame rates up to 5,000 FPS, altering physics interpolation compared to the 30 FPS original.
- Solitaire and Minesweeper were included in Windows not as games, but as "educational tools" to teach users mouse drag-and-drop and right-click flagging mechanics.
- Plummer was brought in late in the Windows XP cycle to complete the Windows Activation system after previous attempts had failed; the system relies on hardware IDs and product keys transmitted to a backend server.
- He notes that phone activation was a tedious process for support staff and users, often requiring the reading of long strings of characters representing hardware parameters.
- Plummer criticizes the modern Windows tendency toward "dark patterns" in user interfaces (e.g., making it difficult to opt-out of Microsoft Account usage) as adversarial to user interests.
Post-Microsoft Projects and Current Work
- Plummer's company, Software Online, faced legal action from the FTC/AG regarding aggressive nagware tactics (reminding users to upgrade weekly instead of daily) and default billing practices.
- The experience taught him the importance of transparency and the need to avoid "fear, greed, and sex" marketing tactics that might alienate users on the autism spectrum or others.
- He currently runs a project called "GitHub Primes," benchmarking prime number calculation algorithms across 100+ programming languages to determine language performance.
- In GitHub Primes, Zig currently outperforms Rust, C++, and Python by a significant margin; the project uses a strict 100 million prime sieve algorithm to ensure fairness.
- He is building a high-end PDP-11 minicomputer restoration project, aiming to install a 4MB RAM configuration and an RA-82 14-inch hard drive, requiring kernel recompilation for device drivers.
- He is developing a Reinforcement Learning AI to play the Atari 3D vector game Tempest, using Lua to extract memory states and Python to process the data via a Dueling Deep Q-Network.
- Plummer utilizes AI coding assistants (Cursor) to learn Python for his side projects, describing the process as "vibe coding" which allows experienced programmers to quickly prototype without memorizing syntax.
Autism, Neurodiversity, and Philosophy
- Plummer identifies his cognitive style as "monotropism," characterized by intense, single-minded focus on specific interests rather than multitasking.
- He describes "masking" as the exhausting performance of acting neurotypical, involving the conscious simulation of facial expressions, tone, and body language.
- He utilizes "emotional post-processing" (replaying social interactions later) to analyze missed cues and improve future social interactions.
- Plummer observes that autistic individuals often prioritize "creativity" and "problem-solving" over "cooperation," which is often the primary value for neurotypical individuals.
- He advocates for autistic individuals in the workplace to showcase portfolios and technical achievements rather than relying on social charm or "personality" interviews.
- He notes that while he lacks intuitive empathy, he can achieve deep empathy once the specific feelings and context of another person are explicitly communicated to him.
- He argues that the "single-minded focus" of autism, combined with a curiosity about the internal mechanics of systems, makes the condition highly correlated with exceptional engineering talent.
- Plummer views the future of programming as a shift toward "architecture" and "component assembly" using AI, rather than writing individual lines of code, comparing it to the shift from manual welding to CAD design.
- He believes that the rapid rise of abstraction layers (natural language to code) makes it difficult for new generations to understand the underlying hardware and system constraints without lived experience.
- He defines the meaning of his life as the ability to create complex, useful things that leverage his creative and problem-solving abilities, a feat he finds impossible through traditional arts.