Discover
The Pragmatic Engineer

The Pragmatic Engineer
Author: Gergely Orosz
Subscribed: 636Played: 7,690Subscribe
Share
© Gergely Orosz
Description
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
Especially relevant for software engineers and engineering leaders: useful for those working in tech.
newsletter.pragmaticengineer.com
37 Episodes
Reverse
Brought to You By:• WorkOS — The modern identity platform for B2B SaaS.• Statsig — The unified platform for flags, analytics, experiments, and more.• Sonar — Code quality and code security for ALL code.—In this episode of The Pragmatic Engineer, I sit down with Peter Walker, Head of Insights at Carta, to break down how venture capital and startups themselves are changing.We go deep on the numbers: why fewer companies are getting funded despite record VC investment levels, how hiring has shifted dramatically since 2021, and why solo founders are on the rise even though most VCs still prefer teams. We also unpack the growing emphasis on ARR per FTE, what actually happens in bridge and down rounds, and why the time between fundraising rounds has stretched far beyond the old 18-month cycle.We cover what all this means for engineers: what to ask before joining a startup, how to interpret valuation trends, and what kind of advisor roles startups are actually looking for.If you work at a startup, are considering joining one, or just want a clearer picture of how venture-backed companies operate today, this episode is for you.—Timestamps(00:00) Intro(01:21) How venture capital works and the goal of VC-backed startups(03:10) Venture vs. non-venture backed businesses (05:59) Why venture-backed companies prioritize growth over profitability(09:46) A look at the current health of venture capital (13:19) The hiring slowdown at startups(16:00) ARR per FTE: The new metric VCs care about(21:50) Priced seed rounds vs. SAFEs (24:48) Why some founders are incentivized to raise at high valuations(29:31) What a bridge round is and why they can signal trouble(33:15) Down rounds and how optics can make or break startups (36:47) Why working at startups offers more ownership and learning(37:47) What the data shows about raising money in the summer(41:45) The length of time it takes to close a VC deal(44:29) How AI is reshaping startup formation, team size, and funding trends(48:11) Why VCs don’t like solo founders(50:06) How employee equity (ESOPs) work(53:50) Why acquisition payouts are often smaller than employees expect(55:06) Deep tech vs. software startups:(57:25) Startup advisors: What they do, how much equity they get(1:02:08) Why time between rounds is increasing and what that means(1:03:57) Why it’s getting harder to get from Seed to Series A (1:06:47) A case for quitting (sometimes) (1:11:40) How to evaluate a startup before joining as an engineer(1:13:22) The skills engineers need to thrive in a startup environment(1:16:04) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Statsig — The unified platform for flags, analytics, experiments, and more.• Graphite — The AI developer productivity platform.—There’s no shortage of bold claims about AI and developer productivity, but how do you separate signal from noise?In this episode of The Pragmatic Engineer, I’m joined by Laura Tacho, CTO at DX, to cut through the hype and share how well (or not) AI tools are actually working inside engineering orgs. Laura shares insights from DX’s research across 180+ companies, including surprising findings about where developers save the most time, why devs don’t use AI at all, and what kinds of rollouts lead to meaningful impact.We also discuss: • The problem with oversimplified AI headlines and how to think more critically about them• An overview of the DX AI Measurement framework• Learnings from Booking.com’s AI tool rollout• Common reasons developers aren’t using AI tools• Why using AI tools sometimes decreases developer satisfaction• Surprising results from DX’s 180+ company study• How AI-generated documentation differs from human-written docs• Why measuring developer experience before rolling out AI is essential• Why Laura thinks roadmaps are on their way out• And much more!—Timestamps(00:00) Intro(01:23) Laura’s take on AI overhyped headlines (10:46) Common questions Laura gets about AI implementation (11:49) How to measure AI’s impact (15:12) Why acceptance rate and lines of code are not sufficient measures of productivity(18:03) The Booking.com case study(20:37) Why some employees are not using AI (24:20) What developers are actually saving time on (29:14) What happens with the time savings(31:10) The surprising results from the DORA report on AI in engineering (33:44) A hypothesis around AI and flow state and the importance of talking to developers(35:59) What’s working in AI architecture (42:22) Learnings from WorkHuman’s adoption of Copilot (47:00) Consumption-based pricing, and the difficulty of allocating resources to AI (52:01) What DX Core 4 measures (55:32) The best outcomes of implementing AI (58:56) Why highly regulated industries are having the best results with AI rollout(1:00:30) Indeed’s structured AI rollout (1:04:22) Why migrations might be a good use case for AI (and a tip for doing it!) (1:07:30) Advice for engineering leads looking to get better at AI tooling and implementation (1:08:49) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• AI Engineering in the real world• Measuring software engineering productivity• The AI Engineering stack• A new way to measure developer productivity – from the creators of DORA and SPACE—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• WorkOS — The modern identity platform for B2B SaaS.• Statsig — The unified platform for flags, analytics, experiments, and more.• Sonar — Code quality and code security for ALL code.—Steve Yegge is known for his writing and “rants”, including the famous “Google Platforms Rant” and the evergreen “Get that job at Google” post. He spent 7 years at Amazon and 13 at Google, as well as some time at Grab before briefly retiring from tech. Now out of retirement, he’s building AI developer tools at Sourcegraph—drawn back by the excitement of working with LLMs. He’s currently writing the book Vibe Coding: Building Production-Grade Software With GenAI, Chat, Agents, and Beyond.In this episode of The Pragmatic Engineer, I sat down with Steve in Seattle to talk about why Google consistently failed at building platforms, why AI coding feels easy but is hard to master, and why a new role, the AI Fixer, is emerging. We also dig into why he’s so energized by today’s AI tools, and how they’re changing the way software gets built.We also discuss: • The “interview anti-loop” at Google and the problems with interviews• An inside look at how Amazon operated in the early days before microservices • What Steve liked about working at Grab• Reflecting on the Google platforms rant and why Steve thinks Google is still terrible at building platforms• Why Steve came out of retirement• The emerging role of the “AI Fixer” in engineering teams• How AI-assisted coding is deceptively simple, but extremely difficult to steer• Steve’s advice for using AI coding tools and overcoming common challenges• Predictions about the future of developer productivity• A case for AI creating a real meritocracy • And much more!—Timestamps(00:00) Intro(04:55) An explanation of the interview anti-loop at Google and the shortcomings of interviews(07:44) Work trials and why entry-level jobs aren’t posted for big tech companies(09:50) An overview of the difficult process of landing a job as a software engineer(15:48) Steve’s thoughts on Grab and why he loved it(20:22) Insights from the Google platforms rant that was picked up by TechCrunch(27:44) The impact of the Google platforms rant(29:40) What Steve discovered about print ads not working for Google (31:48) What went wrong with Google+ and Wave(35:04) How Amazon has changed and what Google is doing wrong(42:50) Why Steve came out of retirement (45:16) Insights from “the death of the junior developer” and the impact of AI(53:20) The new role Steve predicts will emerge (54:52) Changing business cycles(56:08) Steve’s new book about vibe coding and Gergely’s experience (59:24) Reasons people struggle with AI tools(1:02:36) What will developer productivity look like in the future(1:05:10) The cost of using coding agents (1:07:08) Steve’s advice for vibe coding(1:09:42) How Steve used AI tools to work on his game Wyvern (1:15:00) Why Steve thinks there will actually be more jobs for developers (1:18:29) A comparison between game engines and AI tools(1:21:13) Why you need to learn AI now(1:30:08) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• The full circle of developer productivity with Steve Yegge• Inside Amazon’s engineering culture• Vibe coding as a software engineer• AI engineering in the real world• The AI Engineering stack• Inside Sourcegraph’s engineering culture—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Statsig — The unified platform for flags, analytics, experiments, and more.• Graphite — The AI developer productivity platform. • Augment Code — AI coding assistant that pro engineering teams love.—Steve Huynh spent 17 years at Amazon, including four as a Principal Engineer. In this episode of The Pragmatic Engineer, I join Steve in his studio for a deep dive into what the Principal role actually involves, why the path from Senior to Principal is so tough, and how even strong engineers can get stuck. Not because they’re unqualified, but because the bar is exceptionally high.We discuss what’s expected at the Principal level, the kind of work that matters most, and the trade-offs that come with the title. Steve also shares how Amazon’s internal policies shaped his trajectory, and what made the Principal Engineer community one of the most rewarding parts of his time at the company.We also go into: • Why being promoted from Senior to Principal is one of the hardest jumps in tech• How Amazon’s freedom of movement policy helped Steve work across multiple teams, from Kindle to Prime Video• The scale of Amazon: handling 10k–100k+ requests per second and what that means for engineering• Why latency became a company-wide obsession—and the research that tied it directly to revenue• Why companies should start with a monolith, and what led Amazon to adopt microservices• What makes the Principal Engineering community so special • Amazon’s culture of learning from its mistakes, including COEs (correction of errors) • The pros and cons of the Principal Engineer role• What Steve loves about the leadership principles at Amazon• Amazon’s intense writing culture and 6-pager format • Why Amazon patents software and what that process looks like• And much more!—Timestamps(00:00) Intro(01:11) What Steve worked on at Amazon, including Kindle, Prime Video, and payments(04:38) How Steve was able to work on so many teams at Amazon (09:12) An overview of the scale of Amazon and the dependency chain(16:40) Amazon’s focus on latency and the tradeoffs they make to keep latency low at scale(26:00) Why companies should start with a monolith (26:44) The structure of engineering at Amazon and why Amazon’s Principal is so hard to reach(30:44) The Principal Engineering community at Amazon(36:06) The learning benefits of working for a tech giant (38:44) Five challenges of being a Principal Engineer at Amazon(49:50) The types of managing work you have to do as a Principal Engineer (51:47) The pros and cons of the Principal Engineer role (54:59) What Steve loves about Amazon’s leadership principles(59:15) Amazon’s intense focus on writing (1:01:11) Patents at Amazon (1:07:58) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• Inside Amazon’s engineering culture—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• WorkOS — The modern identity platform for B2B SaaS.• Statsig — The unified platform for flags, analytics, experiments, and more.• Sonar — Code quality and code security for ALL code. —What happens when a company goes all in on AI?At Shopify, engineers are expected to utilize AI tools, and they’ve been doing so for longer than most. Thanks to early access to models from GitHub Copilot, OpenAI, and Anthropic, the company has had a head start in figuring out what works.In this live episode from LDX3 in London, I spoke with Farhan Thawar, VP of Engineering, about how Shopify is building with AI across the entire stack. We cover the company’s internal LLM proxy, its policy of unlimited token usage, and how interns help push the boundaries of what’s possible.In this episode, we cover:• How Shopify works closely with AI labs• The story behind Shopify’s recent Code Red• How non-engineering teams are using Cursor for vibecoding• Tobi Lütke’s viral memo and Shopify’s expectations around AI• A look inside Shopify’s LLM proxy—used for privacy, token tracking, and more• Why Shopify places no limit on AI token spending • Why AI-first isn’t about reducing headcount—and why Shopify is hiring 1,000 interns• How Shopify’s engineering department operates and what’s changed since adopting AI tooling• Farhan’s advice for integrating AI into your workflow• And much more!—Timestamps(00:00) Intro(02:07) Shopify’s philosophy: “hire smart people and pair with them on problems”(06:22) How Shopify works with top AI labs (08:50) The recent Code Red at Shopify(10:47) How Shopify became early users of GitHub Copilot and their pivot to trying multiple tools(12:49) The surprising ways non-engineering teams at Shopify are using Cursor(14:53) Why you have to understand code to submit a PR at Shopify(16:42) AI tools' impact on SaaS (19:50) Tobi Lütke’s AI memo(21:46) Shopify’s LLM proxy and how they protect their privacy(23:00) How Shopify utilizes MCPs(26:59) Why AI tools aren’t the place to pinch pennies(30:02) Farhan’s projects and favorite AI tools(32:50) Why AI-first isn’t about freezing headcount and the value of hiring interns(36:20) How Shopify’s engineering department operates, including internal tools(40:31) Why Shopify added coding interviews for director-level and above hires(43:40) What has changed since Spotify added AI tooling (44:40) Farhan’s advice for implementing AI tools—The Pragmatic Engineer deepdives relevant for this episode:• How Shopify built its Live Globe for Black Friday• Inside Shopify's leveling split• Real-world engineering challenges: building Cursor• How Anthropic built Artifacts—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Statsig — The unified platform for flags, analytics, experiments, and more.• Graphite — The AI developer productivity platform. • Augment Code — AI coding assistant that pro engineering teams love—GitHub recently turned 17 years old—but how did it start, how has it evolved, and what does the future look like as AI reshapes developer workflows?In this episode of The Pragmatic Engineer, I’m joined by Thomas Dohmke, CEO of GitHub. Thomas has been a GitHub user for 16 years and an employee for 7. We talk about GitHub’s early architecture, its remote-first operating model, and how the company is navigating AI—from Copilot to agents. We also discuss why GitHub hires junior engineers, how the company handled product-market fit early on, and why being a beloved tool can make shipping harder at times.Other topics we discuss include:• How GitHub’s architecture evolved beyond its original Rails monolith• How GitHub runs as a remote-first company—and why they rarely use email • GitHub’s rigorous approach to security• Why GitHub hires junior engineers• GitHub’s acquisition by Microsoft• The launch of Copilot and how it’s reshaping software development• Why GitHub sees AI agents as tools, not a replacement for engineers• And much more!—Timestamps(00:00) Intro(02:25) GitHub’s modern tech stack(08:11) From cloud-first to hybrid: How GitHub handles infrastructure(13:08) How GitHub’s remote-first culture shapes its operations(18:00) Former and current internal tools including Haystack(21:12) GitHub’s approach to security (24:30) The current size of GitHub, including security and engineering teams(25:03) GitHub’s intern program, and why they are hiring junior engineers(28:27) Why AI isn’t a replacement for junior engineers (34:40) A mini-history of GitHub (39:10) Why GitHub hit product market fit so quickly (43:44) The invention of pull requests(44:50) How GitHub enables offline work(46:21) How monetization has changed at GitHub since the acquisition (48:00) 2014 desktop application releases (52:10) The Microsoft acquisition (1:01:57) Behind the scenes of GitHub’s quiet period (1:06:42) The release of Copilot and its impact(1:14:14) Why GitHub decided to open-source Copilot extensions(1:20:01) AI agents and the myth of disappearing engineering jobs(1:26:36) Closing—The Pragmatic Engineer deepdives relevant for this episode:• AI Engineering in the real world• The AI Engineering stack• How Linux is built with Greg Kroah-Hartman• Stacked Diffs (and why you should know about them)• 50 Years of Microsoft and developer tools—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Sonar — Code quality and code security for ALL code. • Statsig — The unified platform for flags, analytics, experiments, and more.• Augment Code — AI coding assistant that pro engineering teams love.—Kent Beck is one of the most influential figures in modern software development. Creator of Extreme Programming (XP), co-author of The Agile Manifesto, and a pioneer of Test-Driven Development (TDD), he’s shaped how teams write, test, and think about code.Now, with over five decades of programming experience, Kent is still pushing boundaries—this time with AI coding tools. In this episode of Pragmatic Engineer, I sit down with him to talk about what’s changed, what hasn’t, and why he’s more excited than ever to code.In our conversation, we cover:• Why Kent calls AI tools an “unpredictable genie”—and how he’s using them• Why Kent no longer has an emotional attachment to any specific programming language• The backstory of The Agile Manifesto—and why Kent resisted the word “agile”• An overview of XP (Extreme Programming) and how Grady Booch played a role in the name • Tape-to-tape experiments in Kent’s childhood that laid the groundwork for TDD• Kent’s time at Facebook and how he adapted to its culture and use of feature flags• And much more!—Timestamps(00:00) Intro(02:27) What Kent has been up to since writing Tidy First(06:05) Why AI tools are making coding more fun for Kent and why he compares it to a genie(13:41) Why Kent says languages don’t matter anymore(16:56) Kent’s current project building a small talk server(17:51) How Kent got involved with The Agile Manifesto(23:46) Gergely’s time at JP Morgan, and why Kent didn’t like the word ‘agile’(26:25) An overview of “extreme programming” (XP) (35:41) Kent’s childhood tape-to-tape experiments that inspired TDD(42:11) Kent’s response to Ousterhout’s criticism of TDD(50:05) Why Kent still uses TDD with his AI stack (54:26) How Facebook operated in 2011(1:04:10) Facebook in 2011 vs. 2017(1:12:24) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• —See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Statsig — The unified platform for flags, analytics, experiments, and more.• Sinch — Connect with customers at every step of their journey.• Modal — The cloud platform for building AI applications.—How has Microsoft changed since its founding in 1975, especially in how it builds tools for developers?In this episode of The Pragmatic Engineer, I sit down with Scott Guthrie, Executive Vice President of Cloud and AI at Microsoft. Scott has been with the company for 28 years. He built the first prototype of ASP.NET, led the Windows Phone team, led up Azure, and helped shape many of Microsoft’s most important developer platforms.We talk about Microsoft’s journey from building early dev tools to becoming a top cloud provider—and how it actively worked to win back and grow its developer base.In this episode, we cover:• Microsoft’s early years building developer tools • Why Visual Basic faced resistance from devs back in the day: even though it simplified development at the time• How .NET helped bring a new generation of server-side developers into Microsoft’s ecosystem• Why Windows Phone didn’t succeed • The 90s Microsoft dev stack: docs, debuggers, and more• How Microsoft Azure went from being the #7 cloud provider to the #2 spot today• Why Microsoft created VS Code• How VS Code and open source led to the acquisition of GitHub• What Scott’s excited about in the future of developer tools and AI• And much more!—Timestamps(00:00) Intro(02:25) Microsoft’s early years building developer tools(06:15) How Microsoft’s developer tools helped Windows succeed(08:00) Microsoft’s first tools were built to allow less technically savvy people to build things(11:00) A case for embracing the technology that’s coming(14:11) Why Microsoft built Visual Studio and .NET(19:54) Steve Ballmer’s speech about .NET(22:04) The origins of C# and Anders Hejlsberg’s impact on Microsoft (25:29) The 90’s Microsoft stack, including documentation, debuggers, and more(30:17) How productivity has changed over the past 10 years (32:50) Why Gergely was a fan of Windows Phone—and Scott’s thoughts on why it didn’t last(36:43) Lessons from working on (and fixing) Azure under Satya Nadella (42:50) Codeplex and the acquisition of GitHub(48:52) 2014: Three bold projects to win the hearts of developers(55:40) What Scott’s excited about in new developer tools and cloud computing (59:50) Why Scott thinks AI will enhance productivity but create more engineering jobs—The Pragmatic Engineer deepdives relevant for this episode:• Microsoft is dogfooding AI dev tools’ future• Microsoft’s developer tools roots• Why are Cloud Development Environments spiking in popularity, now?• Engineering career paths at Big Tech and scaleups• How Linux is built with Greg Kroah-Hartman—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Statsig — The unified platform for flags, analytics, experiments, and more.• Sinch — Connect with customers at every step of their journey.• Cortex — Your Portal to Engineering Excellence.—What does it take to land a job as an AI Engineer—and thrive in the role?In this episode of Pragmatic Engineer, I’m joined by Janvi Kalra, currently an AI Engineer at OpenAI. Janvi shares how she broke into tech with internships at top companies, landed a full-time software engineering role at Coda, and later taught herself the skills to move into AI Engineering: by things like building projects in her free time, joining hackathons, and ultimately proving herself and earning a spot on Coda’s first AI Engineering team.In our conversation, we dive into the world of AI Engineering and discuss three types of AI companies, how to assess them based on profitability and growth, and practical advice for landing your dream job in the field.We also discuss the following: • How Janvi landed internships at Google and Microsoft, and her tips for interview prepping• A framework for evaluating AI startups• An overview of what an AI Engineer does• A mini curriculum for self-learning AI: practical tools that worked for Janvi• The Coda project that impressed CEO Shishir Mehrotra and sparked Coda Brain• Janvi’s role at OpenAI and how the safety team shapes responsible AI• How OpenAI blends startup speed with big tech scale• Why AI Engineers must be ready to scrap their work and start over• Why today’s engineers need to be product-minded, design-aware, full-stack, and focused on driving business outcomes• And much more!—Timestamps(00:00) Intro(02:31) How Janvi got her internships at Google and Microsoft(03:35) How Janvi prepared for her coding interviews (07:11) Janvi’s experience interning at Google(08:59) What Janvi worked on at Microsoft (11:35) Why Janvi chose to work for a startup after college(15:00) How Janvi picked Coda (16:58) Janvi’s criteria for picking a startup now (18:20) How Janvi evaluates ‘customer obsession’ (19:12) Fast—an example of the downside of not doing due diligence(21:38) How Janvi made the jump to Coda’s AI team(25:48) What an AI Engineer does (27:30) How Janvi developed her AI Engineering skills through hackathons(30:34) Janvi’s favorite AI project at Coda: Workspace Q&A (37:40) Learnings from interviewing at 46 companies(40:44) Why Janvi decided to get experience working for a model company (43:17) Questions Janvi asks to determine growth and profitability(45:28) How Janvi got an offer at OpenAI, and an overview of the interview process(49:08) What Janvi does at OpenAI (51:01) What makes OpenAI unique (52:30) The shipping process at OpenAI(55:41) Surprising learnings from AI Engineering (57:50) How AI might impact new graduates (1:02:19) The impact of AI tools on coding—what is changing, and what remains the same(1:07:51) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• AI Engineering in the real world• The AI Engineering stack• Building, launching, and scaling ChatGPT Images—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• WorkOS — The modern identity platform for B2B SaaS.• Modal — The cloud platform for building AI applications.• Cortex — Your Portal to Engineering Excellence.—Kubernetes is the second-largest open-source project in the world. What does it actually do—and why is it so widely adopted?In this episode of The Pragmatic Engineer, I’m joined by Kat Cosgrove, who has led several Kubernetes releases. Kat has been contributing to Kubernetes for several years, and originally got involved with the project through K3s (the lightweight Kubernetes distribution).In our conversation, we discuss how Kubernetes is structured, how it scales, and how the project is managed to avoid contributor burnout.We also go deep into: • An overview of what Kubernetes is used for• A breakdown of Kubernetes architecture: components, pods, and kubelets• Why Google built Borg, and how it evolved into Kubernetes• The benefits of large-scale open source projects—for companies, contributors, and the broader ecosystem• The size and complexity of Kubernetes—and how it’s managed• How the project protects contributors with anti-burnout policies• The size and structure of the release team• What KEPs are and how they shape Kubernetes features• Kat’s views on GenAI, and why Kubernetes blocks using AI, at least for documentation• Where Kat would like to see AI tools improve developer workflows• Getting started as a contributor to Kubernetes—and the career and networking benefits that come with it• And much more!—Timestamps(00:00) Intro(02:02) An overview of Kubernetes and who it’s for (04:27) A quick glimpse at the architecture: Kubernetes components, pods, and cubelets(07:00) Containers vs. virtual machines (10:02) The origins of Kubernetes (12:30) Why Google built Borg, and why they made it an open source project(15:51) The benefits of open source projects (17:25) The size of Kubernetes(20:55) Cluster management solutions, including different Kubernetes services(21:48) Why people contribute to Kubernetes (25:47) The anti-burnout policies Kubernetes has in place (29:07) Why Kubernetes is so popular(33:34) Why documentation is a good place to get started contributing to an open-source project(35:15) The structure of the Kubernetes release team (40:55) How responsibilities shift as engineers grow into senior positions(44:37) Using a KEP to propose a new feature—and what’s next(48:20) Feature flags in Kubernetes (52:04) Why Kat thinks most GenAI tools are scams—and why Kubernetes blocks their use(55:04) The use cases Kat would like to have AI tools for(58:20) When to use Kubernetes (1:01:25) Getting started with Kubernetes (1:04:24) How contributing to an open source project is a good way to build your network(1:05:51) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• Backstage: an open source developer portal• How Linux is built with Greg Kroah-Hartman• Software engineers leading projects• What TPMs do and what software engineers can learn from them• Engineering career paths at Big Tech and scaleups—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Modal — The cloud platform for building AI applications• CodeRabbit — Cut code review time and bugs in half. Use the code PRAGMATIC to get one month free.—What happens when LLMs meet real-world codebases? In this episode of The Pragmatic Engineer, I am joined by Varun Mohan, CEO and Co-Founder of Windsurf. Varun talks me through the technical challenges of building an AI-native IDE (Windsurf) —and how these tools are changing the way software gets built. We discuss: • What building self-driving cars taught the Windsurf team about evaluating LLMs• How LLMs for text are missing capabilities for coding like “fill in the middle”• How Windsurf optimizes for latency• Windsurf’s culture of taking bets and learning from failure• Breakthroughs that led to Cascade (agentic capabilities)• Why the Windsurf teams build their LLMs• How non-dev employees at Windsurf build custom SaaS apps – with Windsurf!• How Windsurf empowers engineers to focus on more interesting problems• The skills that will remain valuable as AI takes over more of the codebase• And much more!—Timestamps(00:00) Intro(01:37) How Windsurf tests new models(08:25) Windsurf’s origin story (13:03) The current size and scope of Windsurf(16:04) The missing capabilities Windsurf uncovered in LLMs when used for coding(20:40) Windsurf’s work with fine-tuning inside companies (24:00) Challenges developers face with Windsurf and similar tools as codebases scale(27:06) Windsurf’s stack and an explanation of FedRAMP compliance(29:22) How Windsurf protects latency and the problems with local data that remain unsolved(33:40) Windsurf’s processes for indexing code (37:50) How Windsurf manages data (40:00) The pros and cons of embedding databases (42:15) “The split brain situation”—how Windsurf balances present and long-term (44:10) Why Windsurf embraces failure and the learnings that come from it(46:30) Breakthroughs that fueled Cascade(48:43) The insider’s developer mode that allows Windsurf to dogfood easily (50:00) Windsurf’s non-developer power user who routinely builds apps in Windsurf(52:40) Which SaaS products won’t likely be replaced(56:20) How engineering processes have changed at Windsurf (1:00:01) The fatigue that goes along with being a software engineer, and how AI tools can help(1:02:58) Why Windsurf chose to fork VS Code and built a plugin for JetBrains (1:07:15) Windsurf’s language server (1:08:30) The current use of MCP and its shortcomings (1:12:50) How coding used to work in C#, and how MCP may evolve (1:14:05) Varun’s thoughts on vibe coding and the problems non-developers encounter(1:19:10) The types of engineers who will remain in demand (1:21:10) How AI will impact the future of software development jobs and the software industry(1:24:52) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• IDEs with GenAI features that Software Engineers love• AI tooling for Software Engineers in 2024: reality check• How AI-assisted coding will change software engineering: hard truths• AI tools for software engineers, but without the hype—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• WorkOS — The modern identity platform for B2B SaaS.• The Software Engineer’s Guidebook: Written by me (Gergely) – now out in audio form as well.—How do you get product and engineering to truly operate as one team? Today, I’m joined by Ebi Atawodi, Director of Product Management at YouTube Studio, and a former product leader at Netflix and Uber.Ebi was the first PM I partnered with after stepping into engineering management at Uber, and we both learned a lot together. We share lessons from our time at Uber and discuss how strong product-engineering partnerships drive better outcomes, grow teams, foster cultures of ownership, and unlock agency, innovation, and trust.In this episode, we cover:• Why you need to earn a new team's trust before trying to drive change• How practices like the "business scorecard" and “State of the Union” updates helped communicate business goals and impact to teams at Uber• How understanding business impact leads to more ideas and collaboration• A case for getting to know your team as people, not just employees• Why junior employees should have a conversation with a recruiter every six months• Ebi’s approach to solving small problems with the bet that they’ll unlock larger, more impactful solutions• Why investing time in trust and connection isn't at odds with efficiency• The qualities of the best engineers—and why they’re the same traits that make people successful in any role• The three-pronged definition of product: business impact, feasibility, and customer experience• Why you should treat your career as a project• And more!—Timestamps(00:00) Intro(02:19) The product review where Gergely first met Ebi (05:45) Ebi’s learning about earning trust before being direct(08:01) The value of tying everything to business impact(11:53) What meetings looked like at Uber before Ebi joined(12:35) How Ebi’s influence created more of a start-up environment (15:12) An overview of “State of the Union” (18:06) How Ebi helped the cash team secure headcount(24:10) How a dinner out helped Ebi and Gergely work better together(28:11) Why good leaders help their employees reach their full potential(30:24) Product-minded engineers and the value of trust (33:04) Ebi’s approach to passion in work: loving the problem, the work, and the people(36:00) How Gergely and Ebi secretly bootstrapped a project then asked for headcount(36:55) How a real problem led to a novel solution that also led to a policy change(40:30) Ebi’s approach to solving problems and tying them to a bigger value unlock (43:58) How Ebi developed her playbooks for vision setting, fundraising, and more(45:59) Why Gergely prioritized meeting people on his trips to San Francisco (46:50) A case for making in-person interactions more about connection(50:44) The genius-jerk archetype vs. brilliant people who struggle with social skills (52:48) The traits of the best engineers—and why they apply to other roles, too(1:03:27) Why product leaders need to love the product and the business (1:06:54) The value of a good PM(1:08:05) Sponsorship vs. mentorship and treating your career like a project(1:11:50) A case for playing the long game—The Pragmatic Engineer deepdives relevant for this episode:• The product-minded software engineer• Working with Product Managers as an Engineering Manager or Engineer• Working with Product Managers: advice from PMs• What is Growth Engineering?—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Graphite — The AI developer productivity platform. • Sentry — Error and performance monitoring for developers.—Reddit’s native mobile apps are more complex than most of us would assume: both the iOS and Android apps are about 2.5 million lines of code, have 500+ screens, and a total of around 200 native iOS and Android engineers work on them. But it wasn’t always like this.In 2021, Reddit started to double down on hiring native mobile engineers, and they quietly rebuilt the Android and iOS apps from the ground up. The team introduced a new tech stack called the “Core Stack” – all the while users remained largely unaware of the changes. What drove this overhaul, and how did the team pull it off?In this episode of The Pragmatic Engineer, I’m joined by three engineers from Reddit’s mobile platform team who led this work: Lauren Darcey (Head of Mobile Platform), Brandon Kobilansky (iOS Platform Lead), and Eric Kuck (Principal Android Engineer). We discuss how the team transitioned to a modern architecture, revamped their testing strategy, improved developer experience – while they also greatly improved the app’s user experience. We also get into: • How Reddit structures its mobile teams—and why iOS and Android remain intentionally separate • The scale of Reddit’s mobile codebase and how it affects compile time• The shift from MVP to MVVM architecture• Why Reddit took a bet on Jetpack Compose, but decided (initially) against using SwiftUI• How automated testing evolved at Reddit • Reddit’s approach to server-driven-mobile-UI• What the mobile platforms team looks for in a new engineering hire• Reddit’s platform team’s culture of experimentation and embracing failure • And much more!If you are interested in large-scale rewrites or native mobile engineering challenges: this episode is for you.—Timestamps(00:00) Intro(02:04) The scale of the Android code base(02:42) The scale of the iOS code base(03:26) What the compile time is for both Android and iOS(05:33) The size of the mobile platform teams (09:00) Why Reddit has so many mobile engineers (11:28) The different types of testing done in the mobile platform (13:20) The benefits and drawbacks of testing (17:00) How Eric, Brandon, and Lauren use AI in their workflows(20:50) Why Reddit grew its mobile teams in 2021(26:50) Reddit’s modern tech stack, Corestack (28:48) Why Reddit shifted from MVP architecture to MVVM(30:22) The architecture on the iOS side(32:08) The new design system(30:55) The impact of migrating from Rust to GraphQL(38:20) How the backend drove the GraphQL migration and why it was worth the pain(43:17) Why the iOS team is replacing SliceKit with SwiftUI(48:08) Why the Android team took a bet on Compose (51:25) How teams experiment with server-driven UI—when it worked, and when it did not(54:30) Why server-driven UI isn’t taking off, and why Lauren still thinks it could work(59:25) The ways that Reddit’s modernization has paid off, both in DevX and UX(1:07:15) The overall modernization philosophy; fixing pain points (1:09:10) What the mobile platforms team looks for in a new engineering hire (1:16:00) Why startups may be the best place to get experience (1:17:00) Why platform teams need to feel safe to fail (1:20:30) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• The platform and program split at Uber• Why and how Notion went native on iOS and Android• Paying down tech debt • Cross-platform mobile development—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• WorkOS — The modern identity platform for B2B SaaS.• Modal — The cloud platform for building AI applications• Vanta — Automate compliance and simplify security with Vanta.—What is it like to work at Amazon as a software engineer? Dave Anderson spent over 12 years at Amazon working closely with engineers on his teams: starting as an Engineering Manager (or, SDM in Amazon lingo) and eventually becoming a Director of Engineering. In this episode, he shares a candid look into Amazon’s engineering culture—from how promotions work to why teams often run like startups.We get into the hiring process, the role of bar raisers, the pros and cons of extreme frugality, and what it takes to succeed inside one of the world’s most operationally intense companies. We also look at how engineering actually works day to day at Amazon—from the tools teams choose to the way they organize and deliver work. We also discuss:• The levels at Amazon, from SDE L4 to Distinguished Engineer and VP• Why engineering managers at Amazon need to write well• The “Bar Raiser” role in Amazon interview loops • Why Amazon doesn’t care about what programming language you use in interviews• Amazon’s oncall process• The pros and cons of Amazon’s extreme frugality • What to do if you're getting negative performance feedback• The importance of having a strong relationship with your manager• The surprising freedom Amazon teams have to choose their own stack, tools, and ways of working – and how a team chose to use Lisp (!)• Why startups love hiring former Amazon engineers• Dave’s approach to financial independence and early retirement• And more!—Timestamps(00:00) Intro(02:08) An overview of Amazon’s levels for devs and engineering managers(07:04) How promotions work for developers at Amazon, and the scope of work at each level(12:29) Why managers feel pressure to grow their teams(13:36) A step-by-step, behind-the-scenes glimpse of the hiring process (23:40) The wide variety of tools used at Amazon(26:27) How oncall works at Amazon(32:06) The general approach to handling outages (severity 1-5)(34:40) A story from Uber illustrating the Amazon outage mindset(37:30) How VPs assist with outages(41:38) The culture of frugality at Amazon (47:27) Amazon’s URA target—and why it’s mostly not a big deal (53:37) How managers handle the ‘least effective’ employees(58:58) Why other companies are also cutting lower performers(59:55) Dave’s advice for engineers struggling with performance feedback (1:04:20) Why good managers are expected to bring talent with them to a new org(1:06:21) Why startups love former Amazon engineers(1:16:09) How Dave planned for an early retirement (1:18:10) How a LinkedIn post turned into Scarlet Ink —The Pragmatic Engineer deepdives relevant for this episode:• Inside Amazon’s engineering culture• A day in the life of a senior manager at Amazon• Amazon’s Operational Plan process with OP1 and OP2—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• CodeRabbit — Cut code review time and bugs in half. Use the code PRAGMATIC to get one month free.• Modal — The cloud platform for building AI applications.—How will AI tools change software engineering? Tools like Cursor, Windsurf and Copilot are getting better at autocomplete, generating tests and documentation. But what is changing, when it comes to software design?Stanford professor John Ousterhout thinks not much. In fact, he believes that great software design is becoming even more important as AI tools become more capable in generating code. In this episode of The Pragmatic Engineer, John joins me to talk about why design still matters and how most teams struggle to get it right. We dive into his book A Philosophy of Software Design, unpack the difference between top-down and bottom-up approaches, and explore why some popular advice, like writing short methods or relying heavily on TDD, does not hold up, according to John.We also explore: • The differences between working in industry vs. academia • Why John believes software design will become more important as AI capabilities expand• The top-down and bottoms-up design approaches – and why you should use both• John’s “design it twice” principle• Why deep modules are essential for good software design • Best practices for special cases and exceptions• The undervalued trait of empathy in design thinking• Why John advocates for doing some design upfront• John’s criticisms of the single-responsibility principle, TDD, and why he’s a fan of well-written comments • And much more!As a fun fact: when we recorded this podcast, John was busy contributing to the Linux kernel: adding support to the Homa Transport Protocol – a protocol invented by one of his PhD students. John wanted to make this protocol available more widely, and is putting in the work to do so. What a legend! (We previously covered how Linux is built and how to contribute to the Linux kernel)—Timestamps(00:00) Intro (02:00) Why John transitioned back to academia(03:47) Working in academia vs. industry (07:20) Tactical tornadoes vs. 10x engineers(11:59) Long-term impact of AI-assisted coding(14:24) An overview of software design(15:28) Why TDD and Design Patterns are less popular now (17:04) Two general approaches to designing software (18:56) Two ways to deal with complexity (19:56) A case for not going with your first idea (23:24) How Uber used design docs(26:44) Deep modules vs. shallow modules(28:25) Best practices for error handling(33:31) The role of empathy in the design process(36:15) How John uses design reviews (38:10) The value of in-person planning and using old-school whiteboards (39:50) Leading a planning argument session and the places it works best(42:20) The value of doing some design upfront (46:12) Why John wrote A Philosophy of Software of Design (48:40) An overview of John’s class at Stanford(52:20) A tough learning from early in Gergely’s career (55:48) Why John disagrees with Robert Martin on short methods(1:10:40) John’s current coding project in the Linux Kernel (1:14:13) Updates to A Philosophy of Software Design in the second edition(1:19:12) Rapid fire round(1:01:08) John’s criticisms of TDD and what he favors instead (1:05:30) Why John supports the use of comments and how to use them correctly(1:09:20) How John uses ChatGPT to help explain code in the Linux Kernel—The Pragmatic Engineer deepdives relevant for this episode:• Engineering Planning with RFCs, Design Documents and ADRs• Paying down tech debt• Software architect archetypes• Building Bluesky: a distributed social network—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Swarmia — The engineering intelligence platform for modern software organizations.• Sentry — Error and performance monitoring for developers.—Why did Meta build its own internal developer tooling instead of using industry-standard solutions like GitHub? Tomas Reimers, former Meta engineer and co-founder of Graphite, joins the show to talk about Meta's custom developer tools – many of which were years ahead of the industry.From Phababricator to Sandcastle and Butterflybot, Tomas shares examples of Meta’s internal tools that transformed developer productivity at the tech giant. Why did working with stacked diffs and using monorepos become best practices at Meta? How are these practices influencing the broader industry? Why are code reviews and testing looking to become even more critical as AI transforms how we write software? We answer these, and also discuss:• Meta's custom internal developer tools• Why more tech companies are transitioning from polyrepos to monorepos• A case for different engineering constraints within the same organization• How stacked diffs solve the code review bottleneck• Graphite’s origin story and pivot to their current product • Why code reviews will become a lot more important, the more we use AI coding tools• Tomas’s favorite engineering metric • And much more!—Timestamps(00:00) Intro(02:00) An introduction to Meta’s in-house tooling (05:07) How Meta’s integrated tools work and who built the tools(10:20) An overview of the rules engine, Herald (12:20) The stages of code ownership at Facebook and code ownership at Google and GitHub(14:39) Tomas’s approach to code ownership (16:15) A case for different constraints within different parts of an organization (18:42) The problem that stacked diffs solve for (25:01) How larger companies drive innovation, and who stacking diffs not for (30:25) Monorepos vs. polyrepos and why Facebook is transitioning to a monorepo(35:31) The advantages of monorepos and why GitHub does not support them (39:55) AI’s impact on software development (42:15) The problems that AI creates, and possible solutions(45:25) How testing might change and the testing AI coding tools are already capable of (48:15) How developer accountability might be a way to solve bugs and bad AI code(53:20) Why stacking hasn’t caught on and Graphite’s work (57:10) Graphite’s origin story (1:01:20) Engineering metrics that matter (1:06:07) Learnings from building a company for developers (1:08:41) Rapid fire round(1:12:41) Closing—The Pragmatic Engineer deepdives relevant for this episode:• Stacked Diffs (and why you should know about them)• Inside Meta’s engineering culture• Shipping to production• How Uber is measuring engineering productivity—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Graphite — The AI developer productivity platform. • Sonar — Code quality and code security for ALL code. • Chronosphere — The observability platform built for control.—How do you take a new product idea, and turn it into a successful product? Figma Slides started as a hackathon project a year and a half ago – and today it’s a full-on product, with more than 4.5M slide decks created by users. I’m joined by two founding engineers on this project: Jonathan Kaufman and Noah Finer.In our chat, Jonathan and Noah pull back the curtain on what it took to build Figma Slides. They share engineering challenges faced, interesting engineering practices utilized, and what it's like working on a product used by millions of designers worldwide.We talk about:• An overview of Figma Slides• The tech stack behind Figma Slides• Why the engineering team built grid view before single slide view• How Figma ensures that all Figma files look the same across browsers• Figma’s "vibe testing" approach• How beta testing helped experiment more• The “all flags on”, “all flags off” testing approach• Engineering crits at Figma• And much more!—Timestamps(00:00) Intro(01:45) An overview of Figma Slides and the first steps in building it(06:41) Why Figma built grid view before single slide view(10:00) The next steps of building UI after grid view (12:10) The team structure and size of the Figma Slides team (14:14) The tech stack behind Figma Slides(15:31) How Figma uses C++ with bindings (17:43) The Chrome debugging extension used for C++ and WebAssembly (21:02) An example of how Noah used the debugging tool(22:18) Challenges in building Figma Slides (23:15) An explanation of multiplayer cursors (26:15) Figma’s philosophy of building interconnected products—and the code behind them(28:22) An example of a different mouse behavior in Figma (33:00) Technical challenges in developing single slide view (35:10) Challenges faced in single-slide view while maintaining multiplayer compatibility(40:00) The types of testing used on Figma Slides(43:42) Figma’s zero bug policy (45:30) The release process, and how engineering uses feature flags (48:40) How Figma tests Slides with feature flags enabled and then disabled(51:35) An explanation of eng crits at Figma (54:53) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• Inside Figma’s engineering culture• Quality Assurance across the tech industry• Shipping to production• Design-first software engineering—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• WorkOS — The modern identity platform for B2B SaaS.• Vanta — Automate compliance and simplify security with Vanta.—Linux is the most widespread operating system, globally – but how is it built? Few people are better to answer this than Greg Kroah-Hartman: a Linux kernel maintainer for 25 years, and one of the 3 Linux Kernel Foundation Fellows (the other two are Linus Torvalds and Shuah Khan). Greg manages the Linux kernel’s stable releases, and is a maintainer of multiple kernel subsystems.We cover the inner workings of Linux kernel development, exploring everything from how changes get implemented to why its community-driven approach produces such reliable software. Greg shares insights about the kernel's unique trust model and makes a case for why engineers should contribute to open-source projects. We go into:• How widespread is Linux?• What is the Linux kernel responsible for – and why is it a monolith?• How does a kernel change get merged? A walkthrough• The 9-week development cycle for the Linux kernel• Testing the Linux kernel• Why is Linux so widespread?• The career benefits of open-source contribution• And much more!—Timestamps(00:00) Intro(02:23) How widespread is Linux?(06:00) The difference in complexity in different devices powered by Linux (09:20) What is the Linux kernel?(14:00) Why trust is so important with the Linux kernel development(16:02) A walk-through of a kernel change(23:20) How Linux kernel development cycles work(29:55) The testing process at Kernel and Kernel CI (31:55) A case for the open source development process(35:44) Linux kernel branches: Stable vs. development(38:32) Challenges of maintaining older Linux code (40:30) How Linux handles bug fixes(44:40) The range of work Linux kernel engineers do (48:33) Greg’s review process and its parallels with Uber’s RFC process(51:48) Linux kernel within companies like IBM(53:52) Why Linux is so widespread (56:50) How Linux Kernel Institute runs without product managers (1:02:01) The pros and cons of using Rust in Linux kernel (1:09:55) How LLMs are utilized in bug fixes and coding in Linux (1:12:13) The value of contributing to the Linux kernel or any open-source project (1:16:40) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:What TPMs do and what software engineers can learn from themThe past and future of modern backend practicesBackstage: an open-source developer portal—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• Sentry — Error and performance monitoring for developers.• The Software Engineer’s Guidebook: Written by me (Gergely) – now out in audio form as well.—In today’s episode of The Pragmatic Engineer, I am joined by former Uber colleague, Gautam Korlam. Gautam is the Co-Founder of Gitar, an agentic AI startup that automates code maintenance. Gautam was mobile engineer no. 9 at Uber and founding engineer for the mobile platform team – and so he learned a few things about scaling up engineering teams.We talk about:• How Gautam accidentally deleted Uber’s Java monorepo – really!• Uber's unique engineering stack and why custom solutions like SubmitQueue were built in-house• Monorepo: the benefits and downsides of this approach• From Engineer II to Principal Engineer at Uber: Gautam’s career trajectory• Practical strategies for building trust and gaining social capital • How the platform team at Uber operated with a product-focused mindset• Vibe coding: why it helps with quick prototyping• How AI tools are changing developer experience and productivity• Important skills for devs to pick up to remain valuable as AI tools spread• And more!—Timestamps(00:00) Intro(02:11) How Gautam accidentally deleted Uber’s Java Monorepo(05:40) The impact of Gautam’s mistake(06:35) Uber’s unique engineering stack(10:15) Uber’s SubmitQueue(12:44) Why Uber moved to a monorepo(16:30) The downsides of a monorepo(18:35) Measurement products built in-house (20:20) Measuring developer productivity and happiness (22:52) How Devpods improved developer productivity (27:37) The challenges with cloud development environments(29:10) Gautam’s journey from Eng II to Principal Engineer(32:00) Building trust and gaining social capital (36:17) An explanation of Principal Engineer at Uber—and the archetypes at Uber (45:07) The platform and program split at Uber(48:15) How Gautam and his team supported their internal users (52:50) Gautam’s thoughts on developer productivity (59:10) How AI enhances productivity, its limitations, and the rise of agentic AI(1:04:00) An explanation of Vibe coding(1:07:34) An overview of Gitar and all it can help developers with (1:10:44) Top skills to cultivate to add value and stay relevant(1:17:00) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• The Platform and Program split at Uber• How Uber is measuring engineering productivity• Inside Uber’s move to the Cloud• How Uber built its observability platform• Software Architect Archetypes—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Supported by Our Partners• WorkOS — The modern identity platform for B2B SaaS.• The Software Engineer’s Guidebook: Written by me (Gergely) – now out in audio form as well• Augment Code — AI coding assistant that pro engineering teams love—Not many people know that I have a brother: Balint Orosz. Balint is also in tech, but in many ways, is the opposite of me. While I prefer working on backend and business logic, he always thrived in designing and building UIs. While I opted to work at more established companies, he struck out on his own and started his startup, Distinction. And yet, our professional paths have crossed several times: at one point in time I accepted an offer to join Skyscanner as a Principal iOS Engineer – and as part of the negotiation, I added a clause to my contrac that I will not report directly or indirectly to the Head of Mobile: who happened to be my brother, thanks to Skyscanner acquiring his startup the same month that Skyscanner made an offer to hire me.Today, Balint is the founder and CEO of Craft, a beloved text editor known for its user-friendly interface and sleek design – an app that Apple awarded the prestigious Mac App of the Year in 2021.In our conversation, we explore how Balint approaches building opinionated software with an intense focus on user experience. We discuss the lessons he learned from his time building Distinction and working at Skyscanner that have shaped his approach to Craft and its development.In this episode, we discuss:• Balint’s first startup, Distinction, and his time working for Skyscanner after they acquired it• A case for a balanced engineering culture with both backend and frontend priorities • Why Balint doesn’t use iOS Auto Layout• The impact of Craft being personal software on front-end and back-end development• The balance between customization and engineering fear in frontend work• The resurgence of local-first software and its role in modern computing• The value of building a physical prototype • How Balint uses GenAI to assist with complicated coding projects • And much more!—Timestamps(00:00) Intro(02:13) What it’s like being a UX-focused founder (09:00) Why it was hard to gain recognition at Skyscanner (13:12) Takeaways from Skyscanner that Balint brought to Craft (16:50) How frameworks work and why they aren’t always a good fit(20:35) An explanation of iOS Auto Layout and its pros and cons (23:13) Why Balint doesn’t use Auto Layout (24:23) Why Craft has one code base (27:46) Craft’s unique toolbar features and a behind the scenes peek at the code (33:15) Why frontend engineers have fear around customization (37:11) How Craft’s design system differs from most companies (42:33) Behaviors and elements Craft uses rather than having a system for everything (44:12) The back and frontend architecture in building personal software (48:11) Shifting beliefs in personal computing (50:15) The challenges faced with operating system updates (50:48) The resurgence of local-first software(52:31) The value of opinionated software for consumers (55:30) Why Craft’s focus is on the user’s emotional experience(56:50) The size of Craft’s engineering department and platform teams(59:20) Why Craft moves faster with smaller teams(1:01:26) Balint’s advice for frontend engineers looking to demonstrate value (1:04:35) Balint’s breakthroughs using GenAI(1:07:50) Why Balint still writes code(1:09:44) Rapid fire round—The Pragmatic Engineer deepdives relevant for this episode:• The AI hackathon at Craft Docs• Engineering career paths at Big Tech and scaleups• Thriving as a Founding Engineer: lessons from the trenches• The past and future of modern backend practices—See the transcript and other references from the episode at https://newsletter.pragmaticengineer.com/podcast—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
Comments