📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Mitchell Hashimoto’s new way of writing code

The Pragmatic Engineer1:58:24

Transcription

AWSでの当時のご経験はいかがでしたか?率直なご意見をお聞かせください。

>> AWSは本当に傲慢でした。まるで私たちに恩恵を与えているかのような感覚でした。「我々が製品を立ち上げ、君たちの会社を潰すだろう」という、かすかな気配がありました。

Terraformはどこにでもあるように見えました。その突然の人気は何が原因だとお考えですか?

>> 私を苛立たせたことの一つは、「ああ、彼らが市場で最初に登場したから勝っただけだ」ということでした。私たちは市場で7番目でした。

AIのせいで、オープンソースのほとんどは変わらざるを得ないように感じます。AIは、もっともらしく見えるが不正確で低品質な貢献を容易に作成します。オープンソースは常に信頼のシステムでした。今やデフォルトで拒否され、信頼を得なければなりません。

>> Gitは数年後も存在していると思いますか?

>> 興味深いのは、12〜15年ぶりに、誰かが笑わずにその質問をしていることです。AIエージェントがコードを書き、プルリクエストを送信し、機能をリリースできるとしたら、私たちはもうオープンソースの貢献者を必要としないのでしょうか?Hashi Corpの共同創業者であるミシェル・ハシモト氏は、オープンソースの未来と、AIを日常のワークフローに効率的に統合する方法について深く考えてきました。ミシェル氏は、現代のクラウドインフラストラクチャを支えるツール、Terraform、そしてHashiスタックを構築しました。また、人気のターミナルであるGhostyも作成しました。私は彼を、AIがソフトウェアエンジニアリングの技術をどのように変えているかについて、業界で最も思慮深い声の一人だと考えています。今日のこのエピソードでは、Hashi Corpのオリジナルの物語、失敗した大学の研究プロジェクト、未解決の問題のノート、そして2分で返信した未来の共同創業者からのメールについて取り上げます。AWS、Azure、Google Cloudとのパートナーシップにおける彼の率直でフィルターのかかっていない見解、傲慢さと、ビジネスについて考えたことのない優秀なエンジニアたち、AIコーディングツールにどのように適応してきたか、なぜ常にバックグラウンドでエージェントを実行しているのか、そしてまだAIエージェントに慣れていないエンジニアへの実践的なアドバイスなど、多くのことをカバーします。業界で最も実践的なビルダーの一人から話を聞きたい、AIツールの有用な点とそうでない点を知りたいという方は、このエピソードは必見です。このエピソードは、フラグ、分析、実験などを統合するプラットフォームであるStatsigがお届けします。ショーノートで、彼らと今シーズンの他のスポンサーであるSonar、Work OSについて詳しくご覧ください。ミシェルさん、ポッドキャストへようこそ。直接お会いできて嬉しいです。

>> ええ、何年もあなたをフォローしてきた後、直接お会いできて嬉しいです。あなたはテクノロジー業界、ソフトウェアエンジニアに多大な影響を与えてきました。しかし、どのように始まったのですか?

>> 高レベルで言えば、多くの人と同様のストーリーだと思います。12、13歳頃、10代前半で、ビデオゲームに触発されて独学で学びました。多くの人と同じです。しかし、すぐにウェブに魅力を感じました。ウェブは新しく、Googleはまだありませんでした。ウェブは新しかったと思います。それで、私はすぐにビデオゲームプログラマーにはなりませんでした。すぐにウェブプログラマー、PHP、Perlなどの分野に進みました。そして、私はとても若かったので、学ぶ唯一の方法は、オンラインで公開されているコードを見ることでした。それがオープンソースと知り合ったきっかけです。当時はその名前を知りませんでしたが、仕事もお金もない子供でした。両親は、プロの本を買ってくれるようなことはしませんでした。当時の本は50ドルくらいしましたよね?それで、彼らは「とんでもない」と言いました。それに、私がそれを読むとは信じていませんでした。だから、オンラインで見つけたものは何でも私のコーディングの入り口でした。毎日友達と学校に歩いて行きました。PHPマニュアルの最初の1〜2章を印刷した時期がありました。30〜40ページくらいの紙だったのを覚えています。私はまだプログラミングをしていませんでした。12歳の私にとって、すべてがとても混乱していました。それで、私は毎日学校に行く途中で40ページすべてを読みました。どれくらい時間がかかったかは覚えていませんが、長い間そうしていました。ある日、学校に行く途中で、これらのドル記号が何であるかを突然理解した瞬間を覚えています。何らかの理由で、それが理解できたのです。

>> それは変数ですよね?

>> 変数です。ええ、ええ。そして、私は本当に理解しました。12歳で、文脈に関係なく「変数」という言葉を聞いたことはありませんでした。そしてついに、それらが何かを格納し、物事が変化する可能性があることに気づきました。この本を何週間も読んで理解できず、学校に行って興奮して「理解できた!」と言っていたのを覚えています。そしてその後、物事が本当に速く進んだのを覚えています。

>> どんなものを作りましたか?

>> ウェブサイトです。ええ、ウェブサイトです。ゲーム関連のウェブサイトでした。ゲーム関連のフォーラムソフトウェアなどが多かったです。ええ、ウェブサイトをクローンするのにとても楽しかったですが、下手でしたが。PayPalが登場し、インターネット上でお金がどのように送金されるのか、どのように機能するのか本当に不思議でした。それで、ウェブサイトのコピーをクローンしようとしました。私はフリーランスのウェブサイトで18歳だと偽りました。それで、画像アップロードのような仕事で、ここで100ドル、あそこで50ドル稼ぎました。大学でコンピュータサイエンスを学ぶことにしました。ワシントン大学に行きました。まあ、それは真剣になったと言える頃かもしれませんが、高校時代から毎日できる限りコーディングしていました。

>> ああ、そうですか。

>> ええ、それは素晴らしいですね。友達の間では一人でしたか?他の人もやっていましたか?それとも少し孤独でしたか?

>> 孤独でした。とても孤独でした。現実世界では孤独でしたが、すぐにMSNメッセンジャーやAIMメッセンジャー、フォーラムを通じてオンラインの友達を見つけました。今でも連絡を取り合っている友達もいますが、当時は違いました。誰もその言葉を知らないプログラマーであること、コンピューターに夢中になることは、社会的な死刑宣告のようなものでした。だから、親しい友人たちでさえ、親友たちでさえ、私は彼ら全員からそれを隠していましたし、学校でも話しませんでした。だから、大学に行くまでそれは秘密でした。大学で、すべてを打ち明けることにしました。大きなブレークスルーは、ブログを書いたことです。大学の1年生の終わり頃、夏休みに入る前に、誰かが突然私にメールを送ってきました。それは詐欺だと思いました。「Ruby on Railsプログラマーになりたいか?」という内容でした。私はRubyを知りませんでした。私はPHPプログラマーでした。RubyもRailsもやったことがありませんでした。しかし、このメールを受け取り、ヘッドハンティングされたことは一度もありませんでした。それが何なのか分かりませんでした。私は18歳だったので、どう考えればいいのか分かりませんでした。連絡してきた人がロサンゼルスにいたので、返信しなかったかもしれませんが、返信して、実際に会う約束をして、会社を訪ねて、これが現実で、彼らが真剣で誠実であることを理解しました。そしてその仕事を引き受けました。そこで多くのことを学びました。だから、それは大きな変化でした。

>> スタートアップか小規模な会社でしたか?

>> いいえ、コンサルティング会社でした。2007年頃、Ruby on Railsが爆発的に人気になり、非常に人気がありました。そして、どこからともなく現れた多くのコンサルティング会社があり、基本的には「最小実行可能製品を構築します」というものでした。そして、私たちはそのうちの一社でした。だから、大学生にとっては素晴らしい仕事でした。クライアントは2ヶ月ごとに変わり、私はYouTubeのようなウェブサイトを構築し、次に慈善活動のウェブサイトを構築し、次にeコマースのウェブサイトを構築しました。さまざまなテクノロジー、さまざまな規模の課題、さまざまな考え方を学ぶことができました。MVPを構築していたので、規模はそれほど大きくありませんでしたが、規模の問題について考えることはできました。ええ、それは素晴らしかったです。Hashi Corpは最終的にどのように始まったのですか?あるいは、このRubyの仕事を得てから数年後に何が起こったのですか?

>> このRubyの仕事から始まります。その会社には一人の男性が働いていました。彼はプライバシーに非常に気を遣っていたので、名前は伏せますが、彼は私のボスでした。HerokuもEngine Yardもなかったので、自分でホストする必要がありました。当時のRuby on Railsのホスティングは非常に困難でした。それで、彼はこれらのプロジェクトすべてを専用サーバーにホストする担当者でした。私はそれについて何も知りませんでした。彼はLinuxを使い、長い黒髪で、マウスを使わず、私には奇妙なことばかりでした。私はその世界についてもっと知りたいと思っていました。幸い、見た目とは裏腹に、彼はとても親切でした。それで、私が純粋な興味を示し、たくさんの質問を始めると、彼は私に課題を与え始めました。私が覚えている最初の課題は、私のマウスのコードを抜いたことです。面白いのは、もしあなたがそれをやったら、それはハラスメントになるような時代ではなかったと思いますが、彼は文字通り私のマウスのコードを抜いて、「あなたはもうマウスを使わないだろう。どうやってやるか教えない。ただマウスのコードを抜いて、コンピューターを再起動して、あなたの問題だ」と言いました。そしてマウスを取り上げました。

>> Mhm。

>> 1週間かかりましたが、キーボード操作がとても上手になりました。

>> 過酷なレッスンですね。

>> 過酷なレッスンです。そして、キーボード操作が上手になると、彼は「よし、ここに」と言いました。彼は私のターミナルにscreenをインストールし、「これを理解しろ。これを使うんだ」と言いました。質問はなく、「これを使う」ということでした。そして、彼はゆっくりと私にそれを教え込みました。そして、SSH、パッケージマネージャーなどが登場し、彼はゆっくりと私に多くのことを教え、私はすぐに夢中になりました。これはとてもクールで、とても楽しいと思いました。その長いプロセスで、私はインフラストラクチャに興味を持つようになりました。そして同時に、またはその直後に、私はワシントン大学のシアトルプロジェクトという研究プロジェクトに参加しました。これは、Googleで検索できないので、ひどい名前ですが、シアトルプロジェクトと呼ばれています。当時人気があったのは、Folding@homeのようなものでした。これは、多くの人々が異なるコンピューター(あなたのホームマシン、未使用のラック、地下室、世界中にあるかもしれない)で計算できるかどうか、そしてこれらの異種ハードウェアをすべて寄付し、それを一般化できるかどうかという理想化されたFolding@homeでした。これにより、世界中の学術機関がワークロードを実行できるようになります。私の仕事は、スケジューラコンポーネントではなく、これらのノードすべてを起動する能力を作成することでした。そして、他にも多くのこと。非常に曖昧ですが、これはインフラストラクチャの問題でした。そして、私は完全に失敗しました。1学期試しましたが、技術的な面では完全に失敗しました。そして、ノートに、この問題を1学期、10年で解決できなかった理由、つまり「これが必要だ、これが必要だ、これが必要だ」という欠けているピースを書き留めました。ミシェルがHashiスタックの一部となるコンポーネントを定義するアプローチにおいて、どれほど構造化されていたかを見るのは興味深いことです。そして、これは私たちのシーズン スポンサーであるWork OSにうまくつながります。ミシェルを含む偉大なエンジニアを研究して学んだことの一つは、彼らが何を構築するかを非常に慎重に選択しているということです。偉大なエンジニアは、速くリリースするだけではありません。彼らはシステムで考え、レバレッジを理解し、何が彼らの長期的なサービスエリアの一部になるかを注意深く選びます。SaaS、特にAI製品を構築している場合、認証とエンタープライズIDは、静かに長期的な投資になる可能性があります。SAMLエッジケース、ディレクトリ同期、監査ログ、エンタープライズ顧客が期待するすべてのもの。Worksはこれらのビルディングブロックをインフラストラクチャとして提供するため、チームは製品を差別化するものを中心に集中できます。偉大なエンジニアは、何を構築しないかを知っています。IDがあなたにとってその一つであれば、workwise.comにアクセスしてください。そして、Hashi Corpで最終的に構築することになるすべてのコンポーネントでいっぱいのミシェルのノートに戻りましょう。

>> そして、私はまだこのノートを家に持っていますが、問題は本当に「リソースを宣言的に管理する方法がない」ということです。「それらをプライベートネットワークで接続する方法がない」ということです。私はこれらのことを書き留めました。そして、私が構築しなかった多くのことがありましたが、そのサブセットが最終的にHashi Corpが構築したものになりました。そして、私はこれを私の学部の上司、共同創業者であるアーマンと共有しました。

>> 後にあなたの共同創業者になった人ですね。

>> はい。彼は学部時代の私のボスでした。そして、私はそれを出口インタビューのようなものとして彼と共有しました。「これがそれです」と。そして、しばらく時間が経ち、数週間後、彼は突然私にメールで「一緒にスタートアップをやりませんか?」と尋ねてきました。

>> あなたは10代で、そのコミットメントが何であるか全く分かっていなかったのですね。

>> ええ、あなたは21歳くらいでしたか?

>> ええ、おそらくそれ以下です。おそらく19歳か20歳です。ええ。そして、彼は突然私にメールで「スタートアップをやりませんか?」と尋ねてきました。会ったことのない、あるいはほとんど会ったことのない人、個人的には会ったことのない人、そのような状況で。それはとても面白いです。そして、彼は午前11時30分に私にメールを送りました。あなたは大学にいます。私は2分で彼に返信して「はい」と言いました。彼は「 wow、君はとても速いから、すぐに参加してくれるんだな」と思ったのを覚えています。それが私たちの友情の始まりでした。そして、ええ、ここにも重なる部分がありますが、私は当時Vagrantというものも開発していました。Vagrantは、コンサルティング会社から生まれたもので、研究プロジェクトではありませんでした。2ヶ月ごとに新しいクライアントと異なるチームがいるこのコンサルティング会社での問題を解決していました。再現可能な開発環境をどのように作成すれば、多くの請求可能な時間なしで誰かを助けることができるでしょうか?だから、これはすぐに起動できる開発環境です。

>> ええ、ええ、ええ。私が常に持っていた比喩は、当時Windowsを使っていませんでしたが、比喩は「ダブルクリックして開発環境を開くにはどうすればいいか?」ということでした。

>> はい。

>> それが私が使っていた比喩でした。

>> それは良い比喩ですね。

>> ええ。私たちが抱えていた問題は、コンサルティング会社で無駄にされた時間は、構築できない時間であり、それは無駄でした。だから、もし誰かが遅れている場合、どうすれば機能を追加して、すぐに抜け出すことができるかということでした。そして、私たちはその時代にいました。プロジェクトの開発環境を設定するだけで半日かかることもありました。

>> クライアントのためにそれを構築することはできませんでしたよね?クライアントは作業に対してのみ支払いました。

