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 now continues that project.
The site republishes and contextualises earlier material while also presenting new articles that apply similar ideas to modern computing. Today’s software environments are different, but the underlying difficulties remain. Teams still struggle with requirements, systems fail through misunderstanding rather than syntax, and developers still learn most effectively when they grasp relationships rather than memorise procedures.
For that reason, the publication has two purposes.
First, it preserves historically important essays on programming thought and software culture.
Second, it publishes contemporary explanatory articles about computing careers, digital skills, and practical technology.
The connection between these is intentional. Modern tools change quickly, but the mental skills needed to understand them change slowly. Clear thinking, modelling, and communication remain central to effective technical work.
Reciprocality therefore focuses less on trends and more on understanding. Articles are written to explain concepts, clarify confusing areas of computing, and help readers reason about technology rather than simply use it.
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.