More The Pragmatic Engineer episodes

Why performant code matters (but gets widely ignored), with Casey Muratori thumbnail

Why performant code matters (but gets widely ignored), with Casey Muratori

Published 26 Aug 2026

Duration: 01:52:59

"Performance optimization in software hinges on early architectural decisions, deep system knowledge, and avoiding premature abstraction, with historical and modern challenges shaping its evolution."

Episode Description

Brought to You By:* Antithesis - verify your system's correctness without human review or traditional integration tests - and avoid bugs or outages.*...

Overview

The podcast discusses the decline and recent resurgence of performance optimization in software development. Casey Moratori argues that modern software often runs significantly slower than necessary due to a cultural shift toward rapid development and high-level abstractions, at the expense of efficiency. Factors like rising energy costs, cloud computing demands, and hardware limitations are driving renewed interest in performance. A key theme is the importance of understanding low-level systems, particularly assembly language, to make informed architectural decisions and avoid systemic bottlenecks. The misuse of the "premature optimization" quote is critiqued, with the argument that performance awareness should be integrated early, especially in architecture, rather than treated as an afterthought.

The discussion also covers the historical challenges of game development on early Windows systems, where inefficient graphics APIs made real-time gaming unfeasible until projects like WinG enabled fast bitmap rendering. This effort laid the groundwork for DirectX and helped establish Windows as a gaming platform. The conversation extends to broader software engineering principles, emphasizing that architectural decisions have a greater impact on performance than micro-optimizations. The rise of AI in coding is examined, with concerns about developer motivation and autonomy when AI tools are mandated. The podcast highlights the value of foundational knowledge - such as CPU architecture, memory hierarchy, and assembly language - in building efficient systems and making sound technical trade-offs, especially as the industry evolves with new technologies and tools.

What If

  • What if you audited your critical code paths by reading the generated assembly?

    • Move: Pick one performance-sensitive function in your project, compile it, and use a tool like Compiler Explorer or objdump to view and trace through the assembly output. Annotate what each section does.
    • Why Now?: With rising energy costs and cloud compute pricing, even small inefficiencies in core logic compound quickly - especially for solo operators managing their own infrastructure and margins.
    • Expected Upside: You'll uncover hidden overhead (e.g., unnecessary allocations, redundant checks) and gain intuition for how high-level constructs translate to machine operations, leading to better architectural decisions and faster, leaner code.
  • What if you modeled the theoretical performance limit of your app's main data flow?

    • Move: Use "napkin math" to calculate the best-case latency or throughput of your system (e.g., network round-trip + disk read speed + CPU processing). Compare this to your actual observed performance.
    • Why Now?: As tools like Bun, Linear, and FilePilot gain traction by advertising 10x - 50x speedups, users expect snappier software - even from indie developers. Knowing your performance ceiling helps you close the gap strategically.
    • Expected Upside: You'll identify whether your bottleneck is architectural (e.g., serial dependencies) or implementation-based, allowing you to prioritize impactful changes instead of chasing local optimizations.
  • What if you replaced a high-level dependency with a purpose-built primitive for a core feature?

    • Move: Identify one slow or unreliable component (e.g., a syncing mechanism, search, or state update loop) and rebuild it using a simpler, performance-first primitive (e.g., an in-memory index, batched writes, or a custom buffer structure inspired by systems like Turbobuffer).
    • Why Now?: Monolithic frameworks and generic databases often introduce unavoidable latency. With growing demand for responsiveness, even solo developers can differentiate their product by rethinking foundational choices.
    • Expected Upside: You'll reduce tail latency, improve scalability, and create a defensible advantage - especially if the optimized feature becomes a user-facing differentiator (e.g., instant sync, real-time updates).

Takeaway

  • Learn assembly language to understand CPU behavior and identify performance bottlenecks in compiled code, even if you don't write it regularly.
  • Focus on architectural decisions early - avoid serial dependency chains and design systems that allow for future optimization and parallelization.
  • Use back-of-the-envelope calculations to estimate theoretical performance limits and detect inefficient designs or unrealistic benchmarks.
  • Treat performance as a competitive advantage by measuring and improving response times, especially in tools where speed differentiates from incumbents.
  • Evaluate dependencies and system primitives for performance impact upfront, as poor choices (e.g., databases, libraries) can create systemic bottlenecks that are hard to fix later.

Recent Episodes of The Pragmatic Engineer

29 Jul 2026 Formal methods with Hillel Wayne

"Formal verification methods, like TLA+ in AWS's DynamoDB, ensure AI-generated code correctness, with property-based testing offering a practical middle ground; the discussion affirms software engineering as a legitimate discipline, balancing traditional principles with rapid iteration and open-source culture, while exploring AI's future impact on development and job markets."

15 Jul 2026 Context engineering with Dex Horthy

"Explores AI's role in software development, addressing challenges like code quality, human oversight, and balancing automation with human judgment while evaluating different AI-assisted approaches and future implications."

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.

More The Pragmatic Engineer episodes