The work of writer and programmer Ellen Ullman shows that to understand technology you must also understand the people who make it
When Ellen Ullman published Close to the Machine: Technophilia and its Discontents, in 1997, she’d been working as a programmer for nearly two decades. A memoir about her professional and personal life in the technology industry, the book is incisive, poetic, sometimes funny, sometimes melancholic; the critic Laura Miller wrote at the time that it “may be the best—it’s certainly the most human—book to have emerged thus far from the culture of Silicon Valley.”
It’s also, at times, a startlingly prophetic snapshot of the beginning of a great societal upheaval—a time when the world was reordering itself around digital technologies. Mainstream adoption of the web, the digitization of every system and process, even the rhythms (or lack thereof) of working from home, which software engineers would experience decades before most other professions: Ullman could see exactly how the world was changing, because she and her colleagues had their hands deep in the guts of the technologies that were changing it.
More than 25 years later, Close to the Machine remains one of the most human books to come out of Silicon Valley. In the intervening decades, there has been a great deal of writing by and about technologists, but Ullman’s memoir is still one of the all-time greats: remarkable for the quality of its prose and its author’s ability to offer both an insider’s perspective as an engineer and an outsider’s perspective as a woman in a (still) male-dominated field. It’s a portrait of programmers as messy, flawed, deeply compelling human beings, lurking in the code behind the slick interfaces and highly complex systems we use every day. And that portrayal feels particularly relevant now, in a moment when we’re more likely to look for hints of humanity in computer-generated text than to think of the actual humans programming those models. Ullman always takes us back to the source.
Ullman knew it was impossible to understand technology without understanding the people who make it. “The main reason I wrote Close to the Machine was not just to talk about my life,” she told Salon after the book’s publication. “Of course, everyone just wants to talk about themselves. But I have this feeling that imbedded in this technology is an implicit way of life. And that we programmers who are creating it are imbedding our way of being in it.”
Today, examining the preferences and biases written into the code that runs our lives is a cornerstone of tech commentary, as is illuminating that the way these systems are structured has itself restructured how we perceive the world. Ullman clearly saw these foundations being laid as she waded through the ethical quagmires of her work in the 1980s and ’90s. In Close to the Machine, she dips into and out of a narrative about building a portal for San Francisco AIDS patients, called Jerry, and recounts how even those with the best intentions fell victim to technological seductions. The ability to collect data became an imperative to collect data; the ability to link systems together made it seem that those systems must be linked:
Our accommodations begin simply, small workarounds, just to avoid the bugs: “We just don’t put in those dates!” said the very sensible users of the Jerry system. Then, slowly, we incorporate the whole notion of systems: we’ll link registration data to surveillance, to contract compliance, thought the director. Finally, we arrive at tautology: the data prove the need for more data! We think we are creating the system, but the system is also creating us. We build the system, we live in its midst, and we are changed.
In 2017, Ullman published a second memoir, Life in Code: A Personal History of Technology, a collection of essays written over the course of more than two decades and arranged chronologically. In between these works of nonfiction, she published two novels: 2003’s The Bug, about an engineer who is slowly driven mad by a software bug his colleagues dub “the Jester,” and 2012’s By the Blood, her only book that doesn’t center on the lives of technologists, in which a disgraced professor eavesdrops on the therapy sessions of a woman who is unraveling the dark truths of her past.
Parts of Ullman’s work are philosophical reflections on humans, on machines, or, most often, on the places where the two intersect. Sometimes she takes the long view, speculating on the future of technology or contextualizing the industry within the broader contours of 20th-century capitalism. But when she tightens the lens, her portraits of colleagues, friends, and lovers are sharply precise. Even in her nonfiction, she brings a novelist’s talent for characterization via brief but clear, well-chosen physical description and dialogue. Some of these characters simply add color, but some contain whole (tech) worlds within them. Few are more vivid than Brian, Ullman’s occasional lover in Close to the Machine—a younger, emotionally incurious libertarian obsessed with the potential of cryptocurrency, whose appearance she describes as “what the devil would look like if the devil decided to move around among us disguised as a skateboarder.”
It’s in this intimacy—not just in her descriptions of computers and code, but in her proximity to the humans who work with them—that the real texture of her work lives. Ullman opens Close to the Machine with a manic, hypnotic passage set during a long stint of coding, in which frustration gives way to revelation as she and her colleagues sync with one another, and then with the code. This is described as a sort of ascension above earthly concerns. “Our bodies were abandoned long ago, reduced to hunger and sleeplessness and the ravages of sitting for hours at a keyboard and a mouse,” she writes. “Our physical selves have been battered away. Now we know each other in one way and one way only: the code.”
But their physical selves have already been memorably described: the bodies in the room may be forgotten by their owners, but they are fully present in the prose, whether it’s one colleague’s “puffy white midsection,” another’s dandruff and “light coating of cat fur on his clothes,” or Ullman’s own “sticky hair.” We see the office—the lost-weekend quality of it, with no windows or functioning clocks, littered with Chinese-takeout containers and pizza boxes, empty wine and beer bottles. And even as the programmers transcend that room and those bodies, Ullman still holds onto deeply physical language. As a mind-meld with her colleague breaks and he turns his focus to the code alone, she writes, “The connection, the shared thought-stream, is cut. It has all the frustration of being abandoned by a lover just before climax.”
Silicon Valley has long been obsessed with post-humanness—the idea that technology will allow us to upgrade beyond the messiness of our bodies. (And, of course, the messiest human attribute of all—our mortality.) Ullman’s writing stands in sharp contrast to this tendency, whether it’s about humans or machines or the places they touch. Her language is deeply embodied: full of scents and sounds, sometimes sexy and sometimes grotesque, often intimate and occasionally domestic. She shows code and the people who write it as alluringly imperfect in a world that venerates cold, logical perfection. Technology has humanity’s grubby fingerprints all over it, echoes of the people who created it. Ullman knows how to spot those fingerprints—what she dubs, in Life in Code, “the body in the machine”—and describe them beautifully.
“I used to have dreams in which I was overhearing conversations I had to program,” Ullman writes in Life in Code. “Once, I had to program two people making love. In my dream they sweated and tumbled while I sat with a cramped hand writing code. The couple went from gentle caresses to ever-widening passions, and I despaired as I tried desperately to find a way to express the act of love in the computer language called C.”
Taken on its own, the paragraph feels like a clever joke, the sort of thing you might say at a party, leaving the suggestion—based on the non-programmer’s assumption—that nothing could be more disconnected from “the act of love” than writing in C. In the context of the essay in which it appears, that disconnect is meant to be illustrative: programming by its nature often winds up out of sync from the corporal world, yet here it is, side-by-side with one of most corporal acts that humans engage in.
But Ullman’s writing about sex and machines is often a tantalizing jumble—in both her fiction and nonfiction, there are surprisingly erotic descriptions of writing code, and, conversely, largely mechanized descriptions of intercourse. “Hydraulics,” says Berta, the narrator of The Bug, during one sex scene. “Pipes and tubes and liquid secretions—automated, operating according to the laws of physics and fluid dynamics.” When Ullman first sleeps with the libertarian Brian in Close to the Machine, she writes, “His lovemaking was tantric, algorithmic. The sex was formulaic, had steps and positions and durations, all tried and perfected, like a martial arts kata or a well-debugged program. My own role in it was like a user-exit subroutine, an odd branch where anything might happen but from which we must return, tracing back to the mainline procedure.”
Intimacy—with programming languages, with writing code, with physical machines themselves—is one of the most striking parts of Ullman’s prose. She describes herself as a serial monogamist in human relationships; most programmers, she writes in Close to the Machine, are the same with technologies. A small percentage are “solid, married folks,” tethered to one or two languages for a career, but, “Fidelity in technology is not even desirable. Loyalty to one system is career-death. Is it any wonder that programmers make such good social libertarians?”
These are funny observations, but her descriptions of learning a new programming language in Close to the Machine tap into a deep vulnerability. “A manual for a new tool would call out to me like a fussy, rustling baby from inside its wrapping,” she writes. And embracing humility, opening yourself up to what you don’t know, is the only way to learn something new:
Once [a language] tells you [how it works], your single days are over. You are involved again. Now you can be arrogant again. Now you must be arrogant: you must believe you can come to know this new place as well as the old—no, better. You must now dedicate yourself to that deep slow probing, that patience and frustration, the anxious intimacy of a new technical relationship. You must give yourself over wholly to this: you must believe this is your last lover.
The machine as lover, as spouse, as child: the anthropomorphizing of digital devices has been a topic of study for as long as we have allowed computers into our lives, our homes, our bedrooms. Ullman never makes you suspect that she has mistaken these technologies for organic life, but her feelings about them are undeniably real. “Some hours ago, I had put [a Mac PowerBook] in ‘sleep mode,’” she writes in Life in Code. “And now its small green light was blinking as steadily as a baby’s breathing.”
Ullman uses the language of the domestic to talk about software. In Close to the Machine, software is “mended and fixed, patched and reused. Software is almost homey, our approach to it almost housewifely. We say it has a ‘life-cycle’: from birth, to productive maturity, to bug-filled old age.” In one of the book’s most memorable scenes, she talks about an early client who had hired her to install a digital system for his company:
The company’s employees had been there for ten and twenty years, particularly the women, mostly clerical workers. They were the ones who would be most affected by the new system, yet they went about learning it with homey cheerfulness that surprised me. I had the impression that these women of fifty or so were approaching the computer as it truly should be treated: as some new and nifty kitchen appliance with which one could make really swell things. All that was necessary, their good humor suggested, was to follow the recipes carefully.
These passages are particularly interesting because Ullman is a woman, a fact that is rarely ignored—and is often centered—in discussions of her work. It’s notable, certainly: she herself describes often being the lone girl in the perpetual boys’ club of Silicon Valley, particularly in its most technical corners, within “the cult of the boy engineer,” as she writes in Life in Code. In one of the book’s essays, she discusses the attendees of a series of conferences on topics traversing the full spectrum from technical writing and front-end applications to operating systems and chip design, noting the dwindling number of white women and people of color at each event. When the graphics special-interest group for the Association for Computing Machinery is dominated by white men, she writes, “This is the indication—the presence of just a few women—that we are getting ever closer to the heart of the machine.”
Ullman doesn’t shy away from talking about gender, but she doesn’t shy away from using gendered language to talk about programming, either. “Homey,” “housewifely,” the steady puttering of tending to the needs of the machine: they stand at odds with the Silicon Valley cultural touchstones she describes, macho posturing and teenage-boy shenanigans and a casual disregard for the real-life politics of the world technologists have been shaping.
In Close to the Machine, even the owner of the company with the fifty-something female clerical workers brings in the cold hand of patriarchal, capitalistic control. Over dinner in the revolving restaurant of a Holiday Inn in Central California, he leans across the table and asks Ullman about the new system she’s installing for him. “Can you keep track of keystrokes?” he asks. When she presses him on why he would want to—and tells him emphatically that it’s not a good idea—he admits that he wants to monitor those longtime employees. “I’ve just spent all this money on a system,” he tells her blithely. “Now I get to use it the way I’d like to.”
It is, of course, a widely remarked-upon irony that the roots of the now male-dominated field of computer programming lie with women: from Ada Lovelace to Grace Hopper, or from mechanical looms to punch cards to the original term “computer,” a job title for a (usually) female clerical employee who transferred and input vast systems’ worth of data. Ullman doesn’t feel the need to belabor these roots, even as she admits that the culture of the industry drove her out of staff positions and into consulting. In her account, the actual work of programming seems separate from the testosterone-fueled industry she describes.
Media portrayals of programmers and their work often present them as cold and robotic—and, for all of Ullman’s eloquence describing the sensory experience of the work, she frames herself and her colleagues similarly. “Ironically, those of us who most believe in physical, operational eloquence are the very ones most cut off from the body,” she writes in Life in Code. “And, cut off from the real body, we construct a substitute body: ourselves online. We treat it as if it were our actual self, our real life. Over time, it does indeed become our life.”
But programmers, whether they are cut off from their own bodies or not, are vibrant on the page, and, in Ullman’s telling, in the code, too. Their quirks, their preferences, their idiosyncrasies are there in the code, which allows them to speak to one another in ways that feel more intimate than anything in the physical world.
Bodies are messy: fallible, prone to holes and leaks, bearing the scars, physical and emotional, of all their past disasters. Software, in Ullman’s telling, is similarly messy, as is the process by which it is created and maintained. “People imagine that programming is logical, a process like fixing a clock,” Ullman writes at the start of the first essay of Life in Code. “Nothing could be further from the truth. Programming is more like an illness, a fever, an obsession.”
Programming as disease is a theme that runs throughout Ullman’s work—sometimes alongside the specter of real disease, like Close to the Machine’s AIDS patient portal and its users. In one essay in Life in Code, she evocatively describes attending a talk by the computer scientist Douglas Hofstadter, the author of Gödel, Escher, Bach, in a packed lecture hall at Stanford. “From where I was sitting, high up in the balcony, the scene reminded me nothing so much as those paintings of early medical dissections,” she writes. “Crowds of men peering to where the cadaver lay slashed open in the operating theater below.”
The bug at the center of Ullman’s first novel is a random error in the code written by the protagonist, a prickly software engineer named Ethan. The narrator, Berta, is the quality-assurance tester who discovers the bug. She also has a PhD in linguistics, which allows Ullman to muse about language in the narration:
Bug: supposedly named for an actual moth that found its way into an early computer, an insect invader attracted to the light of glowing vacuum tubes, a moth that flapped about in the circuitry and brought down a machine. But the term surely has an older, deeper origin. Fly in the ointment, shoo fly, bug-infested, bug-ridden, buggin’ out, don’t bug me—the whole human uneasiness with the vast, separate branch of evolution that produced the teeming creatures who outnumber us, plague us, and will likely survive our disappearance from the earth. Their mindless success humbles us. A parallel universe without reason.
The computer virus has been an object of fear in our collective imagination for as long as computers have been a part of mainstream culture: intentionally malevolent, self-replicating invaders ravaging our systems, usually with fatal outcomes. Ethan’s bug is a mistake, but it evokes our use of the term “bug” to refer to an illness or a pest. Small but tricky, the bug weaves its way under his skin, and his once orderly life begins to crumble. He neglects his relationship—we suspect, and later learn, that he has been neglecting it for far longer than the action of the book—and is eventually left alone, sleeping in filth on a mattress on the floor, fixating on his neighbors’ pounding music, and wearing a contraption at work to block out light and noise.
The real world feels increasingly intolerable to Ethan—bodies, scents, the bland, repetitive food he eats, all described in sometimes stomach-churning detail. It all stands in contrast to his pet project, an experiment based on the mathematician John Horton Conway’s Game of Life, in which an infinite grid of cells exist in a binary state—dead or alive—and influence their neighbors over time, based on conditions input by the programmer at the start. Life, Ethan thinks, should and would be so orderly, if only it could be programmed. At the very end of the novel, Berta reflects on the ways Ethan tried—and failed—to understand the world:
The body and the world have their physical reality, which limits what can happen, which drives events down a path. Like it or not, we’re designed to be bipedal creatures, we have to eat, we sleep. Certain things can be implied from those facts, and from all the other facts in the living world. But the machine has no given body. Its boundaries are designed, artificial, and that can be changed. Within those arbitrary bounds, the next state can be anything.
The great irony is that the bug, when it is eventually found, turns out to be just as random as the events of analog life—an error by a colleague, lurking just out of sight. Software is messy, full of the echoes of all the programmers who have touched it before. Ullman describes feeling kinship—or resentment—toward the unknown hands that have shaped the code you’re struggling to understand. This is especially true in legacy software. “The longer a system has been running, the greater the number of programmers who have worked on it, the less any one person understands it,” she writes in Close to the Machine. “As years pass and untold numbers of programmers and analysts come and go, the system takes on a life of its own.”
A quarter century after Close to the Machine was first published—and three years into a global pandemic—our lives are intricately wrapped up in digital technologies, while our physical connections with other humans remain fractured. We sleep with our phones; we celebrate major life events on Zoom; we work and play and shop and talk to our loved ones through the web. We are more connected than at any point in human history, but that connection is often mediated through an unprecedented kind of distance. We can see each other, but we can’t feel each other—there are too many layers between us, and we’re not meant to see the fingerprints.
Ullman saw this distant, user-centered world being built in the 1990s. She describes early advertisements for the web that framed the analog world as dirty, crime-ridden, and diseased. By contrast, the online world—and, of course, e-commerce in particular—was safe, clean, and, above all, convenient. It was the digital suburbanization of society, Ullman concludes in Life in Code, where a narcissistic and infantilizing promise of the good life could “isolate the individual within a sea of economic activity.” In San Francisco, she spots a billboard that says, “Now the world really does revolve around you”—much to her chagrin. “What other subject produces such hyperbole?” she writes. “Who else but someone in the computer industry could make such a shameless appeal to individualism?”
In one of that book’s most poignant essays, “Come in, CQ,” Ullman writes about ham radio—a hobby of the boy next door when she was growing up in Queens. The letters “CQ” were historically used in Morse code as an open call for response, meant for anyone who heard the signal. Ham radio operators say the letters aloud for the same purpose; though it has a different etymology, “CQ,” it has long been noted by English speakers, sounds like “seek you.” Ullman found that open yearning for connection echoed by the engineers around her in the earliest days of the internet as they built things that they then used to reach out to others. “If CQ was the representation of loneliness, then this pattern was the look of engineering fulfillment,” she writes. “It reassured the boys in the basement. All that hardware has a purpose, it said. It can indeed bring you company.”
She then describes a relationship with a fellow programmer, a former colleague who favored working at the same odd hours as she did—a preference that formed the basis of their initial connection. They begin a digital correspondence that is clearly flirtatious, but lacking something key. It’s too quick, Ullman writes, with none of the anticipation of sending off a letter and waiting for a reply. And, above all, there is a distance that she can truly understand only when he writes her a physical note. “There was his writing: precise and printlike, standing straight upward, as lean and spare as his body,” she writes. “Having this piece of paper, I knew what the email lacked: the evidence of his flesh, the work of his hand.”
The farther from the machine, the farther from other peoples’ bodies. Ullman shows this distance, and its converse closeness, in all its complexities. Our devices connect us, or the versions we project to one another, but most of us spend our whole digital lives not seeing other humans within the machine, in what’s written by one person and passed to another. Ullman’s writing feels like a vital corrective in our many-layered technological era—a drill penetrating right down to the bone.
In the final passage of “Come in, CQ,” Ullman describes reading an article in the New York Times about the U.S. Coast Guard phasing out Morse code, which would happen a year later, in 1995. “One ten-year radioman, Petty Officer Tony Turner, talked about losing the feel of the sender,” she writes. “The transmission came ‘through the air, into another man’s ear,’ he said. The code had a personality to it, a signature in the touch and rhythm on the key. For Turner, the signature’s origin was no mystery: ‘It’s coming from a person’s hand.’”
The University of Maryland professor and Microsoft principal researcher on why we should stop worrying about autonomous AI systems and start thinking more about building systems that help people
On labor in Las Vegas and the true costs of the Super Bowl
The Data & Society researcher on the uses and misuses of workplace data—and why nothing is inevitable