2024 年 5 月に、Amazon のソフトウェア開発エンジニア (SDE) のポジションの面接を受ける機会がありました。採用担当者が LinkedIn 経由で私に連絡を取ってきたのがすべての始まりでした。いつも刺激的なので、嬉しい驚きでした。
採用担当者はプロフェッショナルで明確で、プロセスと役割について必要な詳細をすべて教えてくれました。いくつかのメッセージを交換した後、コーディング評価である面接の最初のラウンドのテストリンクを受け取りました。評価は HackerRank でホストされ、2 つのコーディングに関する質問で構成されていました。
質問は簡単でしたが、少し長かったです。内訳は次のとおりです:
1.最初の質問: バーコードの生成
このタスクは、いくつかの事前定義されたパラメータに基づいてバーコードを生成することでした。質問は本質的に複雑ではありませんでしたが、すべての条件が満たされていることを確認するために細部に注意を払う必要がありました。私はこの問題に系統的に取り組み、問題を小さな部分に分割し、JavaScript で解決策を実装しました。効率と明瞭さに重点を置き、生成されたバーコードが期待される形式と制約を確実に満たすようにしました。
2. 2 番目の質問: デプロイメント ステータスによる配列処理
これはどちらかというとデータ操作タスクでした。入力はオブジェクトで構成され、それぞれにデプロイ ID とデプロイ ステータスが含まれます。私の目標は、これらの入力に基づいて配列を返すことでした。問題は単純そうに見えましたが、いくつかの特殊なケースが伴いました。たとえば、一部のオブジェクトにはキーがありませんでしたが、一見しただけではわかりませんでした。しかし、最初のソリューションを提出した後、そのような特殊なケースを考慮する必要があることに気付きました。これらのシナリオに対応できるようにコードをすぐに修正し、キーの欠落によってエラーや不完全な結果が発生しないようにしました。
私は両方の質問を JavaScript を使用して解決し、自分のソリューションが隠れたテスト ケースを含むすべてのテスト ケースに合格したと確信しました。
Amazon は、すべてのテスト ケースに合格し、すべてのコーディングに関する質問を解決した場合、候補者をプロセスで前進させる傾向があります。
その後、採用担当者から面接の手続きを進めており、現場面接になるとの電話がありました。準備に5日間かかりました。
過去 3 年間リモートで仕事をしており、一度もオフィスに行ったことがなかったので、面接よりもオフィスの方が怖かったです ??
私はアマゾンのオフィスに行きましたが、すでに候補者はほとんどいませんでした。みんなで面接に行きました。その日は技術面接が 3 回ありました。
一次面接はトラブルシューティング中心の面接でした。部屋に入るとすぐに、信じられないほど協力的な面接官が出迎えてくれました。彼はセッション中ずっと笑顔を絶やさなかったので、私の緊張が和らぎました。
彼は私に 1 枚の紙を渡し、システム障害、ネットワーク、およびネットワーク層に関連するいくつかの質問を提示しました。彼が用いたアプローチは特に興味深いものでした。彼は私に、まず基本的な解決策を考えるように言いました。つまり、問題を根本から解決するよう私に勧めたのです。私が答えを提供すると、彼はシナリオを少し変更し、各ステップでさらに複雑さを加えました。
たとえば、ネットワーク障害について話し合った後、彼は会話をネットワークのより深い層に移し、標準的なソリューションが機能しなかったらどうするかと尋ねました。これにより、私は創造的に考え、最も一般的な問題からより複雑な問題まで、システム内のさまざまな障害点を検討するようになりました。
面接では外で待つように言われました。その後、採用担当者が来て、2次選考に行くと言われました。
次のラウンドでは、データ構造とアルゴリズム (DSA) について詳しく説明しました。今回の面接官は、Amazon の上級 SDE でした。彼女は一枚の紙を持って私に挨拶し、かなり大きく複雑な質問を提示しました。これを読んでいくと、主な目的はグラフ内の最短経路を見つけることであることがすぐにわかりました。この種の問題は面接ではよくあることですが、エッジケースが関係する場合には扱いが難しくなる可能性があり、彼女はそれを必ず含めるようにしていました。
問題とそのさまざまなシナリオを完全に理解するために、いくつかの明確な質問をしました。自信を持ったら、紙に直接疑似コードを書くという解決策に取り組み始めました。私がアプローチとロジックを説明すると、彼女は継続的に深く探り、なぜ私が特定の決定を下したのか、グラフのさまざまな部分をどのように処理しているのかを尋ねました。私は彼女に自分の思考プロセスを説明し、トレードオフと最適化について話し合いました。幸いなことに、私はその質問を完全かつ正確に解くことができました。
彼女が私のグラフ解法に満足すると、時間と空間の複雑さについて私に尋ねたので、私はそれを分析して説明しました。達成感を感じながら、ラウンドはうまくいったと思った
。しかし、彼女はすぐに別の、より難しい質問に移りました。今回は動的計画法 (DP) に関するものでした。この問題には、さまざまな作物を特定の規則に従って植える必要があるというマトリックスが関係していました。これはより複雑な質問でしたので、完全に理解するのに時間を費やしました。すべての制約と特殊なケースを確実にカバーするために、いくつかの質問をしました。
疑似コード ソリューションを作成しましたが、完全には最適化されていませんでした。彼女はいくつかのテスト ケースを私に提供してくれました。私のコードはそのうちの約 80% で正常に実行されましたが、失敗したエッジ ケースもまだありました。この時点で私は緊張していました、そして彼女はそれに気づきました。幸いなことに、彼女は役立つヒントを提供してくれたので、私はソリューションをさらに最適化しようとしました。最善を尽くしたにもかかわらず、おそらく神経が支配してしまったせいで、完全に解決策を導き出すことができませんでした。
私はまた外で待っていましたが、このラウンドにはあまり満足しておらず自信もありませんでしたが、採用担当者が再びやって来て、私の次のラウンドはシステム設計であると言いました。とても幸せになりました!
その日の最終ラウンドはシステム設計面接でしたが、これはこれまでで最も集中的で体力を消耗するセッションでした。面接官は Amazon のアーキテクチャ チームの一員でした。最初から、このラウンドは困難なものであることがわかりました。私たちは私の履歴書についての話し合いから始まり、私の過去のプロジェクトと以前の仕事で行ったデザイン上の決定に焦点を当てました。彼は、私が取り組んできたシステムのアーキテクチャについていくつかの質問をし、私の設計上の選択とトレードオフの詳細を詳しく調べました。
この最初のディスカッションの後、彼は私に、特にビデオ ストリーミング機能に焦点を当てた、エドテック プラットフォーム用のシステムを設計するように依頼しました。目標は、教師がライブビデオセッションをストリーミング配信し、生徒がオンラインでそれらのセッションに参加できるシステムを設計することでした。
まず高レベルのアーキテクチャから始め、ビデオ サーバー、データベース、API などの主要コンポーネントについて説明しました。多数のユーザーを処理し、スムーズなビデオ ストリーミング エクスペリエンスを確保するためのアプローチを説明しました。彼は、ライブ ビデオを備えたプラットフォームにとって重要なスケーラビリティ、信頼性、遅延の問題について継続的に質問しました。
私たちが高レベルの設計について説明した後、彼は会話を低レベルの詳細に移しました。ここで議論がより技術的になりました。私たちは、システムを最適化し、エッジケースに対処し、最悪のシナリオでもユーザーにシームレスなエクスペリエンスを確保するためのさまざまなアプローチを検討しました。ユーザー トラフィックの急増への対応やダウンタイムの最小化など、さまざまな問題に対する解決策や代替案を提供するために、自分の頭で考えなければなりませんでした。
面接官はさまざまなシナリオを提示し続けました。ビデオ サーバーがダウンしたらどうなるでしょうか?ネットワークの混雑にどのように対処しますか?地理的に異なる地域にいる学生の待ち時間をどのようにして低く抑えることができますか?各シナリオには詳細な回答が必要で、私は可能性と設計パターンについて議論することに完全に没頭していました。
インタビュー全体は約 1 時間半続き、終わる頃には疲れ果てていました。それは精神的に消耗するものでしたが、私がこれまで受けたインタビューの中で最も洞察力に満ちたものでもありました。私たちは建築上のさまざまな課題を検討しましたが、従来のインタビューというよりは、共同で問題を解決するセッションのように感じられました。
とにかく、一つ言い忘れていました。面接に行く前にアマゾンの原則をすべて理解してください。アマゾンは各ラウンドで少なくとも 2 つの質問をします。なのでそれも用意してくださいそれで私は朝 9 時にアマゾンのオフィスに行き、夕方 5 時に出てきました。すべてのラウンドを完了しており、採用担当者は管理職ラウンドを進めていると言いました。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3