【22新卒エンジニア】私はこうしてAmazon SDEに落ちた
はじめに・自己紹介
2022年のAmazon SDE(Software Development Engineer)職の選考に応募し、最終面接で落ちました。応募をしたのは、学部3年の7月頃(2020年)、不採用が決まったのが同年9月の末頃です。選考の過程で得た知見を本記事で共有できたらと思います。
軽い自己紹介をしますと、僕は早稲田大学の情報系の学部の大学4年生です。プログラミングを始めたのは大学に入ってからです。在学中は色々な会社にインターンとして働き、開発経験を積んできました。
始まり
始まりは2020年の8月頃、学部3年の夏休みのことでした。
僕は学部での外資系企業への就職を選択肢に考えており、LinkedInのプロフィールを作成したり、海外のエンジニアの就職活動の様子をyoutubeなどで情報収集していました
そんな中、LinkedInにてAmazon Japanが新卒のエンジニアの募集を開始したとのフィードを目にすることに。
僕は大変焦りました。早くても学部3年の冬ごろから募集が始まるものだと考えていたからです。
このチャンスを逃したら、Amazonに新卒で入れるチャンスがなくなってしまうのでは?と危惧した僕は、大慌てでresumeを書き、コーディング面接の対策を始めることになります。
※ 翌年の2月頃(学部3年の春休み)に、2022卒エンジニアの募集が再度ありました。当時の僕は「このチャンスを逃したらAmazonにもう応募できないのでは?」と思っていましたが、実際は募集はいくつかの期間にわけて行われるようです。
僕が体験した、Amazon Japan SDEの採用フローは以下のようになります。ちなみに、このプロセスはどこの国においても概ね同じなようです。
1. 履歴書(CV)を提出 - 2020年7月下旬
2. OA(Online Assessment)- 7月下旬 ~ 8月中旬
2-1. 簡単なコードリーディングテスト
2-2. コーディングテスト
2-3. ワークシミュレーションテスト
3. 一次面接 60分 - 8月下旬
4. 本面接 1vs1 60分 × 3回 - 9月中旬
5. 合否 - 9月下旬
僕の場合は、最終面接まで進みましたが、残念ながら内定はもらえませんでした。以下、選考フローの各段階での経験や対策について書いていきます。
OA(Online Assessment)
resumeを送ると、数日後にリクルーターからメールが届きました。これから始まる選考についての説明がありました。Amazon SDEの選考では、まずOA(Online Assessment)があります。OAは3段階にわかれ、各段階をクリアした人だけが次に進める仕組みです。
OAの1段階目は簡単なコードリーディングのテストです。本当に簡単なテストでした。ただ、問題がJavaとC++でしか解くことができないので、大学の授業で習ったJavaを復習しました。
2段階目はコーディングテストです。競プロ的な問題が出されます。選考を受けるのが初めてだったので、テストを受ける時期を遅らせ、可能な限り対策を行いました。90分で2問出題出てくるのですが、30分ほど時間があまったので、割と余裕がありました。問題自体も、アルゴリズムとデータ構造を学んでいれば、あっさりと解けるぐらいの難易度です(LeetCodeでいうと、easyとmediumの中間ぐらい)。2段階目では、PythonやJavaScriptなどの言語も使用が許されたので、JavaやC++にあまり精通していなくてもなんとかなりました。僕の場合、ここから最終選考に至るまで、Pythonしか使わなかったです。
3段階目はワークシミュレーションテストです。性格のテスト、的なところがあるので、Amazon Leadership Principles を確認して、Amazonの社員だったらこうだろうな、というイメージを自分の中に持って問題に取り組みました。問題自体はとても簡単です。ただ、全部英語なので、リーディングが遅いとキツイかもしれません。
OAの各段階にて、回答を提出すると、次の段階に進めるか否かのメールが届きます。
一次面接
OAを突破すると、実際にAmazon Japanで働いているエンジニアとの一次面接が待ち構えていました。色々な書籍、サイトを用いて学習を行いました(詳しくは後述します)。面接はすべて英語なので、そのための英会話の特訓も少し行いました。
面接の時間は1時間、45分がコーディングの問題で、15分が行動面接(behavioural interview)です。
本面接
一次面接から数日後にリクルーターから、本面接(最終面接)の案内が届きました。
1:1の面接が一日に3回あり、それで採用が決まるとのことです。
面接の自己評価としては、5点満点で、3.0, 3.5, 4.0 でした。受かるか落ちるかわからない、ぐらいの手応えで、全く手も足も出ないかというとそんなことはありませんでした。
選考の結果の連絡がくる
最終面接から数日間、悶々とした日々を行っているところ、一通のメールが届きます。メールを開封すると、「残念ながら...」の文章が目に飛び込んできました。本気で挑んだ選考で、不採用の通知がくるとは、これほどダメージを食らうものだと、身を持って体験しました。終わりはあっけなかったです。
使用した書籍・学習教材など
落ちた分際で言うのもあれですが、一応最終面接までは進みましたし、ネット上ではあまり有益な情報が転がっていなかったので、僕なりのtipsをシェアシたいと思います。
過去に僕が書いた記事があるのですが、そちらに使用書籍・勉強法・勉強量、全部まとめてあります。
参考にした情報源
やはり何より役に立つのは一次情報でした。Amazonが公式に発信している情報は片っ端から集めました。
大体このページに全ての情報が載ってます。僕は隅々までチェックしました。
Amazonでは、Leadership Principlesというものが重要視されます。
Amazonのインタビュープロセスを徹底的に解説している記事です。この記事は本当によくできていて、僕の受けた選考プロセスも大体こんな感じでした。
Amazonから不採用のメールを受け取ったときは、ポケモンの主人公のように、「目の前がまっくらになった」というのは大げさですが、がっくりしました。そんなとき、下記の記事をもじり、"Amazon lost a chance to hire me!"と自分に言い聞かせました。
最後に
僕は大学三年生のひと夏を捧げ、代わりに残ったのは一通の不採用通知だけでした...
というネガティブな論調で進めるつもりは全くありません。Amazonの選考を受けたことで、僕は多くのことを学びました。
まず、「アルゴリズムとデータ構造」を一からしっかり勉強できたこと、これが大きかったです。大学ではCS系の学科にいるので、アルゴリズムやデータ構造の授業は取っていたんですが、いまいち自分の血肉となった気がしませんでした。今回、LeetCodeやAlgoExpert、世界で闘うプログラミング力を鍛える本 コーディング面接189問とその解法 などの学習教材を通じて、いかに自分が何もわかっていなかったのかを痛感しました。その後のインターンでも、明らかにレベルアップが実感できたので、得たものは非常に大きかったです。
次に、自分でもAmazonやGoogleに代表される、GAFAのような外資系のTech企業に入れる可能性があるとわかったことです。最終面接では、会社のことを知るためにグループワークがありました(選考には全く関係ない、Amazonのことを知るためのワークショップです)。最終選考に残った人数や学歴などをざっくり知ることができ、自分もこの枠には入れたという事実は自信になりました。
最後に、外資系企業の面接を最後まで体験できたことです。面接はすべて英語でしたが、自分の英語力でも意思疎通はできるということが嬉しくもあり、楽しくもありました。うまく表現できない部分、発音が拙い部分、面接を通じて痛感し、もっと英語力を高めたいと思うきっかけになりました。
この先色々な企業の面接を受ける上で、選考フローをまるっと経験できたことは大きかったのでは?と今になって感じます。
本記事が皆さんの参考になれば幸いです。