2年半ぶりに転職活動をして、AmazonからMeta (旧Facebook)に転職しました。興味のある人の今後の参考になればと思い、大まかなプロセスをまとめておきます。MetaのプロセスはAmazonでの面接とかなりプロセスとして重なっていたので、その他 US Big Tech (及びその影響下にあるTech 系Company)でも参考になるはずです。GAFAと書きましたが今はMAAMA(Microsoft, Amazon, Alphabet, Meta, Apple)ですね。
なお自分はTechnical Program Manager (TPM)という役割 (Job title)で、面接の内容は役割によって違います。少なくともTPMにCoding Interviewは知る限りではありません。
#TPM – プロジェクトの実行とリリースに責任を持つという役職です。複数チームが関わる中規模ー大規模プロジェクトに主に投入されます。日本で言うプロジェクトマネージャーに近いですが、’Technical’ とあるようにエンジニアと設計や優先度、トレードオフなどの技術的な詳細についての議論もリードします。
ステップ0 リクルータとつながる
US のTech 系の会社には、有望な候補者を見つけてきて面接につなげるリクルータという役職があります。リクルータは最初のフィルターなので、その人の目に留まれば少なくとも具体的な一候補者としてその会社と話を始めることができます。リクルータは通常採用権はありませんが、常に窓口になるのでいい関係を築いておくことが重要です。
世にはカバーレターの書き方やレジュメの書き方などの指南がいろいろあります。それらも参考にするに越したことはないですが、自分としての最初のステップはリクルータとつながることです。レジュメやカバーレターを磨くのはその一つの手段でしかなく、人気の会社ではそれだけに頼っているとなかなか進まないことが往々にしてあります。
それではリクルータとどうつながるかというと、身も蓋もないですが自分のネットワーク(コネ)で中で働いている人とつながるのが一番有力です。わらしべ長者的に会社をステップアップして、LinkedIn経由でリクルータからコンタクトしてもらうという手もあります。自分もAmazonに入ってからはリクルータからコンタクトされる回数が圧倒的に増えました。一方でかなり遠いつながりの知り合いをAmazonに推薦したこともあります。
ステップ1 リクルータと電話
リクルータの目に留まると、大体の場合リクルータとの電話がセットされます。ここでは基本的なところで採用ステップに入れていいかが確認されます。具体的には次のステップである電話面接に進みたいかの確認、Visaの状況、基本的な経験の確認、などです。希望年収や、現在の役職についての質問も定番です。場合によってはこのタイミングでスキルに関わる基本的な質問をされることもあります。基本的にはリクルータは候補者を探していてかつ受かってもらいたいので、採用自体やポジションについて質問があればこのタイミングでかなり答えてもらえるはずです。
ステップ2 電話面接
ステップ1で特に問題がなければ、次のステップとして電話面接に進みます。ここでは実際に同じ役職をしている社員から、経験などを聞かれます。TPMの場合には以下のようなことを大抵聞かれます。Engineering Managerだと、ここにシステムの運用に関する質問や、部下の育成についての質問が入ってくるのではと思います。Engineer ポジションだと、ここで簡単なコーディングやアルゴリズムに関する質問が入ってくるかもしれません。
A – これまでの中で最も難しかったプロジェクトについての詳細。どのような役割を果たしたか、リスクに対してどう対処したか、Tech Stackとそのトレードオフなど。この手の質問は、過去の経験を棚卸ししておくこと、TPMとしてはできるだけプロジェクト全体に関わるような例を挙げることがおそらくポイントです。細かいチームレベルの話や実際の実装の話をしてしまうと、現場レベルの話以上のことはできないのではという印象を持たれる可能性があります。
B – TPMとして心がけていることは何かを試される質問。何もわかっていないところからどうプロジェクトを始めるか、優先順位をつける判断基準は何か、など。
C – システムデザイン。Instagramを作りたいけどどうやって作る?Uberみたいなシステムを作りたいけどどうやって作る?など。これは練習できるので、 YouTubeなどでSystem Designの動画を見ておいたり、自分で実際に設計をしてみたりしておくのがよいです。自分が今やっているプロジェクトの技術的な詳細を理解しまとめておくこともいい練習になります。
最初の電話面接は大体45分 – 1時間ほどしかないので、上記のポイントを駆け足で巡っていくことになります。大体最後に候補者から質問をする機会があるので、いくつか質問を用意しておくことも必要です。
ステップ3 オンサイト面接
電話面接を通過するとオンサイト面接になります。通常オンサイト面接ではHiring Managerを含むチームメンバーが4−5人とそれぞれ1時間弱面接することになります。個別具体的なポジションだと入社後に一緒に働くメンバーの場合が多いですが、役割に対して人を取るような場合だと、入社後全く会わない人が面接官で出てくることも往々にしてあります。
また、最近のCovid−19の状況を鑑みて、オンサイト面接はVideo Conference Callになりがちです。他方ステップ2の電話面接も映像付きのVideo Callになったりするので、ステップ2と3の違いは面接人数と時間(深掘りのされ方)の違いだけになりつつあると思っています。エンジニアの場合にはここでコーディング面接が入ってくることが多いと思います。
この辺りは、Metaだと以下のようなWeb上のサイトに実は全てまとまっています。質問例も載っています。
https://www.facebookcareers.com/tpm-prep-onsite/
Amazonだとこの辺りです。
https://www.amazon.jobs/en/landing_pages/interviewing-at-amazon
ステップ4 オファー&給与交渉
めでたくオファーが出た場合には、そこでRSU,サインオンボーナスなどを含めた給与が提示されます。複数社ののオファーを同時期にとって、あちらではこういうオファーをもらったという話をしながらオファーをあげてもらう、というのが基本的な戦略と聞きます。条件で検討するべき内容や交渉の仕方についてはMorihiro Ryuさんの以下の本「エンジニアとして世界の最前線で働く選択肢」に詳しいです。
給与については以下のサイトが参考になります。
Levels.fyi 各社のJob level と給与の大体の相場がわかります。
https://www.levels.fyi/?compare=Google,Facebook,Microsoft&track=Software%20Engineer
RSUなどについては以下の一連の記事が非常に参考になります。AmazonとMetaでRefresherのつけ方が違うなど、この一連の記事を読むまで知る由もありませんでした。
で、シリコンバレーでいくら稼げるのか(Part 9)
https://anond.hatelabo.jp/20201101061517
参考になれば幸いです。