Why am I passionate about this?

I love computers, and especially computer systems. I’m interested in how different pieces of hardware and software, like processors, operating systems, compilers, and linkers, work together to get things done. Early in my career, as a software security tester, I studied how different components interacted to find vulnerabilities. Now that I work on compilers, I focus on the systems that transform source code into a running program. I’m also interested in how computer systems are shaped by the people who build and use them—I believe that creating safer, more reliable software is a social problem as much as a technical one.


I wrote...

Writing a C Compiler: Build a Real Programming Language from Scratch

By Nora Sandler,

Book cover of Writing a C Compiler: Build a Real Programming Language from Scratch

What is my book about?

Compilers are at the heart of everything programmers do, but even experienced developers find them intimidating. My book is a…

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

The books I picked & why

Book cover of The Elements of Computing Systems: Building a Modern Computer from First Principles

Nora Sandler Why did I love this book?

Before I read this book, I knew a bunch of facts about the different pieces of computer systems. After I read it, I understood how those pieces fit together. Building all those pieces myself, starting from the simplest logic gates and working my way up, made some fundamental concepts finally click—like how a processor decodes an instruction.

I especially loved the book’s hands-on structure: each chapter is a project where you get a specification and test suite for the component you need to build, but you have to figure out exactly how to build it for yourself. Completing the projects often felt like solving a fun puzzle, and it made the concepts stick in a way that just reading about them wouldn’t have.

By Shimon Schocken, Noam Nisan,

Why should I read it?

1 author picked The Elements of Computing Systems as one of their favorite books, and they share why you should read it.

What is this book about?

A textbook with a hands-on approach that leads students through the gradual construction of a complete and working computer system including the hardware platform and the software hierarchy.

In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements of Computing Systems gives students an integrated and rigorous picture…


Book cover of Hacking: The Art of Exploitation

Nora Sandler Why did I love this book?

One of the best ways to understand how software works is to study how it fails. When I was just starting my career in software security, I read this book to learn about binary exploits like buffer overflows. It’s been a long time since I’ve written a binary exploit, but digging into the nitty-gritty, low-level details of how software runs on a real system has helped with everything I’ve done as an engineer since.

A lot has changed since this book was published in 2008 (and running the accompanying Live CD has gotten trickier), but the fundamental concepts are as relevant as ever.

By Jon Erickson,

Why should I read it?

1 author picked Hacking as one of their favorite books, and they share why you should read it.

What is this book about?

Hacking is the art of creative problem solving, whether that means finding an unconventional solution to a difficult problem or exploiting holes in sloppy programming. Many people call themselves hackers, but few have the strong technical foundation needed to really push the envelope. Rather than merely showing how to run existing exploits, author Jon Erickson explains how arcane hacking techniques actually work. To share the art and science of hacking in a way that is accessible to everyone, Hacking: The Art of Exploitation, 2nd Edition introduces the fundamentals of C programming from a hacker's perspective. The included LiveCD provides a…


Book cover of Meltdown: Why Our Systems Fail and What We Can Do About It

Nora Sandler Why did I love this book?

This isn’t a technical book, but it gets to the heart of why so much software is fragile and insecure. This book examines spectacular failures of all sorts, from nuclear meltdowns to plane crashes to oil spills, but I loved it because its message resonated with my own experience writing and debugging code. It argues that complex, tightly coupled systems involving hidden interactions and close coordination between lots of different parts are more likely to fail catastrophically. It also talks about strategies to make those systems safer, like doing “premortems,” getting advice from outsiders, and building diverse teams.

My big takeaway? Technical solutions alone won’t make software (or other complex systems) safer. We need to change how we build and how our organizations work, too.

By Chris Clearfield, András Tilcsik,

Why should I read it?

1 author picked Meltdown as one of their favorite books, and they share why you should read it.

What is this book about?

A groundbreaking take on how complexity causes failure in all kinds of modern systems—from social media to air travel—this practical and entertaining book reveals how we can prevent meltdowns in business and life.

A crash on the Washington, D.C. metro system. An accidental overdose in a state-of-the-art hospital. An overcooked holiday meal. At first glance, these disasters seem to have little in common. But surprising new research shows that all these events—and the myriad failures that dominate headlines every day—share similar causes. By understanding what lies behind these failures, we can design better systems, make our teams more productive, and…


Book cover of Recoding America: Why Government Is Failing in the Digital Age and How We Can Do Better

Nora Sandler Why did I love this book?

Although I don’t work in government, this is a book I’ll come back to whenever I need a reminder to put user needs ahead of process or wisdom about how to work inside a large bureaucracy to make that happen. Where Meltdown focuses on spectacular blow-ups, this book explores run-of-the-mill failures—like long, complicated online forms and websites that only load in specific, outdated browsers. (Though bigger failures, like the launch of healthcare.gov, get airtime too.)

