a-philosophy-of-software-design-skills
by markduan
Comprehensive guide to software design based on "A Philosophy of Software Design" by John Ousterhout. Covers complexity management, deep modules, error handling, naming, documentation, general-purpose design, design process, and consistency conventions.