Amazon SDE-1 面接体験談 — ハイデラバード、2020年(内定)
AmazonSDE I·ハイデラバード·面接時期: 2020年10月オファー獲得更新日: 2026年7月17日
約2年の実務経験を持つ候補者が、Amazonのキャリアポータルから応募したものの、約1か月間音沙汰がなかった。その後、リクルーターが求人ポータルでこの候補者のプロフィールを見つけ、ハイデラバードで募集中のSDE-1ポジションに合致するとして直接連絡してきた。候補者は選考に進むことに同意し、プロセスは数週間にわたって進められた。
プロセスはまず、コーディング問題2問からなる時間制限付きのオンラインアセスメントから始まった。その約1週間後、同日に2回の技術面接が連続して実施され、いずれもAmazon Chimeを使い、コードシェアのリンクを共有しながらオンラインで行われた。その数日後にハイアリングマネージャー面接が続き、ハイアリングマネージャー面接の約10日後にバーレイザー面接が行われた。最終面接の約3日後、候補者が選考を通過したことを伝える確認の電話があった。
選考プロセス
応募とリクルーターからの連絡
Amazonのキャリアポータルから応募したが、約1か月間返答がなかった。その後、リクルーターが求人ポータルでこの候補者のプロフィールに気づき、募集中のSDE-1ポジションに合致するとして連絡してきた。
オンラインアセスメント
コーディング問題2問からなる90分間のテスト。このプロセスでは各ラウンドの後に簡単なディブリーフがあり、候補者はアプローチとその時間・空間計算量を説明する必要があった。
技術面接2回
オンラインアセスメントの約1週間後、同日に連続してスケジュールされた。いずれもAmazon Chimeを使い、コードシェアのリンクを共有しながらオンラインで実施され、それぞれ1時間だった。
ハイアリングマネージャー面接
技術面接の約3日後にスケジュールされた。経歴に関する質問とリーダーシッププリンシプルに関する質問に加え、コーディング問題が1問出された。
バーレイザー面接
最終ラウンドで、ハイアリングマネージャー面接の約10日後に行われた。リーダーシッププリンシプルに関する質問がさらに出され、コーディング問題も2問出された。
結果通知
バーレイザー面接の約3日後、候補者が選考を通過したことを伝える確認の電話があった。
オンラインアセスメント
時間制限下でのコーディング問題2問 · 90分
- 曲の再生時間のリストと目標となる移動時間が与えられ、合計時間が一定の余裕を残して移動時間を満たすように2曲を選ぶ問題。two-sum形式の問題で、ソートと2ポインタ法を用いて解いた。
- グリッド上で上下左右の4方向に移動しながら、始点から終点までの最短経路を求める問題。BFSで解いた。
コーディング部分の後には簡単なディブリーフがあり、候補者はアプローチとその時間・空間計算量を説明する必要があった。この形式はプロセス内のすべてのラウンドで繰り返された。
技術面接1
コードシェアのリンクを共有しながら行う探索・グリッド走査の問題 · 1時間
- ソート済みの文字列の中で、指定した文字が何回出現するかを数える問題。最初と最後の出現位置を求める2つの二分探索ヘルパー関数を実装して解いた。
- 一部のセルに火がついているグリッドで、指定したセルから出発した人物が火を通らずに端まで到達できるかを判定する問題。BFSで解いた。
- フォローアップ:各ターンごとに火が隣接するセルへ広がっていくため、火の広がりと人物の移動を同時に追跡しながら探索する必要がある。古典的な『rotting oranges』パターンの派生形で、2つのキューを使って対応した。
最初の問題でエッジケースの考慮漏れを面接官に指摘されたため、それ以降は聞かれる前からエッジケースを網羅し、コードにコメントを付けるよう意識した。
技術面接2
レジュメの説明に加えBFSとスライディングウィンドウの問題 · 1時間
- レジュメに記載されたAWSでの経験についての説明。ECS(Elastic Container Service)の仕組みの説明も含まれた。
- 0と1からなる2値行列で、任意の0のセルから最も近い1のセルまでの距離のうち、最大となるものを求める問題。BFSで解いた(『01 Matrix』問題に類似しているが、最も近いセルではなく最も遠いセルを求める点が異なる)。
- 未ソートの配列と2つの整数k、tが与えられ、値の差がt以下かつインデックスの差がk以下となる2つのインデックスi、jを見つける問題。ブルートフォースから、ソート済みのウィンドウを維持しながらおよそO(n log k)まで最適化するよう求められた。
面接官は、維持しているソート済みウィンドウへの挿入がなおO(n)の操作になっている点を指摘し、その修正には完全には納得していない様子だった。候補者は時間切れまでにそのギャップを解消できなかったが、それでも次の選考ステージに進んだ。
ハイアリングマネージャー面接
経歴に関する話し合いとリーダーシッププリンシプルに関する質問、加えてコーディング問題1問 · 1時間
- これまでの大学や仕事のプロジェクト、採用した技術、直面した課題、現在の会社を辞めたい理由についての質問。
- 与えられた二分木を中央で折り返したときに対称になるかを判定する問題。古典的な対称木判定の派生形で、再帰的に解いた。
1時間のほとんどはコーディングではなく経歴に関する話し合いに費やされた。面接官は業界での豊富な経験を持ち、フォローアップの質問を細かく掘り下げてきた。
バーレイザー面接
リーダーシッププリンシプルに関する質問とコーディング問題2問 · 1時間
- 厳しい締め切りにどう対応したか、またチームのために自ら主体的に行動した経験についてのリーダーシッププリンシプルに関する質問。
- 文のリストが与えられ、各単語がどの行に出現するかを示すインデックスを構築する問題。ハッシュマップを使って解いた。
- 組み込みのデータ構造を使わずにLRUキャッシュをゼロから実装する問題。双方向連結リストとハッシュマップを用いた。クラスを書いている間、面接官はポリモーフィズムなどのOOPの概念についても質問してきた。
候補者は時間切れまでにLRUキャッシュの実装を書き終えることができなかったが、面接官は示されたアプローチに満足していると述べた。
学びのポイント
- コードを書く前にアプローチを説明し、エッジケースを指摘すること——このプロセスでは複数の面接官が、それを評価対象として明示的に指摘していた。
- ラウンドの最後だけでなく、コーディング問題1問ごとに『計算量を説明してください』という短いディブリーフがあることを想定し、そのための時間を確保しておくこと。
- ハイアリングマネージャー面接とバーレイザー面接では、リーダーシッププリンシプルに関するエピソードが実際に大きな重みを持っていた。その場で即興で答えるのではなく、具体的な事例をあらかじめ用意しておくこと。
- フォローアップの指摘(技術面接2回目でのO(n)の挿入というギャップ)を完全には解消できなくても、プロセスが終わるわけではなかった——アプローチを明確に説明できていれば、次に進むには十分だった。
- 数か月にわたり、MediumとHardの問題を中心に据えたコツコツとした練習を続けたことが、候補者が面接への準備が整ったと感じられた最大の要因だったという。
出典
質問と選考プロセスの事実は、下記リンクの候補者本人の公開投稿に基づきます。本文は当サイトによる再構成です。
候補者本人による英語の公開体験談を翻訳(出典: LeetCode Discuss)