More The Pragmatic Engineer episodes

DHHs new way of writing code thumbnail

DHHs new way of writing code

Published 8 Apr 2026

Duration: 01:46:14

David Heinemeier Hansson shifts from critiquing AI coding tools to embracing an AI-first approach at 37signals, emphasizing Ruby on Rails' token efficiency, Omachi's user-friendly design, AI-driven productivity, evolving developer roles, and the balance between automation and craftsmanship in software innovation.

Episode Description

Brought to You By:Statsig The unified platform for flags, analytics, experiments, and more.Sonar The makers of SonarQube, the industry standard for au...

Overview

The podcast explores David Heinemeier Hanssons (DHH) journey from initial skepticism to embracing AI tools, leveraging AI agents to enhance software development at 37signals. Ruby on Rails remains relevant due to its efficiency in AI workflows, while his Linux distribution, Omachi, showcases a shift toward simplifying user experiences. 37signals has transitioned to prioritizing Omachi as the default development environment, reflecting broader industry trends toward centralized adoption of tools that align with AI advancements. The discussion also highlights software craftsmanship, emphasizing the enduring value of skilled engineers and designers who prioritize aesthetics and functionality, alongside advocacy for Linuxs role in developer workflows due to its proximity to production systems.

A significant focus is placed on the development of Hey.com, an email service designed to restore emails value by empowering users to curate their inboxes through a manual "screener" system. The products success underscores a philosophy of user-centric design and long-term product development, contrasting with modern email platforms. The episode delves into product development methodologies, advocating small, iterative teams and the integration of designers in both implementation and ideation, while critiquing the industrys tendency toward siloed roles. Challenges in hiring multifaceted talentthose who can balance design, product strategy, and codeare also addressed, alongside evolving roles for programmers in an AI-driven era.

The podcast further examines AIs maturation from early limitations (e.g., autocompletion frustrations) to its current potential, particularly with advanced models like Opus 4.5, which enable agent-first workflows. It stresses the importance of maintaining code quality and aesthetic standards in AI-generated outputs, while noting the growing productivity gains for developers using AI tools. Industry-wide shifts are discussed, including the need for human oversight in AI systems, the tension between innovation and ethical considerations, and the redefinition of roles in software engineering. Themes of health, purpose, and curiosity are interwoven, emphasizing that long-term fulfillment in tech requires balancing productivity with well-being and a commitment to craftsmanship.

Recent Episodes of The Pragmatic Engineer

1 Jul 2026 How Kent Beck shapes the software engineering industry

Ken Beck's career in software engineering, contributions to TDD, XP, and the Agile Manifesto, critiques of Agile commercialization, AI's impact, challenges of OOP, Smalltalk's legacy, JUnit, and the balance between technical mastery and human-centric skills in evolving development practices.

24 Jun 2026 Tech interviews with NeetCode

Engineering careers are shifting from algorithm memorization to problem-solving and critical thinking amid AI's influence, critiquing outdated hiring practices, highlighting adaptation divides, trade-offs, cultural contrasts, and the enduring need for human-driven decision-making in tech.

27 May 2026 Building OpenCode with Dax Raad

OpenCode's rapid growth to 10 million users highlights challenges like feature overload and AI's limited impact on development speed, while underscoring tensions between innovation, product cohesion, sustainable practices, and the complexities of AI-driven workflows in software engineering.

20 May 2026 Why Rust is different, with Alice Ryhl

Rust prioritizes memory safety and performance via ownership, borrow checking, and `unsafe` blocks without garbage collection, balancing robust governance, community-driven tools like Cargo and Tokio, safety features including null safety and exhaustive pattern matching, and ongoing efforts to simplify learning curves and integrate AI-driven development, while standing out in system programming compared to TypeScript, JavaScript, and C++.

13 May 2026 TypeScript, C# and Turbo Pascal with Anders Hejlsberg

Anders Heilsberg's contributions to programming languages like Turbo Pascal, Delphi, C#, and TypeScriptshaping design philosophies, developer tools, and .NETalongside discussions on AI's impact on coding, type systems, and the evolution of language innovation.

More The Pragmatic Engineer episodes