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

Highlights

Transcript

Chapters

Pins

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

The Pragmatic Engineer
OverviewShownote
Unprocessed episode, you can be the first!
Brought to You By:
Antithesis – verify your system’s correctness without human review or traditional integration tests – and avoid bugs or outages.
Sentry – application monitoring software considered “not bad” by millions of developers.
turbopuffer– a vector and full-text search engine built on object storage. It’s fast, cheap, and extremely scalable.

There can be few people around who care about software performance more than today’s pod guest, Casey Muratori. He’s a programmer and videogame developer, founder of Molly Rocket, and creator of  Handmade Hero – a long-running series about building a game from scratch. He also evangelizes about performance on his Substack, Computer, Enhance.
We got to know each other about three years ago, first via messages, including this one from Casey:
“Why does the industry zeitgeist place so little emphasis on software performance when there seems to be overwhelming evidence that performance is critical to their bottom line?
Like you, I run a Substack for professional programmers, but I focus exclusively on software performance. Although we are quite large by Substack standards, so a certain subset of programmers must believe performance is important, I nonetheless hear lots of dismissive excuses when I post on social media. This happens so frequently, I devoted an entire article to cataloging the extensive pro-performance evidence we already have from the world's leading software companies: Performance Excuses Debunked.
Strangely, nobody has a rebuttal to why performance is important. When I point people to this, they actually tend to agree. But the prevailing attitude nonetheless stays the same.”
I’m delighted we finally have Casey on the podcast because it’s overdue! In this episode, we discuss why software performance matters, why it’s overlooked, and how developers can get better at writing performant code. We explore why performance should be considered during design, the value of learning to read assembly & understanding how CPUs work, Casey’s critique of ‘clean code’, and why he believes testing shouldn't drive software design.
We touch on how videogame development has changed, and influential game engines. Casey also tells us why he prefers to write code by hand, not with AI, and more.

Timestamps
00:00 Intro
05:17 Games at Microsoft
12:52 Building games
16:00 Why performance matters
27:12 Why you should learn to read assembly
30:36 Designing for optimization
42:51 How to get better at writing performant software
49:04 Understanding how the CPU works
55:53 Building games then and now
1:05:56 How game engines changed building games
1:10:48 Why new games compete with old games
1:13:25 GTA 6: why is it taking so long?
1:16:59 Casey’s critique of clean code
1:21:48 Casey’s take on TDD
1:24:30 What is good code?
1:27:32 What makes a good software engineer?
1:33:56 Why Casey doesn’t code with AI
1:39:01 AI’s impact on the game industry
1:44:43 AI and burnout
1:50:21 Why you should read papers

The Pragmatic Engineer deepdives relevant for this episode:
How Games Typically Get Built: prototyping, game engines, and a different type of QA
Game Development Basics: deepdive on how game studios differ from standard software teams
Inside Linear's Engineering Culture: building a performant product with a tiny team
Building a best-selling game with a tiny team – with Jonas Tyroller. A two-person team built a game that sold 1M+ copies
More on premature optimization: read or watch Casey’s extended take on “premature optimization is the root of all evil”: https://www.computerenhance.com/p/theroot

Production and marketing by ⁠⁠⁠⁠⁠⁠⁠⁠https://penname.co/⁠⁠⁠⁠⁠⁠⁠⁠. For inquiries about sponsoring the podcast, email podcast@pragmaticengineer.com.


Get full access to The Pragmatic Engineer at newsletter.pragmaticengineer.com/subscribe