>> ええ、クライアントのためにそれを構築することはできませんでした。だから、4時間の無駄な作業になり、実際のクライアントの開発環境を台無しにする可能性もありました。なぜなら、異なるRubyバージョン、異なるRailsバージョンを使用することになり、両方を台無しにするからです。それで、Vagrantはそこから生まれました。私はただそこに行って、最終的にVagrant Upスイートになったものを使いたかったのです。数分で、2時間の間あなたを助けることができます。

>> そして、当時どのように構築しましたか?仮想マシンか何かでしたか?

>> ええ、VirtualBox、Oracle、いや、Sunでしたが、VirtualBoxでした。そして、それは別のクールな制約です。私は大学生だったので、お金がありませんでした。

>> 当時は高価でしたよね?

>> 仮想化は高価でした。VirtualBoxは無料のオープンソースでした。オープンソース側は気にしませんでした。それについては読むつもりはなかったので。ええ、それは無料でした。だから、私はそれを選びました。そして、EC2を選ばなかったのは、インスタンスにお金を払う余裕がなかったからです。ええ、それが制約でした。そして、私はそれについて話すのが好きです。なぜなら、ソフトウェアエンジニアリングの多くは、制約を理解し、これらの制約とともに働くことだと考えているからです。そして、あなたの以前のポッドキャストでは、静的力と動的力のようないくつかの力が呼ばれていました。それはそれです。そして、制約がある方がより良いソフトウェアを作成できると思います。それが私の制約でした。ええ、それで、Vagrant、この失敗したインフラプロジェクトがありました。コンサルティング会社での私のボスが私をインフラに引き込んだこと、そしてすべて。そして、外部的には、クラウドが導入されていました。AWS。私はワシントン大学に通っていました。

>> ああ。

>> 私はちょうどそこにいました。

>> epicenterにいましたね。Amazonはすぐ隣でしたね?

>> Amazonはすぐ隣でした。彼らはすぐに多くのクレジットを寄付しました。私はローンチを知っていました。UDubのCS学生のほとんどはAmazonでインターンをしていました。必ずしもAWSではありませんでしたが、AWSも含まれていました。アーマンもAWSでインターンをしていました。だから、私はクラウド、クラウド、クラウド、AWSのバブルの中にいました。人々がS3を「s cubed」と発音していた頃です。誰もどう発音するか知らなかったのです。それほど新しかったのです。だから、これらのすべてが組み合わさって、それをより良く管理するためのツールを構築する道に進みました。

>> その時、クラウドを見て、それが大きくなっているのを見たとき、あなたはそれが大きくなる、あるいはクラウドほど大きくなるという確信がありましたか?これは非常に、非常に新しいことでしたよね?

>> 全くです。そして、私は想像しますが、もっと多くの人が懐疑的だったか、それが単なる流行だと思ったでしょう。どのようなものでしたか?少し戻って説明してもらえますか?それは非常に洗練されていなかったと思います。私が説明するように。EC2は、AWS全体は非常に信頼性が低かったと思います。S3は唯一信頼できる部分でした。他のすべては完全に信頼性がありませんでした。そして、サービスは数個しかありませんでした。私たちが始めたとき、EBSはまだ存在しませんでした。だから、私が始めたとき、S3以外の耐久性のあるストレージはありませんでした。それは非常に未熟に感じました。そして、私はそれを「これは大きくなるだろう」とは決して見ませんでした。つまり、最終的には大きくなると思いましたが、「これはより良い方法だ」と見ました。これはより良い方法のように感じました。市場や社会的な人気という点で、これが勝つか負けるかは分かりませんが、これは良いと感じました。だから、それが私をそれに駆り立てたのです。そして、私は何度も言いますが、私は何が最も楽しいか、そして何が正しいと感じるかに非常に動機づけられています。そして、それは私にとって正しいと感じました。私が賭けを始めたのは、私とアーマンの両方が、Hashi Corpをマルチクラウドの基盤で始めたときです。そして、それを文脈化するのが好きです。私たちがこれを始めたのは2011年か2012年頃で、AWSは巨大で、Azureは実際には存在せず、Google Cloudも実際には存在しませんでした。Google App Engineがありましたよね?それはまだクラウドではありませんでした。

>> 正しい。正しい。

>> それがApp Engineだった頃、私はそれを使っていました。ええ。

>> ええ、ええ。そして、その文脈で、私たちがこれらのクラウドに依存しないツールをピッチしていたとき、私たちは多くの眉をひそめられました。「AWSだけが市場にいるプレイヤーだから、時間の無駄だ」と言われました。私たちの確信は、その時点でクラウドは巨大になるだろうということでした。経済的に巨大なものは何でも、他の人々もそのパイの一部を欲しがるだろうということです。だから、AWSだけということはないでしょう。それは巨大になるでしょうが、他のものが現れるでしょう。そして、Microsoftはそれを放置しないでしょうし、Googleもそれを放置しないでしょう。そして、誰が知っているか、誰が知っているか。それが私たちの確信でした。それが私たちの賭けでした。そして、それはほとんどそのように展開しました。

>> それで、Hashi Corpを設立することを決めたとき、あなたはVagrantを持っていました。それはVagrantを商業化するという考えでしたか?そして、資金調達に出ましたか?それとも、自己資金で始めましたか?どのように進みましたか?

>> Vagrantを商業化するためではありませんでした。しかし、私たちは、アーマンと私は、このモバイル広告会社のスタートアップで働いていました。30人未満の会社で、PythonとCで、このノートブックにあったサービスディスカバリや、Launchyと呼んでいたTerraformの初期バージョンのようなアイデアの非常に粗いプロトタイプを構築しました。DNSベースのサービスディスカバリ、オフザシェルフのDNSサーバーとPostgresを接続することによるサービスディスカバリを行いました。そして、私たちはハッキーなことをたくさんしましたが、それは良いと感じました。そして、再び、私を動機づけるものとして、それがどのように感じられるかということに戻ります。それは正しいと感じました。方向性としては正しかったです。私は卒業しました。シアトルの環境は当時、スタートアップがそれほど多くありませんでした。基本的には、誰もが「Amazonで働くか、Microsoftで働くか?」と言っていました。ええ、それがすべてでした。そして、ある程度Facebookも現れ始めていましたが、それだけでした。私はスタートアップで働きたいと思っていました。それで、私はサンフランシスコに移りました。サンフランシスコに移り、私を雇ってくれるスタートアップを見つけました。それはモバイル広告の会社でした。そして、ただ学びたかったのです。だから、そこでの短いステップです。それで、私はサンフランシスコにいました。そして、アーマンは実際にバークレーで博士号を取得するつもりで、彼は受け入れられていました。それは非常に大きなことでした。信じられないほどのプログラムでした。そして、彼はそこに行くつもりでした。そして、彼はそこで素晴らしいことをしたでしょう。しかし、私は彼をこのモバイル広告スタートアップに参加するように説得しました。彼は実際、博士号取得のために1年を費やしました。彼は「1年試してみる」と言いました。

>> ええ。

>> 「モバイル広告に参加して、必ず戻る」と。

>> もしうまくいかなかったら、戻るつもりでした。

>> そして、その年に起こったことは、今、私たちが話していることです。それは、私たちがこれらの、これらの寄せ集めのプロトタイプツールを持っていて、それが良いと感じていたことです。そして、私たちはこれらの小さなスタートアップの交流会にすべて行っていました。GitHubのドリンクアップのようなものですが、私たちの「これはサンフランシスコのものだ」というようなものです。そして、私はもうそこに住みたくありませんが、当時は魔法のようだったと思います。通りを挟んだ向かいには、当時Zimriteと呼ばれ、最終的にLyftになった会社があり、彼らは私たちを飲み物とピザに招待して、名前のない新しいアプリをデモしました。

>> わあ。ええ。

>> だから、そのようなことです。

>> あなたが生まれたときにそこにいましたね。

>> ええ、ええ、ええ。そして、それは常に起こっていました。サンフランシスコでは常に起こっていました。そして、それは私だけに限ったことではありません。ええ、そこには多くの話がありますが、それらを詳しく話す価値はないと思います。ただ楽しいだけです。しかし、私はこれらのすべてに参加し、人々はただ話していました。彼らは皆、テクノロジーの男たちでした。そして、あなたは「何に取り組んでいるのですか?」と尋ねるでしょう。そして、私は2つのことを認識しました。一つは、これらのすべての会社がクラウドファーストであるということです。彼らは皆、AWSを最初に採用しています。専用のものは何もありませんでした。

>> これは2011年か2012年頃でしたか?彼らはクラウドにお金を払って利用していました。それは新しいことでしたよね?前の世代はオンプレミス、サーバー室、サーバー管理者、それらの役割を持っていました。

>> それはすべてなくなっていました。

>> それは大きな変化だったに違いありません。

>> ええ。私は、私が参加したソーシャルイベントで、専用サーバーを持っている人がいたのを一つも覚えていません。唯一の例外は、Twitterです。しかし、私たちはそれが業界における大きな変化であることを強調する必要があると思います。そして、それはおそらくシリコンバレーか、あるいは

>> おそらく。

>> ええ、まあ、他のどこよりも進んでいました。おそらくシリコンバレーでした。AWSがあまりにも信頼性が低かったので、かつてはジョークがありました。AWSがダウンすると、これらのスタートアップはすべてキャッシュフローが中立になり、お金を失わなくなると。だから、大規模な米国東部の大規模な障害が発生し、誰もが「地域を移行しますか?」と言っていました。「いいえ、今はお金を節約しています」と。しかし、ええ、話を戻すと、誰もがクラウドファースト、クラウド生まれ、クラウドネイティブ、あなたがそれを何と呼びたいかでした。そして、もう一つは、彼らは私たちと同じような課題に直面しており、私たちのツールを使っていなかったことです。なぜなら、それらは単なる内部プロトタイプツールだったからです。

>> しかし、私のツールは良いと感じていました。それで、私はこれらの2つのことが組み合わさって、ある種の自尊心、傲慢さがありました。私は、私たちが正しいことをしていると確信していると同時に、業界もその方向に向かっていると考えていました。そして、私たちは協力できると考えていました。それで、それがその基盤とした会社を始めることにつながりました。私がVagrantを持っていたという事実は、業界からの尊敬のようなものでした。Vagrantは当時それほど大きくなかったので、それはあまり言えませんが。しかし、私はこの方向に進むための信頼を与えるための公的な基盤を持っていました。それだけです。そして、私たちはHashi Corpを始めました。

>> そして、会社を設立することを決めたとき、あなたは法人化し、物事を整えました。資金調達をすることにしましたか?なぜなら、当時、それはそれほど一般的ではなかったと思いますが、Y Combinatorはおそらくその頃に始まったばかりでした。だから、スタートアップは大きなものでしたか?それとも、スタートアップを始めたら資金調達をするのが当たり前でしたか?

>> 私のソーシャルバブルでは、それはほとんど当たり前でした。ええ、それだけでなく。私たちは法人化しました。私は自己資金で賄いました。私は自分の貯蓄口座から2万ドルをこの法人口座に移しました。最初の資金です。そして、私はそれを元に働きました。最初の6ヶ月間は自分に0ドルを支払いました。だから、2万ドルは会社が必要とするものすべてに使われました。それが最初の6ヶ月でした。そして、アーマンは6ヶ月後に参加しました。そして、私たちは資金調達をすることにしました。そして、その動機は、実際には他の選択肢があまりなかったということです。当時、私が見ていた選択肢は3つしかありませんでした。つまり、ブートストラッピング。製品を構築し、お金を稼ぎ、手頃な価格になったら成長を続け、再投資して成長させる。ブートストラッピング。その反対側にはVC。そして、その中間には私が「パトロネージュ」と呼んでいたものがありました。それは今日のPatreonのようなものではありませんでした。そのようなインフラストラクチャは存在しませんでした。加入者寄付のようなインフラストラクチャはありませんでした。パトロネージュは、VMwareのような会社にあなたの給料を支払ってもらい、あるアイデアに取り組むことができるかもしれないというものでした。そして、その最良の例はVMwareのRed Hatです。そして、私たちは、会社設立当初からTerraform、Consulを含んでいた計画を立てました。いや、Vault以外はすべて含まれていました。Vaultは少し後で登場しました。そして、私たちはそれを見て、これをブートストラップした場合、たとえそれが大成功したとしても、ソフトウェアを構築するだけで10年かかると言いました。これは最良のシナリオです。これは単に遅くなるだけです。そして、遅いことの問題は、物事にはウィンドウがあるということです。そして、クラウドは非常に速く成長していたので、もし私たちがそれほど遅ければ、他の誰かがそれを自分のやり方でやるだろうということです。つまり、それが主な問題だったと思います。私たちは本当に速く進みたかったのです。

>> あなたはそれが必要だと知っていました。

>> ええ、私は必要でした。私たちはすぐに多くのエンジニアを雇い、すぐに構築を始める必要がありました。そして、VCが私たちが選んだ道でした。

>> 最初のいくつかの製品について、そしてそれらが何をするのか、説明してもらえますか?Vagrantは知っていますが、Hashiスタック laterになったものについてあまり知らない人のために、説明してもらえますか?

>> ええ、まだ順番に並べられるか見てみましょう。ほとんどできると思います。だから、Vagrantはそれよりも前にありました。Hashi Corp自体から最初にリリースされた製品はPackerという製品でした。公には控えめですが、今日でも業界の多くのことを支えています。それはイメージ構築ツールです。Amazonイメージ、VMwareイメージなどを構築します。公開されたものがどれくらいあるかさえ分かりませんが、業界全体で、その公式イメージ、サービスイメージはPackerで構築されています。誰もがAWSの水平スケーリング、自動スケーリングの性質を利用しようとしていました。それが夢でした。そして、もしあなたが、サーバーの準備ができるまで数十分待つとしたら、反応できませんでした。だから、私のアイデアは、それを実行し、イメージをスナップショットし、次回はそのイメージを起動することでした。だから、それがPackerでした。

>> それがPackerでした。

>> だから、Vagrant、Packer。次にリリースされたのはConsulでした。Consulは、ネットワーキングの問題を解決していました。ネットワーキングではありません。サービスディスカバリの問題を解決していました。つまり、多くのマシンが出入りしているのです。以前は、これを概念化するために、静的なマシンのセットがあり、IPアドレスを持っていました。そして、DNSなどを使用していたかもしれませんが、IPアドレスはそれほど頻繁には変更されませんでした。だから、「ああ、私のデータベースはここにあり、動かない」と言うことができました。しかし、Webサーバー、ロードバランサー、データベースが単に呼吸している世界では、それが私が常に説明する呼吸です。それらは創造と破壊、創造と破壊を絶えず繰り返しています。そして、サービスディスカバリがはるかに高速である必要がある規模で物事が起こっています。そして、単に高速であるだけでなく、応答を受け取ったときに「ああ、それはこのIPアドレスにある」というより良い保証を得たいのです。だから、そのIPアドレスは準備ができているのです。それは単に

