powered by TechFeed
表示モード
Deep Dive

AWSのPrincipal Engineerが「バイナリツリー」を解けずFAANG面接で落ちた — LeetCodeはAI時代の採用評価として機能しているか

7月29日、InfoQが「Getting Rid of LeetCode Interviews in the World of AI」と題したプレゼンテーションを公開した。このプレゼンテーションでは、AI時代においてLeetCode式コーディング面接が実態に即していない理由と、その代替となる評価手法について詳しく紹介されている。

7月29日、InfoQが「Getting Rid of LeetCode Interviews in the World of AI」と題したプレゼンテーションを公開した。このプレゼンテーションでは、AI時代においてLeetCode式コーディング面接が実態に即していない理由と、その代替となる評価手法について詳しく紹介されている。


FAANG面接でバイナリツリーの問題を落とした「現役上位1%エンジニア」の告白

登壇者のDaniel Doubrovkineは、AWSでPrincipal Engineer(PE)を6年務め、OpenSearchの開発に携わってきたエンジニアだ。2025年にはコード貢献プラットフォームAlgoraでRubyエンジニアとしてグローバルトップ1%に認定され、65本以上のRuby gemをメンテナンスしている。GitHubのコントリビューショングラフは2014年頃からほぼ変わらず緑に埋まっている。

その彼が、約1年前にFAANG企業のコーディング面接で「バイナリツリーの直径(diameter of a binary tree)」を実装できず落ちたと明かした。

「面接官に"ウォームアップ問題"と言われた。10行のコードだ。関数定義とコメントを含めても10行。実質5行だ。」

バイナリツリーの直径とは、木構造の中で最も長いパス(ノード間の辺の数)を求めるアルゴリズムで、DFS(深さ優先探索)を用いれば数行で実装できる基本問題だ。にもかかわらず、毎日コードを書き続けていた彼でさえ、ライブの面接環境では失敗した。

この経験を起点に、Doubrovkineは「LeetCode式面接は現実の業務能力を測れていない」という主張を展開する。


「ライブコーディングは別の能力を測っている」

Doubrovkineが指摘する問題の核心はここだ。ホワイトボードや共有エディタで見知らぬアルゴリズムを時間制限内に解く能力は、日常業務でのコーディング能力とは別物である。

彼自身の経歴を見ると、1990年代には1秒あたり8リクエストをミリ秒以内に処理するC++製検索エンジンを構築し、Linux・Solaris・SunOS・Windows・IRIXへの移植も行った。Microsoftでは.NETフレームワーク向けにSTLの代替となるC++ライブラリを一から実装し、メモリフラグメンテーション問題を解決した。木構造・グラフ・ベクター・文字列処理など、業務上のあらゆるデータ構造を実装してきた。

それだけの実績を持つエンジニアが、「ウォームアップ問題」で落ちる。この事実は、LeetCode面接が記憶力とパターン認識のドリルに過ぎないことを示唆している。

AWSでの採用経験として、Doubrovkineはこう述べている。

「Principal Engineerの採用デブリーフィングに何度も参加したが、技術コーディング面接で完全に失敗しても採用された候補者が半数以上いた。我々は毎回、"この人はシニアすぎるだけ"とか"最近コードを書いていないだけ"と自分たちを納得させていた。」


AI時代に問いが変わる

Doubrovkineがプレゼンテーション内でバイナリツリーの直径を「実装」してみせる場面がある。ただしそれはGIFアニメで、実際に書いたのはClaudeだ。このデモは皮肉として機能している。今やLeetCode問題の模範解答は、AIが数秒で生成できる

これは採用評価の前提を根本から変える。「アルゴリズムを暗記しているか」ではなく、「AIを使いながら実際の問題を解決できるか」が問われるべき時代に入っている。LeetCode批判自体は以前から存在するが(参考:Why I Hate LeetCode — Medium)、生成AIの台頭によってその議論は新たな段階に入っている。


代替として有効な評価手法

プレゼンテーションの後半では、LeetCodeに代わる評価アプローチとして実務に近い形式が具体的に挙げられている。

Doubrovkineが銀行の採用面接で経験した形式がその一例だ。個室でコンピュータを与えられ、監視なしで実際の問題を解き、後から面接官とコードを議論するというもので、より実態に近い能力評価になりうる。彼はその面接で非常に好成績を収めたと述べている。

さらに、以下のような評価軸を加えることも示唆されている。

  • GitHubの実績:長期的なコントリビューションの積み重ねで一貫性や関心領域を確認する
  • オープンソースへの貢献:実際のコードレビュー・設計判断・コミュニケーション能力が可視化される
  • 持ち帰り課題(take-home assignment):時間制限のプレッシャーを排し、候補者本来の思考プロセスを評価する

こうした手法は、GitHubが採用プロセスにおいてポートフォリオ評価を推奨している流れとも合致しており、AI時代の採用評価の在り方として注目が集まりつつある。


採用側・候補者側双方への示唆

このプレゼンテーションは採用担当者だけでなく、面接対策に膨大な時間を費やしているエンジニア候補者にも刺さる内容だ。LeetCode対策が「面接という試験のための勉強」になっており、業務能力の向上とは切り離されているという構造的な問題を、Doubrovkineは自らの失敗談を通じて正面から問い直している。

Principal EngineerというFAANG・大手テック企業における上位職のエンジニアでさえ、現行の評価システムの前では「不合格」になりうる。この逆説が、評価手法の見直しを求める声に説得力を与えている。

詳細はGetting Rid of LeetCode Interviews in the World of AIを参照していただきたい。