In this Lex Fridman Podcast episode, Dave Plummer shares his journey from writing code on a TRS-80 Model 1 at Radio Shack to becoming a Microsoft engineer who developed crucial Windows components. Plummer discusses the technical details of his contributions to Windows, including the creation of Task Manager and the implementation of Windows XP's activation system, while explaining how he optimized these tools for efficiency.
The conversation explores how Plummer's autism has shaped his programming career, from enhancing his ability to focus on technical details to presenting challenges in social interactions. He also describes his current projects, including his work with reinforcement learning to master the game Tempest, his restoration of vintage PDP-11 hardware, and his leadership of the GitHub Primes project, which benchmarks prime number algorithms across programming languages.
Sign up for Shortform to access the whole episode summary along with additional materials like counterarguments and context.
Dave Plummer's programming journey began at age 11 when he encountered a TRS-80 Model 1 computer at Radio Shack. His early passion led him to regularly visit the store to use their computers, eventually progressing to writing a Galaga clone on a Commodore 64. Despite dropping out of high school and working low-wage jobs, a pivotal moment at 7-Eleven motivated him to return to education. He successfully completed high school at 21 and went on to thrive in university before joining Microsoft.
As a Microsoft engineer, Plummer developed several crucial Windows components. His Windows Task Manager, initially created for personal use, was designed to be robust and compact at just 87KB. Plummer explains that he optimized it using multi-threading and avoided linking to C runtime libraries for efficiency. He also developed Windows' first zip utility, which Microsoft acquired, leading to his official employment with the company. Additionally, Plummer contributed to Windows Media Center prototypes and implemented Windows XP's activation system, though he acknowledges the activation process was cumbersome for users.
Plummer discusses how his autism has influenced his programming career, noting that his logical, detail-oriented mindset and intense focus benefit his work. However, he explains that he faces challenges with social interactions and non-literal communication. To manage these challenges, Plummer and his wife have developed explicit communication strategies, and he employs what he calls "emotional post-processing" to analyze social interactions after they occur. He advises other autistic individuals to showcase their work through portfolios rather than relying on personality in professional situations.
Plummer describes his recent work with reinforcement learning to master the classic game Tempest, creating an AI that can play up to level 36. He's also invested six months in restoring PDP-11 hardware, combining his passion for vintage computing with hands-on engineering. Additionally, Plummer leads the "GitHub Primes" project, which benchmarks prime number algorithms across various programming languages. He notes that languages like Zig, Rust, C++, and C consistently show the best performance in these tests.
1-Page Summary
Dave Plummer, a former Microsoft programmer, has an unconventional journey that started at a young age with a deep curiosity about computers and led to notable accomplishments in programming.
Dave Plummer's initial encounter with a computer was around 1979 or 1980 at age 11 with a TRS-80 Model 1 in a local Radio Shack. Despite having no experience, he boldly offered to set it up and succeeded. This marked the beginning of his fascination with computers, as he made a regular practice of riding his bike to the store every Thursday and Saturday to use them. His early programming journey included transitioning to a Commodore 64, where he wrote a clone of Galaga using machine language due to the absence of a built-in assembler.
After gradually attending less and less, Dave Plummer eventually dropped out of high school. He found himself in low-wage jobs, such as working at 7-Eleven and a paint warehouse. Plummer describes a pivotal moment while working at 7-Eleven and suffering splinters in his hands from measuring gasoline tanks in cold weather. This discomfort was a wake-up call, motivating him to seek a change in his life.
Despit ...
Dave Plummer's Background and Journey as a Programmer
Dave Plummer, a former Microsoft engineer, played a crucial role in developing several core Windows components. His contributions to the Windows Task Manager, Zip utility, Media Center, and Windows XP Activation reflect his ingenuity and technical prowess.
Plummer was known for having a knack for debugging, which served him well during his time developing the Windows Task Manager, a project he initially began for personal use. Eventually, he brought the Task Manager in-house to Microsoft.
Task Manager was coded in C++ for Windows NT. To optimize its efficiency, Plummer designed it to be robust and compact, with the original version being only about 87KB. He utilized multi-threading so the application would remain responsive and never freeze, separating time-consuming API calls into a different thread from the main app functionality. Intentionally, he didn't link to the C runtime libraries, as doing so would nearly double the app’s size. Although this required manually calling object constructors, the end result was a small and efficient program. Additionally, he developed a system to effectively update the UI, similar to Hamming code, to only repaint cells that had changed or become 'dirty.'
Despite the addition of new features like GPU and thermal tracking, the core functionality of Task Manager has remained mostly unchanged over the years. It was created as a tool for users to manage system processes and track hardware resource usage. The tool’s continued relevance was underscored by Lex Fridman, who mentioned its impact and widespread use.
Before joining the Microsoft shell team, Plummer developed a zip file support shell extension inspired by Windows 95's new shell. He sold hundreds to thousands of copies as shareware before Microsoft acquired the utility, leading him to join the company officially and forgo independent sales.
While integrating zip support into Windows, features such as encryption were excluded to simplify the utility, considering the legal implications of including encryption software in the OS. The zip support was driven by user demand, as there was no native support in Windows to handle zip files at the time.
Dave Plummer's Windows Software Technical Details
Dave Plummer speaks candidly about the influence his autism has had on his life, particularly his career in programming, and the strategies he employs to navigate the neurotypical world.
Plummer, who identifies as a person with autism, talks about his logical and detail-oriented mindset, which he says aids him in his programming abilities. However, he also faces challenges with social interactions due to his literal interpretation of communication.
Dave Plummer discusses how his autism allows him an incredible amount of focus and dedication to tasks he's passionate about, similar to a child's engrossment with playing with trains. He explains that his lifelong focus and curiosity, such as taking apart his mom's oven to see the mechanisms, are advantageous for a programmer. This single-minded focus and creativity in problem-solving are traits he values highly.
Plummer shares his struggles with sensory sensitivities, repetitive behaviors, and difficulty interpreting social cues, especially over the phone. He prefers FaceTime interactions as it helps in better understanding the implied meanings between people. Plummer admits to having a hard time deciphering what others think, often running mental simulations to anticipate responses based on his perspective. Furthermore, he discusses his literal approach to conversations and misunderstanding sarcasm, satire, humor, and figures of speech. He recollects an awkward encounter with Bill Gates, where his challenge with social nuances came to the forefront as he felt compelled to correct an inaccuracy during an introduction. The act of "masking," or emulating natural behaviors in social settings, is a conscious effort for him as he typically relies on explicit communication. Plummer recounts incidents from his childhood and marriage that highlight his direct interpretation of statements.
Plummer and his wife have developed explicit check mechanisms, such as asking "you good?" to gauge each other's feelings since Plummer finds it difficult to understand subtle emotional cues. They also use a lot of affirmation, and the tone of response to their check-in question helps them understand each other better.
Dave Plummer describes using "emotional post-processing," analyzing his social interactions after they occur to understand the social world better. He revisits interactions to consider if he needs to correct anything and how he might handle situations differently in the future. Plummer also shared an anecdote about expressing delayed appreciation to craftsmen who restored his father's car. This reflection helps him navigate future interactions by learning from his past experiences.
...
Dave Plummer: Autism's Impact on His Life and Career
Dave Plummer, a former Microsoft engineer, shares his latest explorations in technology, from mastering classic games through AI to tinkering with vintage hardware and evaluating programming languages’ performance.
Dave Plummer details his method for mastering the classic Atari game Tempest using reinforcement learning. By reverse-engineering the game's ROMs, he extracts real-time game data which he then feeds into a reinforcement learning model.
Plummer first built a Lua application to extract the valuable parts of the game's memory while it runs. He then sends this game data as parameters to a Python-based processing side via a socket. Employing a dueling deep queue network, he teaches an AI to play the game. Impressively, the AI can play up to level 36, surpassing the skills of most human players. As he fine-tunes the hyperparameters, the model approaches a high level of proficiency.
With a burning passion for hardware engineering and vintage computing, Plummer has dedicated the past six months to restoring PDP-11 hardware. He is captivated by the tactile sensation of interacting with the machine’s elements like LEDs, switches, and knobs.
Discussing the intricate process of manipulating the address bus and depositing memory, Plummer’s work on vintage computing hardware, especially an RA-82 drive he aims to rehabilitate, brings to light his deep engagement with the field. He plans not just to make the drive operational but to write a new driver for it, fully integrating it into the kernel.
Dave Plummer leads a project named "GitHub primes", testing the performance of prime number algorithms across an array of programming languages.
Dave Plummer's Current Technical Projects and Hobbies
Download the Shortform Chrome extension for your browser