面接体験談

LinkedIn スタッフソフトウェアエンジニア面接体験談:2度のオンサイトループと最終不合格

LinkedInスタッフソフトウェアエンジニア·カリフォルニア州サニーベール·面接時期: 2018年7月不合格

更新日: 2026年7月17日

本稿はLinkedInのサニーベールオフィスにおけるスタッフソフトウェアエンジニア選考の体験談である。投稿時点で候補者はサンフランシスコ・ベイエリアの別企業でシニアスタッフまたはプリンシパルソフトウェアエンジニアとして勤務していたと記されている。選考プロセスはまず2回の電話面接――バックグラウンドとリーダーシップに関する面接、続いて別枠の技術電話面接――から始まり、その後6ラウンドのオンサイト面接へと進んだ。

選考の途中で採用委員会は候補者がスタッフレベルの基準に達していないと判断したが、即座に不合格とするのではなく、候補者はシニアソフトウェアエンジニアレベルで評価する、より短い2回目のオンサイトループに再度招待された。この2回目のループもオファーには至らず、リクルーターは候補者について基準にかなり近いが届かなかったと説明し、翌年改めてスタッフレベルに再挑戦することを勧めた。

選考プロセス

  1. 電話面接

    スタッフソフトウェアエンジニア職向けに60分の電話面接を2回実施。バックグラウンドとリーダーシップに関する面接に続き、コーディング問題2問からなる別枠の技術電話面接が行われた。

  2. オンサイトループ(スタッフソフトウェアエンジニア)

    60分のオンサイト面接を6ラウンド実施。ホストマネージャーとの面談、コーディング・アルゴリズムラウンド、ランチ面接、スタッフクラフトマンシップラウンド、システム設計ラウンド、コーディング実装ラウンドで構成された。

  3. 中間フィードバック

    採用委員会は候補者をスタッフソフトウェアエンジニアレベルに合致しないと判断し、代わりにシニアソフトウェアエンジニアレベルで評価する追加のオンサイトループへ候補者を再度招待した。

  4. 追加オンサイトループ(シニアソフトウェアエンジニア)

    60分の追加オンサイトラウンドを2回実施。システム設計ラウンドと、問題2問からなるコーディングラウンドで構成された。

  5. 最終決定

    追加ループの約2日後、リクルーターから電話があり、採用委員会が選考を進めないと決定したことが伝えられた。候補者は基準に近いレベルであったと説明され、LinkedInプロフィールに推薦文がない点も指摘された。候補者は翌年改めてスタッフソフトウェアエンジニアレベルに挑戦するよう勧められた。

スタッフ/バックグラウンド面接(電話)

リーダーシップとバックグラウンドに関する面接 · 60分

  • ソフトウェアエンジニアとシニア/スタッフソフトウェアエンジニアの役割の違い、およびそのキャリア移行が通常どのように起こるか。
  • 同僚との意見の対立にどう対処したかという、対立解消に関する質問。
  • 単一のモノリシックアプリケーションを個別のコンポーネントに分割する、という高レベルなシステム設計に関する議論。
  • 直面した課題と、候補者が最も誇りに思う仕事を中心としたクラフトマンシップに関する議論。

候補者本人のアドバイス:バックグラウンドに関する質問にはそれぞれ、自身の実体験に基づく具体例を絡めて答えること。

技術電話面接

