Image by Ivy Sanders Schneider

The Engineer’s Predicament

Ben Tarnoff

It might surprise you to learn that a non-negligible number of the people who write software for a living are socialists. There aren’t as many as the right would have you believe — how lovely to imagine a Twitter staffed exclusively by blue-haired reds — but enough, and more than there used to be. 

The reasons are probably not terribly specific to tech. The well-documented material factors that have been pulling millennials and zoomers to the left, like high housing costs and heavy student-debt loads, are present even within the relatively well-paid world of software. This partly accounts for tech workers’ enthusiasm for the two Bernie campaigns — Google employees were his top campaign contributors both times — and their receptivity to the leftward currents of the Trump years. 

The history of the labor movement is full of highly skilled workers in capital-intensive industries who had radical politics — many helped found the Congress of Industrial Organizations in the 1930s. As long as they have existed, these workers have also been easy targets for critique. What hypocrisy, to be so deep in the belly yet so opposed to the beast. For our socialist software engineers, a couple of possible directions present themselves when attempting to resolve this apparent contradiction. Organizing a reading group is one; organizing their workplace is another. Neither is specific to software, however. So another desire develops: to put their politics into code. They want to write software that will facilitate the creation of worker cooperatives, seed the internet with self-governing platforms, and equip movements and municipalities with tools for democratic decision-making and participatory governance. You may not care about how to write socialist software; the idea may even strike you as ridiculous. But if you are at all curious about the possibility of life beyond capitalism, you have a stake in the engineer’s predicament. 

In the 1970s and 1980s, various Scandinavian labor unions tried to figure out how to create new kinds of machines, ones that would enlist the active participation of workers. One project was called UTOPIA. Undertaken by the Nordic Graphic Workers’ Union, the initiative brought typographers and computer scientists together to design a newspaper production system. At the time, computerization was beginning to inflict significant job losses on the printing professions. UTOPIA aimed to use computers for something different: not deskilling and displacing labor, but improving both working conditions and the quality of the finished work. Projects like these targeted a core feature of capitalist technology, as diagnosed by political economist Harry Braverman: the separation of “hand” from “brain,” of “conception” from “execution.” The unions wanted to make technology that disalienated the labor process.

UTOPIA produced some cool cardboard-and-plywood prototypes, but the system was never actually built. The management of the newspaper that had agreed to implement UTOPIA refused to cooperate. The balance of class forces wasn’t quite where it needed to be. This wasn’t the only reason the Scandinavians failed, however. When you sit down to create a new technology, whether it’s made of polyurethane or Python, you’re never working from scratch. You’re always working within a particular material grammar that has accreted over centuries of technological development. The Scandinavians were struggling not only against the bosses they could see — the ones in their workplaces — but against the ghosts of bosses past, the ones who bequeathed them their technological tools. And those bosses, the ghost bosses, were, and still are, harder to defeat. Even a revolution won’t do it; the day after, you’ll still be surrounded by machines encoded with politics hostile to yours.

This dilemma is especially acute in the case of software. Modern computing is inconceivable without U.S. imperialism, which has always relied on public-private partnerships. The same data-processing infrastructures developed by the Pentagon and the National Security Agency, made to secure the postwar Pax Americana, were adapted by the private sector to profitable ends like customer surveillance and computerized credit scoring. Here as elsewhere, the imperatives of capital and empire are the matrix in which technology takes shape.

But to say that these imperatives structure the path of technological development is not to say that they completely determine it. As the political theorist Langdon Winner has written, technology “always does more than we intend.” Sometimes it even does the opposite. The first “high-level” programming languages, such as FORTRAN and COBOL, were invented in the 1950s to simplify the work of software development, partially in the hopes of reducing labor costs. Instead, the demand for software engineers grew, since programming languages added sources of complexity even as they eliminated others. 

Some technologies are class traitors, you could say. They refuse their inheritance, or use it to subvert the system that provided it. Others are simply more malleable, more open to redirection. The challenge for a socialist software engineer, or really for anyone with an interest in piecing together a post-capitalist future, is to find ways to use the space opened up by these breaks: not just to stage little acts of resistance at the edges, the sort of noble, modest Luddisms scattered throughout history, but, ideally, to effect the leap to a new technological system. 

There is a risk here, well described by the historian David F. Noble as “technological optimism.” Technological optimists, Noble writes, cling to the belief in “a technologically determined liberatory future.” It’s dangerous to expect too much from technology. There are some promises that machines can’t fulfill, and others that we wouldn’t want them to. A better future would probably be one in which machines make fewer choices for us because those choices are being made consciously, collectively. This is the greatest dilemma faced by socialist software engineers: in working against the grain of their technological heritage, they may also be working to bring about a world in which technology matters less.

Ben Tarnoff is a writer who works in the tech industry. His most recent book is Internet for the People: The Fight for Our Digital Future.