The Pragmatic Engineer

Developer Experience at Uber with Gautam Korlam

· Summarized

Share this episode
Anyone with this link can open it.
Share Link
Start at 0:00

Key takeaways

  • Vibe coding promotes quick prototyping by focusing on desired outcomes rather than perfect execution.
  • Gautam's journey illustrates that high-stakes incidents can foster learning and ultimately improve team resilience.
  • Transitioning to a monorepo can streamline workflows but also present architectural challenges.
  • Measuring developer productivity through various metrics can provide insights on improving efficiency and happiness.
  • AI tools are reshaping software development, enhancing productivity but requiring engineers to still understand core concepts.
  • Developers should focus on adaptability, system design, and the business implications of their work to remain valuable.

Summary

Introduction to Gautam Korlam and Vibe Coding

In this episode, Gautam Korlam, co-founder of Gitar and former principal engineer at Uber, introduces the concept of 'Vibe coding.' Vibe coding emphasizes rapid prototyping and flexible iteration on software systems without being bogged down by perfect execution from the start. Gautam explains how this approach allows developers to achieve desired outcomes in user experience without needing to know every detail or framework up front.

The Journey of Gautam at Uber

Gautam shares his journey from joining Uber as one of their earliest Android engineers to rising through the ranks to principal engineer. He recounts stories of high-stakes incidents like accidentally deleting Uber's Java monorepo, discussing the lessons learned from such pivotal moments. This section highlights the unique engineering culture at Uber and how internal tools like Submit Queue, DevPods, and various in-house metrics were essential to managing scale and performance.

Monorepos at Uber

The conversation dives into the pros and cons of the monorepo approach that Uber adopted. Gautam explains how the transition from multiple repositories to a single monorepo streamlined processes, yet posed challenges in terms of architectural complexity and management. Understanding the implications of scaling software in a shared environment becomes a key point of discussion, particularly how different teams coordinate and manage dependencies.

Developer Productivity Measurement

Gautam emphasizes the significant role developer productivity plays in engineering success at Uber and beyond. He discusses how Uber employed various metrics to analyze and improve developer experience and happiness, including measuring code review times and fallback options. This practice of continuous monitoring helped catch issues early and kept developer concerns at the forefront for the platform team.

The Evolution to AI Tools

The potential of AI in the software development lifecycle is a pivotal theme of this episode. Gautam articulates how AI tools are not only changing the speed of coding but also emerging as game changers for productivity—especially for junior engineers. He argues that while these tools enhance the development experience, they underscore the importance of foundational knowledge and critical thinking for engineers.

Future Skills for Developers

Finally, Gautam offers insight into the skill set developers should cultivate as AI tools proliferate. Emphasing adaptability, understanding system design, and ability to prototype effectively, Gautam highlights the need for engineers to become 'generalists,' who can understand different aspects of a system. He connects this thought back to the need for engineers to be in touch with the business side of things to deliver high-quality user experiences.

Sponsors

  • Sentry · Error and performance monitoring for developers.
  • The Software Engineer’s Guidebook · Written by me (Gergely) – now out in audio form as well.

Show notes

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

Follow this show on AudioBrevity and new episodes get summarized for you. Create a free account

Couldn't load the audio. A blocker may be stopping the show's tracking links. Open the file