Listen and watch now on YouTube, Spotify, and Apple. See the episode transcript at the top of this page, and timestamps for the episode at the bottom.
Jump to interesting parts:
20:28 — The story of how Swift was created
**47:28 **— Chris’s AI learnings from working at Google and Tesla
**52:24 **— The Mojo programming language’s origin story (Mojo is new, a high-performance, Python-compatible programming language)
**[1:19:00](https://www…
Listen and watch now on YouTube, Spotify, and Apple. See the episode transcript at the top of this page, and timestamps for the episode at the bottom.
Jump to interesting parts:
20:28 — The story of how Swift was created
**47:28 **— Chris’s AI learnings from working at Google and Tesla
**52:24 **— The Mojo programming language’s origin story (Mojo is new, a high-performance, Python-compatible programming language)
**1:19:00 **— AI coding tools the Modular team uses (Chris’s current startup)
• Statsig — The unified platform for flags, analytics, experiments, and more. Companies like Graphite, Notion, and Brex rely on Statsig to measure the impact of the pace they ship. Get a 30-day enterprise trial here.
• Linear – The system for modern product development. Linear is a heavy user of Swift: they just redesigned their native iOS app using their own take on Apple’s Liquid Glass design language. The new app is about speed and performance – just like Linear is. Check it out.
—
Chris Lattner is one of the most influential engineers of the past two decades. He created the LLVM compiler infrastructure and the Swift programming language – and Swift opened iOS development to a broader group of engineers. With Mojo, he’s now aiming to do the same for AI, by lowering the barrier to programming AI applications.
I sat down with Chris in San Francisco, to talk language design, lessons on designing Swift and Mojo, and – of course! – compilers. It’s hard to find someone who is as enthusiastic and knowledgeable about both compilers, and programming, as Chris is!
We also discussed why experts often resist change even when current tools slow them down, what he learned about AI and hardware from his time across both large and small engineering teams, and why compiler engineering remains one of the best ways to understand how software really works.
“I believe in the power of programmers. I believe in the human potential of people that want to create things. And that’s fundamentally why I love software is that you can create anything that you can imagine.”
This episode was full of interesting details. Some of my favorite ones:
“Compiles are cool. Don’t let anyone tell you otherwise.” My favorite quote from Chris. 1.
**Demonstrate business value inside a large company, first! **Apple hired Chris to work on LLVM, because they were frustrated with GCC. However, it took Chris some friendly advice from his manager, and he “got the vibe that, after a year, if Apple’s not using in some product, then they’ll ask to start doing something else.” This realization pushed Chris to find the first team to be the internal customer to LLVM: which was the OpenGL team, where he was able to “do something very small that actually had value.” After this, more teams inside Apple onboarded to LLVM. 1.
**Chris built Swift in secret, for more than a year. **For a year and a half, Chris built Swift on nights and weekends, while running a 40+ person (and growing!) team during the day. 1.
**Apple leadership was initially not enthusiastic about Swift, at all, initially. **When Chris showed off an early version of Swift to leadership, the response was “why would we want a new language? Objective C is what made the iPhone successful.” 1.
A new programming language for LLMs doesn’t make sense — according to Chris**. **The readability of a programming language is more important than how easy it is to write it. So in a world with more AI agents writing code, the most powerful languages will be ones that are expressive, and readable. This might be one reason Python remains so popular, and it’s also how Mojo is being designed. 1.
Why Mojo is both so readable, but also so performant: Mojo took a lot of inspiration from Python for readability, but also added features to make the language be more performant: for example, [compressed floating point formats](http://reducing the precision) (the ability to reduce the precision of floating point numbers, by using types like Float16, and using less memory space and do calculations faster with it), and metaprogramming capabilities like parameters for compile-time calculations. 1.
How Modular hires new grads: they look for folks who have intellectual curiosity, are fearless in getting things done, and it’s a positive sign if they’ve contributed to open source projects before. 1.
**Chris’ success is a lot more work and not listening to others than many would imagine. **LLMV, Clang, Swift and other projects Chris created are used industry-wide: but early on, these projects got little support. As Chris put it: “I don’t expect people to understand me. What usually happens is that these projects over time, they grow and they get to the point where suddenly it clicks and suddenly people start to understand.” 1.
**What Chris is the most proud of: helping others create software. **Something Chris still remembers is how, after Swift became widespread, people stopped him on the street, thanking him that they could become iOS developers using this easier to onboard language.
• AI Engineering in the real world
• Uber’s crazy YOLO app rewrite, from the front seat
• Python, Go, Rust, TypeScript and AI with Armin Ronacher
• Microsoft’s developer tools roots
(00:00) Intro
(02:35) Compilers in the early 2000s
(04:48) Why Chris built LLVM
(08:24) GCC vs. LLVM
(09:47) LLVM at Apple
(19:25) How Chris got support to go open source at Apple
(20:28) The story of Swift
(24:32) The process for designing a language
(31:00) Learnings from launching Swift
(35:48) Swift Playgrounds: making coding accessible
(40:23) What Swift solved and the technical debt it created
(47:28) AI learnings from Google and Tesla
(51:23) SiFive: learning about hardware engineering
(52:24) Mojo’s origin story
(57:15) Modular’s bet on a two-level stack
(1:01:49) Compiler shortcomings
(1:09:11) Getting started with Mojo
(1:15:44) How big is Modular, as a company?
(1:19:00) AI coding tools the Modular team uses
(1:22:59) What kind of software engineers Modular hires
(1:25:22) A programming language for LLMs? No thanks
(1:29:06) Why you should study and understand compilers
Where to find Chris Lattner:
• X: https://x.com/clattner_llvm
• LinkedIn: https://www.linkedin.com/in/chris-lattner-5664498a
• Website: https://nondot.org/sabre
Mentions during the episode:
• LLVM: https://llvm.org
• Swift: https://www.swift.org
• GCC: https://gcc.gnu.org
• Linux: https://www.linux.org
• Autoconf: https://en.wikipedia.org/wiki/Autoconf
• Python: https://www.python.org
• Mojo: https://www.modular.com/mojo
• REPL and Debugger: https://www.swift.org/documentation/lldb/
• Code Complete with Steve McConnell: https://newsletter.pragmaticengineer.com/p/code-complete-with-steve-mcconnell
• Python: The Documentary: https://lwn.net/Articles/1035537/
• CUDA: https://developer.nvidia.com/cuda-toolkit
• GPU puzzles: https://puzzles.modular.com/introduction.html
• Claude Code: https://www.claude.com/product/claude-code
• Cursor: https://cursor.com
• Beyond Vibe Coding with Addy Osmani: https://newsletter.pragmaticengineer.com/p/beyond-vibe-coding-with-addy-osmani
• Beyond Vibe Coding: From Coder to AI-Era Developer: https://www.amazon.com/Beyond-Vibe-Coding-AI-Era-Developer/dp/B0F6S5425Y
• Kaleidoscope Tutorial: https://llvm.org/docs/tutorial/LangImpl01.html
• Rust Compiler Development Guide: https://rustc-dev-guide.rust-lang.org/overview.html#overview-of-the-compiler
—
Production and marketing by Pen Name.