About Us
Reciprocality.org is an independent publication about programming, thinking, and the human side of technology.
The site grows out of the work of software engineer Alan G. Carter, whose essays explored a simple but unusual claim: most software problems are not technical problems. They are failures of understanding. Long before modern development culture, Carter argued that programming depends primarily on how people perceive systems, communicate ideas, and reason about complexity.
His writing, including The Programmer’s Stone and the later Third Age of the World series, treated programming as a cognitive activity as much as an engineering discipline. Many of the themes — debugging as investigation, design as modelling, and communication as a technical skill — have since become familiar to developers, but were rarely discussed openly at the time.
Reciprocality.org now continues that project.
Reciprocality.org republishes and contextualises earlier material alongside new articles applying similar ideas to modern computing. Modern software environments look very different from earlier eras, yet many software problems remain remarkably similar. Development teams misread requirements, projects collapse through misunderstanding rather than syntax, and capable developers stagnate because memorisation replaces systems thinking.
Reciprocality.org therefore has two clear purposes.
First, preserving historically important essays on programming thought and software culture.
Second, publishing contemporary articles about computing careers, digital skills, software systems, and practical technology.
Modern tools change constantly, but strong technical work still depends on reasoning, modelling, communication, and accurate mental representations of systems. Programming languages, frameworks, and platforms evolve far faster than human cognition.
Reciprocality.org focuses less on trends and more on understanding. Articles break down technical concepts, explain confusing areas of computing, and help readers think more clearly about software, systems, and technology.
Contributors come from software, education, and technical communication backgrounds. Some write practical guides and career explainers, while others explore broader conceptual questions about programming and systems. Historical material is presented with attribution and minimal alteration, while newer writing aims to interpret and apply those ideas in current contexts.
The aim is modest but specific: to make technical subjects clearer, to show how programming actually works in practice, and to keep alive an approach to computing that treats thinking as part of engineering rather than separate from it.