Google L3 ソフトウェアエンジニア面接体験談:電話面接、コーディング4ラウンド、Googleynessラウンド
GoogleL3 ソフトウェアエンジニア·インド・バンガロール·面接時期: 2020年6月オファー獲得更新日: 2026年7月17日
本記事は、Googleの新卒〜若手向け選考プロセスを最初から最後まで振り返るものだ。2020年3月末にLinkedIn経由でリクルーターから連絡があり、4月末に電話面接、6月中旬にバーチャルオンサイト、そして7月のオファーの前に別枠でGoogleynessラウンドが行われた。準備期間は依頼すれば都度もらえ、電話面接前には2週間、オンサイト前には1か月の猶予が与えられた。
最も学びが多いのはオンサイトの3ラウンド目だ。候補者は最適解にすぐたどり着いたが、面接官はそこで終わらせず、残り25分をかけてさらに踏み込んだ。「最適なアルゴリズムが大規模システムには遅すぎるとしたら、線形時間でどんな近似解を計算できるか」という問いだ。面接官が納得するまでに、少しずつ精度を高めた提案を6〜7回重ねる必要があった。問題を解き終えることは、このラウンドの終着点ではなく出発点だった。
選考プロセス
リクルーターからの連絡
2020年3月末にLinkedIn経由で連絡を受け、4月初旬に選考が開始。準備期間として2週間が与えられた。
電話面接
2回の日程変更を経て4月末に45分実施。配列問題を2パートで出題され、前半は素直な実装、後半は二分探索が必要なバリエーションだった。その後、計算量の分析と、候補者自身によるテストケース約10通りの洗い出しを求められた。
バーチャルオンサイト
6月中旬に実施。45分の技術面接を4ラウンド、コーディングは共有ドキュメント上で行った。
Googleynessラウンド
コーディング面接の評価が良好だったため設定されたラウンド。行動面接と仮想状況に関する質問が中心。候補者は準備期間を申し出て1週間の猶予をもらった。
結果
2020年7月にオファー。最初の連絡から約4か月後だった。
技術面接1
コーディング — 二分木 · 45分
- ミディアムレベルの二分木問題を2問連続で出題。
候補者は最初の5分を使って問題を自分の言葉で言い換えてからアプローチを提案した。この「言い換え→提案→合意→実装→サンプル入力での検証(off-by-oneエラーの洗い出し)」というリズムは、その日一日を通して一貫していた。
技術面接2
コーディング — 動的計画法 + クラス設計 · 45分
- ミディアムレベルの問題で、候補者が2〜3通りのアプローチを提示し、そのうち動的計画法によるものを実装するよう求められた。
- あるクラスの複数のメソッドを設計・実装する問題。きれいに解くにはヒープ(優先度付きキュー)が必要だった。
複数のアプローチを提示して面接官に選んでもらうやり方がここではうまく機能し、両問題とも時間に余裕を持って解き終えた。後日リクルーターから、このラウンドの評価は特に高かったと伝えられた。
技術面接3
コーディング + スケールに関する深掘り質問 · 45分
- 二分木問題を1問、素早く解いて最適化した。
- 深掘り質問の連鎖:最適解は二乗時間だが、大規模システム向けに線形時間で近似的・ヒューリスティックな解を出すには、という問い。
この深掘りの連鎖は約25分、6〜7回の反復に及び、面接官がトレードオフを受け入れるまで、提案のたびに精度が上がっていった。候補者はラウンド前半の(単純ではない)計算量分析でヒントを必要としたが、それが致命傷にはならなかった。重要だったのは、最初の答えに固執せず対話の中で改善を重ねたことだった。
技術面接4
コーディング — 木構造 + 文字列 · 45分
- 二分木の各ノードについて、左部分木の和と右部分木の和の絶対差が与えられた条件を満たすかを判定する問題(線形時間の再帰解)。
- ミディアムレベルの文字列問題で、解が存在するかを判定するもの。さらに、実際に一つの解を構築する深掘り質問もあった(実装はせず、連結リストを使ったアプローチとして議論した)。
アプローチについての質問に対しては、抽象的に議論するのではなく、面接官の前で具体例を使って実際に手を動かすことで対応した。
Googleyness
行動面接 + 仮想状況 · 45分
- チームの成功に貢献した経験について話してください。
- プロジェクトを完遂できなかった経験について。そこから何を学びましたか?
- 正式なリーダーでないにもかかわらずリーダーシップを発揮した経験について話してください。
候補者は質問ごとに異なるエピソードを用意し、Googleが掲げる価値観を事前に調べ、このラウンドをコーディング面接と同じくらい真剣に扱った。技術面接の評価が出た後に実施されるが、形式的なものではなく実質的な関門である。
学びのポイント
- 準備期間は申し出て確保する。この候補者は、頼んだだけで電話面接前に2週間、オンサイト前に1か月の猶予を得た。
- 面接の媒体が共有ドキュメントなら、その形式でのコーディングを練習しておく。候補者は、ドキュメントに書いたコードをそのまま貼り出してもクリーンにコンパイルできるレベルまで訓練した。
- 最適解にたどり着くことは、ラウンドの折り返し地点にすぎない場合がある。「では大規模環境で動かすには」という深掘りに備えておくこと。そこで求められるのは教科書的なアルゴリズムではなく、エンジニアリング上のトレードオフである。
- 今回のループでは木構造の問題が多くを占め、4回のコーディング面接のうち3回で二分木が出題された。ただし、応用の効くスキルは「言い換え→提案→確認→実装」というループそのものだった。
- 準備量の目安:電話面接に向けて2週間で約125問、その後オンサイトに向けて2か月でさらに約300問に加え、模擬面接も実施した。
出典
質問と選考プロセスの事実は、下記リンクの候補者本人の公開投稿に基づきます。本文は当サイトによる再構成です。
候補者本人による英語の公開体験談を翻訳(出典: LeetCode Discuss)