The Pragmatic Engineer

Gergely Orosz

Software engineering at Big Tech and startups, from the inside. Deepdives with experienced engineers and tech professionals who share their hard-earned lessons, interesting stories and advice they have on building software. Especially relevant for software engineers and engineering leaders: useful for those working in tech. newsletter.pragmaticengineer.com

  1. Kubernetes and retiring at the top with Kelsey Hightower

    44 min ago

    Kubernetes and retiring at the top with Kelsey Hightower

    Brought to You By: • Antithesis – verify your system’s correctness without human review or traditional integration tests – and avoid bugs or outages. • Buildkite – CI software built to absorb whatever your coding agents throw at the build queue • Sentry – application monitoring software considered “not bad” by millions of developers — Kelsey Hightower went from a self-taught technician installing DSL modems to becoming one of Google’s elite Distinguished Engineers, whom the CEO of Microsoft personally tried to recruit. Hightower’s career achievements are rooted in hard work and self-directed learning, and today he’s one of the most influential voices in modern infrastructure, through his talks, open source work, and writing. In this episode of The Pragmatic Engineer podcast, Kelsey and I cover his unconventional path into tech and the lessons he’s learned during three decades in the industry. We discuss his entrepreneurial years, building a reputation through open source, the rise of containers and Kubernetes, and his time at Google during one of the most consequential periods in cloud computing.  He recounts how a job offer from a big tech giant led to the biggest raise of his career, what prompted him to slow down after years of career acceleration, and we also discuss his perspective on AI. Throughout, Kelsey keeps a simple idea front of mind: that technology is ultimately about people. Whether it’s infrastructure, leadership, careers, or AI, he argues that the goal is not to build technology for its own sake; it’s to solve meaningful human problems. — Timestamps 00:00 Intro 03:34 Kelsey’s first job at McDonald’s 05:04 His non-traditional path into tech 11:45 Landing his first tech job with an A+ certification 15:33 His entrepreneurial years 19:45 Joining Google as a data center technician 27:48 Learning automation at a Rackspace spinoff 33:26 Moving into financial services 50:00 Building a reputation through open source 53:55 From configuration management to containers 1:08:20 The rise of Kubernetes 1:25:05 Why he almost joined NASA instead of Google 1:29:20 Defining DevRel at Google 1:38:20 Demonstrating impact at Google 1:41:20 Microsoft's offer 1:55:20 Learning how to slow down 2:06:39 Advising and investing 2:15:03 A people-first view of GenAI 2:24:27 Using AI with guardrails 2:28:26 Matching AI to the task 2:36:06 Staying relevant in the AI era — The Pragmatic Engineer deepdives relevant for this episode: • Career paths for software engineers at large tech companies • The past and future of modern backend practices • How Kubernetes is built • How Linux is built • The Staff Engineer’s Path: You’re a role model now (sorry!) — 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

    2h 51m
  2. Building OpenCode with Dax Raad

    27 May

    Building OpenCode with Dax Raad

    Brought to You By: • Antithesis – verify your system’s correctness without human review or traditional integration tests – and avoid bugs or outages. • WorkOS – Everything you need to make your app enterprise ready. • turbopuffer – a vector and full-text search engine built on object storage. It’s fast, cheap, and extremely scalable. — OpenCode is one of the fastest-growing AI developer tools around, surging in just a few months from roughly 650,000 monthly active users to nearly 8 million, and almost 1M daily active users. In this episode of The Pragmatic Engineer Podcast, we meet Dax Raad, co-founder of OpenCode, for a discussion about the gaps in developer tooling that led him to build OpenCode, the advantages of open source, and why taste and engineering judgment matter even more as AI becomes a core part of software development. We also cover how OpenCode turned Anthropic’s blocking of integration with Claude Code into a massive growth lever by partnering with OpenAI and other model providers, why GPU demand is becoming a bottleneck everywhere, how come AI coding tools don’t automatically mean engineering teams move faster, and also why Dax is personally skeptical about predictions for the future of engineering and work, in general. I found this conversation especially interesting because Dax displays a healthy skepticism toward the benefits of AI, even while building one of the most popular AI coding harnesses. — Timestamps 00:00 Intro 07:03 Dax’s path into tech 09:04 Early startup experience 13:16 Getting involved with open source 16:13 OpenCode 23:17 Anthropic banning OpenCode 30:34 From terminal to GUI 32:34 OpenCode’s business model 36:33 Why inference is profitable 39:11 GPU bottlenecks 40:54 AI hype 45:50 AI spending 48:47 Dax’s memo 55:41 Dax’s skepticism of predictions 58:58 Engineering culture at OpenCode 1:02:38 How building works at OpenCode 1:05:36 Taste and quality 1:11:32 Dax’s work setup 1:12:35 The role of engineers and EMs 1:15:50 Advice for engineers 1:18:12 Book recommendation — The Pragmatic Engineer deepdives relevant for this episode: • How Claude Code is built • How Codex is built • Real-world engineering challenges: building Cursor • The AI Engineering stack • How Uber uses AI for development: inside look — 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

    1hr 20min
  3. Why Rust is different, with Alice Ryhl

    20 May

    Why Rust is different, with Alice Ryhl

    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 • ⁠Craft Conference⁠: join Gergely, Kent Beck, Hillel Wayne and others at the conference dedicated to the art and science of software delivery craft. — Rust is one of the most admired programming languages around – and also one of the hardest to learn. What makes developers stick with it? In this episode of The Pragmatic Engineer Podcast, I sit down with Alice Ryhl, a software engineer on Google’s Android Rust team, and a core maintainer of Tokio, which is the most widely-used async runtime in Rust. We discuss what makes Rust different from other languages like TypeScript, Go, and C++, and why so many developers say that “once it compiles, it works.” We go deep into memory safety, ownership, borrowing, unsafe Rust, and Cargo. We also cover how Rust is governed by RFCs, feature flags, its six-week release cycle, how engineers get paid to work on the language, and also look into how Rust’s use inside the Linux kernel is progressing. — Timestamps (00:00) Intro (04:09) Tokio: an overview (05:11) What Alice likes about Rust (12:48) Rust for TypeScript engineers (13:51) Moving from C++ to Rust (14:34) Memory safety (18:12) Garbage collection tradeoffs (21:46) Ownership, references, and borrowing (26:59) Unsafe in Rust (31:21) Crates and Cargo (35:55) Language design and RFCs (43:02) Building new features (46:30) Editions vs. versions (49:47) Getting paid to work on Rust (51:27) Contributing to Rust (53:03) Rust in the Linux kernel (55:45) AI use cases for Rust (1:01:35) Learning Rust (1:03:54) Book recommendation — The Pragmatic Engineer deepdives relevant for this episode: • The past and future of modern backend practices • How Kotlin was built with Andrey Breslav • How Swift was built with Chris Lattner • How Linux is built with Greg KH — 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

    1hr 5min
  4. TypeScript, C# and Turbo Pascal with Anders Hejlsberg

    13 May

    TypeScript, C# and Turbo Pascal with Anders Hejlsberg

    Brought to You By: • Antithesis – verify your system’s correctness without human review or traditional integration tests – and avoid bugs or outages. • WorkOS – Everything you need to make your app enterprise ready. • turbopuffer – a vector and full-text search engine built on object storage. It’s fast, cheap, and extremely scalable. — Anders Hejlsberg is a living legend and one of the most influential programming language designers of all time. He created Turbo Pascal, Delphi, C#, and also TypeScript. As well as that, he spent nearly a decade at the pioneering dev tools company, Borland, and is now in his 30th year of working at Microsoft, where he’s a Technical Fellow. In this episode, we discuss what it takes to build programming languages that developers love to use, and trace his career from writing his first compiler to creating Turbo Pascal and Delphi, and helping to pioneer modern software development through C# and TypeScript. Anders details how C# was designed by a small group of experienced language designers who met a few hours each week, and he explains why tooling was just as important as the language for TypeScript’s success, and what he has learned from building languages which stay relevant for decades. We also look into how Anders uses AI today, which language features suit AI-assisted development, and what he thinks is changing in the craft of software engineering as developers move further away from writing code line by line. — Timestamps (00:00) Intro (02:48) How Anders got into programming  (05:40) Building his first compiler  (07:44) Turbo Pascal (12:25) Delphi  (14:53) Joining Microsoft (19:41) Building C#  (29:11) Async/await (34:01) The rise of JavaScript (37:52) Building TypeScript (42:58) How the TypeScript compiler works  (48:30) JavaScript’s strengths and weaknesses (52:18) How Anders uses AI  (56:03) What language features work well with AI  (1:02:49) How software craftsmanship is changing (1:07:49) Performance and efficiency  (1:09:29) Anders’ tool stack  (1:11:30) A 30-year career at Microsoft (1:13:40) Book recommendation — The Pragmatic Engineer deepdives relevant for this episode: • Microsoft’s developer tools roots • 50 Years of Microsoft and developer tools with Scott Guthrie • How Linux is built with Greg Kroah-Hartman • How will AI change operating systems? Part 1: Ubuntu and Linux • How Uber uses AI for development: inside look — 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

    1hr 15min
  5. Building Pi, and what makes self-modifying software so fascinating

    29 Apr

    Building Pi, and what makes self-modifying software so fascinating

    Brought to You By: • Statsig — ⁠ The unified platform for flags, analytics, experiments, and more. • Sonar – The makers of SonarQube, the industry standard for automated code review • WorkOS – Everything you need to make your app enterprise ready. — Mario Zechner is the creator of Pi, a minimalist, self-modifying AI coding agent, that is the foundation upon which OpenClaw (created by Peter Steinberger) is built. Meanwhile, Armin Ronacher is the creator of Flask, and a longtime user of Pi. The pair are also friends. I sat down with Mario and Armin for the latest episode of the Pragmatic Engineer Podcast for an interesting conversation about AI and their reservations about it – even though both are heavily invested in building AI-powered tools. Mario explains why he built Pi, and gives his take on why it has become so popular. Armin walks us through how he uses AI tools, including building a game with Pi, and why he always puts human judgment firmly at the heart of his approach. We cover the risks of over-automation, the limits of agentic workflows, and why strong engineers with informed judgment still matter. We also get into the challenges of working with code written by non-engineers, and whether open source can withstand a tidal wave of agent-generated code. — Timestamps (00:00) Intro (07:30) How Mario, Armin, and Peter Steinberger met(15:15) How 30 dev teams use AI agents: learnings (21:50) The importance of judgment (24:26) Challenges when non-engineers write code (28:30) Downsides of over-automation (32:18) Pi (48:09) OpenClaw + Pi (50:54) “Clankers” (57:32) Open source and AI (1:00:22) Complexity as the enemy (1:02:50) Building an AI-native startup (1:11:52) “Slow the F down” (1:16:40) MCPs vs. CLI (1:25:03) Predictions and staying up to date — The Pragmatic Engineer deepdives relevant for this episode: • The impact of AI on software engineers in 2026: key trends • Cycles of disruption in the tech industry • The AI engineering stack • The creator of OpenClaw: "I ship code that I don't read" • What is inference engineering? Deepdive — 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

    1hr 33min
  6. Designing Data-intensive Applications with Martin Kleppmann

    22 Apr

    Designing Data-intensive Applications with Martin Kleppmann

    Brought to You By: • Statsig — ⁠ The unified platform for flags, analytics, experiments, and more. • Sonar – The makers of SonarQube, the industry standard for automated code review • WorkOS – Everything you need to make your app enterprise ready. — Martin Kleppmann is a researcher and the author of Designing Data-Intensive Applications, one of the most influential books on modern distributed systems. As of this month, the second, heavily updated edition of the book is out. In this episode of Pragmatic Engineer, we discuss Martin’s career in tech building startups, how he ended up writing this iconic book, and what he’s focused on now after moving into academia. We talk about the tradeoffs behind modern infrastructure, how the cloud has changed what it means to scale, and the thinking behind Designing Data-Intensive Applications, including what’s changing in the second edition. Martin reflects on lessons from building startups like Rapportive, which he sold to LinkedIn, and shares how his experience in both academia and industry shaped his perspective. We also explore what’s ahead: why formal verification may become more important in an AI-assisted world, the challenges of building local-first software, and his recent research into using cryptography to improve transparency in supply chains without exposing sensitive data. — Timestamps (00:00) Early career (05:46) Building Rapportive (10:47) Working at LinkedIn (14:09) Writing Designing Data-Intensive Applications (23:00) Reliability, scalability, and repeatability  (26:24) DDIA: the second edition (30:50) Tradeoffs of using cloud services  (39:02) How the cloud changed scaling  (42:53) The trouble with distributed systems (49:02) Ethics for software engineers  (52:45) Formal verification (1:00:12) Academia vs. industry  (1:03:50) Local-first software  (1:09:50) Computer science education (1:18:32) Martin’s current research and advice — The Pragmatic Engineer deepdives relevant for this episode: • Building Bluesky: a distributed social network • Inside Uber’s move to the cloud • The history of servers, the cloud, and what’s next • The past and future of modern backend practices • How Kubernetes is built — 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

    1hr 25min
  7. DHH’s new way of writing code

    8 Apr

    DHH’s new way of writing code

    Brought to You By: • Statsig — ⁠ The unified platform for flags, analytics, experiments, and more. • Sonar – The makers of SonarQube, the industry standard for automated code review • WorkOS – Everything you need to make your app enterprise ready. — David Heinemeier Hansson (DHH) is the creator of Ruby on Rails and Omarchy, co-founder and CTO of 37signals (maker of Basecamp and HEY), and the author of several books including the best-seller, Remote: Office Not Required, co-written with Jason Fried. Six months ago, in an episode of the Lex Fridman podcast, David shared how he doesn’t use AI tools to write code: he types out all his code. But things have changed a lot since then.  In this episode, we discuss his approach to building software, how it’s changed in the last six months, and why he now takes an agent-first approach, and how he barely writes any code by hand. We go into how he uses AI agents: which alter how he builds and explores ideas, but also how his standards of quality and craft remain the same. We also discuss how 37signals thinks about product development, from the role of designers to the importance of aesthetics and taste. David gets into how he sees beauty and functionality as closely linked, and why strong opinions about design lead to better software. Finally, we look into the uneven impact of AI which amplifies senior engineers while creating challenges for junior developers, and what this may mean for the role of the software engineer. — Timestamps (00:00) Intro (02:11) Omarchy and Ruby on Rails (08:25) 37signals overview (10:12) Launching HEY (18:38) Building HEY (22:47) Designers at 37signals (28:08) The craft of design (31:52) Why DHH now embraces AI workflows (39:45) The AI inflection point (44:23) DHH’s agent-first workflow (55:09) AI’s impact on junior developers (1:03:08) Developer experience with AI (1:16:43) What does AI mean for developers? (1:23:33) 37signals teams and hiring (1:38:20) Work-life balance with AI (1:41:41) Why DHH keeps building (1:45:24) Closing — The Pragmatic Engineer deepdives relevant for this episode: • Are AI agents actually slowing us down? • How Claude Code is built • The future of software engineering with AI: six predictions • The AI Engineering Stack • Mitchell Hashimoto’s new way of writing code • How Linux is built with Greg Kroah-Hartman — 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

    1hr 46min
  8. Scaling Uber with Thuan Pham (Uber’s first CTO)

    1 Apr

    Scaling Uber with Thuan Pham (Uber’s first CTO)

    Brought to You By: • Statsig — ⁠ The unified platform for flags, analytics, experiments, and more. • Sonar – The makers of SonarQube, the industry standard for automated code review • WorkOS – Everything you need to make your app enterprise ready. — Thuan Pham was Uber's first and longest-serving CTO, and today he’s the CTO of Faire, a B2B wholesale platform. Back when Thuan joined Uber, it had around 40 engineers and 30,000 rides per day, and the system crashed multiple times a week. Over seven years, he helped rebuild the system, move it from a monolith to microservices, and scaled the engineering organization behind it. I had the privilege of working with Thuan for four of those seven years. Later, the very first issue of The Pragmatic Engineer newsletter was a deepdive into Uber’s Program and Platform split. This episode of the podcast contains a nice “full circle” moment, where Thuan shares even more details about why Uber chose to embrace that structure. We discuss what it takes to operate and build in that kind of environment. Thuan explains how he divided his time at Uber into three “tours of duty,” from stabilizing a fragile system, to re-architecting it, and scaling the org. We go deep into the platform-and-program split, the Helix app rewrite, and what it took to launch Uber in China in just five months (the original estimate was 18 months). We also cover Uber’s in-house tools and explain why they were necessary to support rapid growth. Finally, we discuss his role today as CTO of Faire, how the company is using AI, and how he sees AI changing software engineering. — Timestamps (00:00) Intro (05:32) Getting into tech (16:09) The dot-com bust (20:42) VMware (26:29) Getting hired by Travis at Uber (33:22) Early days at Uber and scaling challenges (40:57) Uber’s China launch (47:12) The platform and program split (50:26) From monolith to microservices  (53:38) Internal tools at Uber  (57:05) Helix: Uber’s mobile app rewrite (59:55) Thuan’s email about naming (1:02:03) Org structure changes under (1:06:34) Thuan’s work philosophy  (1:12:23) The “three tours of duty” at Uber (1:15:37) Why Thuan left Uber  (1:17:34) Coupang and Nubank (1:21:59) Faire (1:25:31) How Faire uses AI (1:28:24) AI’s impact on software engineering  (1:31:09) The role of the CTO  (1:35:13) Career advice — The Pragmatic Engineer deepdives relevant for this episode: • How Uber uses AI for development: inside look • The Platform and Program split at Uber • How Uber is measuring engineering productivity • Inside Uber’s move to the cloud • Uber's crazy YOLO app rewrite, from the front seat • How Uber built its observability platform • Developer experience at Uber with Gautam Korlam • Uber’s engineering level changes — 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

    1hr 39min

About

Software engineering at Big Tech and startups, from the inside. Deepdives with experienced engineers and tech professionals who share their hard-earned lessons, interesting stories and advice they have on building software. Especially relevant for software engineers and engineering leaders: useful for those working in tech. newsletter.pragmaticengineer.com

You Might Also Like