>> ええ、これはKubernetesの準備チェックやヘルスチェックなど、より一般的だと思います。それは、より物理的なサーバーやクラウドサーバー、仮想マシンなどにそれを持ち込むことでした。だから、それがConsulでした。その後、Terraformをリリースしたと思います。Terraformは、コードでインフラストラクチャを起動します。AWSのパーラメントでインフラストラクチャを説明します。それは、EBSボリュームへのすべての添付ファイル、ゲートウェイ、VPC、サブネット、そしてそれらをすべて接続することのようなものでした。アイデアは、空のAWSアカウント、または任意のクラウドアカウントを持ち、このテキストを持ち、このテキストを現実にする、ということでした。それがTerraformです。そして、AWSにかかる時間だけ待ち、まばたきすると、何千ものリソースがあり、そして1つのコマンドでそれをゼロに分解できる、ということでした。それがTerraformでした。だから、それは2014年頃にリリースされました。だから、それが次のものでした。そして、Vaultでした。

>> はい。

>> Vaultは、コアとしてのシークレット管理として説明するのが最も簡単です。シークレット管理、暗号化は、さらに多くのことを行うようになりました。

>> だから、あなたのローカル開発マシンには環境変数があり、それをチームレベル、会社レベル、サービスがこれらのすべてに安全にアクセスする必要がある規模で実行することのようなものですか?

>> ええ、それは主に本番環境のシークレットに焦点を当てていました。開発者のシークレット問題を本当に解決するという夢とビジョンがありましたが、Vaultは実際にはそれをうまくやったことはありませんでした。

>> ミッチェルはシークレット管理について話しましたが、それは彼にとって非常に重要な焦点分野であることが判明しました。一般的に、セキュリティは非常に価値がありますが、うまく行うのは非常に難しいです。これは、私たちのシーズン スポンサーであるSonarにうまくつながります。今日の状況を見ると、私たちはタップ補完を過ぎて、エージェントAIの時代に入りました。自律エージェントがプルリクエストを開いています。大きな疑問。AIの速度を得ながら、リスクの山を引き継がないようにするにはどうすればよいでしょうか?Sonar CubeのメーカーであるSonarは、このバイブを「バイブと検証」という明確な方法でフレーム化しています。バイブの部分はイノベーションに関するもので、チームやAIエージェントに高い速度で構築し、イテレーションする自由を与えます。検証の部分は、不可欠な自動ガードレールです。エージェントがコードベースのより多くに貢献し始めると、人間または機械によって生成されたすべての行を品質とセキュリティ基準に対してチェックする独立した検証が、これまで以上に重要になります。開発者と組織のリーダーがAIを最大限に活用できるようにしながら、品質、セキュリティ、保守性を確保することは、今後のSonar Summitの主なテーマの1つです。これは単なるユーザーカンファレンスではありません。開発者、プラットフォームエンジニア、エンジニアリングリーダーが集まり、この新しい時代の実践的な戦略を共有する場所です。私もそこで講演することを楽しみにしています。コード品質を犠牲にすることなくAIを採用する方法を模索している方は、Sonar Summitにご参加ください。アジェンダを表示し、3月3日の無料オンラインイベントに登録するには、sonarsource.com/pragmatic/Sonarsummitにアクセスしてください。そして、Hashi Corpに戻り、なぜ会社が設立から6ヶ月後に資金調達を決定したのかについて話しましょう。しかし、ええ、それは基本的に、ええ、どこにシークレットを保存しますか?そして、シークレットはパスワードだけでなく、PIIでもありました。だから、顧客のメールや住所などをどのように保護しますか?

>> クレジットカード番号。

>> クレジットカード番号。ええ、だからVaultはそれらすべての中核であり、これからもそうです。

>> そのようなものを構築する一部ですね。

>> ええ、私たちはそれを構築したとき本当に怖かったです。なぜなら、私たちはそれを隠していたからです。私たちは嘘をついたわけではありませんが、Vaultを構築したチームの誰も、1学期以上のセキュリティ学部でのセキュリティ経験しかありませんでした。業界からのプロのセキュリティエンジニアはいませんでした。プロのセキュリティ学者は誰もいませんでした。そして、ええ、私たちはそれを構築しました。そのため、多くの監査を受けました。私たちは怖かったのです。だから、私たちは数社に、スタートアップとしては非常に高価でしたが、Vault 0.1の監査のために数万ドルを支払いました。私たちは2社に支払いました。私たちは、それをレビューするために、多くのセキュリティ専門家に早期ベータ版を共有しました。公にはなく、プライベートにです。私たちは多くの良いフィードバックを得ました。しかし、ええ、私たちはそれを公開したくありませんでした。だから、ええ、私は理解していますが、それは、経験が少ない人々でも良いものを作れることを証明しているようなものですね。ええ、セキュリティのことは、私たちがプロの専門家をすぐに雇い、製品を助けました。そして、セキュリティのことは常にかなり堅調でした。しかし、それは、セキュリティ業界が必要としていたのは、ユーザーエクスペリエンスの変化であって、それが何をするかという変化ではないことを本当に示しました。なぜなら、私たちがやっていたことは、すでに存在する数十億ドル規模の企業と根本的に異なることはなかったからです。しかし、エクスペリエンス、インターフェースの方法は劇的に異なっていました。そして、それが良い例だったと思います。ええ。

>> そして、Vaultの後には何が来ましたか?

>> Nomad。

>> Nomad。ええ。Nomadは私たちのスケジューラでした。市場に出るのが数年遅れました。ええ。

>> スケジューラと言いましたが、オーケストレーターではありませんでしたか?

>> 私は常にそれをスケジューリングと説明していました。

>> それは何をしましたか?

>> シンプルなことです。コンピューティングプールがあります。それは、私が学部時代に抱えていた問題を最終的に解決しました。コンピューティングプールがあります。特定の要件を持つアプリがあり、それを実行する場所を見つける必要があります。

>> ええ、ええ。私たちが話した学部時代の問題です。そして、これらのものを構築していく中で、数年かかったと言いましたが、ビジネス、Hashi Corpとしてのビジネスはどのように機能しましたか?ビジネスを生成し始めましたか?

>> ええ、ええ、だから、私にそれを教えてください。

>> ええ、私は、ビジネス開発が遅すぎたと思います。しかし、4年間、いくつかのランダムなソースからの収益はありましたが、再現性のある成長するビジネスはありませんでした。だから、あなたはただ、創業者たちのビジョン、つまり「すべてのものが必要だ。ブートストラップするには10年かかっただろう。5年で構築して、解決策を見つけよう」というビジョンを構築していました。

>> それが文字通りでした。

>> ええ、それが文字通りでした。そして、それはすべてオープンソースでした。そして、私は常にこの考え方を持っていました。つまり、会社が失敗しても問題ないということです。もし良いアイデアがあれば、オープンソースコミュニティはそれを継続するだろうということです。だから、私はそれを当時の投資家に言うことはなかったと思いますが、私はこの考えを持っていました。つまり、テクノロジーが世界に広める最も重要なことだったということです。ビジネスは本当に解決できると確信していましたが、それは最も重要なことではありませんでした。そして、創業者になろうと考えている、あるいは創業者になるかもしれないエンジニアのために、投資家との関係はどうでしたか?彼らがお金を入れたとき、取締役会の議席を得ましたか?期待を管理する必要がありましたか?ビジネスの帽子を少し被って聞いているのですが、4年間クールなものを作っていて、ビジネスプランが正確にはありませんでした。それはどのように機能しましたか?それとも、彼らは最終的にあなたが解決策を見つけると信じていたのですか?それとも、オープンソースのトラクションのようなものを見ましたか?

>> トラクションです。そして、私たちがやったことは、シリコンバレーでは珍しいことではなかったと思います。だから、私がそれを説明する非常に広範で手描きの方法は、シード段階は製品を構築することです。製品市場フィットがあるかどうかもまだ分かりません。あなたは単に推測しているだけです。教育を受けた推測をしていますが、何かを構築しています。シリーズAでは、製品市場フィットのヒントを証明しましたが、まだ完全に証明されていません。ヒントを証明しましたが、まだ完全に証明されていません。シリーズBでは、製品市場フィットを証明しました。そして、まだ反復可能な収益を証明していません。収益のヒントはありますが、製品が有用であることは知っています。人々が製品を気に入って使用したいと思っていることを知っています。そして、おそらく製品にお金を払いたいと思っているかもしれませんが、誰もがどのように支払うか正確には分かりません。そして、シリーズC、Dなどは、反復可能な収益マシンを構築し続けるだけです。そして、そのフレームワークを念頭に置いて、私たちは正しい軌道に乗っていました。それは基本的に、製品を構築することでした。オープンソースに関しては、シリーズAまでに明確な製品市場フィットがありました。数百万回のダウンロード、GitHubでの多くのスター、これが共鳴していることを示すあらゆる種類のシグナルがありました。収益はゼロでした。だから、ええ、お金を調達し、ゆっくりと、ゆっくりとビジネスの問題を解決することに近づいていきました。そして、平均的なスタートアップよりも1〜2年遅れていたと思いますが、一般的なフレームワークは同じでしたが、少し間違ったタイムラインだったと思います。

>> そして、ビジネスをすることに決めたとき、あなたはすでにHashiスタックを持っていて、管理されたオファリングを構築しました。覚えています。

>> ええ、私たちの最初の商業化への進出は完全な失敗でした。それは

>> ああ、本当に?

>> ええ、私たちは、熱狂的なHashi Corp製品ファンでなければ知らないかもしれませんが、Atlasという最初の製品がありました。そして、そのアイデアは、すべての製品を実行するというビジョンを商業的に出荷することでした。そして、そこにはいくつかの死の釘がありました。一つは、すべての製品を実行する必要があったことです。だから、あなたが単にVaultユーザーだった場合、私たちの商業製品を購入したり、購入したりするのは非常に困難でした。そして、もう一つは、採用要件に関係なく、それに付随するのが巨大な問題だったことです。あなたは、会社内の複数の異なる購買組織が争っている問題を解決しようとしていました。だから、私たちのツールをすべて採用した人々でさえ、誰が支払うのかという問題に直面しました。

>> エンジニアが支払うほど単純ではありませんでした。

>> 正しい。そして、私は、ビジネスのバックグラウンドを持たない創業者になるエンジニアに、私が持っているであろう教訓の一つは、会社はソフトウェアにお金を払いたがっているが、どの予算がそれを所有するかについて争うだろうということです。

>> 予算は重要ですよね?

>> はい。だから、予算が存在しなければならず、それがネットワークの問題のように見える場合、「ああ、ネットワークがそれを支払うべきだ」と言うでしょう。だから、私は自分の好きな他のオモチャを買うための予算が増えます。あるいは、もっと人を雇うことができます。あるいは、ええ、ベンダー予算に分解することもできます。だから、外部購入のためにすでに割り当てられている可能性があります。だから、私たちは、セキュリティが支払うのか?ネットワークが支払うのか?インフラストラクチャが支払うのか?開発ツールが支払うのか?それはどこに行くのか?そして、それは単に、皆がお互いを指差しているスパイダーマンのミームのようです。最終的に、何も売れません。だから、それはその理由で失敗でした。だから、私たちはこれをどれくらいの期間追いかけたか覚えていませんが、金曜日に取締役会がありました。取締役会は通常金曜日に開催されます。そして、私たちはこの取締役会を持っていました。私たちはサンフランシスコ市に拠点を置いています。取締役会は、シリコンバレーの南に1時間かかりました。そして、それはうまくいきませんでした。それは、誰も怒鳴っていたわけではありません。誰も「君たちは間違っている」と言っていたわけではありません。それは、私がそれを説明する方法は、両親があなたに満足していないが、満足していないと言う必要がないときです。

>> あなたは知っています。

>> しかし、彼らが満足していないことは知っています。私たちはこの取締役会を持っていました。私たちは家に帰りました。私と私の母は、完全に沈黙して家に帰りました。そして、金曜日でした。

