systems
Small tools, loosely joined
It is 1971 at Bell Labs, and the operating systems of the day are baroque cathedrals — huge, machine-specific, unportable, and hostile to change. On a scavenged PDP-11, build the opposite: an operating system small enough to understand, written in a high-level language so it can move to hardware that does not exist yet, and organized around one austere idea — programs as filters, each doing one thing well, composed through a uniform interface. Everything is a file; text streams are the universal glue. Get the philosophy wrong and every tool grows its own incompatible universe of options and formats, forever; get it right and a few dozen small programs, endlessly recombined, outlive every monolith and quietly become the substrate of the internet.
Who this problem belongs to
The two figures whose methods fit it best, out of 42 in contention.
This is not a hypothetical for Thompson; it is his own 1969 workbench, a scavenged PDP-7 and then a PDP-11 at Bell Labs, where he built the first version of Unix after AT&T withdrew from the sprawling Multics project. He designed exactly the philosophy this problem describes: small, single-purpose programs, each doing one job well, composed through pipes and a uniform text-stream interface rather than one monolithic system trying to do everything. His design choices, the hierarchical file system, 'everything is a file,' and the shell's pipeline notation, directly created the composability this problem's 'small tools, loosely joined' names. He also wrote the earliest versions of grep and the regular-expression engine that became a signature Unix tool. There is no more direct match on this entire roster.
Ritchie is Thompson's direct co-architect on this exact 1971 Bell Labs project, and he supplied the piece that made this problem's portability demand achievable: the C programming language, high-level enough that Unix itself could be rewritten in it and recompiled for hardware that did not yet exist when the code was written. His insistence on a small, orthogonal language with minimal abstraction overhead is the linguistic embodiment of the same minimalist philosophy Thompson built into the operating system's architecture. Together they turned 'small tools, loosely joined' into a portable, replicable substrate rather than a one-off hack tied to a single scavenged machine. His score sits a hair below Thompson's only because Thompson led the original kernel and shell design that Ritchie's language then made portable.
42 figures are scored on this problem. Draw it in a battle to see where you land.