シリコンバレースタートアップの採用面接をインタビュアー目線で解説する

先日トレンドに上がっていた[こちらの記事](https://qiita.com/acro5piano/items/df53d695c84db83061da)を読み、海外スタートアップの面接をインタビュアーの目線から解説するのもこれからチャレンジする皆さんのお役に立てるのかな、と思いこのポストを書いてみることにしました。
Googleで検索すると似た視点の記事が見つかるのですが、情報は少ないより多い方が良いと思うので投稿してみます。

なお採用基準やプロセスは会社によって異なりますし、インタビューの内容も採用担当マネージャやインタビュアーによって様々です。ただ、ある程度ベストプラクティスのようなものもありますし、共通する部分も大いにあると思います。あくまで一例ではありますが、応用できそうなところがあればぜひ参考にしてみてください。

# 簡単な自己紹介
10年前に駐在員としてシリコンバレーに移住後、色々あって現地の中規模スタートアップに転職してソフトウェアエンジニアとして働いています。
1年半ぐらいエンジニアリングマネージャーをやっていたこともあるので、インタビュアーの心情はそれなりに分かっていると思います。ただ、クロージングインタビューは上司が担当していたので、そちらについては残念ですが解説できません。

# 想定する採用環境
インタビュー内容の説明に入る前に、採用を行う会社について簡単に定義しておきたいと思います。
ちなみに私が実際に所属している組織もこんな感じです。

- シリコンバレーの小〜中規模スタートアップ(エンジニア10-50人ぐらい）
- ビジネスの内容はコンシューマ向けWebサービス
- 成長フェーズに入っており、ビジネスの成長に合わせて急速なチーム拡張を行なっている

今回はフロントエンドからバックエンドまで一通りこなせるフルスタックエンジニアの採用を例にとります。
私の経験ですが、このぐらいのサイズの会社だとまだ一点集中のエンジニアよりもフルスタックのエンジニアの方が重宝がられると思います。

# インタビュー工程
リクルータや採用担当マネージャのレジュメスクリーニングをクリアするとインタビュー工程に入ります。対象のポジションや状況でステップの増減はありますが、大体以下のような感じです。

- リクルータ/採用担当マネージャによる電話インタビュー
- エンジニアによる電話インタビュー
- 開発チームによるオンサイトインタビュー
- リクルータ/採用担当マネージャによるクロージング

## リクルータ/採用担当マネージャによる電話インタビュー
リクルータによる電話インタビューです。専任のリクルータがいない場合やリクルータが外注の場合、採用担当マネージャとの電話インタビューになることもあります。
技術的な質問をされることもありますが、主な目的はインタビュー基準に満たない候補者をふるい落すことです。レジュメの内容をベースに以下のようなことを聞ききます。

- 簡単な自己紹介と過去のポジションでの実績
- なぜ新しい職をさがしているのか
- なぜこのポジションに応募しようと思ったのか
- 希望の待遇
- ビザ発行の要否

ここで会社のカルチャーに合わない、コミュニケーションをとるのに苦労する、希望の待遇と提示できる待遇が大きく乖離している、ビザサポートができない、などの問題があるとインタビューはここで終了となります。
カルチャーというがわかりにくいですが、ここの時点では、発言が非常に攻撃的（現ポジションに対するあからさまな悪口等）、会社のビジネスに対する興味が全くない、モチベーションが低い、などチームワークに問題がでるような発言がなければ大丈夫です。

## エンジニアによる電話インタビュー
エンジニアとの1対1のインタビューです。ここでは技術力がチームの想定しているレベルに達しているかを判断します。一人の判断で合否がきまるので、このステップは運の要素が他のステップよりも大きいと思います。大きな会社や採用に力を入れている会社だと、インタビュアーが訓練されており質問も標準化されているため、当たり外れは少なくなりますが、それでもインタビュアーとの相性の良し悪しがでてしまうことも多いと思います。
時間は大体1時間程度で10分ぐらいを自己紹介と簡単な経歴の質問、45分ぐらいをコーディング、残りの5分を質疑応答に回すことが多いです。

インタビュアーとしてもここの工程が一番大変だったりします。短時間で候補者の経歴と実績を理解し、コーディングインタビューを成功に導かなければなりません。しかも一人で合否まで決めなければいけません。候補者の立場からだと気づきにくいですが、インタビューをしているということはその会社は人材が不足しており、1日でも早く採用したいのです。そのため、訓練されたインタビュアーは候補者の能力を最大限に引き出せるよう常に意識して会話をしています。
コーディングインタビュー中に自分の考えを話してくれるようお願いするのも、候補者のやりたいことを理解して正解に導くためです。慣れるまでは大変だと思いますが、考えを共有することでアドバイスがもらえたり、バグ修正を助けてもらえたりすることもあるので、ぜひ頑張ってみてください。ちなみにコーディング中ずーっと無言はよっぽどのことがない限り、コミュニケーションやチームワークに問題があると見なされ、不採用となります。ずっと話をしている必要はありませんので、クラスやメソッドを一つ書くたびに少しでもいいのでインタビュアーと話をしてあげてください。

コーディングインタビューの問題ですが、言語非依存のアルゴリズム問題を使うことが多いです。[LeetCode](https://leetcode.com/)や[GeeksforGeeks](https://www.geeksforgeeks.org/)に載っているようなやつですね。個人的には既存のアルゴリズム問題を使うのではなく、もう少し実務よりの簡単な問題を自作することが多いです。ちなみにコーディング環境は[coderpad.io](https://coderpad.io/)のようなコラボレーションツールを使います。
さて、合否の判断ですが、正解が実装できなければ不合格、というわけではなく以下のような点を総合して見ていきます。

- 問題を正しく理解しているか
- 選択した言語を正しく使えているか
- 適切なデータ構造やアルゴリズムを選択しているか
- エラー処理は適切か
- 実装されたコードは正しく動くか
- 想定されるテストケースが網羅されているか
- 可読性・保守性が確保されたコードか
- 実装されたコードの計算量（ビッグオー記法）が理解できているか
- 資料（公式ドキュメント、Stack Overflow等）を的確に参照・利用できるか
- インタビュアーに自身の考えを適切に共有できているか

一つ一つ説明しているとキリがないので今回は省略しますが、一項目でミスしても他でリカバリが効いて合格、というケースもたくさんありました。

## 開発チームによるオンサイトインタビュー
さて、首尾よく「エンジニアによる電話インタビュー」をクリアすると開発チームによるオンサイトインタビューとなります（もし、遠地からの応募していた場合、この工程の前にもう一回電話インタビューが入ることもあります）。
この工程では開発チームから2-3人のエンジニア、プロダクトマネージャ、デザイナー/カスタマーサポート、採用担当マネージャなどが参加します。
だいたい半日（4-6時間）はかかるので、体力的にも精神的にもきついインタビューですが、ここまでこれたということは、開発チームがそれだけの人的リソースを投資しても良いと思える候補者と認定されたということです。

インタビュー前にインタビューチームが集まり、だれがどのような質問をするかを事前に打ち合わせすることが多いです。内容はチームやポジションによって様々ですが、大体以下のような感じになると思います。

- エンジニア
  - コーディング
  - システムデザイン
- プロダクトマネージャ
  - プロダクトアイディアブレインストーミング
- デザイナー/カスタマーサポート等の他部署のメンバ
  - カルチャーフィット
- 採用担当マネージャ
  - チームフィット

エンジニアのコーディングインタビューは前ステップの電話インタビューとあまり変わりません。電話インタビューよりも難しい問題がでることもありますが、インタビュアーとのコミュニケーションが対面になるので、電話インタビューよりも断然やりやすいと思います。コーディングスキルが若干見劣りしても、思考が柔軟でコミュニケーションがしやすければ、 Teachability（教育しやすさ？）が高いと判断して合格をだすこともありました。会話が苦手でも身振り手振りやホワイトボード、使えるものを総動員してインタビュアーとコミュニケーションするのがおススメです。

システムデザインインタビューではコーディングの代わりにホワイトボードを使ってシステム設計を行います。システム設計能力の評価がメインですが、コーディングインタビューよりもコミュニケーションがさらに重視される傾向にあると思います。インタビュアーは質問者のことをチームメイトと想定して質問や提案をするので、アイディアについて議論したり、アドバイスを取り入れたりしながら設計を進めましょう。評価ポイントとしては以下のような点になります。

- 問題を正しく理解できているか
- 問題を解決するシステムを設計することができるか
- 使用するコンポーネントは適切か、なぜそれを選択したかを説明できるか
- スケーラビリティが確保されているか
- システムの弱点（単一故障点など）を理解できているか
- インタビュアーに自身の考えを適切に共有できているか

フルスタックだと求められる知識が多いですが、人によって強み弱みがあるのはインタビュアーも理解しています。わからないことはインタビュアーに助けを求めつつ、議論を停滞させずに進められるようだと印象良いですね。

プロダクトマネージャとのプロダクトアイディアブレーンストーミングは、過去にプロダクトマネージャと働いた経験がない人には難しいインタビューかもしれません。私がインタビュアーになったことはないのですが、ここでは以下のような点を評価しています。

- 過去のプロジェクトとそのプロジェクトが与えたインパクトを説明できるか
- エンジニア以外のメンバとのコミュニケーションが円滑にとれるか
- プロダクトの改善案について活発な議論をすることができるか

技術がわかるプロダクトマネージャも多いですが、議論の軸はエンジニアリングではなくプロダクトであることを意識して、あまり技術一辺倒にならないようにすると印象が良いです。プロダクトマネージャは斬新なアイディアも求めていますが、同時に理論的で実現可能な提案も高く評価します。インタビューを受ける会社のプロダクトを予習しておくことと、斬新でなくても良いのでプロダクトの改善案が提案できるように準備しておくと役に立つかもしれません。

カルチャーフィットは他のインタビューに比べてカジュアルで私の経験だとデザイナーやカスタマサポートなど他部署の人が担当することが多かったです。昼食を取りながら行ったり、極力リラックスした雰囲気を作りながら雑談形式でインタビューをします。質問の内容は様々ですが、だいたい以下のような点を評価しています。

- 一方的にならずに会話を進めていくことができる
- 異なる価値観に対して理解を示すことができる
- モチベーションの方向性が他の社員達と類似している

他のインタビューに比べて合否に与えるインパクトは小さいですが、このインタビューの結果をきっかけにチームワークに関する懸念事項が噴出し、結果として不合格というケースを何度も見ています。相手のことを尊重しながら、リラックスして自分らしく話をすることができれば良い印象が残せると思います。
モチベーションの方向性については会社の紹介ページなどにあるミッションを読んで、それに共感できれば大丈夫だと思います。逆に共感できない場合、入っても辛いのでインタビューを受けること自体を考え直した方が良いかもしれません。

採用担当マネージャとのインタビューは候補者が入社後、モチベーション高く働くことができるかを複数の視点から見ています。過去の困難な状況をどう乗り越えたか、失敗から何を学んだか、特定の困難な状況にどう対応するか等、質問の仕方は様々ですが、以下のような点を確認することを目的としています。

- 候補者の考えるキャリアパスと入社後のキャリアパスが一致しているか
- 困難な状況に対しても粘り強く対応していくことができる
- 変化に対して柔軟で、不確実な状況を楽しみながら前に進むことができる
- チームワークに対して前向きで、個人の成功と同時にチームの成功を目指すことができる

入社後はマネージャと二人三脚でプロジェクトの成功と個人のキャリア達成を目指していくとになります。そのため、このインタビューではお互いに良いパートナーとしてここから数年を過ごしていけるかを見極められるかが鍵となります。明確な正解のない質問に対して前向きかつ、なぜそう考えるのかという候補者の価値観が伝わるように答えてもらえると好印象です。

インタビュー後は全インタビュアーが一堂に集まり、インタビュー結果について意見交換を行います。各インタビュアーは自分のインタビューで気になったことや確認できなかった部分を共有し、他のインタビュアーの意見を元に自分のインタビュー結果を補正していきます。このミーティング中に全員の意見が一致してもしなくても、ここでの議論の結果を元に採用担当マネージャが最終的な合否を決定します。本ミーティングで採用に強くプッシュしてくれるような良い印象をインタビュアーに残せていると採用の可能性は大きく上がると思います。

# リクルータ/採用担当マネージャによるクロージング
最初にも書いたのですが、本ステップは上司に任せていたため、インタビュアー視点での解説は残念ながらできません。ただ、これまでのステップ異なり、本インタビューでは候補者に入社してもらえるよう説得することが主目的になっています。あまりにも強気すぎると印象が悪くなりますが、入社にあたっての希望や待遇についての疑問等あればこの機会に共有しておきましょう。
また、候補者を説得するためにCEOやCTOといったリーダシップとのインタビューが設定されることもあります。よっぽどのことがなければこのインタビューがきっかけで不合格になることはないと思いますので、会社のビジョンやカルチャーなど入社にあたって気になることはなんでも質問して、納得した上でオファーにサインしましょう。

# 最後に
エンジニアのインタビューなので技術力がもちろん一番大事なのですが、組織の小さいスタートアップではソフトスキルと呼ばれるそれ以外の部分も多く加味されていることがわかっていただけたかと思います。また、インタビュアーも人間なので、インタビュー中に話が弾んだ候補者に対しては好印象を持ちますし、コミュニケーション力という形で評価にも影響を与えてきます。
知らない人間といきなり1時間話すのは正直大変ですが、インタビュアーも同じように苦労しているので、上手に会話を進めながら仲良くなれるように頑張ってみてください。

最後になりましたが、同じようにインタビュアーをされている方で「うちのところはこんなところが違うよ」等のご意見がありましたらぜひ教えていただけるとありがたいです。今後のインタビュースキル向上にむけて参考にさせていただきます。