金曜日の夜なので、普段なら私たちは直接、母が住んでいた街へ向かいます。私はすでにLAに住んでいましたが、私たちはそのままアーマンの家へ直行し、ワインを一杯飲みながら、物事を話し合ったり、考えを整理したりしていました。この帰り道、私たちは車の中で話しませんでした。アーマンはまっすぐオフィスへ向かいました。私はそれを問いませんでした。私たちはオフィスに入り、このテーブルほど大きくないテーブルに座りました。唯一の違いは、ホワイトボードがあったことです。その時点で、どちらかが「まあ、うまくいかなかったな」と言ったと思います。私たちは二人ともそれを知っていました。気分は良くありませんでした。そして、ここでの出来事の順序は非常に曖昧です。しかし、ある時点で、私たちは「もしサンクコストがなかったら、ゼロから始めるなら、今日何を違うことをするだろうか?」という実験をすることにしました。私たちはこのすべてをホワイトボードに書き出しました。ホワイトボードに書き出したのは、製品ごとのエンタープライズ製品と、Vaultを最初にすること、そしてその他すべてでした。私たちはそれを書き出し、そこでいくらかの時間を過ごしました。まだ金曜日でした。時間帯によっては土曜日かもしれませんが、まだ金曜日でした。アーマンがホワイトボードを見て、「なぜそれをやらないんだ?」と言ったと思います。まるで、「なぜダメなんだ?」というように。私も「ああ、なぜダメなんだ?」と思いました。それで、私たちはその週末にかけて、すべてを捨て去ることにしました。それまでやっていたことをすべて捨て去ることにしました。私たちは二人の有料顧客がいました。契約を破ることにしました。どうなるか分かりません。どうにかするつもりでした。私たちは終わりました。そして、月曜日に全社ミーティングを開催しました。当時、会社にはおそらく20〜30人しかいませんでしたが、Zoomで全社ミーティングを開催しました。Zoomは使っていなかったかもしれませんが、とにかくビデオチャットでした。そして、「さて、私たちは方向転換します。私たちは今、顧客としてエンタープライズ、製品ごとのオープンコアです」と言いました。私たちはオープンソースを持ち、内部にはクローズドソースの機能を持つフォークバージョンを持つことになります。はい、それはフォークでしたが、はい、オープンコアのビジネスモデルです。アーマンと私は、人々が辞めるだろうと思いました。失うだろうと思いました。正確な数字はありません。自信が失われ、「彼らは何も分かっていない」と思われるだろうと思いました。私たちも何も分かっていませんでした。そして、オープンコアでさえ、当時、人々は少し「気持ち悪い」と感じていました。だから、人々は「いや、私はオープンソースに取り組むためにここに来たんだ。オープンコアはやりたくない」と哲学的に辞めるだろうと思いました。エンタープライズは、単に退屈でつまらないもののように見えました。人々が辞める理由は、複数の側面がありました。誰も辞めませんでした。Slackの雰囲気は素晴らしく、非常にポジティブでした。>> 何が起こったのですか?なぜ人々が内部で>> ワンオンワンやフォローアップで尋ねました。尋ねましたが、皆が明確な方向性と確信を持てたことに興奮していたのです。未知への恐怖はありましたが、その前は「壁にダーツを投げているだけで、誰が顧客なのかも分からない」という感覚でした。そして、そのように多くの不確実性がありました。しかし今、それがうまくいくか分からないけれど、少なくともそれに全力で取り組むだろう、という感じでした。エンタープライズ、オープンコア、Vaultなど、すべてが確定していたのです。それが私たちに異なる種類の確実性を与え、突然、会社は「行こう」となりました。だから、誰も辞めず、非常にうまくいきました。そして、私たちは、時期は分かりませんが、秋にVault Enterpriseを構築しました。新年の最初の四半期で、営業を始めてからすぐに、それが違うことが分かりました。まだ明らかに成功していたわけではありませんでしたが、会話の質、購買プロセスでの進捗、そしてそのスピードは、明らかに違っていました。>> このアプローチの何が違ったのですか?はい、それは古典的なスタートアップのように、顧客の声を聞くことに尽きます。私たちは最初から聞くべきでした。なぜなら、潜在的な顧客は、私たちが最終的にやったことをするように私たちに叫んでいたからです。私たちはすべての製品を採用し、この絵に描いた餅を買うようにピッチしていましたが、多くの会議で誰かが「わかりました、考えます。しかし、Vaultで秘密をどのように複製するのですか?」と尋ねていました。もし私がただ聞いていれば、私は非常に盲目でしたが、私たち多くの人が盲目でしたが、私は非常に盲目でした。もし私がただ聞いていれば、「待てよ、多くの人が秘密の複製について尋ねている」と思ったでしょう。それは規模の問題です。クローズドソースにできるかもしれませんよね?それが私たちが最終的にやったことです。それが私たちの最初の機能、秘密の複製でした。データセンター間でもありませんでした。最初の機能は、単一のリージョンにあるVaultサーバーのクラスターでした。より焦点を絞った製品を販売することになりますが、先ほど述べた問題、つまりセキュリティが購入者であり、明確な予算があり、話す相手も明確でした。そして、それが規模で共鳴する機能でした。そのため、これを完了するという点で、より質の高い会議をしていました。ミシェルは、HashiCorpがエンタープライズ顧客が気にかけ、購入したいと思う製品をどのように構築できたかについて話しました。それは彼らの規模と共鳴したからです。これは、このシーズンのプレゼンターであるStatsigにうまくつながります。Statsigは、エンジニアリングチームに、かつては長年の内部作業を必要とした実験と機能フラグのためのツールを提供しており、特にエンタープライズ規模で重要です。実際には次のようになります。機能ゲートの後ろにコードを変更をデプロイし、徐々にロールアウトします。たとえば、最初にユーザーの1%または10%にロールアウトします。何が起こるかを見守ります。クラッシュしたかどうかだけでなく、あなたが気にかけているメトリクスに何が影響したか。コンバージョン、リテンション、エラー率、レイテンシ。何かがうまくいかない場合は、すぐにオフにします。正しい方向に進んでいる場合は、ロールアウトを続けます。そして重要なのは、測定がワークフローの一部であることです。3つのツールを切り替えて、後でセグメントとダッシュボードを照合する必要はありません。機能フラグ、実験、分析は、同じ基盤となるユーザー割り当てとデータを使用して、1か所にあります。だからこそ、Notion、Brex、Atlassianのような企業のチームはStatsigを使用しています。Statsigには、開始するための寛大な無料ティアがあり、チーム向けのプロ価格は月額150ドルからです。詳細を確認し、30日間のエンタープライズトライアルを受けるには、statsig.com/pragmaticにアクセスしてください。これで、Vaultを構築した後のエピソードに戻りましょう。>> オープンソース側では常に聞かれますが、これらのバイヤー、つまり企業のバイヤーはオープンソースには全く関心がありません。全く関心がありません。商業契約が必要です。だから、クローズドソースの性質は、ダウンタイムなどの法的保護を必要とする人もいました。それがほとんどすべてでした。そうでなければ、サポートが必要です。機能証明が必要です。それが機能することを示すために。ホワイトペーパーが必要です。他の顧客の規模などについて。そして、それは私たちがその後構築し、進める必要があったことです。>> そして、Vaultを売り始め、他の製品にもそれを適用したのですね?はい、TerraformとConsulにも適用しました。すべての製品に適用しましたが、これらのデータはすべて公開されています。HashiCorpが公開企業だった頃の公開レポートで見ることができます。それはすべてTerraformに集約されました。>> Terraformが業界全体で非常に人気になったことを覚えています。だから、HashiCorpスタックがありますが、他のすべての部分が存在していたのは、Terraformがあらゆる場所に存在していたように思えたからです。なぜその突然の人気があったのだと思いますか?>> それを聞くのはとても面白いです。なぜなら、今ではそれを認め、同じように感じているからです。Terraformは巨大なものだと。しかし、長い間、私たちはVagrantの会社でした。他のすべてのツールは、誰も他のツールを知りませんでした。それだけでなく、Terraformは、最近は聞いていませんが、しばらくの間、私を悩ませていたことの一つは、「彼らは市場で最初に登場したから勝っただけだ」ということでした。それをよく聞きます。私たちは7番目でした。>> 市場で、どのカテゴリーで?>> インフラストラクチャ・アズ・コードの点で。>> だから、他のプレイヤーもいたのですね?>> たくさん。はい。そして、誰も明確な勝者ではありませんでした。それは戦いの市場でした。しかし、2014年のTerraformが登場した最初の年、私のマーケティング戦略の一つは、あらゆるカンファレンスに参加することでした。私は途方もない量の旅行をし、話せる場所ならどこでも話していました。話せなくても、ただ人々と話すために行っていました。そして、ここにちょっとした逸話があります。2020年3月にCOVIDのロックダウンが始まったとき、妻と私は夜に何もすることがありませんでした。まだ子供はいませんでした。カレンダーを開いて、2012年から付き合っていて、ほぼ10年間の関係で初めて、8日以上同じ場所にいることがないことに気づきました。いや、ほぼ10年間、8日ごとにどこか違う場所にいました。>> それほど旅行していたのですね。>> それほど旅行していました。はい。そして、もっと旅行するコンサルタントがいることは知っていますが、私はたくさん旅行していました。たくさんコーディングしていました。そして、私はこれらのすべてを行っていました。>> 旅行中もコーディングしていたのですね。>> いつも。はい。私はシステムを持っていました。旅行を始めたとき、機内Wi-Fiは存在しませんでした。>> はい。はい。まさに。>> 今でもパッチがありますが。>> はい。それで、私はスクリプトを作成し、それらを改良しましたが、主にそれらを使用しました。GitHubのすべての問題をダウンロードし、それらを分類し、タスクに分解しました。どれも10〜15分以上かかるものはありませんでした。そして、私はこのリストを作成しました。そして、飛行機に乗っているときに、一つずつこなしていきました。>> インターネットがないので、ローカルでコミットするだけですね。>> はい。>> そして、戻ってくると、それを気づく人もいました。着陸すると、プッシュがあり、問題が一度に30件クローズされたというメール通知を受け取っていました。>> すごい。しかし、鍵は、取り組む問題を事前に計画することだと分かりました。それをオンラインで、地上でやりました。>> はい。>> そして、15分間のチャンクに分解することです。なぜなら、旅行中、日本などに行っても、数時間かかるのは本当に難しいからです。飛行機で数時間集中するのは本当に難しいからです。だから、私は重い設計作業ではないものだけに取り組むことにしました。バグ修正だけです。片付けるだけです。それが私のプロセスでした。2021年にHashiCorpは上場しました。上場するのはどのようなものですか?準備も含めて、どのように感じましたか?準備側で何が変わりましたか?完全な答えは持っていません。なぜなら、上場する約6ヶ月前に執行チームを辞任したからです。計画の一部には関わりましたし、もちろん上場する計画があることは非常に認識していましたが、例えば、ロードショーやその類いのものには関わっていませんでした。しかし、私の立場から見れば、私が関わった部分、私が把握できた部分、それは1年以上かかります。だから、多くの準備があり、面白いこともあります。上場する少なくとも2四半期前から、公開企業のように運営し始めます。>> ドロップデッドの日付は覚えていませんが、上場をキャンセルできる日付があります。それは非常に近いです。実際の日付に非常に近いです。だから、公開企業のように運営し、模擬決算コールを行います。会議室のテーブルで、投資家は部屋にいない公開投資家です。彼らは別の場所に行き、電話で話し、質問をします。CFOまたは財務担当VPが四半期の完全なレポートを提示します。彼らは受ける質問の種類をフレーム化しようとします。それを実行し、それが十分にうまく実行されているかどうかを判断しようとします。それが準備の感覚です。そして、途方もない量の秘密があります。規制の観点から、これらについて話すことはできません。だから、ハッカーニュースのコメントのような、くだらないことさえ振り返ってみることができます。会社が上場する最も明確な兆候は、私がすべてのトピックでラジオサイレントになったことです。なぜなら、すべてが疑問視されるようになったからです。上場する8ヶ月前にハッカーニュースのコメントを投稿したのですが、夜中に私たちの法律顧問から「それを削除しなければならない」と言われたことを覚えています。彼が私と話した後、それが物事に影響を与える可能性があることは理解できましたが、その重要性は理解していませんでした。そして、それを削除しました。>> それは、公開情報を漏らしてはいけないからですか?>> 正直、正確な規制は覚えていません。>> はい。しかし、情報漏洩に関する規制があります。>> いや、それはそうではありません。それはすべて情報ですが、市場に影響を与えることはできません。だから、約束もできません。なぜなら、もし「私たちは上場する」と言えば、それはプライベートな資金調達さえも過熱させる可能性があり、それは詐欺の一種です。だから、基本的に私はすべてについて話すのをやめました。他の人がどれほど真剣に受け止めているかは分かりませんが、私はニューヨークに上場するために旅行を計画し、両親を招待しました。両親にはニューヨークに行く理由を伝えませんでした。ただ「ニューヨークに行ってほしい。本当に本当に重要だ。HashiCorpに関係がある」と言いました。彼らは「もちろん」と言いました。そして、「話せない」と言いました。彼らは「もちろん」と言いました。そして、1ヶ月前に伝えました。犬がいたので、叔母に預ける必要がありました。家族旅行だと言いました。出発するまで。誰も知りませんでした。両親以外はほとんど知りませんでした。友人には何も言いませんでした。会社で働いている友人以外は。しかし、それが上場前の状況です。はい、私はUberにいたとき、上場しました。以前、HashiCorpがVMwareから早期にオファーを受けたという記事を読みました。>> 非常に早い段階で。>> 会社の2年目くらいです。私たちは会社の10年目くらいで上場しました。>> はい。だから、彼らがあなたを買おうとしたとき、それはどのようなものでしたか?あなたは売却寸前でしたか?売却の可能性が近かった時期はありましたか?>> 近かったように感じました。そして、後で多くの人から非常に近かったと聞きました。それはVMwareの取締役会で1票差だったと聞きました。会社の2年目でした。私たちは創業者を含めて3人しかいませんでした。創業者2人と従業員1人、計3人でした。VMwareからアプローチを受けました。それがどのようなものか分かりませんでした。彼らは来て「あなたを買いたい」とは言いません。>> いいえ。>> いいえ。>> それはあまりにも明白すぎるでしょう。そうではなく、低レベルの事業開発担当者から、漠然と話したいというメールが届きます。そして、その漠然とした話は、彼らはあなたを買うことに興味がないということです。大企業のBD担当者の仕事の一つは、エコシステムを理解することです。だから、それは単に「理解を深めましょう」ということです。彼らは役員から話を聞くように指示されたかもしれません。役員がすでに探っているかもしれませんが、はい。だから、それはそのように始まります。それは「私たちのオフィスに来て、直接会いましょう」となります。ああ、私たちのエンジニアリング担当VPが立ち寄ってくれました。彼と話しましょう。 nice to meet you blah blah blah。それが、実際のタイムラインだと思います。そして、ディナーがあったと思います。ディナーには3人のVMwareの役員がいました。その時点で、彼らが興味を持っているかもしれないと思いましたが、まだ非常に多くの駆け引きがありました。これはオファーさえもない数ヶ月前です。まだ非常に社交的でした。私たちは飲み、趣味や興味について話し、技術についてはほとんど話しませんでした。本当に雰囲気作りでした。彼らはディナーに行きます。そして、それはより真剣になり始めました。私たちはVMwareのオフィスでより多くの時間を過ごし、パートナーシップについて話し合いました。VMwareが私たちの製品をどのように支援できるかについて話し合いました。それはパートナーシップから始まり、そして「もしVMwareのリソースがあれば、何をしますか?」という仮定の話になります。私たちはすでに6回の会議を終えており、オファーは全くありませんでした。そして、ある時点で、正直に言って、私たちはそれにうんざりしていました。なぜなら、何も起こっていなかったからです。>> スタートアップのようで、すべての会議に出席しているようですね。>> ああ、私はベイエリアに住んでいません。だから、いつも飛行機で来ていました。時間の無駄でした。そして、多くの創業者に、M&Aは時間の無駄になるという警告をします。だから、もう一つM&Aの逸話があります。後で話しますが、最終的に私たちは丁寧に「さあ、決断してください」という会話をしました。そして、彼らは私たちにLOI、つまり意向表明書を提示しました。意向表明書は1ページでした。それは、私たちを買収しようとしているという、半拘束力のある約束のようなものです。数字はありません。それは単に虚栄心のようなものです。>> まだ数字はないのですか?>> はい。口頭では、しかし彼らは何も書き留めていません。メールにも何も書いていません。すべて口頭です。だから、その時点で、口頭で、>> 2000万ドルのドロップを得ました。>> それほど多くないように聞こえます。まあ、はい、しかし私たちは23歳でした。ああ、はい。あなたたち3人、23歳。>> 私は23歳です。アーマンと私は合わせて会社の70%を所有しています。>> はい。>> はい。少なくとも興味深いと言えるでしょう。私が人々に言うのは、あなたが買うものを考え始めると、それは危険な道です。それが起こることです。そして、私たちは、それは驚くほど低い、途方もなく低いというアドバイスを受けました。もっと高く聞くべきだと。私たちは、もう覚えていませんが、おそらく4000万か5000万くらいを要求しました。そして、彼らはただ「はい」と言いました。「わかりました」と。そして、それはあまりにも低すぎました。そして、それは口頭でした。だから、何も拘束力のあるものはありませんでした。はい。それは「はい」ではなく、むしろ「わかりました、それに取り組みましょう」という感じでしたが、非常に肯定的でした。>> はい。間接的に。間接的なビジネス感覚で。間接的な。はい。そして、VMwareのCEOに会うことになり、明らかに興味があるということでした。私たちはまだ上昇中でした。アーマンと私は、冷や汗をかき始めました。なぜなら、それは、私たちがそれを説明する方法は、夢を壊すような金額だからです。お金は取るでしょうが、VMwareのような会社にとっては重要すぎるほど小さいのです。だから、彼らは>> たとえそれがたくさんのお金であっても、>> 個人的にはたくさんのお金ですが、>> しかし、VMwareのレベルでは、彼らの収益、すべてを見れば、それは彼らにとって大したことではないことに気づきます。>> 彼らにとっては無意味です。はい。無意味です。>> クレイジーです。それはあなたの心をかき乱します。>> はい。はい。だから、それは個人的にはあなたの人生を変えることができるものになりますが、私たち二人が本当に情熱を注いでいたもの、私が何よりもやりたかったことは、ある意味で終わることになります。なぜなら、私はおそらくESXなどで働くことになるでしょう。>> あなたはVMwareのマネージャーになるでしょう。CEOでさえありません。>> 役員は、私たちの製品で多くのことをすると言いますが、それは単なる役員であり、企業の機械の一部にすぎません。だから、私たちは冷や汗をかき始めました。「もし彼らが興味を持っているなら、私たちは何かを掴んでいるのかもしれない。もし私たちが何かを掴んでいるなら、早期に売却したい。そして、私たちの夢が死ぬような方法で売却したい」と。だから、それは夢を壊すものです。アーマンは非常に成熟しており、彼は私より2歳年下なので、当時21歳でした。>> いいえ、彼は年上のように聞こえます。>> はい。はい。はい。はい。彼は非常に成熟しています。そして、アーマンは非常に成熟して、私はどこから来たのか忘れましたが、リスク最小化、リスクではなく、後悔最小化フレームワークを考え出しました。彼は「個人的に、自分で考えて、私も同じようにします。そして、もし明日、彼らがすべてをキャンセルすると言ったら、あなたはESXで次の4年間働くことになるでしょう。なぜなら、私たちはロックアップがあったからです。あなたは次の4年間働くことになります。それは、クールだった、これはそれだけの価値があった、最低限の後悔はない、または後悔を最小限にするにはどうすれば良いか」と言いました。私たちは戻ってきて、正確な数字は覚えていませんが、非常に近かったです。そして、私たちは100に落ち着きました。そして、私たちは、1億ドルを要求するのは間違っているように感じましたが、私たちは「これが私たちがやることだ」と言い、それに固執しました。だから、私たちは戻って、1億ドルを要求しました。それはノーではありませんでした。>> そして、彼らはイエスではありませんでした。これにはもっとためらいがありました。もっと「>> 後で連絡します」という感じでした。わかりませんが、ノーではありませんでした。そして、彼らは「これは取締役会の承認が必要だ」と言って戻ってきました。だから、来週取締役会を招集します。計画外です。彼らの取締役会ではありません。VMwareの取締役会を招集し、投票します。そして、投票が通過しなかったと聞きました。それは>> それはクレイジーです。>> そのような小さなことが、影響を与えることができるとは。もしそれが追加のイエスだったら?>> 一人の人が、あなたは、VMwareでは、このプロジェクトで苦労していたかもしれません。>> はい。はい。まだTerraformを構築していませんでした。だから、Terraformは>> Terraformは存在しなかったかもしれません。高い確信があります。誰が投票したか、なぜそのように投票したかを知っています。多くの詳細を知っていますが、それは私にとってうまくいきました。>> HashiCorpを辞めて、独立したのですね。独立することのクールな点は、非常に正直であることです。そして、Twitterであなたが書いた非常に興味深いスレッドがありました。「大きなクラウドプロバイダーについて何でも聞いてください」と。HashiCorpでは、それらすべてと協力していました。当時のあなたの経験、Azure、AWS、Google Cloudのような、当時のあなたの正直な見方、そしておそらくあなたの見方はどのように変わりましたか?その前置きとして、HashiCorpにいた間、私は明らかにクラウドプロバイダーについて何を言っても非常に慎重でなければなりませんでした。私たちはすべてと提携していました。私たちはパートナーであり、誰かを侮辱したくありませんでした。だから、私はすべての関係に対して非常にプロフェッショナルでした。>> 私たちは皆好きです。>> はい。あるいは何も言わない。言うべきことがなければ、何も言わない。そして、私は辞めましたが、まだそれを続けていました。太陽に近すぎると言われるように。そして、十分な時間が経過したので、「ああ、私の意見はあまり関係ない」と思いました。そして、あなたの質問に答えるために、私の全体的な見解は、AWSは非常に傲慢で、うんざりするほど傲慢だったということです。>> そして、傲慢と言うとき、どのように協力したか、あるいはどの部分か、あるいは単に一般的か?>> まず、免責事項を述べます。私たちはそこで多くの人と協力しました。素晴らしい、親切で優しい個人がたくさんいました。だから、個々の判断をしようとしているわけではありません。それは単に、すべてがどのように集まり、どのように感じられたかということです。だから、傲慢というのは、パートナーシップであれ、会議を開くことであれ、常に彼らが私たちに恩恵を与えているように感じられたということです。常に、あなたと話す時間を割いていることに感謝すべきだというように感じられました。それだけでなく、常に「私たちは製品を立ち上げて、あなたの会社を潰すだろう」という微妙な雰囲気がありました。誰もそれを言ったことはありませんでした。まあ、ある時点まで来ました。「もし合意に至らなければ、このサービスを構築するだろう」と。それは実際にそこまで来ました。>> しかし、後にElasticでそれを見ました。>> ああ、それはすでに起こっていました。>> ああ、すでに起こっていました。>> はい。私たちとではなく、他のオープンソースと。>> はい。そして、彼らは常に公に「ああ、それは素晴らしいことで、エコシステムを拡大し、ライセンスの条項に従ってやっている」と宣伝していました。真実の要素はすべてありますが、それでも良いことではありません。>> いいえ、オープンソースに注目している人々は、Amazonがそれに対して行ったことを理解していないと思います。それはElasticのビジネスを本当に傷つけ、オープンソースが、血と汗と涙を費やした会社に対してどのように武器化されるかを示しました。そして、HashiCorpも同じだったはずです。なぜなら、あなたはMITまたはMPLライセンスを公開していたからです。だから、Amazonは何かを立ち上げることができたはずです。>> はい。>> 私は、2年間、リーダーシップチーム全体が、いつでもVaultサービスや何かが現れるのではないかと恐れていたと思います。だから、それがAWSについての私の特徴付けです。例えば、AWS Terraformプロバイダーの助けを得るためには、本当に苦労しました。正確な数は覚えていませんが、TerraformのAWSプロバイダーだけに5人のフルタイムエンジニアを雇用していました。これは、福利厚生などを含めて年間100万ドルに相当します。>> そして、そのすべてが純粋なオープンソース、商業エンティティとの純粋な統合でした。そして、彼らは私たちを全く助けていませんでした。そして、彼らはクラウドプロバイダーの中で最後に助けを提供しました。そして、それはドラマにまで発展しました。私たちは会議に行き、基本的にAWSプロバイダーは非推奨になり、もうやめると公に言うだろうと言いました。コミュニティが引き継ぐこともできますが、私たちはしません。>> はい。彼らから助けを得られなかったから。>> はい。そして、それはあまりにも多くの仕事とバグが多すぎます。そして、正直に言って、AWSはあまりにも速く機能をリリースしており、それは価値がないのです。そして、それは彼らを動揺させ、ついに彼らは助け始めました。彼らは自分たちの側から話すかもしれませんが、それがほとんどです。何年も動きがなく、私たちはそれを言いました。そして、動きが非常に速く始まりました。だから、それはありました。Microsoftについては、最も肯定的な見方をしています。彼らは非常に複雑な技術製品を持っていました。>> Azure>> Azure、そして多くの名詞、原則のようなものです。私は今でも、サービスと統合しましたが、AzureのIAM階層を完全に理解していません。私はそれをただボルトで留めて、チームで機能するようにしました。しかし、技術的には複雑ですが、ビジネスサイドでは有能なプロフェッショナルでチームプレイヤーです。それが私の説明です。私たちはすべての会議で彼らと一緒に行きました。そして、私たちの多くの会議で最初の質問は「私たちはお互いにどのように勝ちますか?」でした。それが最初の質問でした。そして、はい、非常に快適でした。彼らはTerraformのサポートに最初に飛びつきました。確かに、それはある種の偏見ですが、彼らは長年にわたって一貫していました。だから、Microsoftについては肯定的です。そして、Google Cloud、まあ、Google Cloud全般については、常に最高の技術、最も信じられないほどの技術とアーキテクチャの思考でした。そして、誓って、彼らの誰も、彼らの誰もビジネスを気にかけていない、あるいは考えていないように感じました。パートナーシップの会議ごとに、私たちはクールなエッジケース、スケーラビリティ、そしてこれがどのように機能するかについて何時間も話し合いました。私は歴史の中で見ることができる最高の公開例は、彼らが私たちと提携してプロバイダーを書いてくれたとき、彼らはこの非常に良いものを構築するのに多くの時間を費やしました。彼らはそれをすべて完全に自動化しました。だから、新しいGoogle Cloudのものをリリースしたとき、すぐにTerraformプロバイダーリソースがありました。そして、それは自動化されているように感じただけでなく、人間工学的で、良かったのです。本当に良かったです。だから、彼らはそれを持っていました。しかし、私たちが「共同販売をどうするか?」「Terraformでプロビジョニングされたインフラストラクチャを販売するセールスエンジニアのクォータをどのように割り当てるか?」「ビジネスサイドのこと」について話し合うとき、それはいつも「クリケット」でした。誰にも連絡できませんでした。不可能だっただけでなく、誰かに連絡できたとしても、20分間何かを話し、「わかりました。あと2時間あります。他のことを考えましょう」と言われました。それが私の感覚でした。そして、もう一つの免責事項は、このすべての知識は、私が思うに、2019年頃のものであるということです。だから、過去7年間で劇的に変化したかもしれませんが、それが私の感覚でした。>> はい。オープンソースについて。あなたはオープンソースに積極的に関わっており、今日でもオープンソースに関わっています。そして、特にAIとオープンソースは大きく変化しているように見えます。Ghostyで何かを見ているとのことですが、GhostyとAIの貢献でオープンソースがどのように変化したか、そしてオープンソースのメンテナーに何を見ているか教えていただけますか?少しドラマや心配なことがあるように見えます。>> より広範に言えば、今日オープンソースが直面している問題は、複数の問題がありますが、現在、業界全体で最も一般的なのはAIの貢献であり、特に信号対雑音比が信じられないほど低いことです。つまり、低品質の貢献で非常に騒がしいということです。それはシステムにかなりのストレスを与えています。そして、はい。>> そして、HashiCorpを辞めた後、Ghostyを始めました。それは何年くらい前ですか?2年くらい前ですか?>> HashiCorpを辞めたのは2年以上前、あるいは2年以上前です。Ghostyのプロトタイプのアイデアは3年くらい前にありましたが、HashiCorpを辞めた後、週に20時間くらい、もっと集中的に作業し始めました。なぜなら、それが私が持っていたものだったからです。>> Ghostyに惹かれたのは何ですか?あなたのビジョンは何でしたか?なぜそれに取り組み始めたのですか?それは、より良いターミナルですよね?>> それはターミナルです。より良いというのは主観的です。>> まあ、私はそれをインストールしました。なぜなら、私はそれが好きだからです。しかし、はい、ターミナル、そして意見のあるターミナルですよね?>> 意見のある。最新の、できるだけ多くの新しい仕様をサポートするという点で、画像を表示したり、プロンプトをクリックしてカーソルを移動したりする機能など、数十の例があります。私を惹きつけた最初のことは、人々が通常、問題を見つけて解決策を構築するという、人々が受ける良いアドバイスの正反対です。そして、私は最高のテクノロジーを選んで、それを解決します。私がやったことは、テクノロジーのセットを見つけて、「これらのテクノロジーで何が構築できるだろうか?」と思ったことです。私は逆の方向に行きました。HashiCorpで10年以上、12年、そしてその前の3年間、インフラストラクチャのオープンソースをやっていました。合計15年間、ほとんど常にインフラストラクチャやクラウドサービスなどのことを考えていました。だから、私は自分のスキルが鈍ったと感じていました。デスクトップソフトウェア、システムプログラミングのスキルは、ネットワークの課題、分散システムに非常に制約されていたため、ある程度弱まっていました。だから、低レベルのシステムプログラミングは衰退していました。GPUを使ったことはありませんでした。GPUは、暗号通貨が起こっていましたが、私はそのトレンドを無視していました。しかし、これはAIの前でした。しかし、GPUは明らかに使用されていました。そして、私はそれらがどのように機能するか全く分からないと感じていたので、デスクトップに行きたいと思いました。だから、私はこれらの異なるテクノロジーを選び、「よし、Zigだ」と思いました。クールに見えたからです。試してみたかったのです。>> Zigについて、知らない人のために説明してもらえますか?Zigがなぜそれほど興味深く、革新的で、多くの開発者の注目を集めているのですか?他の人の注目を集める理由は分かりませんが、私にとっては、これまで見た中で最高のCだと思いました。そして、私はCを書くのが好きだった立場から来ています。だから、より良いCは素晴らしいと思います。私にとって、それはあまり煩わしくありません。もし私が自分の足を撃ちたいなら、撃たせてください。表面上はクールに見えましたが、プログラミング言語を表面から判断するのは非常に難しいです。だから、私はそれで何かを構築したいと思いました。そして、はい、GPU、デスクトップソフトウェアを選びました。何が構築できるだろうか?HashiCorpでの私の時間のすべてで、私はCLIを構築しました。そして、私は「私はターミナルに住んでいる」と思いました。「ターミナルには何が必要だろうか?私はターミナルに住んでいるのに、ターミナルについてはほとんど理解していない」と思いました。だから、おもちゃのプロジェクトとしてターミナルを構築するのはどうだろうか?それが始まりです。そして、多くのことと同様に、当たり前だと思っていたことの層の下に掘り下げると、すべてが想像していたよりもはるかにニュアンスがあり、複雑であることが分かります。そして、ターミナルも同様でした。表面の下に掘り下げると、それがどれほど多くのことをしているか、何かがどれほど脆いか、何かがどれほど良くなる可能性があるかを知り、私は「これをより良くしたい」と思うようになりました。>> デベロッパーとして、ターミナルを使っている人として、最も愚かな質問をします。どれほど難しいのですか?ターミナルは実際に何をするのですか?そして、Ghostyはどのように構造化されているか、あるいは何をする必要があるか教えていただけますか?実際にすべての仕事について共感してもらうために。>> はい。はい。はい。私は実際にそれをよく聞きます。私はその質問をよく聞きます。だから、それは決して愚かな質問ではありません。それは本当に、今ではあまり聞かれませんが、多くの人が「ターミナルはもう終わりだと思っていた」と言います。それが私が受けるフィードバックのほとんどです。ターミナルで何をするべきことがあるのですか?基本的なレベルでは、それらはあまり多くのことをしません。問題は、ターミナル開発者がやりたいことの機能が大幅に増えていることです。しかし、それが何をするか説明します。それはアプリケーション開発プラットフォームのようなものです。オペレーティングシステムではありません。ハードウェアレベルの問題を扱っているわけではありませんが、その上のアプリケーションサンドボックスのようなものです。そして、他のアプリケーションがその中で実行され、テキスト、色、画像、ウィジェット、マウスイベントなどをレンダリングする必要があります。最も良い説明は、ブラウザのようなものですが、テキストコンテンツ用です。そして、ブラウザが持つすべての複雑さ、ターミナルも同様の複雑さを持っています。規模は小さいですが、同様の複雑さです。そして、ターミナルの機能を拡張しようとすると、より多くの問題を引き起こし始めます。画像がターミナルに導入されただけで、まったく新しい問題のエコシステムが導入されました。しかし、Ghostyの複雑さについて、皮肉な答えは、それがターミナルの30%とフォントレンダラーの70%だということです。そして、はい、それが私の感覚です。それは本当に、あなたが目にするターミナル画面、GPUまたはCPUでレンダリングされた、そのターミナル画面は、キャンバスに描画しているようなものです。だから、あなたはテキストのレンダラーを構築しています。そこからすべてが始まります。だから、Ghostyのラフなアーキテクチャの観点から、スレッドで分解するのが好きです。なぜなら、Ghostyはマルチスレッドだからです。ほとんどのターミナルはそうではありませんが、それは肯定的な点として言っているわけではありません。単にアーキテクチャを説明するのに良い方法です。ウィンドウなどを描画する中央のUIスレッドがあります。それはデスクトップソフトウェアとしてはかなり標準的です。そして、IOスレッドがあり、実際のシェルを実行しています。だから、私たちが送受信するバイトは、IOスレッドによって処理され、レンダラー・スレッドがそれを描画しています。だから、それはVsyncクロックで、毎秒30、60、120フレームで、ターミナルの状態をサンプリングして描画していると考えるのが最善です。そして、レンダラー自体は、同じスレッドでフォントサブシステムを使用しています。しかし、このグリッドがこの文字とこれらの文字セットを持っているという事実を、フォントにマッピングし、すべてを自分たちで行う必要があります。多くの人が「オペレーティングシステムがそれを解決してくれるのではないか?」と思いますが、そうではありません。あなたがもっと高レベルでない限り、簡単にモノスペーステキストを描画することはできません。本当に部品を組み合わせる必要があります。それが全体像です。そのレベルではかなりシンプルです。そして、ターミナルが持つすべての機能をそれに拡張します。>> だから、あなたはフォントに非常に焦点を当てた2Dグラフィックスエンジンを構築しているようなものですね。>> はい。はい。レンダラー側から見ると、非常にシンプルです。レンダラーは実際にはそれほど複雑ではありません。そして、私はそれを複雑にしすぎません。最も難しい部分は、ターミナルの状態を維持することです。ターミナルは、モノスペースセルのグリッドとして機能します。だから、80x24、80列、24行があり、カーソルを移動させるコマンドや、ペイントブラシを赤と太字にして、それ以降すべてを赤と太字にするコマンドがあります。そして、あなたは状態を維持し、その周りに描画しています。そして、スクロールバックもあります。人々がターミナルで慣れていることです。そして、課題は、それを高速かつ効率的に行うことです。そして、それが私がGOIでやろうとしていることです。そして、私は多くのベンチマークを実行していますが、速度を示す最も明白なものの一つは、大きなファイルをcatすることです。大量のテキストをダンプすると、どれだけ速く処理できるか。最新のターミナル間では、顕著な違いが見られます。Ghostyだけではありません。Ghosty、Kitty、Alacrity、これらの新しいターミナルはすべて、macOSのTerminal.appや従来のLinuxターミナルと比較してうまく機能します。批判は、なぜそれが重要なのかということです。そして、簡単な答えは、あなたが誤ってファイルをカットしたとき、多くの人が強制終了することです。Reddisの作成者は、なぜ彼がGhostyを愛しているかについて、ハッカーニュースに素晴らしいコメントを投稿しました。彼は以前、本番のReddisログをtailingしていましたが、ログが大量に吐き出され、中間ファイルに送信してから後で読み取る必要がありました。だから、それをレンダリングして、実際に作業できるようにしました。彼はもうそれをする必要はありません。なぜなら、Ghostyは十分に速いので、彼がそれを処理している間、それを解析している間、精神的に解析している間、それをダンプさせることができます。そして、それは彼に時間を節約します。そして、はい。>> 最近の多くのソフトウェアがパフォーマンスを気にしないという事実について、いつかもっと話すべきことがあります。そして、例があるのは新鮮だと思います。そして、願わくば、いつかAIについて話すかもしれませんが、それは役に立たないかもしれません。職人技のレベルがありますよね?リソースを無駄にしない、効率的であること。私の日常生活で見ていますが、私たちはより強力なリソース、ラップトップ、電話を持っていますが、それらは速くなっていません。そして、それは時々イライラします。>> それはゲームへの愛のようなものです。Ghostyの多くは、ゲームへの愛です。私たちが言うように、私たちのレンダラー。

