Since 1980 • Humanistics • Philosophy • Computing
Combining humanities and technology since 1980. When there were only 23,500 webservers in 1995, I had already been working with computers for fifteen years, exploring the intersection of analytical philosophy and computing—a perspective that remains crucial for bringing clarity and simplicity to our digital world.
With experience spanning over four decades and academic training in the humanities, I bring a unique lens to understanding how technology shapes society and human experience.
From Code to Computation moves across the field — from logic and data through algorithms and abstraction — mapping the foundations the digital age is built on.
The Language Stack cuts the other way, straight down through a single slice: building one small language by hand, from silicon to semantics, to feel what each layer actually commits us to.
A comprehensive exploration of computing from first principles, examining the philosophical and practical foundations that underpin our digital age. Available at major bookstores.
From Silicon to Semantics. Building one small language all the way up — from a processor's fetch-decode-execute loop through lexer, parser, type system, interpreter, and a compiler that reaches real silicon — and asking, at each layer, what a programming language actually commits us to. Coming soon to major bookstores.
The Conditions of Intelligence moves outward from AI systems — through architecture, consciousness, governance — toward the society they are entering.
The Worldless Machine reverses the direction: beginning from the cultural and historical conditions that produced AI, and asking what those conditions reveal about AI's character and consequences.
Artificial Minds, Human Questions. A philosophical inquiry into what
intelligence requires — examining the assumptions hidden inside our models and
the human questions no algorithm can dissolve.
Revised and expanded edition. Available at major bookstores.
Language, Labor, and the Conditions That Produced AI. When large language models began producing fluent text, the concepts we use to describe minds — understanding, meaning, feeling — stopped working the way they always had. Not because the concepts were wrong. Because they were formed for a world that had never before contained anything like this. Available at major bookstores.
Apart from the pairs above, this one stands alone — turning from foundations and intelligence to the daily condition of the work itself.
Never Done asks why software is never finished: every rule we add only shifts the frontier of what remains unruled, so the making is less a matter of completing than of tending the unfinishable.
The Double Non-Closure of Software Work. A function fails on a case its type checker passed. A service left untouched for a year suddenly will not run, because everything beneath it changed. One reveals the limit of rules; the other, the unfinished condition of software. This book argues that these limits are one — every rule only shifts the frontier of what remains unruled. Software making is therefore not the work of finishing, but of staffing the unfinishable.
Bringing the precision of analytical philosophy to the often murky world of technology. Clear concepts lead to better understanding and more thoughtful implementation. This clarity helps e.g., expose hidden assumptions and prevents confusion from propagating into systems that must operate reliably at scale.
Over four decades of computing experience provides context that's invaluable for understanding current trends and anticipating future developments. It also sharpens the ability to distinguish enduring principles from short-lived trends.
Technology exists within society, not separate from it. Every technical decision has human implications that deserve careful consideration. And every system we design, deploy, or maintain carries with it assumptions about how people should live, work, and interact with one another.