面接体験談

Google L5 機械学習エンジニア面接:電話面接スキップ、技術ラウンド4回を経てオファー獲得

Google logoGoogleL5 機械学習エンジニア·リモート·面接時期: 2022年4月オファー獲得

更新日: 2026年7月17日

候補者は20代半ばのエンジニアで、FAANGでの経験が約4年、スタートアップでの勤務が半年あり、機械学習を専攻したコンピュータサイエンスの修士号を持つ。Amazonのオフィス出社義務化方針をきっかけに転職活動を始め、この面接サイクルは約6週間前にスタートした。準備は新規のコーディング練習には軽めで、直近1か月でLeetCodeの問題を5〜10問解いた程度にとどまり、主にシステム設計の資料を読むことに費やされた。候補者はこのサイクルに入る時点でAmazonでL6の肩書きを持っており、複数の企業に並行して応募していた。本記事はそのうちGoogleのL5機械学習エンジニア職のループに焦点を当てる。

候補者は以前にもGoogleで勤務した経験があり、リファラルもあったため、電話面接は完全にスキップされた。続くループは、データクレンジング課題を組み合わせたMLモデリングラウンド、決済プロダクトを国際展開させるシステム設計ラウンド、ストリーミングデータからモデルを学習させる2回目のML・設計ラウンド、文字列処理問題2問のコーディングラウンド、そして行動面接ラウンドで構成されていた。自己評価によるパフォーマンスはラウンドごとに大きく異なり、最後のコーディングラウンドの7点中2点から、ストリーミングデータの設計ラウンドの7点中7点まで幅があったが、それでもループは最終的にL5のオファーで終わった。

選考プロセス

  1. きっかけと準備

    このサイクルは、Amazonのオフィス出社義務化方針をきっかけに、本記事執筆の約6週間前に始まった。候補者が新たに行ったLeetCode演習は限定的で(直近1か月で5〜10問)、準備は主にシステム設計の資料を読むことに費やされた。

  2. 電話面接

    候補者が以前Google在籍者であり、選考プロセスへのリファラルもあったため、Googleについては電話面接が省略された。

  3. MLモデリングラウンド

    候補者が「モデルマッチング」と表現したモデリング課題に加え、学習に使えるようユーザーの動作トラッキングの生データをクレンジングする課題が組み合わされていた。

  4. システム設計ラウンド

    米国限定で稼働している既存のGoogle Pay実装を、グローバルに機能するよう拡張する課題。

  5. ML/システム設計ラウンド

    複数のストリームから届くライブデータで学習するモデルを設計し、続いて逆伝播ステップについてMapReduceベースの手法を疑似コードで示す課題。

  6. コーディングラウンド

    文字列処理の問題2問:ある文字列内で部分文字列が出現する回数を数える問題と、指定サイズの重複部分文字列の最大個数を求める問題。

  7. 行動面接ラウンド

    候補者はこのラウンドを好意的に自己評価したが、実際に聞かれた質問の詳細は記録していない。

  8. 結果

    L5のオファーを獲得。候補者は報酬パッケージを220/150/35(単位は千ドル、内訳の詳細は不明)という3つの数字で要約している。これは同じサイクルで受け取った複数のオファーのうちの一つであり、候補者はこれが不当に低い提示額を避けるための交渉材料になったと述べている。

MLモデリングラウンド

MLモデリング——マッチング課題とデータクレンジング課題

  • 候補者が「モデルマッチング」と表現したモデリング課題。進める前にLSTMについて確認(リマインド)が必要だった。
  • 学習に使えるようユーザーの動作トラッキングの生データをクレンジングするフォローアップ課題。データクレンジングの構文について複数回訂正を受けた。

候補者はこのラウンドを7点中6点と自己評価した。

システム設計ラウンド

システム設計——決済プロダクトの国際展開

  • 米国で既に稼働しているGoogle Pay実装を、グローバルに機能するよう拡張する。

候補者は後に誤りだったと述べるアプローチから着手したが、面接官のヒントを受けて修正した。最終的な設計は最適には至らなかったと感じており、このラウンドを7点中5点と自己評価した。

ML/システム設計ラウンド

MLシステム設計——ストリーミングデータでの学習、分散逆伝播

  • 複数のストリームから届くライブデータで学習するモデルを設計する。
  • 逆伝播ステップについて、MapReduceベースの手法を疑似コードで示す。

候補者は約5分を残して終え、このラウンドを7点中7点と自己評価した。Googleのループの中で最も高い自己評価だった。

コーディングラウンド

コーディング——文字列処理

  • ある文字列内で指定した部分文字列が出現する回数を数える。
  • 指定サイズnの重複部分文字列の最大個数を求める。

候補者は1問目については最適解に到達したが、2問目は完了できず、このラウンドを7点中2点と自己評価した。ループ中で最も低い評価だった。

学びのポイント

  • アプローチについて明確かつ構造的にコミュニケーションすることは、最適解に到達すること自体と同じくらい重要だった——候補者は難しい問題をすべて完全には解けなかったにもかかわらず、このサイクルを通じて複数のオファーを受け取っている。
  • MLラウンドでは、同じセッション内でモデリング課題とデータ加工課題が組み合わされることがある。LSTMのような基礎知識やデータクレンジングの構文に不慣れだと、全体のアプローチが正しくても減点につながりうる。
  • 自己評価の低いラウンド(今回で言えば最後のコーディングラウンド)があっても、それだけで自動的に不合格になるわけではない——各ラウンドは最終判定そのものではなく、一つのデータポイントとして捉えるべきである。
  • 複数企業の選考プロセスを並行して進めることは交渉材料になった。候補者自身のアドバイスとしては、不当に低い提示額を避けるため、報酬を確定させる前に競合するオファーを揃えておくべきだという。
  • 候補者の説明によれば、模擬面接の練習と思考プロセスを声に出して説明する練習は、シニアMLロールに向けてLeetCodeの問題を追加でこなすことよりも役立つ準備だったという。

出典

質問と選考プロセスの事実は、下記リンクの候補者本人の公開投稿に基づきます。本文は当サイトによる再構成です。

候補者本人による英語の公開体験談を翻訳(出典: LeetCode Discuss)