なぜなら、前にも断ったように、複雑なことではないからです。私はGhostyを2Dゲームだとは決して言いません。なぜなら、レンダリングの観点から見ると、2Dゲームはもっと複雑だからです。しかし、レンダリングには非常に気を配っており、私のMacでフルスクリーン表示するために、グリッドのセットを最適化しました。各フレームの更新は、およそ9マイクロ秒か、それくらいです。これには描画時間は含まれていません。これは単に状態を取得し、GPUに作業を送信するだけです。約9マイクロ秒で、GPUは時間を要します。120ヘルツ、毎秒120フレームのフレームは8,333マイクロ秒です。したがって、9マイクロ秒あれば、GPUがどれだけ時間を要するかは分かりませんが、非常に速く、まったく時間がかかりません。>>多くの選択肢と作業を残していますね。>>私が言いたいのは、2000マイクロ秒にすることもできたのに、それは問題ではなかったということです。パフォーマンスは得られたでしょうが、それは面白くありません。10マイクロ秒未満にしたいのです。>>私は楽しさを重視します。>>ええ。それで、私たちは多くの時間を費やしました。私はそれについてブログにも書きました。以前は約800マイクロ秒だったものを9マイクロ秒にまで短縮したのです。それは素晴らしいことだと思いました。エンドユーザーにとっては違いはありませんが。>>しかし、あなたが言うように、ゲームの職人技とレベルが重要です。Ghostyを構築し始めた頃は、おそらくChatGPTが登場した頃でしたね。いくつかのツールがありました。日常の開発において、あなたのツールセットはどのように変化しましたか?>>それには2つの側面があります。まず、AIはターミナルに大きなブーストを与えました。これは面白いことです。クラウドコードなどの影響で、ターミナルで過ごす時間が長くなりました。2023年にターミナル使用率が上がると言われたら、私は「いや、増えないだろう」と言ったでしょう。私はターミナルを救うつもりはありませんでしたし、実際そうしませんでした。AIが登場し、多くのCLIツールが登場しました。コードエクスやクロードのアプリでさえ、ターミナルを離れていますが、それらは依然として疑似ターミナルで多くのことを実行しています。ターミナルの数は、2023年よりもはるかに多くなっています。これは面白いです。>>ああ、すごい。>>ええ。>>ランダムですね。>>非常にランダムです。だからこそ、Ghostyで私がやっていることの一つは、抽出することです。実際、すでに「lib ghosty」と呼んでいるものを抽出しました。これは、誰もがこの非常に小さなターミナルの表面積を再発明しているということです。そして、それが壊れる原因となります。例えば、Dockerビルドを実行したり、Herokuのようなプラットフォームにプッシュしたり、ターミナルで実際にはそれほど奇妙ではない多くのことを行ったりすると、プログレスバーを描画するだけで、カオスなレンダリングになります。>>いたるところで。>>いたるところで。ええ。それは、人々が考えているよりも複雑であるため、ターミナルのごく一部を不適切に実装しているだけだからです。そして、lib ghostyは、誰もがどこにでもターミナルを埋め込める、依存関係のない最小限のライブラリです。>>ああ、クールですね。そして、MITライセンスで、本当に壊れたターミナルを見るのにうんざりしているので、ぜひ使ってください。さて、これは一つの側面です。非常に面白い。しかし、もう一つの側面は、実際のAIの使用です。言うのは難しいです。私は大ファンですが、適切なカテゴリのものに限ります。革命的なツールだと思いますし、使うのがとても楽しいです。ええ、毎日使っています。クラウドコード、AMP、コードエクス、チャットツールなどを、私の生活の何らかの側面で毎日使っています。そして、それは私が本当に考えたいことを選べるようにしてくれました。それが最も重要なことだと思います。私はいつも、ああ、次の2時間、私はそれを知る必要のない、退屈な定型的な作業をしなければならないだろう、という点で限界を感じていました。しかし、今ではそれをしなければなりません。それは、そのカテゴリでスキルを形成しているわけではありませんが、その2時間を他のことに費やすことができます。それが私にとって最高です。>>あなたのワークフローでは、単一のエージェントを使用しますか?複数のエージェントを使用しますか?それらを試しましたか?>>私はあらゆるものを少しずつ試しました。私の標準的なワークフローは、常にエージェントに何かをさせておくように努めることです。おそらく私が寝ているときは除きます。そこまではしません。多くの人がそうしますが、私はしません。しかし、仕事中は、コーディングしているならエージェントに計画を立てさせたい、コーディングしているならレビューしたい、あるいは、常にエージェントに何かをさせておくべきです。>>別のタブで実行しているのですか?>>ええ。別のタブです。そして、時には複数です。エージェントの作業を整理するために多くの作業を行っています。そして、ガス・タウンのようなものは実行しません。だから、いわば市長なのです。だから、あまり多くは実行したくありません。それらの作業を整理するのはそれほど楽しくありません。しかし、時々、競争させるために2つ実行します。なぜなら、それはより難しいタスクであり、彼らがそれをうまくやれるという高い確信がないからです。だから、クロード対コードエクスなどを実行します。あるいは、一つにコーディングさせて、もう一つに何らかのリサーチタスクを実行させます。リサーチには絶対にそれらを使います。それは素晴らしいです。そして、私は別のことをしています。しかし、2つ以上はありません。>>彼らが生成するコードは、常にレビューしますか?それとも、もう少し緩くなりましたか?例えば、ループを閉じること、検証することにこだわる人もいますが、あなたはまだ「よし、正確なコードを見て、それが正しいか、期待通りかを確認したい」というスタンスですか?>>私が取り組んでいることによります。>>Ghostyの場合は、すべてレビューしています。家族のために個人的な結婚式のウェブサイトを設定した場合、コードがどのように見えるかはまったく気にしません。3つのブラウザで正しくレンダリングされましたか?はい。私の携帯電話でも正しくレンダリングされましたか?はい。コードがどのように見えるかは気にしません。ネットワーク接続はありません。秘密情報へのアクセスもありません。気にしません。出荷します。オンラインになるのは2ヶ月だけです。だから、出荷します。>>そして、GhostyのAIポリシーはどのように変わりましたか?1年ほど前、誰かがAIを使用している場合、開示を求めていたのを覚えています。そして、ごく最近、あなたは厳しくなり、「もうやめよう」と言いました。>>ええ、また変わるでしょう。いや、変わりません、進化します。だから、1年前に開示を求め始めました。人々は、コードがどのように生成されたかは関係ないのではないか、という非常に公平な質問をしました。私にとってそれが常に重要だった理由は、それを修正するためにどれだけの労力を費やすかが決まるからです。AIでコードを生成し、非常に迅速に行った場合、私はあなたのコードを修正するのに何時間も費やすことはありません。あなたが時間を費やして修正してください。>>ええ、なぜなら、その人が多くの時間を費やしていないことが分かっているからです。あなたはそれを模倣しようとしているのですね?>>それは努力次第です。何時間も費やせば、私も何時間も費やして手伝います。しかし、数分しか費やさず、何も読まずに投げ渡された場合、私は数分でそれを読んで、「いいえ、結構です」と言って閉じることができるはずです。それは公平であり、私はそれをよりよく理解する必要があります。悪いコードの問題ではありません。オープンソースは常に悪いコードの貢献を受けてきました。しかし、以前の違いは、通常、その悪いコードの貢献は、最善を尽くそうと努力した人々から来ていたことです。そして、私は人々が異なる行動をとるのを見てきました。私は常に、この人は非常にジュニアであるか、プロジェクトに慣れていない人であると reciprocate しようとしてきました。そして、私は彼らを教育しようとしてきました。「さて、これをより良くしましょう」と言って、注意深いレビューを提供します。しかし、低労力の悪いコードであれば、注意深いレビューはしません。だから、私はこれらのことを知りたいと思っていました。そして、開示はかなりうまくいきました。問題は開示ではありませんでした。問題は、私たちが受け取っていた低品質なAI PRの量が、高くなりすぎたことです。なぜそれが起こったのか分かりますか?より多くの人が、自分が抱えていた問題を修正するためにPRを貢献するようにエージェントに指示したのでしょうか?理論や実際の証拠はありますか?理論はありますが、証拠もあります。AIの使用の一般的な増加はもちろんですが、私が一定の時点で見た真のトレンド、段階的な変化は、エージェントがPRを開き始めたことです。以前は、コードを生成してコミットすることもありましたが、ブランチにプッシュしてからプルリクエストを開く必要がありました。ある時点で、彼らはPRを開き始めました。そして、それはAIの明確な兆候です。少なくとも現時点では、クロードがPRを開く方法は、ボディのないドラフトを開き、後でボディを編集してからレビューのために再度開くことです。>>人間ならそうしないでしょうね。>>ああ、年に一人の人間がそうするでしょう。そして今、それは1日に3回起こっています。だから、彼らがAIであることを開示していなくても、隠していても、それは非現実的な速度で起こります。ボディが開かれてから1分も経たないうちに、そして再度開かれるのも1分も経たないうちに。>>ええ。>>純粋なAIです。数日前にこのことについてツイートしました。エージェントツールには、PRを開くのを一時停止してほしいと思っています。それが多くの摩擦を引き起こしているポイントだと思います。>>ポリシーをどのように変更しましたか?PRを閉鎖することを検討していますか?最近、その考えが頭をよぎったと述べましたね。>>その瞬間はクラッシュアウトしていました。しかし、ある意味で。ポリシー更新をリリースしました。AIが書いたPRは、承認されたフィーチャーリクエストに関連付けられていない限り、もう許可されません。だから、通りすがりに「私はあなたと話したことのないことをしました。どうぞ」ということはできません。私たちは、1日に約2〜3件のそのようなPRを受け取ります。だから、私たちはそれを閉じます。内容を読んだことさえありません。AIだと分かります。修正された問題番号がないことも分かります。ただ閉じます。コードが良いかどうかは分かりません。気にしません。それは単なるポリシーです。そんな時間はありません。それが現在の状況です。そして、記録しているのは別の移行の途中であり、すでにPRを開いています。コミュニティからの明示的な保証システムに切り替える予定です。つまり、あなたはもうPRを開くことができません。AIであろうとなかろうと、もう気にしません。批判する人々にとっては、どこから来たかは関係ないと思います。重要なのは、別のコミュニティメンバーがあなたを保証したかどうかだけです。もしあなたが保証されれば、あなたはリストに追加され、永遠に、または無期限にPRを開くことができます。もしあなたが悪い行動をとった場合、あなた、あなたを招待した人、そして彼らが招待したすべての人のツリーは、リポジトリから永久にブロックされます。>>これは、ロブスターのようなものに似ていますね。>>ロブスター。ええ、それに触発されています。つまり、誰かを保証することによって、あなた自身の評判を危険にさらしているということです。私は合理的な人間です。もしこれが起こり、私や私たちのメンテナー、コミュニティが間違いを犯した場合、あなたがDiscordやメールで合理的な謝罪的な人物のように見えれば、私は多くの時間を費やすことはありません。裁判のようなセッションはありません。ただ、「わかりました、もう一度チャンスは与えません」と言うでしょう。だから、私たちはそのシステムを移行しています。少し違うのは、ロブスターに触発されていますが、特にAIの分野では、PIというプロジェクトに触発されています。彼らはこれをやっています。>>それはPIの上に構築されています。自己改善型の>>ビルド・ユア・オウン・エージェント・ツールキットです。>>皮肉なことに、それはAIツールですが、コードの品質やスロップ防止などに非常に気を配っています。だから、彼らも同様のメカニズムを持っています。ツリーは少し少なく、その他はありますが、保証されていない限りPRを開けないという同様のメカニズムです。そして、ここで私たちが採用しているもう一つの違いは、肯定的にマークできる保証に加えて、ユーザーを非難することもできることです。だから、悪質なアクターがいる場合、彼らを禁止することができます。もう一度貢献しようとすることさえできません。そして、それは単なる、ええ、昨日、誰かがPRを開き、問題番号がないこと、AIであることを理由にそれを閉じましたが、彼はそれを再オープンしました。同じものではありません。彼は新しいブランチを再提出し、10分以内に再度開きました。ああ、なんてことだ。だから、このようなことは、時間を無駄にしているだけです。>>オープンソースのほとんどはAIのために変わらなければならないように感じますね。あなたはおそらくより多くのメンテナーを知っているでしょうが、あなたの話は唯一のものではありません。プロジェクトがPRを閉鎖したとか、GitHubがプロジェクトがPRを自動的に閉じたり拒否したりできる機能を出荷しているとか。>>ええ、オープンソースは多くの点で変わらなければならないと思います。誰かが書いたものだと思いますが、論理的な極端な例としては、エージェントが非常に優れている場合、オープンソースは不要になるかもしれません。なぜなら、あなたはそれを構築できるからです。>>理論的には、はい。>>それは極端な例です。私はその極端な例を説明しませんが、それは一つの極端な例です。問題は、変更を提出するために必要な労力という自然な逆圧力がかつて存在し、それが十分だったということです。そして、AIによってそれが排除された今、PIが使用している言葉が好きです。AIは、もっともらしく見えるが不正確で低品質な貢献を簡単に作成できるということです。それが根本的な問題です。オープンソースは、ある程度まで、常に評判のシステムでした。あなたは信頼を得て、より多くのアクセスを得ます。それがどのように機能するはずかです。しかし、その評判システムは、AIによってある意味で悪用されています。あるいは、デフォルトでPRを許可するということが悪用されています。だから、私のプロジェクトで提案しているような保証システムは、オープンソースの本質に非常に忠実だと思います。オープンソースは常に信頼のシステムでした。以前はデフォルトの信頼がありましたが、今はデフォルトの拒否であり、誰かから信頼を得なければなりません。>>もっと多くのフォークが発生すると思いますか?>>そう願っています。そう願っています。なぜなら、これまでフォークは、少しばかりフォークオフするようなものでした。なぜなら、維持するのに多くの労力がかかり、まともなプロジェクトをフォークするのは現実的ではないように思えたからです。>>ええ。そして、私はAIとは別に、私は常に大きな支持者でした。あるいは、過去数年間、もっと多くのフォーク、もっと多くのフォークがあるべきだと公に支持してきました。なぜなら、オープンソースのメンテナーが、ある程度まで、貢献者に何らかの権利があると思われているからです。それが有害な権利意識であれ、そうでなくても、ある種の権利意識があります。つまり、私は価値のある変更を加えました、だからあなたはそれを受け入れるべきです、そしてそれはクリーンで素晴らしいので受け入れるべきです、しかしあなたは本当にそうする必要はありません。そして、私はこれを何度も見てきました。質の高いPR、完璧なPRがありますが、あなたはノーと言い、コミュニティには怒りがあります。>>しかし、私は10年前にHashiCorpで言いました。マージボタンを押すのは最も簡単なステップです。マージボタンを押すまでの道のりは最も簡単なステップです。学部生でもできるはずです。その後に、マージしたものをロードマップの文脈で維持する何年もの作業があります。バグ、顧客のニーズ、その他すべて。それが大変なことです。あなたはそれを永遠に維持することを約束しているのです。機能を削除するのは非常に困難です。あるいは、何かを削除すること。だから、オープンソース、OSIオープンソースで得られるコアな特権はフォークすることです。そして、あなたはそれをフォークして、あなた自身のソフトウェアを維持する権利を得るべきです。>>AIの興味深い影響として、誰かが、エージェントツールAIツールのおかげで、ビッグテックがモノレポを再構築することを検討しているという噂についてツイートしました。実際に何が起こっているのですか?Gitの問題は何ですか?Gitの問題は、Gitには多くの問題があると思いますが、モノレポの問題は、Gitが非常に大きなリポジトリには比較的弱いということです。なぜなら、ほぼリポジトリ全体をクローンする必要があるからです。それを修正するための拡張機能はいくつかありますが、公式のメインラインGitでは実際にはできません。だから、非常に大きなリポジトリでは、維持するのが少し面倒です。そして、多くの変更がある場合、変更をトランク、メイン、マスターブランチに反映させるのは非常に困難です。リベースマージキューはそれをある程度解決します。マージキューは人間にはある程度の規模で機能しますが、マージキューは非常に深くなる可能性があります。そして、それを10倍にすると、控えめに言っても、そして誇大広告のサイクルを信じて100倍または1000倍にすると、メインブランチに迅速にまとまりを得るという点で、完全に手に負えなくなると思います。だから、そこには問題の集合があります。マージキューの問題、ディスクスペースの問題、ブランチレビュータイプの問題です。ああ、私も以前ツイートしましたが、Gitにはブランチがあり、ブランチをプッシュしますが、ブランチはポジティブなものだけです。PRを閉じても受け入れられない場合、あなたは基本的にブランチです。GitHubでは、閉じられたPRに再アクセスできますが、多くの人はPRの段階にさえ到達しません。彼らは実験し、「これは正しい方法ではない」と考え、ブランチをプッシュしません。そして、それは比較的重要な情報です。ポジティブなものほど重要ではありませんが、もっと多くのブランチと、決して捨てないもっと多くの情報があるべきだと思います。私にとって、私たちはバージョン管理のメールにおけるGmailの瞬間にいます。かつてはメールをキュレートして削除する必要がありましたが、Gmailが登場し、誰もが無料で利用できるようになり、タグラインは「メールを削除しない」でした。アーカイブするだけです。コードもそうあるべきだと思います。巨大なリポジトリ、多くのコンテキスト、そのGitリポジトリ、またはバージョン管理されたリポジトリで関連コンテキストを見つけるためにより良いツールが必要です。実際の例を求められた場合、私は現在ステルス状態ですが、この分野で活動している会社をいくつかアドバイスしています。そして、実際の例は、エージェントツールを積極的に使用している企業によって推進されています。本当にすべてを賭けている企業であり、これらのエージェントが引き起こすチャーンの量は、人間よりもはるかに大きいことに苦労しています。これはAIレビューの問題でも、その他の問題でもありません。これは本当にリリース問題です。マージキューの管理、人間がリポジトリの適切なデータセットにアクセスすることなどです。>>だから、問題は主にGitのパフォーマンス問題ですか?それともワークフロー全体ですか?>>ええ、ええ。パフォーマンスはもちろんですが、ワークフローも。ええ。プルするたびに、プッシュできません。なぜなら、プルするたびに別のチェーンがあり、プッシュするたびにそこにあるからです。ええ。並列作業もたくさん行われています。数年後もGitは存在し続けると思いますか?>>誰が知るか。しかし、興味深いのは、12年から15年ぶりに、誰も笑わずにその質問をしていることです。>>私たちは笑っていません。>>ええ。5年前に「Gitは5年後も存在しますか?」と聞いたら、「もちろん存在するだろう?」と答えたでしょう。それはクレイジーな考えですよね?しかし今、人々はその質問をすることができます。もちろん、笑う人もいますが、Gitは5年後も存在しないかもしれないと真剣に考えている人もいます。プロンプト履歴を保存したいと思うでしょう。なぜなら、コードが生成された場合、プロンプトを読むことが、プルリクエストが無意味になることが多いからです。>>GitとGitHubの現在の形式は、エージェントインフラストラクチャでは機能しません。今日では機能しません。だから、変化が起こるでしょう。そして、私はそれを変えようとしているわけではありませんが、エージェントユーザーとメンテナーとして、これは機能しないと感じています。他に、比較的安定している、あるいは変化しつつあるエンジニアリングプラクティスは何ですか?CI/CD、テスト、コードレビュー、その他の方法など。>>ええ、AMPには「すべてが変わる」という言葉があります。それは少しクリックベイトですが、真実です。これは本当に初めて、私の比較的短い、他の人に比べれば短いですが、それでも20年のプロのキャリアの中で、これほど多くのものが同時に変化の対象となっていると感じています。そして、私は楽観主義者なので、それは私にとって非常にエキサイティングです。それはとても楽しいですが、これほど多くのエディタの可動性を見たことはありません。エディタはかつて、誰かがエディタを選んだら、そのエディタから離れるのは非常に困難でした。彼らは固定されていました。過去数年間、VS Code、Cursor、そして単に飛び回るエディタの間でのエディタの可動性のレベルは信じられません。だから、エディタの可動性がたくさんあります。Cursor自体は、AI以前のエディタ製品では決して得られなかった、信じられないほどの評価額に達した会社の素晴らしい例です。だから、エディタのフォージ、CI/CDはもちろん、テスト全般もそうだと思います。なぜなら、エージェントをより良くするためには、その作業を検証できる必要があるからです。そして、テストは、最高のテストケースシナリオでさえ、完全なカバレッジを持っていません。非常に良いテストケースシナリオは、エッジケースやハッピーケースの1つをテストするだけです。そして、それは単に通過し、パスすればおそらく良いでしょう。問題について考えた人間とペアになっています。しかし、AIはより目標志向的です。この機能がこのように機能することを望んでいます。もし仕様やテストが見つからなければ、他のことは異なる方法で機能するはずですが、それは自身の目標に向かう途中でそれを壊すでしょう。そして、私はこれを多くの名前で聞いてきました。私が最も好きなのは「ハーネスエンジニアリング」です。>>ハーネスエンジニアリング。>>ええ。それは、そして私の今年の目標の一つは、それに時間を費やすことです。つまり、AIが悪事を働いたときはいつでも、それを防ぐか、それを修正するために呼び出すことができるツールを構築しようとすることです。だから、製品から製品のハーネス、または製品開発に取り組むことになります。そして、テストははるかに広範になる必要がありますが、CI/CDはリソースパフォーマンスの観点からそのようなことを行うように設定されていません。だから、それがどのように変わるかは分かりませんが、それも変わるでしょう。だから、すべてが検討対象です。本当に興味深いです。>>ええ。そして、構築されるツールもたくさんあります。もう一つ、オブザーバビリティ。>>ええ。そして、同じトピックについて、ボリュームとスケール、オブザーバビリティについて言えば、サンドボックスもあります。インフラストラクチャにいて、インフラストラクチャに深く関わっていても、コンテナが爆発して、浮遊している最小限のコンピューティングユニットの量がどれだけ増えたか想像できませんでした。それが増えるとは思っていませんでした。予測可能に増えるとは思っていましたが、スロープが変化するとは思っていませんでした。そして、それはすでにエージェントが必要とするサンドボックス環境のためにスロープが変化しました。そして、それは私にとって非常に興味深いです。なぜなら、それは多くの新しいシステムにストレスをかけるからです。私が取り組んだこと、私が取り組んだすべての製品、そしてエコシステムのDockerやKubernetesのようなものも、ある程度の規模で設計されていますが、これは異なるタイプの、特に非本番ワークロードの規模をサポートする必要があります。だから、それは楽しいプロンプトです。>>採用に戻りますが、多くのエンジニアを雇用しており、以前は非常に興味深いことについて話していました。それは、おそらくHashiCorpの文脈で、あなたが採用した最高のエンジニアの中には、非常に退屈な経歴を持つ人がいたということでした。それについて話してもらえますか?誰が最高のエンジニアで、どのように?>>それはより良い表現方法です。ええ、私はそれを支持します。私がホスカーで過ごした時間、そして私が持っていたすべての仕事の中で最も記憶に残っている最高のエンジニアのほとんどは、悪名高いほどプライベートです。そして、プライベートにしたくないからではなく、単にパブリックにしたくないからだと思います。誰かを特定せずに注意深く説明したくはありませんが、彼らはソーシャルメディアのプロフィールをほとんど持っていません。彼らは正直に言って、9時から5時までのエンジニアです。彼らは家に帰り、夜はコーディングしません。家族と時間を過ごすだけです。しかし、それ以外のことは仕事中にしないので、彼らは集中しており、非常に優れています。それは時間のことだけでなく、スキル的にも非常に強力です。だから、履歴書などをレビューするとき、GitHubアカウントさえ持っていない人を見つけると、それは際立つ方法ですが、同時に、ゼロの公開貢献しかなく、聞いたこともない会社で働いていた場合、それは私にとって興味深いです。つまり、あなたは深い何かを知っているかもしれません。だから、皮肉なことに、私はソーシャルメディアに多くの時間を費やしていますが、これらのエンジニアは私よりも優れています。しかし、面白いのは、ソーシャルメディアに費やすすべての時間はゼロサムであるということです。だから、ソーシャルメディアに費やすすべての時間は、他の何かから奪われています。そして問題は、エンジニアが知っているように、集中するために必要な時間、始めるのにかかる時間は変動しますが、時間がかかるということです。だから、ソーシャルメディアにコンテキストスイッチすると、コンパイル中にタブを切り替えて時間を費やすと、思考の点で何かを失うことになります。私が費やす最も良いことの一つは、ソーシャルメディアに費やす時間ですが、おそらく不健康な量です。そして、夜にも不健康な量の時間を費やしています。不眠症ではありませんが、眠りにつくのに時間がかかります。そして、それは私が暗闇の中で座っているだけだからです。シャワーでこれをやる人もいますが、私には十分な時間ではありません。ベッドに座って、明かりを消して、妻が寝ている間に、コードを書いている、製品を考えている、ウェブサイトのコピーを考えている、CLIを実行している、どのように感じるか考えている。そして、昨夜、私は9時半に寝ました。なぜなら、私は父親だから早く寝るからです。>>そして、あなたは起きなければならず、いつ起きなければならないか分かりません。>>ええ、ええ。そして、それほど長く起きていたとは感じませんでした。トイレに行かなければならないと思いました。本当に寝なければならないと思いました。そして、見ると12時半でした。私が考えていたのは、とてもくだらないことですが、保証システムがどのように機能し、機能しないかということでした。そして、私はいつも競争するのが好きだということがあります。競争は楽しいと思います。しかし、製品構築の分野では、誰とでも競争するのは常にフェアゲームだと感じています。なぜなら、彼らよりも長く考えると思うからです。人々はそれをオフにしますが、私はオフにしないようにしています。だから、すべてのポイントは、最高のエンジニアはコンテキストスイッチを最小限にする人だということです。>>AIエージェントを使用した経験から、エージェントが考えたり、あなたの代わりに作業したりできるので、これは変わると思いますか?AIの使用が当たり前になったこの新しい世界で、どのように採用しますか?ほとんどの開発者はプロンプトを入力し、書く人はますます少なくなっています。最高の開発者は明らかにコードを書く方法も知っていますが。>>AIツールとの能力を確実に要求します。それらをすべてに使用する必要はありません。それは私にとって重要ではありません。しかし、それは、他のツールと同様に、いつ役立ち、いつ役立たないかを知るための重要なツールです。しかし、それを完全に無視すると、最適ではないことを時間内にすることになります。私にとって最良の例は、概念実証です。実際の製品組織では、アイデアがあり、それをデモして、それが機能するかどうかを確認する必要があります。私は、誰かが壁にスロップを投げつけて、決して出荷しないものを、1日未満でやる方がはるかに良いと思います。人間が有機的にやるよりも、なぜならどうせ捨てることになるからです。そして、それは悪いアイデアだから捨てるかもしれませんが、それを証明する方が良いです。だから、それをスロップアップしてください。だから、これは非常に微妙です。私はオープンソースへのスロップなPRについて非常に熱くなるのは、それをする時間と場所があるからです。そこはそれをする場所ではありませんが、それはあります。だから、私はそのように採用します。そして、私が知らないもう一つのことは、正しいことかどうかですが、その目標を達成するために努力します。私は、常にエージェントを実行させることを目指します。コーディングする必要はありませんが、あなたのために何か追加のことをさせることです。私はそれを目指します。なぜなら、私は運転しています。それが私の最大のものです。ここに運転してくる途中、深いリサーチをしていました。そして、境界線に30分費やすことになります。起きて、仕事をやめる前、家を出る前などに、次に何ができるか、エージェントに何ができるか、遅いこと、エージェントができる遅いことは何か、30分費やします。1時間運転するつもりでしたが、1時間よりずっと早く終わりましたが、ライブラリのリサーチが必要でした。HP3関連のものを調べていました。それらのプロパティを持ち、そのようにライセンスされているすべてのライブラリを見つけて、エコシステムグラフを構築してください。出発する直前に、この保証システムに関連する何かをやっていました。やっていることの境界ケースを完全には理解していませんでした。手動で考えますが、なぜエージェントにそれをやらせないのですか?だから、それは常に一つを実行するという私の目標の一部です。残念ながら、今は何も実行していません。興味深い。そして、この実行中のエージェントは、あなたの思考を妨げないように、あなたの思考を正しく行っているということですか?あなたはあなた自身の思考を行い、あなた自身の作業を行いますが、時々ちらっと見て、それをピン留めしたり、開始したりします。それはもう邪魔にならないのですか?>>はい。実際、すべてのエージェントツールをオフにし、デスクトップ通知もオフにします。>>ええ。デスクトップ通知はほとんどの場合間違いだと思います。だから、オフにします。エージェントを中断するのは私であり、エージェントが私を中断することはありません。だから、確かに。そして、私のエンジニアリングが変わったもう一つの側面があります。思考を必要としないタスクと、思考を必要とするタスクを特定し、それらを委任しようとします。エージェントに作業を委任します。時々、思考を必要としないタスクを実行するのは生産的だと感じられ、「うん、今日はたくさんやった。これをやった」となります。しかし、多くの場合、それを委任するだけです。多くの人が、あなたはあまり考えないとさえ言います。そして、ツールを間違った方法で使用すると、あまり考えなくなると私は思います。なぜなら、あなたは単にエージェントを起動して、YouTubeを見たり、ソーシャルメディアをスクロールしたりするだけだからです。しかし、代わりに、それを考えることを選択する方法として見れば、その思考を犠牲にする必要はないと思います。しかし、問題は、人口の大多数はおそらくそうしないだろうということです。>>ええ。しかし、それでも、それは良い考察であり、あなたがどのように使用しているか、そしてそれがあなたにとってどのように機能しているかを聞くのは良いことです。この2番目のエージェントを実行し始めたのはいつですか?何が切り替えのきっかけでしたか?モデルが良くなったからですか?>>ええ、どのモデルだったか覚えていませんが、特定のモデルがありました。クラウドコードを発売されたときに試しました。昨年3月か5月だったと思います。>>ええ、3月がベータ版でした。>>はい。そして5月の一般リリース。>>わかりました。ベータ版を使ったかどうかは分かりません。だから、おそらく5月だったでしょう。正直言って、それほど感銘を受けませんでした。そして、夏までに、多くの肯定的なコメントを見たので、ツールをどのように使用するかで遅れているのではないかと心配になり始めました。だから、私は自分自身に強制し始めました。まだそれを信じていませんでした。だから、すべてを手動で行っていましたが、同じ品質の結果を生成するようにエージェントにプロンプトする方法を理解するように自分自身に強制していました。私はもっと遅く働いていました。なぜなら、私は二重の作業をしており、それは二重以上でした。なぜなら、それらは遅く、私たちは行ったり来たりしており、私はすでに作業を終えていたからです。しかし、私はそれを自分自身に強制していました。そして、理解できなかったことを見つけました。それはまだそこにありませんでした。しかし、他のことを見つけました。つまり、何千人もの他の人々が到達したのと同じポイントに自然に到達しました。つまり、別の計画ステップを実行すると、はるかに良くなるということです。そして、誰もがそこに到達しました。そして、私は、より良いテストハーネスを実行させると、はるかに良くなることを発見しました。そして、誰もが最初にエージェントなしのMDやクロードのMDなどを実行します。同じことです。間違いを犯し、それをエージェントのMDに追加すると、二度と間違いを犯さないことに気づきました。そして、これらはすべて、新しい人々を見たり、ライブストリームをいくつか見たり、ライブストリームを覗いたりするときに認識する漸進的なものです。AIに反抗的な人々がAIを試してみると、それは彼らがハンマーを大きく振り回しているようなものです。なぜなら、あなたはそれを理解していないからです。それは、誰かがGitを採用しようとして、1時間使用して、生産性が向上していないと判断したかのようです。Gitに習熟するには1時間以上かかりますが、努力すれば、後で報酬を得られます。そして、それはAIツールについても同様です。>>AIエージェントを使用している、AIエージェントを使用している人にとって、最初の助言は何ですか?>>私の最初の助言は、エージェントで作業を再現することです。そして、エージェントにコーディングしてほしくない場合は、作業の研究部分をエージェントで再現してください。多くの人が、コードを書いてほしくないと思っていますが、他の研究部分を委任してください。役立つ場所はたくさんあります。だから、あなたを人として置き換える必要があるというプロパガンダに飛びつく必要はありません。あなたの仕事の隅を見つけて、それらの部分を置き換えることができます。あなたが人々に与えることの一つは、潜在的な創業者へのアドバイスです。あなたは成功した創業者です。あなたは出口を経験しました。あなたは素晴らしい会社を築き上げました。あなたは「創業者になりたい」と尋ねる人々から多くのメールを受け取ります。あなたのアドバイスは何ですか?そして、それについて書きました。メールを共有しましたが、通常どのようなアドバイスをしますか?そして、それはどのように受け止められますか?>>通常、私はもっと具体的なものを求めます。なぜなら、誰かが「成功するために何をすればいいですか?」と言った場合、まず、あなたは生存者バイアスのあるコンサルタントであることを断ります。だから、それを考慮する必要があります。しかし、生存者としての私の経験を共有する用意はありますが、生存者バイアスがあることを理解してください。しかし、通常、私はもっと具体的なもの、つまり何をしようとしているのかを尋ねます。そして、通常は、プロジェクトをオープンソースにするべきか、それともしないべきか、リモートにするべきか、それともしないべきか、エンタープライズにするべきか、といったことに至ります。しかし、私が通常人々に与える最も一般的なアドバイスは、スタートアップはあなたが思うよりもはるかに長いということです。私は10年を想像するように言います。多くの人は5年と言いますが、私は10年を想像するように言います。これは本当に10年間取り組みたいことですか?そして、それは、私がこれを10年間取り組むと確信し、他の誰よりもうまくやると本当に信じるために、ある程度の傲慢さが必要なことですか?それには実質的なものは何もありません。それは単なる傲慢さです。だから、あなたの頭の中に、ある程度の自己意識と傲慢さが必要ですが、変化が来ることに盲目になるほど多くはありません。だから、それが通常私が最初に与えるアドバイスです。多くの人がクールなアイデアを持っていますが、比較的早く燃え尽きてしまいます。だから、そこで始めます。現在、いくつかの会社をアドバイスしています。それらの会社で何を見ていますか?サーバーは最近何をしているのですか?以前とは違うことをしていますか?その風景は?AIスタートアップの場合は、非常に、非常に異なります。>>AIスタートアップはどのように>>異なって動作しますか?>>彼らは、私がこれまで見たどのスタートアップよりも速く進むプレッシャーがあります。業界は非常に速く動いているので、私はAIスタートアップをアドバイスしませんが、いくつか話しました。アドバイザーとしても、プレッシャーが大きすぎると感じます。なぜなら、彼らは、トラクションや収益などを通じて、すぐに自分たちを証明するように追い立てられているからです。そのエコシステム内には、AIはクレイジーに速く進むことを可能にするはずだという考え方があります。それに加えて、クレイジーに速く動いている会社もたくさんあります。だから、変化は起こっています。それが一つです。それ以外は、前述したように、あらゆる分野に多くの機会があります。そうでなければ、ほとんど同じです。リモートか非リモートか、オープンソースか非オープンソースか。ソフトウェアエンジニアの役割が変化していると思いますか?特にあなたのようなエンジニアが、実際にはるかに生産的になっているA&E企業では。彼らはより多くのコード、より多くの出力を生成できます。彼らはより多くの帽子をかぶるように、ビジネスと話すように、あるいはあなたが言うようにミニ創業者になるように押し付けられていますか?>>生産的という言葉を使うのはためらいます。彼らはもっとできるという期待があると思います。必ずしももっと生産的だとは思いませんが、例えば、デモ全体を設計して構築できるということです。もうチームは必要ありませんよね?少なくともデモの観点からは、それを実行できるはずです。そうしない理由はありません。なぜなら、あなたは出荷できるからです。

