The Philosophy of Software Design – with John Ousterhout

The Pragmatic Engineer April 9, 2025
Video Thumbnail
The Pragmatic Engineer Logo

The Pragmatic Engineer

@pragmaticengineer

About

Interviews about software engineering, Big Tech and startups. Highly relevant for developers and engineering leaders, useful for those working in tech. Writing The Pragmatic Engineer Newsletter (the #1 newsletter for software engineers) and the author of The Software Engineer's Guidebook

Video Description

Brought to by: • CodeRabbit — Cut code review time and bugs in half https://www.coderabbit.ai. Use the code PRAGMATIC to get one month free. • Modal — The cloud platform for building AI applications https://modal.com/pragmatic — How will AI tools change software engineering? Tools like Cursor, Windsurf and Copilot are getting better at autocomplete, generating tests and documentation. But what is changing, when it comes to software design? Stanford professor John Ousterhout thinks not much. In fact, he believes that great software design is becoming even more important as AI tools become more capable in generating code. In this episode of The Pragmatic Engineer, John joins me to talk about why design still matters and how most teams struggle to get it right. We dive into his book A Philosophy of Software Design, unpack the difference between top-down and bottom-up approaches, and explore why some popular advice, like writing short methods or relying heavily on TDD, does not hold up, according to John. We also explore: • The differences between working in industry vs. academia • Why John believes software design will become more important as AI capabilities expand • The top-down and bottoms-up design approaches – and why you should use both • John’s “design it twice” principle • Why deep modules are essential for good software design • Best practices for special cases and exceptions • The undervalued trait of empathy in design thinking • Why John advocates for doing some design upfront • John’s criticisms of the single-responsibility principle, TDD, and why he’s a fan of well-written comments • And much more! As a fun fact: when we recorded this podcast, John was busy contributing to the Linux kernel: adding support to the Homa Transport Protocol – a protocol invented by one of his PhD students. John wanted to make this protocol available more widely, and is putting in the work to do so. What a legend! (We previously covered how Linux is built and how to contribute to the Linux kernel at https://newsletter.pragmaticengineer.com/p/how-linux-is-built-with-greg-kroah) — The Pragmatic Engineer deepdives relevant for this episode: • Engineering Planning with RFCs, Design Documents and ADRs https://newsletter.pragmaticengineer.com/p/rfcs-and-design-docs • Paying down tech debt https://newsletter.pragmaticengineer.com/p/paying-down-tech-debt • Software architect archetypes https://newsletter.pragmaticengineer.com/p/software-architect-archetypes • Building Bluesky: a distributed social network https://newsletter.pragmaticengineer.com/p/bluesky — Where to find John Ousterhout: • X: https://x.com/johnousterhout • Website: https://engineering.stanford.edu/people/john-ousterhout Where to find Gergely Orosz: • X: https://x.com/GergelyOrosz • LinkedIn: https://www.linkedin.com/in/gergelyorosz/ • Bluesky: https://bsky.app/profile/gergely.pragmaticengineer.com • Newsletter and blog: https://www.pragmaticengineer.com/ — In this episode, we cover: (00:00) Intro (02:00) Why John transitioned back to academia (03:47) Working in academia vs. industry (07:20) Tactical tornadoes vs. 10x engineers (11:59) Long-term impact of AI-assisted coding (14:24) An overview of software design (15:28) Why TDD and Design Patterns are less popular now (17:04) Two general approaches to designing software (18:56) Two ways to deal with complexity (19:56) A case for not going with your first idea (23:24) How Uber used design docs (26:44) Deep modules vs. shallow modules (28:25) Best practices for error handling (33:31) The role of empathy in the design process (36:15) How John uses design reviews (38:10) The value of in-person planning and using old-school whiteboards (39:50) Leading a planning argument session and the places it works best (42:20) The value of doing some design upfront (46:12) Why John wrote A Philosophy of Software of Design (48:40) An overview of John’s class at Stanford (52:20) A tough learning from early in Gergely’s career (55:48) Why John disagrees with Robert Martin on short methods (1:10:40) John’s current coding project in the Linux Kernel (1:14:13) Updates to A Philosophy of Software Design in the second edition (1:19:12) Rapid fire round (1:01:08) John’s criticisms of TDD and what he favors instead (1:05:30) Why John supports the use of comments and how to use them correctly (1:09:20) How John uses ChatGPT to help explain code in the Linux Kernel — See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast — Production and marketing by https://penname.co/. For inquiries about sponsoring the podcast, email [email protected].

Upgrade Your Coding Setup

AI-recommended products based on this video

Loading...
Pillows Queen Size 2 Pack for Sleeping - Hotel Pillows Premium Down Alternative Bed Cooling Pillow for Side, Back, and Stomach Sleepers, Fluffy Soft Microfiber Fill Breathable Skin-Friendly

Pillows Queen Size 2 Pack for Sleeping - Hotel Pillows Premium Down Alternative Bed Cooling Pillow for Side, Back, and Stomach Sleepers, Fluffy Soft Microfiber Fill Breathable Skin-Friendly

(90)
$166.99
FREE delivery Wed, Mar 18
Loading...
24” 2.5K 2560 * 1440 Portable Monitor 180Hz 120% sRGB USB-C HDMI Large Gaming Second Extender Display Monitor Adjustment Stand for MacBook Laptop,Camera,Desktop,PS5/4, Xbox, Switch,Phone

24” 2.5K 2560 * 1440 Portable Monitor 180Hz 120% sRGB USB-C HDMI Large Gaming Second Extender Display Monitor Adjustment Stand for MacBook Laptop,Camera,Desktop,PS5/4, Xbox, Switch,Phone

(4)
$539.31$469.99
$18.01 delivery Tue, Aug 12
Loading...
GYIIYUO L Shaped Desk 64+50 Inch, 2 Power Strips (6 AC) and LED, Large Gaming Table with 3 Fabric Drawers & 2 Monitor Stands, L Shape Computer Table, Sturdy Home Office Corner Desk, Rustic Brown

GYIIYUO L Shaped Desk 64+50 Inch, 2 Power Strips (6 AC) and LED, Large Gaming Table with 3 Fabric Drawers & 2 Monitor Stands, L Shape Computer Table, Sturdy Home Office Corner Desk, Rustic Brown

(110)
$209.99
100+ bought in past month
Loading...
24" Large Portable Monitor, 1080P FHD 100Hz Laptop Screen Extender, 125% sRGB IPS Monitor Extender, USB C HDMI Office Gaming with Detachable Stand, Travel Monitor for Window MAC Phone Xbox Switch
Amazon's Choice

24" Large Portable Monitor, 1080P FHD 100Hz Laptop Screen Extender, 125% sRGB IPS Monitor Extender, USB C HDMI Office Gaming with Detachable Stand, Travel Monitor for Window MAC Phone Xbox Switch

(56)
$335.99$299.99
$19.94 delivery Mon, Aug 11
Loading...
MSI Clutch GM08 4200 DPI, Accurate Optical Sensor, Durable Build Quality, Adjustable Weight System, Dragon Scale Design Side Grips, On The Fly DPI Changing, Optical Wired Gaming Mouse with Red LED

MSI Clutch GM08 4200 DPI, Accurate Optical Sensor, Durable Build Quality, Adjustable Weight System, Dragon Scale Design Side Grips, On The Fly DPI Changing, Optical Wired Gaming Mouse with Red LED

(1,282)
$20.99
FREE delivery Sat, Jan 3 on your first order
100+ bought in past month
Loading...
LED Desk Lamp with Dual Heads, Height Adjustable, USB Charging Port, 5 Light Modes & Dimmable Brightness, Bedside Lamp for Reading, Crafting, Work, Study (White, 15W)

LED Desk Lamp with Dual Heads, Height Adjustable, USB Charging Port, 5 Light Modes & Dimmable Brightness, Bedside Lamp for Reading, Crafting, Work, Study (White, 15W)

(3,090)
$20.99
FREE delivery Sat, Jun 14 on your first order
Loading...
Monster N-Lite 211 Wireless Earbuds, Bluetooth 6.0 Stereo Headphones with Noise-Cancelling Mic and LED Display, Built-in Mic for Clear Calls, Waterproof Design for Sports

Monster N-Lite 211 Wireless Earbuds, Bluetooth 6.0 Stereo Headphones with Noise-Cancelling Mic and LED Display, Built-in Mic for Clear Calls, Waterproof Design for Sports

(8)
$39.99
FREE delivery Tue, Nov 4
Loading...
Monster N-Lite 211 Wireless Earbuds, Bluetooth 6.0 Stereo Headphones with Powerful Bass, Built-in Noise-Cancelling Mic for Clear Calls, LED Display, 36H Playtime, IPX5 Waterproof Design for Sports

Monster N-Lite 211 Wireless Earbuds, Bluetooth 6.0 Stereo Headphones with Powerful Bass, Built-in Noise-Cancelling Mic for Clear Calls, LED Display, 36H Playtime, IPX5 Waterproof Design for Sports

(40)
$39.99
FREE delivery Thu, Nov 13