面接体験談

PayPal SDE II 面接体験談:アセスメント、システム設計、そして給与を巡るHRとの対立

PayPalSDE II·記載なし·面接時期: 2023年4月不合格

更新日: 2026年7月17日

候補者は非FAANG系のプロダクト企業2社で計約5年の経験を積んでおり、このプロセスが始まる数か月前にレイオフされていた。リクルーターから連絡があり、現在の報酬額を尋ねられたが、候補者は具体的な金額の開示は断りつつ、妥当なオファーであれば前向きに検討する旨を伝え、リクルーターはその前提で面接ループを進めた。

ループは時間制限付きのオンラインアセスメント、コーディングとオブジェクト指向/システム設計を扱う2回の技術面接から構成されており、最後にヒアリングマネージャーが加わる第4ラウンドで締めくくられる予定だった。その最終ラウンドが行われる前に、候補者の前職の報酬をめぐるHR担当者との電話が対立的な展開となり、HR側がミーティングをキャンセルし、プロセスは終了した。

選考プロセス

  1. リクルーターからの連絡

    レイオフ後、リクルーターから候補者に連絡があり、現在の報酬について尋ねられた。候補者は具体的な金額の開示は断ったが、妥当なオファーであれば前向きに検討すると伝え、リクルーターはその前提で面接の日程調整を進めた。

  2. ラウンド1:オンラインアセスメント

    90分間のオンラインコーディングアセスメントで、問題は2問。提供されたスタブコードに対してオブジェクト指向のウォレット実装を行う問題と、貪欲法によるコスト最小化問題。

  3. ラウンド2:技術面接

    部分文字列検索の問題と、ランダムシャッフルの設計問題を扱うラウンド。

  4. ラウンド3:設計面接

    イミュータブルなクラス設計、パブリッシャー・サブスクライバー方式のライブラリ設計、そしてBookMyShowのようなサイトにおける同時座席予約のシステム設計について議論するラウンド。

  5. 結果連絡とラウンド4の招待

    候補者は最初の3ラウンドが順調だったと伝えられ、ヒアリングマネージャーとの第4ラウンドのカレンダー招待を受け取った。

  6. HRによる報酬に関する電話

    招待から1時間以内に、HR担当者から電話があり、候補者の前職の報酬を開示するよう求められた。候補者が以前リクルーターに伝えた非開示の姿勢を貫いたところ、電話は激しいやり取りとなり、HR側がラウンド4のミーティングをキャンセルし、プロセスは終了した。

ラウンド1:オンラインアセスメント

OOP実装課題と貪欲法による最適化問題を扱う時間制限付きOA · 90分

  • 提供されたスタブ/クライアントコードに対してJavaで決済ウォレットシステムを実装する:残高の追加、取引可能かどうかの確認、そしてクライアントコードが想定する例外処理を行いながらの残高の減算。
  • コストの配列と、選んだ1つのコストを半分にする操作をm回まで行える予算が与えられたとき、最大m回の半減操作後に得られる配列の合計の最小値を求める。

ウォレットの問題は与えられたスタブコードに対して実装する必要があり、使用言語はJavaに限定されていた。

コスト最小化の問題は使用言語の制限がなかった。

ラウンド2:技術面接

部分文字列検索とランダム化に関する2つのコーディング問題

  • 文字列s、文字c、目標出現回数が与えられたとき、cを目標回数以上含むsの最短の連続部分文字列を求める(例:s = 'abrtbopkbxb'、c = 'b'、count = 2 のとき、答えの長さは3で部分文字列は'bxb')。
  • 文字列のリストをランダムにシャッフルする関数を設計する。繰り返し呼び出したときに異なる並び順が得られ、同じシャッフル結果が再現される確率が非常に低くなるようにする。

ラウンド3:システム設計/OOP

イミュータビリティ、ライブラリAPI設計、そして分散型予約システムの設計に関する議論

  • 名前と生年月日を保持し、シンプルなgetterを持つイミュータブルなクラスを設計する。どちらのフィールドも構築後は変更できないようにする。
  • クライアントコードがコンテンツをパブリッシュ(発行)したり、それをサブスクライブ(購読)したりできる、パブリッシャー・サブスクライバー方式のライブラリを設計する。
  • BookMyShowのようなサイトにおける座席予約フローを設計する:複数のユーザーが同じ座席を予約しようとした場合にどのような問題が生じるか、ロックが必要かどうか、必要であればどのレベルで行うか(データベースかアプリケーションコードか)、それが読み取りパフォーマンスにどう影響するか、そしてシステムが1台ではなく複数のマシンにまたがって稼働する場合に座席状態の一貫性をどう保つか。

学びのポイント

  • 報酬開示に関する境界線があるなら、プロセスの早い段階でリクルーターに明確に伝えておくこと。後の段階で再び持ち出される可能性があり、書面に残しておく価値がある。
  • システム設計と銘打たれたラウンドであっても、大規模アーキテクチャの問題だけでなく、基本的なOOP/イミュータビリティに関する設計問題(名前・生年月日を持つイミュータブルなクラスなど)が出ることを想定しておくこと。
  • 予約や在庫管理系のシステム設計の課題に備えて、分散ロックのトレードオフ——データベースレベルのロックとアプリケーションレベルのロックの違い、読み取りパフォーマンスへの影響、複数マシン間での一貫性——について議論できるよう準備しておくこと。
  • 選考終盤の電話が報酬やその他の条件を巡って対立的になった場合、それを単なる孤立した出来事としてではなく、そのチームのプロセスを示す一つの材料として捉えること。
  • プロセスの早い段階でリクルーターと合意した内容は記録しておくこと。後になって別の面接官やHR担当者から改めてその条件を問われる場合に備えるため。

出典

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

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