CoRecursive: Coding Stories - Story: ReiserFS

Episode Date: November 4, 2024

Have you ever known someone who's technical brilliance was overshadowed by personal failings? This is the story of Hans Reiser, a software developer driven to create a superior Linux filesystem, but w...hose difficult personality got in the way.   Then came the disappearance of his wife, Nina, in 2006. The investigation pointed to Reiser, ending with a murder conviction that shocked the tech world.   Reiser's story is a reminder of how technical skills and personal integrity need to go hand in hand. From prison, he reflects on his mistakes, realizing the need for empathy and collaboration. His legacy, once about innovation, now serves as a cautionary tale. Episode Page Support The Show Subscribe To The Podcast Join The Newsletter  

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Co-Recursive. I'm Adam Gordon-Bell. Today's episode is the story of a piece of software being built. So, my wife and I, we often have this debate about people and their character. Sometimes it's high level, like can you separate Michael Jackson's music from what he did? Is Billie Jean a great song, or is it tainted? But usually it's more specific. Sometimes people give her bad vibes, and I'm not always a good judge of character.
Starting point is 00:00:33 I give people the benefit of the doubt. Sometimes she knows right away what she thinks about somebody, and she'll know that something is off. And she's not always right, but I mean, she's not going to listen to this, so yeah, actually, she not always right. But I mean, she's not going to listen to this. So yeah, actually, she's always right. It just usually takes me time to realize what she's talking about. But anyways, this is going somewhere, I swear. So it's late January 2024. And I'm at my desk,
Starting point is 00:01:02 following one link to another, I end up on the Linux kernel mailing list. The LKML, right? Most of it is actually patches. There's like an email with the title merge tag timers v6, then a message, Happy New Year, please consider pulling these changes. And then it's a literal patch like a diff, plus this line of code minus this line of code. You can apply these patches to your own Linux source if you so desired using git apply. It's like a pull request workflow. But yeah, that's not the link I get sent. The link I follow starts like this.
Starting point is 00:01:36 I was asked by a kind Frederick Brennan for my comments that I might offer on the discussion of removing riserfs V3 from the kernel. I don't post directly because I am in prison for killing my wife Nina in 2006. I am very sorry for my crime. A proper apology would be off topic for this forum. That's Hans Riser. The voice is OpenAI. Everyone in today's episode but me is going to be computer generated. But yeah, the letter is a response to a
Starting point is 00:02:05 prompt from Frederick Brennan. Riser FS is being deprecated from the kernel, meaning it's on its way out. It's obsolete. It's going to be removed. And Hans Riser, the creator, well, he's in prison for murder. And actually, the file system and the man and the murder, they're all really bound up together. They are linked. And so the letter goes on. He points people to riser four, which is a newer version than that in the kernel. He says it's a more maintainable basis for the future of the file system. And then he goes on and on and on, right? Thousands of words about the technical challenges, the interpersonal conflicts, the mistakes made, the dreams he had, the life that he lost. It's an unexpected thing,
Starting point is 00:02:48 a letter from a convicted murderer on a technical mailing list that is usually just patches. A glimpse into the human story behind the code, it's a man trying to explain himself and to grapple with his past. And a man wondering if redemption is possible. Because he started on this whole path just with some simple improvements he wanted to make to file systems. There are lots of ways to tell the story of RiserFS and of Hans and of Nina, his wife and victim.
Starting point is 00:03:22 There are literal whole books written about the subject. But my way of telling the story, well, I wanted to tell you about how you can't separate the person from the work, the person from the code. You can't separate the technical from the social. You can't be a monster in one domain and not have it be part of the others. It's all mixed up together.
Starting point is 00:03:44 And that is today's story. So picture this. It's the 1990s. The internet is taking off. Linux, this free open source operating system, gaining traction. Programmers are building all sorts of new things. Websites, application, tools. And all of these things, especially on Linux,
Starting point is 00:04:07 they're made of files, lots and lots of files. And how does Linux keep track of all these files? Well, with a file system, of course. And back then, the popular Linux file system was ext2. And it was like, okay, right? It worked, but it had problems. If you didn't know, under the covers, a file system is kind of like a librarian for your disk.
Starting point is 00:04:29 It helps organize things. If I want to add a new book to my collection, the librarian has to find an empty shelf and put it there. But then the librarian also has to update a card catalog with details of where it put that book, or it'll never be able to find it when I ask for it in the future. This card catalog, this index of what's on the file system
Starting point is 00:04:49 is very important. It's like your directory listing. Now imagine you're doing this, and then suddenly, boom, the power flickers, the lights go out, there's a power failure. When power comes back on, what's the state of your library, right? Maybe the librarian found shelf space,
Starting point is 00:05:06 but never got to put the book there. Maybe the book's on the shelf, but the librarian didn't get to the catalog. Maybe they were halfway through writing the card catalog entry, and everything's in this weird half-finished state. When your computer crashes, and they did all the time back then, you'd end up with a mess, right? Files marked as stored, but they're not actually there. Files that are stored but not properly recorded. It was chaos. So if your computer crashed, you had to run this thing, File System Check, F-S-C-K.
Starting point is 00:05:38 And it could take hours because it's going through all this data and correcting it. It could take literally hours. On a big disk, it could take could take literally hours on a big disk. It could take all day and disks were getting bigger. Then there were performance issues. Big directories would have lots of files in them. And EFT2, it would slow to a crawl. It used linked lists to organize these directories. And if you've done your coding exercises, you know that going through a linked list, node by node, it can take a lot of time. But yeah, it's 1993.
Starting point is 00:06:09 The dot-com boom hasn't happened yet. There hasn't been a Netscape IPO. And Hans, he's in Oakland, California. He's across the bay from San Francisco in a cluttered home office filled with computer monitors and stacks of books and the hum of cooling fans. And he cares about open source. He cares about Linux a lot. He wants to build a better file system, faster, more efficient, more elegant than anything out there. But building a file system is not really a one-person job.
Starting point is 00:06:38 It could take a team. And Hans didn't have a lot of money. He was bootstrapping this effort. He was working a day job and pouring every spare minute he had into creating a new file system. And then he had this idea. The Soviet Union had recently collapsed, and he had read an article about how Russian programmers, incredibly talented programmers, were working for next to nothing after this collapse.
Starting point is 00:07:02 And Hans saw an opportunity, and so he immediately booked a flight to Moscow. And Moscow in 1993 is an interesting place, right? With this collapse having happened in 91, everything's changing. And here's this American programmer, this guy with a cowboy hat, walking around into a world he doesn't really understand. He literally wore a cowboy hat in Moscow to play up his American-ness. He's trying to build a team. He's trying to find these smart and cheap developers. He wants to communicate his vision and navigate this culture that's completely different to his own. He's this American Moscow and he's sticking out and he's not blending in. He's making a
Starting point is 00:07:41 statement about his American-ness. So he finds his programmers, and he's doing this all on a shoestring budget. So he's paying these programmers a fraction of what they'd make in the U.S. But for them, it's a significant raise. And Hans is working his butt off to keep the money coming in. He's working at Synopsys and then Sun Microsystems. He's taking on contract gigs. He's moonlighting at some research center in New Jersey, flying back and forth across the country in the U.S., flying back and forth between continents from U.S. and Russia just to fund this team to keep his dream alive of this file system. And for a while, it seems like this is working.
Starting point is 00:08:21 The team is making progress. The code is coming together. Riser FS is taking shape. But distributed remote work is hard back then. So he has to travel back and forth between the US and Russia. He has to check on the team. He has to make sure the code is to his standards, that the algorithms are efficient. He's pushing them hard and he's demanding excellence because he knows that there's no room for second best in a file system. But then there's the cracks in the foundation. There's cultural differences,
Starting point is 00:08:51 there's communication barriers, and just the challenges of managing a remote team. And these things, they start to wear on him. He's used to getting his way to being completely in control. And in Russia, he's having trouble with that control aspect. But he keeps it up for years. And fast forward to March 1998, Hans is back in Russia, but now he's in St. Petersburg. He's at a cafe next to a canal, and he's meeting a woman, Nina Sharanova. She's a mail-order bride, and Hans is smitten with her, her voice, her smile, her intelligence. She's a doctor. She's an OBGYN. She seems to be everything he's looking for, an intelligent, smart woman.
Starting point is 00:09:33 So they get married. It's a quick courtship, a hastily arranged wedding, and soon Nina is pregnant with their first child, Rory, who's born September 1999. And it's a happy new chapter for Hans. He's now got a wife and a kid, and he's got his team in Russia, and they're making great strides on their file system. File system has journaling, which is an old idea. You know, before the librarian shelves that book and then writes the card catalog, the librarian writes down in a journal what they're going to do. So if the power goes out, if something goes wrong, you can recover by looking at what's in the journal. RiserFS, his file system, it also used btrees to organize directories. So no slow listing of files.
Starting point is 00:10:19 But the biggest trick of RiserFS was that under certain conditions, it sort of created more disk space by doing things more efficiently. And that was a big deal. But also, the price of Han's ambition was starting to become clear. Because if you rewind, if you go back to the late 80s, before riserfs, before Namesys, this company he created, to create it, there were warning signs. Little and sometimes big social glitches. They weren't about the technology, not exactly, they were more about Hans. Because when Hans was at UC Berkeley, he was part of the student-run group called the Open Computing Facility, the OCF. And it's down in the basement of Evans Hall, with rows of humming computers with fluorescent lights buzzing overhead. And for Hans and many others, it's down in the basement of Evans Hall with rows of humming computers with fluorescent lights buzzing overhead.
Starting point is 00:11:06 And for Hans and many others, it's a haven, a place to code, to build, to create, a place dedicated to open source and open access. The OCF is volunteer-run, and Hans gets very involved. He even manages to secure a donation of workstations. But the OCF is not just about technology, right? It's a shared space. It's a community.
Starting point is 00:11:28 It's about people working together, sharing ideas, sharing resources, and building something bigger than themselves. It's open source. It thrives on collaboration. And Hans, he doesn't really get that. He's brilliant, yes, but he's also got this kind of intense personality.
Starting point is 00:11:45 He's arrogant, he wants control, and he doesn't play well with others. There are all these stories, like the time he booted an undergrad off the system for posting a message on Usenet that he disagreed with. Or the time he physically assaulted a colleague after some disagreement. Or the meeting minutes that have titles like Hans complains and the earth shakes. These weren't just isolated incidents. These were a pattern. One former user put it this way. He acted as if he owned the open computing facility and that everyone should kowtow to him. Another said he went out of his way to be mean and petty and arrogant and small-minded. These are signs, right? Signs of a person who's not well integrated.
Starting point is 00:12:28 Signs of a person who lacks emotional intelligence. Signs that are often rationalized away when someone is brilliant, when someone is talented. But yeah, Namesys and Hans, by the time they got to version three of riserFS, they were really on to something. The Linux kernel version 2.4.1 included Riser as an option. And all of a sudden, this code had distribution. And since it was the first Linux file system with journaling, it was a solid choice for people to use.
Starting point is 00:13:00 But yeah, the thing that made it really exciting was a namesys or Hans innovation called tailpacking. I feel like I'm going to get a little tired of this librarian metaphor, but here you go. Imagine that our librarian's shelves are divided into blocks that are the size of a medium-sized hardcover book. So we call that a block, and most file systems have four kilobyte blocks. That's how a hard drive works, right? Each little area is a block. We address them by some sort of index. The librarian in the card catalog is actually writing down the address of the blocks where the book is stored. And if the book is larger than a block size, then the librarian just splits up the book and puts it in as many blocks as it
Starting point is 00:13:45 needs. Four kilobytes is actually pretty small, so many books are split up across many, many blocks. And fragmentation, if you remember running defrag on your Windows machine as a kid like I do, fragmentation is when the books that are big and need to be split up are split all over the library, right? There's only so many open spaces. And so the books get all scattered in blocks all over the place. And defrag is the process of rearranging these, right? So things that you use together are next to each other so that you can read them sequentially and everything happens faster. But tailpacking is different. It's maybe some intentional fragmentation. It's this technique for dealing with small files. Because when you have all these books that are a bit bigger than
Starting point is 00:14:31 a block, you get these little tails, these little parts that are too big for that initial block. And instead of storing them with the rest of the book, you store them all together. You pack all these little ends of books together into one block. This effectively gave you more space, especially if you had lots of small files. Because imagine without tailpacking, if you were storing pamphlets instead of books, you know, storing one pamphlet per block, you're leaving all this extra space. But you could just pack a whole bunch of those pamphlets into one block, and then you save space. It was brilliant, right? Suddenly you had this extra space on your hard drive if you had
Starting point is 00:15:10 had a lot of small files. No file system checks because of the journaling, more space. It was a significant improvement on ext2. And the Linux community loved it. Companies issued praise. RiserFS is the main engine behind our living XML database system. With the great help of RiserFS, we now have one of the best database systems. SUSE Linux even adopted it as their default file system. This meant enterprise usage, like big customers and professional support. SUSE was putting their reputation on the line for RiserFS. And Hans was on top of the world,
Starting point is 00:15:46 right? This was his dream and it was becoming a reality. His file system was changing the Linux landscape. He was a star in the open source community and he was getting recognition. But even then, as RiserFS was taking off, there were whispers, right? There were rumors of data corruption. There were concerns about scalability. And then there was Hans himself, right? There were rumors of data corruption. There were concerns about scalability. And then there was Hans himself, right? His personality, maybe it had some bugs. Post-honeymoon phase, the marriage with Nina was getting harder. Because while Hans was in Moscow chasing these technological ambitions,
Starting point is 00:16:24 something else was happening back in Oakland. His wife was by herself and she was lonely. We were madly in love until our first child was born. But things changed. Hans was consumed by his work. He was spending most of his time in Russia. And Nina was left to navigate a new culture, a new language, new place, new life, and all raising two children.
Starting point is 00:16:44 And it wasn't just the difference, there were conflicting expectations. Hans wanted a traditional wife, someone who would put her career aside and focus on raising a family. But Nina had her own dreams and her own ambitions. Hans did not want me to be a doctor in the U.S. He wanted me to have six children, and then I could deal with my career. He believed that Russian women would stay at home and devote themselves to their children. He didn't want me to study for my exams. I knew that when I married him, we thought we could change each other.
Starting point is 00:17:18 But they couldn't. The tension and the resentment, it grew with each passing day. Nina felt isolated, trapped in a marriage that was suffocating her. And meanwhile, Hans was full of excitement for the ideas that he had about improving file systems. Or maybe he was just unsatisfied with where Riser 3 stood. Hierarchy doesn't scale well for human beings, and hierarchical namespaces scale extremely poorly. Hans is thinking bigger. He's got this grand vision, this almost utopian idea of how computers should work. He sees limitations with the existing systems, with the walls between applications, with the data silos that files cause. He wants
Starting point is 00:17:57 to tear them all down. He wants to build something better, something faster, something more connected. He gives a talk at Google where he's passionate and intense and pacing back and forth explaining his vision. The file system is the most central namespace of the OS. I would like to suggest that namespaces in general are like roads and waterways. He's building on an idea, an analogy to Adam Smith, the economist.
Starting point is 00:18:22 Smith saw how roads and waterways connected cities. They facilitated trade and communication, and they fueled the growth of civilization. Hans sees files the same way, as this infrastructure that connects all the data and allows applications to communicate and that powers the digital world. He's convinced that the current infrastructure is not good enough. It's fragmented. It's inefficient. Namespaces are a barrier holding back data, holding back progress. He wants to find a unified namespace, a single interconnected system where all data is accessible, where information flows freely. To unify the namespaces within the operating system is a bit of a quest for a holy grail.
Starting point is 00:19:07 Even though we will never succeed in unifying all the namespaces within the operating system, the closer we can get ourselves to it, we're in a better place than if we don't get any closer to it. He secures funding from DARPA, the Pentagon R&D Agency. They want a file system for the future, and Hans wants to build a file system that can handle anything. Riser 4 is not only a file system. It is a software framework for creation, assembly, and customizing file systems. How well your file system performs is very much determined by how easy it is to make little changes to it.
Starting point is 00:19:42 And the more little experiments you make, the higher your performance is going to be. In truth, it's a bit hard for me to understand his vision from his Google talk, but I think it's a bit like replacing a file system with a database where files can be easily searched and indexed and they have metadata that's easily changeable and anything can look like anything else. Plugins, also an important aspect of his plan, add a whole new layer.
Starting point is 00:20:10 It's a lot. It's a big vision. The actual storage layer itself is also different. Riser 4 uses dancing trees, which obsolete the balanced tree algorithms used in databases. This makes Riser 4 more space efficient than other file systems because we squish small files together rather than wasting space due to block alignment like they do. For some interfaces, Riser 4 performs such switching in intelligent manner without user intervention. Thus, the file system is in permanent evolution, adapting to current conditions. So yeah, Hans is working with his team in Russia.
Starting point is 00:20:47 Long nights, endless emails, debates about algorithms and data structures. He's pushing them hard. He's demanding perfection. He wants Riser 4 to be the best, the fastest, the most revolutionary file system ever created. But also, he's becoming increasingly isolated. His communication style is a relentless pursuit of his vision.
Starting point is 00:21:06 It's creating friction on the team. He's alienating colleagues. He's pushing away allies. The warning signs are there, and they're flashing brighter than ever. And meanwhile, Nina's isolation increases. She doesn't know many people in Oakland, and Hans is off in Russia chasing his dreams of file system domination, leaving Nina to deal with the realities of daily life.
Starting point is 00:21:29 Two young children, a new country, a new language, a failing marriage. Nina starts meeting people off Craigslist. She's trying to balance her responsibilities as a mother with her desire for a career and her own personal needs. She spends her days at the Montessori school volunteering, the private school where her kids go. This place is all about nurturing and child centered learning. She's volunteering, she's helping out in classrooms, she's connecting with other parents, and she's trying to create some semblance of normalcy, of stability in a life that's become isolated and out of control. And into this void steps Sean's surgeon,
Starting point is 00:22:07 Han's best friend, a complicated guy, a former truck driver, self-proclaimed ex-gay prostitute, and one-time fixture of the Bay Area S&M community. Later, when the police are involved, when the Hans and Nina story hits the news and everybody descends, the salacious details of the Nina and Sean affair become part of the circus around this case. But actually, their marital struggles and tension
Starting point is 00:22:34 that led to a trial separation was less about the affair and more about parenting. Rory is five years old, and he's a bright kid, but he's also struggling. He has nightmares, he has anxiety. He has behavioral problems. And Nina's worried. She takes him to a therapist. She gets evaluated. She's trying to figure out what's going on and how to help him. But Hans is dismissive. He thinks Nina is overreacting.
Starting point is 00:23:00 Rory's problems are just normal, just a part of growing up. He sees Nina's concerns as a tactic in their custody battle, a way to paint him as a bad father who doesn't care. Our children hardly know their father because he has been home for only months at a time, three times a year. Hans has his own ideas about parenting. He believes in toughening kids up, of exposing them to the real world. He sees video games, even if they're violent
Starting point is 00:23:25 educational tool, a way to teach Rory about history, about strategy, about the culture of dominance and manhood. Little boys take to violent computer games like monkeys take to trees. They do not have instincts that favor combat rehearsal activities for no reason. They have them because they affect whether they live or die a significant amount of the time. Nina sees it differently. She sees the nightmares and the anxiety and the drawing of monsters and soldiers,
Starting point is 00:23:54 and she sees a child who's struggling and who needs a safe and nurturing environment and not a virtual battlefield. But the conflict escalates. Hans accuses Nina of manipulating Rory, of turning him against him. And anyways, he's busy. He's got to go back and forth between Russia. He's building his perfect file system and his perfectly ordered world of data. And the big struggle he's having is maybe the size of his ambition, because he doesn't want to talk about the existing and widely used riser 3 file system
Starting point is 00:24:27 but he needs to because that existing version that v3 it's getting this reputation for being fragile especially when hardware isn't perfect and it's the early 2000s hardware wasn't perfect hard drives crashed power flickered, things happened. And when things happened, riserfs sometimes just fell apart. Large files got corrupted. Data vanished. And the Linux community were starting to notice this. They were starting to talk on mailing lists and forums. The whispers were growing louder. Riserfs has serious scalability problems. That's Jeff Mahoney, a SUSE developer, and he's seeing the writing on the wall, right? They have to support this. RiserFS is great for small files, but it doesn't scale.
Starting point is 00:25:13 It can't handle these massive datasets and the high volume workload that are becoming more and more common for Linux servers. And Hans is dismissive, right? He's not on that. He's got this almost messianic belief in his own vision for a new system. He's not interested in patching up the old. He's got Riser 4, this next generation file system. It's his masterpiece and it will solve everything. The code was unmaintainable, terrible code that needed to be rewritten from scratch. So he tells Susie, he tells the Linux community that riserfs is obsolete. They need to move on to 4. He's not interested in compromise. He's not interested in collaboration. He's got his own way
Starting point is 00:25:57 and he's sticking to it. And the kernel developers, they're not having it. They're seeing his brilliance, but they're also seeing his arrogance and his inability to work within a community. Alan Cox, a core Linux developer, he's worried about the long-term viability of Razer 4. It doesn't matter if Razer 4 causes crashes. It matters that people can fix them and the code is maintainable.
Starting point is 00:26:22 Yeah, what does happen if Hans disappears? Who's gonna maintain this complicated, unconventional file system? Who's going to fix the bugs, the inevitable crashes? There's this huge element of trust here, and Hans isn't interested or doesn't understand the importance of building this trust. If a Linux distribution, if Sousa is selling paid enterprise support for his existing file system,
Starting point is 00:26:45 they need to trust that it works. And if they don't, and he's not helping maintain it or fix issues, why would they ever trust his next idea? But yeah, Hans has his vision for this new file system world where all the previous ideas are tossed aside. And he doesn't care about these social elements and these support elements or the people that he's rubbing the wrong way. It had to be written from scratch to be written right. That's Hans talking to the kernel mailing list. He's thinking about a world where simple search can unearth anything and everything, regardless of the application, regardless of the file format. But he's butting heads with the Linux kernel developers. He sees them as resistant to
Starting point is 00:27:25 change and unable to grasp the brilliance of his vision. What makes you think kernel developers have a deep understanding of the value of connectivity in the OS? They don't. The average kernel developer is not particularly bright. Then the kernel developers are pushing back. Linus Torvalds, the father of Linux, he was not impressed. Call them plugins. I, and I suspect a lot of other people, are totally uninterested. Uninterested because they're worried about the complexity and the stability and the long-term viability of Riser 4.
Starting point is 00:27:59 They're worried about Hans' inability to collaborate and to compromise. They're seeing a man who's so focused on his own vision that he's blind to the practical realities of working within operating system community, of releasing and maintaining code at the scale of a heavily used operating system kernel like Linux. And at home, while all this is going on, he's accusing Nina of Munchausen by proxy and other things. You don't want the kids except as a bargaining chip. He's projecting. He's blaming Nina for his own failings, for his inability to connect, for his inability to empathize.
Starting point is 00:28:37 He's building this perfect file system, this world of interconnected data, but his own world is fracturing. But yeah, he does it. He gets riser4 completed. Hans presents benchmarks for riser4. For small files, still its specialty, it's much faster than ext3. For metadata operations like file creation and deletion, it was again much faster than other Linux file systems. On other benchmarks,
Starting point is 00:29:05 large files, concurrency, Hans has all these benchmarks showing it could be two to three times faster than anything else out there. Others disputed this. Others found his benchmarks to focus on very specific synthetic scenarios where his file system was clearly at advantage. But either way, it existed existed and it did have advantages. Now he just needed to get it into the Linux kernel. All objections have now been addressed. I request that Razer 4 be included. He's fighting for recognition and for his vision to be accepted. And it's a fight that mirrors the other fight going on in his life, the brutal custody battle for his children with Nina.
Starting point is 00:29:51 Their emails are like a war zone, which I mean probably isn't uncommon among people battling for custody. But he accuses her of munchausen by proxy. He accuses her of fabricating illnesses for their son. You don't want the kids except as a bargaining chip. They interfere with your career. He sees her as manipulative, as an obstacle to his control over his children. But Nina's just trying to protect her kids to shield them from his increasingly erratic behavior. She takes Rory to therapy and she gets him evaluated. Rory needs a very safe environment. He needs to thrive. She expresses her fears to
Starting point is 00:30:23 friends. She worries about the impact of this constant conflict on these children because they see it. She wants them to feel safe and loved and protected. She wants to build a stable, nurturing environment for them, far from the toxic battlefield that their marriage has become. Meanwhile, Hans is consumed by this fight, the custody battle, the riser for debates. All of this is fueling his anger and his paranoia and his sense that he's being persecuted. Male geeks are one of America's most hated cultural minorities. I am tired of being the punching bag. He feels misunderstood.
Starting point is 00:30:58 He feels unfairly targeted and he lashes out and sends threatening emails. The stress is mounting, the pressure's building, he's losing his grip, and his world is spiraling out of control. And then Nina disappears. September 3rd, 2006. She drops the kids off at his house, a normal Sunday afternoon exchange,
Starting point is 00:31:20 and then nothing. She vanishes without a trace. It's like a file system corrupted, a system crashing, all those connections suddenly fragmented. His wife, the mother of his children, gone. It's a brilliant mind consumed by his own demons. And he's about to pay a price for his ambition and his obstinance, his isolation and his inability to empathize and to see the human elements of his pursuit of control. Nina's friend, Ellen, became concerned that Nina didn't pick up the kids from school the next day. That evening, she phoned the police to report a missing person. She must have
Starting point is 00:31:59 had suspicions because the police had her phone Hans with them present. And she asked him if he might know where Nina was. And he immediately said he'd like to speak to his lawyer. Not a great sign, right? Not a great sign. So the police, they start watching him. They start following him, but they also start listening. They get his phone taps. The wire room at the headquarters, officers are working in shifts, headphones on, listening to every conversation he has, every whispered word. They're hoping to hear something, anything that will give them a break, that will give them a clue to where Nina might be. And what they hear is not what they expect. It's not the frantic calls of a worried husband
Starting point is 00:32:42 desperately searching for his, you know, missing though estranged wife. It's not the hushed conversations with accomplices plotting a cover-up either. It's something else entirely. It's Hans talking to his mother, Beverly, complaining and ranting, not about Nina's disappearance, but about Nina herself and the custody battle and the divorce and about how she lied. She really was nuts, mom. She really was. And you know, she came up with these illnesses because she hated me. He's angry and he's bitter and he's resentful and he's always focused on how he's been wronged. He's talking about Nina in the past tense, like she's already gone, and he's not showing any remorse or concern for her. His mother keeps trying to steer him back to remind him that Nina, no matter their differences, didn't deserve whatever happened.
Starting point is 00:33:34 But Hans is not having it. He's caught up in his own narrative. He's caught up in the focus on himself. Yeah, well, being decent is a mistake, a mistake I paid for heavily. I think my children shouldn't be endangered by her. The officers are listening. They're taking notes. They're marking down times and dates and words. They're analyzing his tone, his inflection, the pauses, the hesitation. They're building a profile, a psychological portrait of a man consumed by anger, a man who's very concerned with winning a custody battle
Starting point is 00:34:05 and not concerned at all about finding his missing wife. And the investigation intensifies. They search Hans' home, not once but twice. They find traces of Nina's blood mixed with Hans' on a pillar in the living room. They find more blood in his car. They find blood on a sleeping bag. They find the passenger seat
Starting point is 00:34:25 of his car is missing. The floor looks wet and scrubbed clean. It's all starting to add up. A pattern emerged from the noise. And then there's a car chase. Hans, spotted driving his mother's Honda, leads the police on a wild goose chase through the Oakland hills, dodging and weaving and trying to shake his tail. He abandons the car and sprints through the neighborhood, disappearing into the night, acting like a guilty man, being pursued by the police, a man with something to hide. And that's enough for the police, right? They announce Hans Reiser is a suspect, Nina's disappearance. And the media are all over it.
Starting point is 00:35:01 Cameras flashing, microphones thrust to faces, pressure mounting as the public scrutiny intensifies. Hans does get his lawyer, who tries to downplay the evidence. He calls it flimsy and circumstantial. Hans is just a computer guy. He's a bit eccentric, but he's not a killer. But the police know that they've got their man. They're just waiting for the final piece of the puzzle to fall into place. They're waiting for Hans to crack and to confess and to lead them to Nina. But Hans won't talk. For him, truth is not immutable. Truth is a variable waiting to be assigned, waiting to be altered and updated and incremented. And as the investigation continues, a question hangs in the air. Where is Nina? Will they find
Starting point is 00:35:46 her? Or will Hans, this architect of this revolutionary file system, become the architect of his own escape? Because without Nina, all they have is circumstantial evidence. Fast forward to 2007 in Oakland for the trial, body still not found, and it's a media circus. The prosecution methodically lays out their case. They show the jury the last known images of Nina shopping with her kids just hours before she vanished. They present the blood evidence, Nina's blood in Han's house, in his car. They highlight his erratic behavior. They call witness after witness, and each one paints the picture of a man that is capable of violence. The defense tries to counter this
Starting point is 00:36:31 narrative. They attempt to portray Nina as manipulative, as unstable, as a woman who might still be alive, hiding somewhere to punish him. They bring up her affair, trying to shift the blame, to create reasonable doubt. They talk about Hans' personality, his quirks, his social awkwardness. They say, he's not a killer, he's a programmer. As if this is what all software developers are like. As if we're all this violent and dangerous. As if we're all this volatile and unstable. And then, Hans takes the stand.
Starting point is 00:37:04 He's wearing a suit, He's trying to project the image of composure, of innocence. And he tells his story. He tells his version of the truth. He denies killing Nina. He said he doesn't know where she is. But under the pressure of cross-examination, a lot of this facade crumbles. He becomes evasive and condescending and arrogant. He contradicts himself. He gets caught in a lie. He admits to perjury. He becomes evasive and condescending and arrogant. He contradicts himself. He gets caught in a lie. He admits to perjury. He admits to hiding evidence. He stumbles over questions about the missing passenger seat of his car, offering a series of shifting explanations. Yeah, the seat of his car is just gone with no real explanation he can provide. The car is soaking
Starting point is 00:37:41 wet on the inside. It looks like it's been scrubbed and hosed off. Plus there's Nina's blood in the car and at his house. And he also has his passport and a lot of cash in a fanny pack he was keeping with him. I mean, this is all circumstantial evidence, but yeah, come on. He admitted to perjury. He admitted to misleading the jury. And then there is the missing hard drives. He took the hard drives from his computer before his arrest and gave them to his lawyer. And then there were the murder books. Yeah, murder books. Homicide, A Year on the Killing Streets, the behind-the-scenes look
Starting point is 00:38:15 at the Baltimore homicide investigation, this book that would eventually lead to the show The Wire, as well as Masterpieces of Murder, a true crime book. He bought both of these together with cash from a local Barnes & Noble bookstore. He tried to explain away the books, saying he bought them out of an arrogance of innocence. And this part maybe seems true, but at least the arrogance part. He was a smart person, and cocky, and didn't care about others, and thought that maybe if he came up with a plan, if he did some research, he could get away with murder. Not even thinking of the optics of heading to the local bookstore
Starting point is 00:38:49 and buying all their books on murder to help craft a plan. And then that last moment of tension. Time for the verdict. The jury delivers it. Guilty. First degree murder. And Hans is led away. As he yells out, I've been the best father that I've known how to be. A last ditch effort to justify the unjustifiable. The Linux community,
Starting point is 00:39:14 they're watching all of this unfold and their reactions are all over the map. Jonathan Corbett, the editor of LWN. forums, a different story emerged. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time.
Starting point is 00:39:37 And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going on for a long time. And it's a story that's been going, for all its fault, had some unique and innovative things to say. But in the comments section, in the online forums, a different story emerges, a raw and unfiltered and often unsettling reaction. Because there's shock and there's disbelief, but there's also sometimes things that are darker. Some comments focus on the technical implications. What will happen to Riser FS? Will Riser 4 ever see the light of day? Will someone else take over the project? Or will it be abandoned? Will it be
Starting point is 00:40:11 tainted by its creator's crimes? There's talk of just renaming it. Distance yourself from the scandal. And then there's the jokes and the dark humor and the casual cruelty and the people wishing that he'll be able to keep working on his file system from prison. There's a lack of empathy and a strange disconnect from the human tragedy at the heart of it. I mean, some people do express genuine concern for Nina and her children, but there's also a big worry about the impact of the open source community, the worry about negative stereotypes, the headlines screaming that Linux developers are murderers. And there's also the silence from the leaders of the community.
Starting point is 00:40:52 His legacy was once a source of pride. It's now shrouded in shame. His brilliance was celebrated, but it's now something nobody wants to talk about. And as the Linux community grapples with all this fallout, a question lingers. What happens when the code we create, when the technology we build upon becomes entangled with the dark parts of human nature? What do you do with that? There's no easy answers. But there's still a piece missing, a gaping hole in the story because nina's body hasn't been found and if you believe hans if his file system has been serving you well all these years if you've seen his google talks if you think he's a genius and someone to look up to you might just rationalize things away he continued to profess his innocence on the stand. And computer people might be quirky,
Starting point is 00:41:46 but we shouldn't be assumed to be evil, right? I think for a brief time, there was people, you know, people like me who maybe weren't popular in high school, who spent a lot of times indoors with a computer, and they identified with his message. And they think maybe Hans is being persecuted, right? Maybe he's just the nerd being picked on by the world. But then there's the plea bargain. A deal is struck, and on a hot July afternoon in 2008, a convoy of police cars snakes its way through the Oakland
Starting point is 00:42:19 Hills and up into the Redwood Regional Park. They bring a whole SWAT team, armed with rifles, that scan the undergrowth, and inside a caged prisoner van is Hans, and he's handcuffed to his lawyer. They arrive at a remote parking lot at the end of a road, and Hans leads them down a narrow deer trail, the air thick with the smell of pine and eucalyptus leaves. And Hans stops, and he points at a spot. The officers exchange glances and they start digging and they find her or what remains. And for his cooperation, his sentence is reduced to second degree murder. So Hans is in prison, his legacy forever tainted by this crime.
Starting point is 00:43:00 But what about his code, his creation? What about riserfs and his dream of riser4, the file system he believed would revolutionize the Linux world? Well, riser4, despite its technical innovations, it never quite makes it. It's a complex file system with features like dancing trees on this plugin architecture that promise flexibility and performance, but it's also burdened by its complexity and by its creator's past. The Linux community was already wary of Han's abrasive personality
Starting point is 00:43:32 and unconventional coding style, and now it's grappling with the implications of his crime. Trust is certainly broken, and enthusiasm for the system wanes. And plus, during this time, other file systems step into the spotlight. EXT 4, building on the familiar foundations of EXT 2 and 3,
Starting point is 00:43:53 emerges as a stable and reliable option. It becomes the default choice for many distributions. And it's a group effort, right? It's got various experienced Linux developers working together to get it working and get it working and get it into the kernel. ButterFS emerges with its advanced features and its focus on data integrity, and it gains a small following among those seeking more robust and modern file system.
Starting point is 00:44:17 And XFS, known for its high performance with large files, continues to be a strong contender. But Riser 4 languishes. It lacks corporate backing. And also, unlike EXT4, yeah, there's only a single person, Hans, who is behind it. And from his prison cell, his voice pushing for it is like a whisper. He doesn't have the internet. It's lost in the noise of this rapidly evolving community. A former Namesys employee picks up the torch and continues pushing it forward, even releasing a new version, Riser 5. But without Hans Drive and with this black mark upon his name and without the support of the community,
Starting point is 00:44:57 the project never gains any momentum. And as the years pass and as the Linux kernel evolves and the community evolves, Riser FS version 3, it gets marked as obsolete, gets slated for removal. The code that was once so innovative, it becomes just a footnote in the history of file systems. A reminder that technical brilliance alone is not enough. That true progress requires not just code, but collaboration and community and a shared vision for the future. Now known as inmate G1008, Hans and his legacy, which was once a testament to innovation and file systems, is now completely overshadowed by his single horrific act. But he
Starting point is 00:45:42 gets a letter asking about his thoughts on riser3 being slated from removal from the Linux kernel. And from his prison cell, he writes. He writes an almost 7,000 word letter to the Linux kernel mailing list, the community he clashed with, the letter that I found, a letter filled with regrets and reflections and a plea for understanding. The man I am now would do things very differently from how I did things then. He reflects on the early days of Riser FS, recalling the struggles to make it perform competitively. He admits to a crucial misstep, a failure to acknowledge the work of others, and he expresses regrets for not appreciating his team and for other missteps. The problem was that it
Starting point is 00:46:26 didn't use the code that had been written by others in the kernel community, and people don't really like their code not being used. People want to feel included. I responded to their social need by, well, screwing the pooch in response. He talks about prison workshops and the lessons he's learning about conflict resolution. He thanks Edward Shishkin, the person who released Riser 5, though he admits he doesn't know what's in it due to his lack of internet access, but encourages the community to support the project, disentangling its accomplishments from his own tarnished reputation. It's a complex letter. It's a glimpse into the mind of a man grappling with his past, and he closes with reflection. It has been an honor to be of even passing value to the users of Linux. Rightfully, this story should be about Nina, right? She's the one who
Starting point is 00:47:21 lost her life. But there's a thing here, a thing that brought me to the story, a thing that I thought should be said. Your technical skills and your social skills work together. They multiply in most cases, and maybe here with Hans, they divide. I'm not saying that your asshole colleague is a murderer, but these things, they're not not connected. Hans struggled with empathy. Frankly, I struggle with empathy sometimes, and I know many others that have. I hope that Hans is getting better at understanding other people and thinking of others. But I also hope that we all can get better at that. Because yeah, to get back to what I learned from my wife, how she can spot problems in people that I've given a pass to. Well, I think how you interact with people matters. You can't separate
Starting point is 00:48:13 the art from the artist because they're all tied up together. As this case shows, the co-worker you have that some women in the office refuse to work with, a real story that's been shared with me, or that mean-spirited person that gets a lot of work done. We shouldn't give those people a pass. We do ourselves no favors when we rationalize or defend or rally behind people whose lack of empathy makes them dangerous. And yeah, my wife has this knack for seeing through that facade, for sensing when something's off in someone. But I think really we all have that and we ignore it. And maybe that's what we need more of in tech. A little less focus on the code and more on the character. Understand the people and their motivations.
Starting point is 00:48:56 Because in the end, it's all connected. Even Hans touched on this lesson in his letter to the Linux mailing list. The man I was then presented papers with benchmarks showing that riserfs was faster than xt2. The man I am now would start his papers crediting them for being faster than the file systems of other operating systems and thanking them for the years we used their file system to write ours. Not doing that was my first serious social mistake in the Linux community, and it was completely unnecessary. But also, but what about this team in Russia?
Starting point is 00:49:31 Who were they? What ideas were theirs? What crucial work should be attributed to Hans, and what to this unnamed team? How did they endure his challenging personalities? I feel like this is the true purpose of the letter. request that for one last release, the readme be edited to add Mikhail Galula, Konstantin Shvashko, and Anatoly Pinchuk to the credits. And to delete anything in there, I might have said about why they were not credited. It is time to let go.
Starting point is 00:50:22 That was the show. And Hans' request was granted. There's a patch email later sent to the Linux mailing list changing the README. RiserFS will be dropped from Linux in 2025. But for now, the README better reflects the teamwork it took to build it. Because people don't work in isolation. Solitary brilliance is not enough.
Starting point is 00:50:44 I'm deeply indebted for this episode to the myriad of coverage of Hans' trial, especially Henry K. Lee for his very in-depth reporting in the book Presumed Dead, and to Frederick Brennan for sharing Hans' letter, and for the web archive's Wayback Machine, because this didn't happen that long ago, but it seems like most of the webpages about it are lost to the sands of time. All quoted dialogue here is exact quotes from Henry's book or from emails or from reporting on the case published in papers or on TV, trial transcripts or somewhere else. But I'm sure I got some things wrong because I'm just a guy clicking around, finding things that are interesting, reading webpages, and then telling you my thoughts.
Starting point is 00:51:29 So forgive me any errors. I'm sure there's some. Also, thank you to Nina's family. I'm sorry you had to go through this. I hope for a brighter future for her children, for Rory and Nino. And thank you to all the people who send me interesting links, like this link to the Linux mailing list. And thanks to the supporters who keep me at this even though right now I'm at a new job and it's very busy and I'm struggling to find the type of investment of time that these
Starting point is 00:51:58 episodes really need. But thank you. Thank you. And if you want to join as a supporter, to show you appreciate the show, go to coworkers.com slash supporters. We also have a pretty awesome Slack channel that you can find on the website. And until next time, thank you so much for listening. Thanks for watching!

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.