そのためのスロット。それは良い。これはまだ同じですが、あなたは効果的に研究し、ある意味でより曖昧なタスクを処理できるようになるはずです。私はそれをはるかに多く見ていますが、それは実験する能力がずっと高いということです。しかし、それが何かを製品化することになると、それは常にそうであったものと似ているように感じます。AI企業が、出荷するものは何でも出荷するという、いわゆる「ドッグフード」を食べている企業がたくさんあると思います。そして、それは少し怖いと思います。>> はい。彼らはエントロピックを見て、「ああ、彼らは10日でクロスワークを構築し、それは数十億ドルの会社になるだろう」と言います。彼らはなぜそれができないのかパニックになっています。>> そこには、シードを調達しなければプロトタイプを構築できない、というようなシードの観点からの大きな変化があると思います。それは、プロトタイプを見せてください、ということです。なぜなら、ほとんどのことでそれを非常に迅速に構築できるはずだからです。まだ難しい技術もあります。>> だから、あなたはたくさんのコーディングをし、コーディングについてもたくさん考えます。眠りにつこうとしているときでさえ。コーディング、テクノロジー以外の何があなたのバケツを満たしますか?明らかに、休憩を取ったり、家族と過ごしたりするようなステレオタイプなことですが、一番大きなことは、私は内向的なので、静かな一人だけの時間が私にとって最もエネルギーを回復させるということです。私はビーチの近くに住んでいて、気分が悪いとき、うまくいかないとき、生産的でないと感じるとき、あるいは何か起こっているとき、ラップトップを閉じて外を散歩するだけで、そのようなことが大いに役立ちます。私はたくさんの趣味がありますが、それは一般的な充電としては、それ以上にそれが重要だと思います。友達と出かけるような人がたくさんいることは知っていますが、それは私にとって完全な充電ではありません。そして、お勧めの本は何ですか?そしてなぜですか?>> ええと、私はニュース以外ではほとんどフィクションしか読みません。>> 素晴らしい。>> 素晴らしい。さて、私が最近読んだフィクションの本は古い本で、読みやすいので、人々が「ああ、彼はこれを読んでいてバカだ」と思わないことを願っています。しかし、それは、ええと、何と呼ばれていたか?アディ・ラルーの人生。それはロマンチックなタイプのフィクション小説のようなものですが、はい、それは、私はそれが約10年前のものだと思います。もう古いものです。しかし、それは、魂を売って永遠に生きる女性についての話ですが、その代償は、部屋を出ると誰も彼女を覚えていないということでした。そしてはい、それは人間のつながりをすべて失う彼女の人生全体をたどる話ですが、彼女は永遠に生きることができます。それがどのようなものか、そして私はフィクションを読むのが好きです。>> 私は夜にフィクションを読むのが好きです。それが現実逃避なのか、それとも単に違うのか分かりません。コーディングやその他のものとは全く違うからです。それは、私をオフにするのに役立つのかもしれません。私は個人的には、正直に言って、専門的なノンフィクションよりもはるかに多くのフィクションを読んでいると思います。>> はい。はい。私も同じです。それは私のテレビ版でもあります。私にとってテレビはより社会的な活動です。妻が一緒に何かを見たいなら、番組を見ます。しかし、一人でいるときは、番組を見ません。おそらく読書をするでしょう。>> 素晴らしい。さて、これらの詳細についてすべて話してくれて本当にありがとう。あなたの働き方、Hashi Corpの歴史について聞くのは本当に素晴らしかったです。すべてが本当に興味深く、やる気を起こさせるものでした。>> はい、ありがとう。ありがとう。>> ミシェルとのこの長くて興味深い会話を楽しんでいただけたことを願っています。この会話で私に強く印象に残ったことの一つは、ミシェル自身のルールです。常に何かをするエージェントを持つこと。必ずしもコーディングである必要はありません。何かをすることです。例えば、このポッドキャストの収録に向かう途中、彼は家を出る前にDeep Researchを実行していました。彼は自分自身に、「私がいない間にエージェントができる遅いタスクは何だろうか?」と尋ねます。これらすべてにおいて重要なのは、彼はすべての通知をオフにすることです。エージェントは彼を中断することはできません。彼は準備ができたときにエージェントを中断します。ミシェルが主導権を握っており、彼は委任した作業を行うバディがおり、彼は解決している問題に集中しています。これは、聞いているすべての人にとって良い挑戦です。次にデスクを離れるときは、ラップトップを閉じる前に、自分がいない間にエージェントができる遅いタスクは何だろうか?と自問してみてください。このエピソードを楽しんだなら、ソフトウェアエンジニアリングがどこに向かっているのか考えている同僚と共有してください。まだ購読していない場合は、今がその時です。私たちはこのような会話をさらに続けていきます。ありがとう、そして次でお会いしましょう。