I appreciated this book’s thoughtful analysis of how government software gets built—it goes beyond the stereotype of the incompetent government employee and digs into the underlying reasons that even competent and dedicated public servants can struggle to deliver critical software. Many of those reasons apply to private companies, too. 

By Jennifer Pahlka,

Why should I read it?

1 author picked Recoding America as one of their favorite books, and they share why you should read it.

What is this book about?

Learn more about Jennifer Pahlka's work at recodingamerica.us.

"The book I wish every policymaker would read."
-Ezra Klein, The New York Times

A bold call to reexamine how our government operates-and sometimes fails to-from President Obama's former deputy chief technology officer and the founder of Code for America

Just when we most need our government to work-to decarbonize our infrastructure and economy, to help the vulnerable through a pandemic, to defend ourselves against global threats-it is faltering. Government at all levels has limped into the digital age, offering online services that can feel even more cumbersome than the paperwork that…


Book cover of Twitter and Tear Gas: The Power and Fragility of Networked Protest

Nora Sandler Why did I love this book?

This book gave me a new framework for thinking about how political change happens and how technology shapes our society. It analyzes how social media platforms like Facebook have helped antiauthoritarian movements achieve dazzling success almost overnight—and how those platforms have weakened and endangered those same movements. I loved that this book was clear and readable without oversimplifying the topic. It showed—as Tufecki writes, quoting another scholar—that “technology is neither good nor bad; nor is it neutral.”

This isn’t exactly a book about computer systems, but I decided to include it because it gave me a deeper understanding of how technological and social systems influence each other—which I hope will change how I write software myself.

By Zeynep Tufekci,

Why should I read it?

3 authors picked Twitter and Tear Gas as one of their favorite books, and they share why you should read it.

What is this book about?

From New York Times opinion columnist Zeynep Tufekci, an firsthand account and incisive analysis of the role of social media in modern protest

"[Tufekci's] personal experience in the squares and streets, melded with her scholarly insights on technology and communication platforms, makes [this] such an unusual and illuminating work."-Carlos Lozada, Washington Post

"Twitter and Tear Gas is packed with evidence on how social media has changed social movements, based on rigorous research and placed in historical context."-Hannah Kuchler, Financial Times

To understand a thwarted Turkish coup, an anti-Wall Street encampment, and a packed Tahrir Square, we must first comprehend the…


Explore my book 😀

Writing a C Compiler: Build a Real Programming Language from Scratch

By Nora Sandler,

Book cover of Writing a C Compiler: Build a Real Programming Language from Scratch

What is my book about?

Compilers are at the heart of everything programmers do, but even experienced developers find them intimidating. My book is a fun, hands-on introduction to this fascinating topic. It guides you through a project where you’ll build your own compiler for a significant subset of C, targeting real x86-64 assembly code.

You’ll first build a working compiler for the simplest C program, then add new features chapter by chapter. The algorithms in the book are all in pseudocode, so you can implement your compiler in whatever language you like. Along the way, you’ll learn about fundamental topics like abstract syntax trees, recursive descent parsing, and register allocation. The book’s test suite is available on GitHub to help you stay on track.

You might also like...

Secret St. Augustine: A Guide to the Weird, Wonderful, and Obscure

By Elizabeth Randall, William Randall,

Book cover of Secret St. Augustine: A Guide to the Weird, Wonderful, and Obscure

Elizabeth Randall Author Of Fire is the Test of Gold

New book alert!

Why am I passionate about this?

Author Reader Baker Teacher Matriarch Adventurer

Elizabeth's 3 favorite reads in 2023

What is my book about?

Tourists and local residents of St. Augustine will enjoy reading about the secret wonders of their ancient city that are right under their noses. Of course, that includes a few stray corpses and ghosts!

Secret St. Augustine: A Guide to the Weird, Wonderful, and Obscure

By Elizabeth Randall, William Randall,

What is this book about?

It is no wonder the ancient city of St. Augustine is steeped in secrets. St. Johns, the oldest continuously occupied county in America celebrated its 450th birthday on September 4, 2015. More like a European enclave than an urban landscape, it is a place of cannon fire, street parties, historical reenactments, concerts, and more. From admiring replicas of fine art at Ripley’s Believe or Not, to hunting haunts in restaurants and museums, to eating ice cream from a recipe originated by World War II bombardiers, St. Augustine has it all from beaches, gourmet dining, festivals, and attractions. A young and…


5 book lists we think you will like!

Interested in computer networks, social media, and Mount Everest?

Social Media 146 books
Mount Everest 22 books