コーディング · 60分

  • 逆ポーランド記法の評価(LeetCode #150、Medium)。
  • Two Sum III - Data Structure Design(LeetCode #170、Easy)。さらに、three-sum(3数の和)検索に対応するには設計をどう変える必要があるかという発展質問があり、実装は行わず口頭で議論した。

候補者本人のアドバイス:考えられるアプローチをすべて声に出して説明し、なぜその実装方法を選んだのかを述べること。

オンサイト(スタッフループ)——ホストマネージャーラウンド

マネージャーとの面談およびシステム設計シナリオ · 60分

  • ホストマネージャーは、採用・解雇の決定権を持つかどうかを含む自身の役割、日々の業務内容、そして自分自身がどの程度コーディングを行うかについて説明した。
  • チームの現行のWebアーキテクチャや、マネージャーが技術的な意思決定にどの段階で関わるかについての質問。
  • 2社のシステム統合や移行対応など、シナリオベースのシステム設計に関する議論。

オンサイト(スタッフループ)——コーディング+アルゴリズム

コーディング · 60分

  • 候補者の説明によれば、ソート済みの2つの配列から最小の積を求める問題で、形式としてはLeetCodeの「Find K Pairs with Smallest Sums」に最も近く、候補者はLeetCode Hard相当と評価した。

オンサイト(スタッフループ)——ランチ面接

非公式な会話だがフィードバックに反映される · 60分

  • 面接官は自身の役割とサイドプロジェクトについて話し、あわせてLinkedInのプラットフォームの歴史を「1.0、2.0、3.0」と表現して紹介し、エコノミックグラフについても触れた。
  • LinkedInの企業文化と、機械学習に関する機会をどう捉えるかというフレームワークについての質問。
  • 候補者が他にどの企業の選考を受けているか、そして新しい役割で何をしたいかについての質問。

候補者によれば、このラウンドは非公式な会話形式であったにもかかわらず、フィードバックが記録され全体の判断に反映されたという。

オンサイト(スタッフループ)——スタッフクラフトマンシップ

エンジニアリングのクラフトマンシップとメンタリング · 60分

  • コード品質、コードレビューの実践方法、およびコードレビューに伴うトレードオフについての質問。
  • 候補者がジュニア・シニアエンジニアにクラフトマンシップについてどのようにコーチングしてきたかの具体例。
  • 意思決定の具体例に加え、スケーラビリティ・パフォーマンス・品質の間のトレードオフ、およびパフォーマンス問題の修正とビジネス価値のある新機能のリリースとの間のトレードオフについての議論。

オンサイト(スタッフループ)——システム設計

システム設計 · 60分

  • APIレートリミッターを設計せよ。

候補者本人のアドバイス:このラウンドでは、コーディングを始める前に戦略とアルゴリズムを先に説明し、合意を取れるようにしておくこと。

オンサイト(スタッフループ)——コーディング+実装

コーディング · 60分

  • ワードジャスティファイア(文字揃え処理)を実装する問題で、LeetCodeのText Justificationに相当し、候補者はHard相当と評価した。入出力フォーマットの定義も含まれる。

追加オンサイト(シニアループ)——システム設計

システム設計 · 60分

  • LinkedIn上でトレンド記事を表示する機能を設計する。共有記事のURNをデータベースに継続的に書き込む既存APIを土台とする。

追加オンサイト(シニアループ)——コーディング

コーディング · 60分

  • Find Leaves of Binary Tree(LeetCode、Medium)。
  • All O(1) Data Structure(LeetCode、Hard)。

学びのポイント

  • スタッフレベルのバックグラウンドラウンドでは、ありきたりな行動面接向けの逸話ではなく、対立解消・メンタリング・SEからスタッフへの移行といったリーダーシップのテーマに沿った具体的な実例を準備しておくこと。
  • ランチ面接のような非公式に感じられるラウンドも評価の一部として扱うこと——この候補者の場合、そのラウンドのフィードバックも記録され、判断に反映された。
  • スタッフレベルのシステム設計・クラフトマンシップラウンドでは、抽象的な原則ではなく実例をもとに、トレードオフ(スケーラビリティ対パフォーマンス対品質、あるいはバグ修正対機能リリースなど)を説明できるように準備しておくこと。
  • あるレベルでの不合格が必ずしも選考の終わりを意味するとは限らない——この候補者は最初のループの後、より低いレベルで再度面接に招待されたが、その2回目のループもオファーには至らなかった。
  • リクルーターからのフィードバックには技術以外の要素が含まれることもある——この候補者はLinkedInプロフィールに推薦文がないと指摘されており、面接前にプロフィールの充実度を整えておく価値はあるかもしれない。

出典

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

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