今すぐ聞いて見てください YouTube、 Spotify そして りんご 。このページの上部にあるエピソードのトランスクリプトと、下部の要約を参照してください。
–
プラグマティックエンジニアの今日のエピソードでは、私は前者に加わりました Uber 同僚、 グータム・コルラム。ゴータムはの共同設立者です ギター、コードメンテナンスを自動化するエージェントAIスタートアップ。ゴータムはモバイルエンジニアでした。 9モバイルプラットフォームチームのUberおよび設立エンジニアで、彼はエンジニアリングチームの拡大についていくつかのことを学びました。
私たちは話します:
•GautamがUberのJava Monorepoを誤って削除した方法 – 本当に!
•Uberのユニークなエンジニアリングスタックと、Submitqueueのようなカスタムソリューションが社内で構築された理由
•Monorepo:このアプローチの利点と欠点
•Engineer IIからUberのプリンシパルエンジニアまで:Gautamのキャリアの軌跡
•信頼を築き、ソーシャルキャピタルを獲得するための実用的な戦略
•Uberのプラットフォームチームが製品中心の考え方でどのように運営されていたか
•バイブコーディング:クイックプロトタイピングに役立つ理由
•AIツールがどのように開発者のエクスペリエンスと生産性を変えているか
•AIツールが広がるにつれて、開発者が価値を維持するために開発する重要なスキル
•そしてもっと!
会話の興味深い部分:
1.キューを送信します:Uber Bult複雑なマージシステムは、各コミットが長期にわたるCIテストを実行するために多数のコミットを使用してデラになりました。中小企業が持っていないことは問題ですが、Uberは持っていたので、彼らは自分のかゆみを掻きました。
2。ローカル開発者分析(LDA): 数年前、Uberは開発者の経験を測定し始めました。ビルドが地元でどれくらい時間がかかりましたか?どのくらいのCPUが使用されますか?彼らはこのデータを使用して内部ツールを改善しました。
3.製品チームとしての開発者の経験。 Gautamのチームは、顧客がUberの内部開発者であったことを除いて、古典的な製品チームのように運営されていました。 Gautamは、これがすべての成功したプラットフォームチームがどのように機能するかだと考えています。
4。AIソフトウェア開発の変更:これが起こっています。 「バイブコーディング」は、より高速なプロトタイピングにつながります。 Gautamは、ジュニアエンジニアがAIツールで繁栄すると考えています。なぜなら、彼らはより速く走る地面にぶつかり、より経験豊富な開発者を妨げるバイアスがないからです。
(00:00)イントロ
(02:11)GautamがUberのJava Monorepoを誤って削除した方法
(05:40)ゴータムの間違いの影響
(06:35)Uberのユニークなエンジニアリングスタック
(10:15)製品の送信
(12:44)UberがMonorepoに移動した理由
(16:30)モノレポの欠点
(18:35)社内で構築された測定製品
(20:20)開発者の生産性と幸福の測定
(22:52)開発者の生産性を開発する方法
(27:37)クラウド開発環境への課題
(29:10)GautamのENG IIからプリンシパルエンジニアへの旅
(32:00)信頼を築き、ソーシャルキャピタルを獲得します
(36:17)Uberのプリンシパルエンジニアの説明 – Uberの原型
(45:07)プラットフォームとプログラムはUberで分割されました
(48:15)Gautamと彼のチームがどのように内部ユーザーをサポートしたか
(52:50)開発者の生産性に関するGautamの考え
(59:10)AIが生産性を向上させる方法、その限界、およびエージェントAIの上昇
(1:04:00)バイブコーディングの説明
(1:07:34)Gitarの概要とそれが開発者を支援できるすべて
(1:10:44)価値を付加し、関連性を維持するために育成するためのトップスキル
(1:17:00)急速な火災
-
Gautamは2014年にAndroidエンジニアとしてUberに加わりました。当時、ユニットテストさえありませんでした。 Gautamは最初のAndroidテストを書き、Artifactoryをセットアップしました。
-
Uberは、社内でエンジニアリングスタックの多くを構築しました クラウドネイティブのSaaS製品はその規模のために構築されていないためです。
-
初期の年でさえ、Uberは毎分約1つのコミットを見ました – そして、当時のプラットフォームはこれを処理できませんでした(特にCIが10〜30分かかったと考えると、実行してください!)
-
ビルド時間は問題でした。 2016年のiOSおよびAndroidアプリの書き換え中、ビルド時間は非常に長くなりました。ゴータムはそれを制御することに取り組みました。
-
キューを送信します グリーンメインを保証する方法でした。彼らがうまく一緒にプレーすることを保証するために、ITの入ってくるコミットを連続化しました。会社 論文を公開しました この新しい解決策について。キューテスト済みの変更を提出し、異なるコミット間の相互依存関係を考慮します。機械学習モデルは、潜在的な障害を推定し、緑色の可能性のある投機的に試行されたパスを推定しました。
-
-
モノレポ:Polyreposとして開始した後、UberはMonoreposに移動しました
-
Uberは、ライダー、ドライバー、その他のアプリ(EATSなど)のための個別のリポジトリから始めました。会社が成長するにつれて、各チームは独自のリポジトリを望んでいたため、何百ものレポを行いました。ライブラリをアップグレードしてバンプするのは苦痛になりました。
-
iOSチームはモノレポに移動し、Androidが続きました。ライブラリを上げる必要がなかったため、生産性の向上は大きなものでした。この動きは本当に標準化に役立ちました。
-
最大の最初のプッシュバックは、チームが結果を心配することなくAPIを破ることができなくなったことです。より遅いビルドについて懸念がありました。最終的に、Dev Platformチームはこれらの懸念を解決しました。
-
-
ローカル開発者分析(LDA): 開発者のマシンで実行され、システムに関する情報を収集した内部Uberシステム。 CLIツールとIDEに深く統合され、開発者が最もアクセスするファイルを追跡し、ほとんどのバグでファイルを識別しました。 LDAは、開発目標到達プロセスのボトルネックの特定を支援しました。
-
開発者調査: Uberはこれを定期的に実行しました。 Gautamの在職期間中、開発は負の50からポジティブ8へのnpswentを使用しています。
-
より良い開発者エクスペリエンスのために作られたもの:コードを確認するための時間を最小限に抑え、コードを構築する時間、会議に費やされた時間を短縮します。
-
-
devpods:別の内部Uberツール。これらは基本的にクラウド開発者環境です。それらには、コードのコンテナが含まれており、クラウド内にシステムアーティファクトを構築し、IDEインデックスを構築しています。 DevPodsはコンテキストをすばやく切り替えます。
-
深く行く: ニッチに入って深く入ることは、特に他の人がやりたくない地域では、長期にわたって助けることができます。
-
定期的にイントロプス: 2年ごとに、ゴータムは自分が望んでいたことをしているかどうか、そして彼にもっと挑戦できるものを確認するために、内省をしました。
-
ソーシャルキャピタルとメンターシップ:これらは大企業で非常に重要になります。つながりを持つのに役立ちます。ゴータムは、開発者の環境の問題を抱える人々を助けるためにすべてを落とします。彼はまた、定期的に営業時間を迎え、現れた人を助けることを申し出ました。
-
ビジネスを理解する: 主要なエンジニアは、単なる純粋なコーディングではなく、エンジニアリングがどのようにビジネスに出会うかを理解する必要があります。このエリアに飛び込むことを楽しむなら、そして人々と話すのが好きな場合に役立ちます!
-
マネージャーとのピア関係の詳細。 エンジニアが年功序列で成長するにつれて、彼らはマネージャーのピアのようになり、マネージャーが物事を成し遂げるのを助けます。関係は、「ボス」というよりも「ピア」のようなものです。
-
シニア+開発者のマネージャーのためのヒント:代理店に与え、頻繁にチェックインし、ブロックを解除していないことを確認してください。
-
Gautam Korlamを見つける場所:
•LinkedIn: https://www.linkedin.com/in/gautamkorlam/
エピソード中の言及:
•submitqueueで大きな違いをバイパスする: https://www.uber.com/blog/bypassing-large-diffs-in-submitqueue/
•ジェンキンス: https://en.wikipedia.org/wiki/jenkins_(software)
•devpods: https://www.uber.com/blog/devpod-ifproving-developer-productivity-at-uber/
•ジェットブレイン: https://www.jetbrains.com/
•クラウド開発環境:https://newsletter.pragmaticEngineer.com/p/cloud-development-environments
•なぜクラウド開発環境が人気を急上昇させているのですか?: https://blog.pragmaticEngineer.com/why-are-cloud-development-environments-spiking-in-popularity-now/
•マイケル・ノバティとのメタの「コーディングマシン」:https://newsletter.pragmaticEngineer.com/p/the-coding-machine-at-meta
•ソフトウェアアーキテクトアーキタイプ:https://newsletter.pragmaticEngineer.com/p/software-architect-archetypes
•Uberで分割されたプラットフォームとプログラム:マイルストーンスペシャル:https://newsletter.pragmaticengineer.com/p/the-platform-and-program-split-at
•バイブコーディングとは何ですか?クリエイターがコードを作成せずにソフトウェアを構築する方法: https://alitu.com/creator/workflow/what-is-vibe-coding/
•WhatsApp: https://www.whatsapp.com/
• さび: https://www.rustlang.org/
•GitarによるJimyを紹介できることを楽しみにしています – より良いソフトウェアを構築するためのエージェントAI: https://www.linkedin.com/posts/gautamkorlam_i-am-excited-to-introduce-jimy-by-gitar-apivity-7297713117927481344-0g4l/
•カーソル: https://www.cursor.com/
•クロード: https://claude.ai/
•DeepSeek: https://www.deepseek.com/
•ヘッドファーストデザインパターン:脳に優しいガイド: https://www.amazon.com/head-first-design-patterns-brain-fringly/dp/0596007124
–
生産とマーケティングによる ペン名。ポッドキャストのスポンサーに関するお問い合わせについては、[email protected]にメールしてください。
#Gautam #KorlamとのUberでの開発者エクスペリエンス