# [DRAFT] Meta を退職して Roku に転職しました
2020年11月から[Meta (pka. Facebook)](https://en.wikipedia.org/wiki/Meta_Platforms)のLondonオフィスでMachine Learning Engineerをやっていましたが ([参考](https://cyclic-burst-709.notion.site/Facebook-London-13743da603ce4632bd9f96672faa0d74)),2023年4月に発表された[大規模レイオフ](https://www.theguardian.com/technology/2023/apr/19/meta-layoffs-facebook-cuts-workers)の候補になったので2023年8月29日から[Roku](https://en.wikipedia.org/wiki/Roku,_Inc.)にMachine Learning Engineerとして転職することになりました.
## あなたはだれ?
8年ほど日本の研究機関で理論計算機科学分野(主に離散構造&機械学習)の研究をやっていました.機械学習は全般的に理論(アカデミア)と実践(インダストリ)が乖離している分野なので,実際に役にたつ理論を作るためにも実践を学んでみようと思い,機械学習実践に強いMeta(当時 Facebook)にSoftware Engineer (Machine Learning)として入社しました.
Metaでは主にグラフニューラルネットワーク (GNN) の研究・開発・活用をやっていました.社内で最もスケールするGNNフレームワークの主開発者であり,作ったGNNフレームワークを様々なタスク(incl. インテグリティ,推薦システム)に適用したり,手法の理論的正当性を論文にしてNeurIPSで発表したりしていました([概要](https://proceedings.neurips.cc/paper/2021/hash/08f36fcf88c0a84c19a6ed437b9cbcc9-Abstract.html)).
より詳しい情報は[CV](https://tmaehara.gitlab.io/CV.pdf)を参照してください.個人的な連絡はBluesky ([@tmaehara.bsky.social](https://bsky.app/profile/tmaehara.bsky.social)), Twitter ([@tmaehara](https://twitter.com/tmaehara)), メール (tmaehara@acm.org) などにお願いします.
## UKにおけるレイオフ
UKではLayoff(レイオフ)とRedundancy(余剰解雇)が区別されており([参考](https://www.citizensinformation.ie/en/employment/unemployment-and-redundancy/redundancy/lay-off-short-time-working-and-redundancy/#l67319)),わたしが候補となったものはRedundancyですが,以下では口語的に(or [US Tech的に](https://layoffs.fyi/))これらを同じ意味で使います.
UKの労働法によると,会社が大規模なRedundancyを実行する際には[一定の手順](https://www.gov.uk/redundancy-your-rights/consultation)を踏む必要があります.Metaでは
1. **Collective Consultation**(会社と対象の代表者が相談,Redundancy が生じた原因の追求,内部異動の可能性,退職条件のすり合わせなど)
2. **Individual Consultation**(個別の相談)
3. **Garden Leave**(給与は発生するが会社のシステムにアクセスできない状況)
という3ステップが発生しました.これらにはそれなりの時間がかかり,何もしなくても当分の間Metaに所属していることになりました.これらの期間中に退職してしまうと通常の退職扱いになってしまうので面白くありません.
## 通知を受けての初動
Redundancyの通知を受けた直後に考えたのは「**他社に行くほうが面白そう**」でした.周辺を見まわした結果,自分のチームをはじめとする機械学習チームが大きく影響を受けていたため,UKでの新しい機械学習系のポジションへの内部移動は見込みが薄いだろうと予想しました.非機械学習系のポジションを提示されたとしても,それはわたしがインダストリに来た目的(=実践的な機械学習を学ぶ)と合わないので意味がありません.それとは別に,せっかくの機会なのでレイオフのプロセスを最後まで体験してみたい(i.e., レイオフの "実績解除" のチャンスだ)という気持ちもありました.
わたしにとって最大の制約はVisaでした.わたしは[Skilled Worker Visa (pka. Tier 2 Visa)](https://www.gov.uk/skilled-worker-visa)で滞在しており,このVisaは就職先がスポンサーするものなので,職を失うと滞在資格を失います.レイオフ通知後どれくらいまでに次の職を探さないといけないかを調べたところ,現実的に考えて5ヶ月程度(〜10月)のようでした.5ヶ月もあればなんとかなるだろう,とは思っていたものの,当時はMeta以外の複数のTech企業もレイオフをしているタイミングだったので([参考](https://www.computerworld.com/article/3685936/tech-layoffs-in-2023-a-timeline.html)),特に楽観はせずにLinkedInで複数の機械学習エンジニア・機械学習研究者のポジションに応募しました.
なお,わたしは働く場所にこだわりがないのでUK以外のポジションでもよかったのですが「せっかくだから[UK 永住権 (Indefinite Leave to Remain; ILR)](https://www.gov.uk/indefinite-leave-to-remain) に応募して"[Bad Pub Quiz](https://inews.co.uk/news/politics/british-citizenship-test-bad-pub-quiz-errors-mundane-trivia-2266109)"を解いてみたい(i.e., 永住権応募の "実績解除" をしたい)」と思っていたのでUKの職を中心に探していました.UKで決まらなそうなときのために一応オランダやシンガポールなどの仕事も調べていました.
## 応募
### 条件
冒頭に書いた通り,わたしがインダストリにいる目的は「役にたつ理論を作るために実践を学ぶ」です.これに沿うため,わたしが設定した求職の条件は以下でした.
1. 機械学習サービス開発に関わる職,特に推薦系だと嬉しい.
2. (パブリックデータのみを利用した)論文を執筆・投稿できる.ただしそれが社内評価に繋がる必要はない.
4. Individual Contributor の職([参考](https://uk.indeed.com/career-advice/finding-a-job/what-is-individual-contributor)).
条件1はわたしがインダストリにいる理由そのものなので外せません.推薦系が嬉しいのはMetaで推薦系に関わっていたので,似たシステムほど違いが見えて面白そうだからです.条件2は理論を作ることから軸足を外さないためのものです.条件3はMetaでManagerたちの仕事を見て自分にはあんまり向いていなそうだ(もっと手を動かしていたい)と感じたためです.
給料はわたしがインダストリにいる目的ではないので,これらが全て満たされる場合は無条件としていました.
### 戦略
LinkedInのステータスをOpenにしてCVを最新版にアップデートしました.そして,上述した条件にマッチしそうなポジションを見つけたらどんどんCVを送りつけました.条件に合致するか微妙な場合もとりあえず話を聞いてみようの気持ちで応募してみたり,リクルータから声がかかった場合も積極的に話に乗ってみたりしました.一般にSoftware EngineerのCVは1--3ページ程度のものが多いのですが,わたしは何も気にせず10ページ超の文献リストを含むResearcher的なCVを送りつけました.このCVを評価しない会社はどうせわたしとは合わないだろう(条件2を満たさないだろう)の気持ちです.
残念なことに多くの会社から反応をもらえませんでした.タイミング的に応募数がすごいことになっていたはずなので仕方がないのですが,そのような中でも明示的にReject通知を送ってくださった会社にはとても良い印象があります.
応募時の印象としては以下の通りです.
- US系テック (Google, Amazon, IBM, etc) はかなり求人を絞っており,特にUK内に応募できるポジションが非常に少ない状況でした.また,応募から3ヶ月以上たって面接のお誘いをくださる企業も複数あり,転職は難しいなあと感じました.
- CN系テック (TikTok, Tencent, Huawei, etc) はいっぱい求人をしているようでしたが,CVを送ってもリクルータを通じて連絡してもやりとりの途中で反応が消えて悲しかったです.
- 金融系 (Jane Street, J.P. Morgan, Two Sigma, etc) はそれなりに積極的に人を取っているようでした.応募したCVに対する反応率もそれなりによかったです.ただし話を聞くと論文執筆させてくれない会社が多く,途中でプロセスをやめてもらった会社が複数あります(求人条件に論文出版があるのに入社後に論文執筆させてくれないのは界隈の民として大いに不満があります).
- スタートアップ系は色々ありましたが,Visaの都合で応募できる会社が少なく,あまり応募していません.LLM/Generative AI 系ポジションが流行っていますね.
### 準備
具体的な面接の準備は前回(Facebookに応募したとき)と同じく普通に「試験勉強」をやりました([参考](https://cyclic-burst-709.notion.site/Facebook-London-13743da603ce4632bd9f96672faa0d74)).目指すものも前回書いたものと変わりません.Metaでの経験があるため準備はかなり簡単になりました.具体的には以下の通りです.
- **Coding**. [LeetCode](https://leetcode.com/) の Medium/Hard を50問くらい解きました.元々これ系はちょっとできるのと,Metaで面接者側に立っていたので問われる問題の難易度感がわかっていたり見られるポイントを知った上でやれるのとで,前回よりも少し楽に感じました.
- **System Design/ML Design**. [Sytem Design Primer](https://github.com/donnemartin/system-design-primer) と[Machine Learning System Design Interview](https://www.amazon.co.uk/dp/1736049127) を斜め読みしました.基本的にどのシステムもMeta内で近いものを見ているのでそれを説明するだけです.前回と比べてだいぶ簡単に感じました.
- **Behavioural**. [30 Behavioral Interview Questions to Assess Soft Skills
](https://business.linkedin.com/talent-solutions/resources/interviewing-talent/behavioral-interview-questions-important-soft-skills) に対する想定回答を作りました.会社であった出来事をそのまま話すだけでよいです.前回と比べてはるかに簡単に感じました.
今回の簡単さを考えると,前回研究職経験しかないところでよく開発職に通ったなあという印象を受けますね.
### 結果
就職活動を始めてから1ヶ月程度で(6月前半に)[Roku](https://en.wikipedia.org/wiki/Roku,_Inc.)からオファーをもらいました.これまで受けた全面接のなかで最も体験の良かった面接でした(ナンセンスな質問などが一切なかったし,プロセス全体も非常に速かった).設定した条件を全て満たしているのでほぼ即決しました.
ちなみにRokuはTVに接続するとインターネットTVになる[デバイス](https://en.wikipedia.org/wiki/Roku)を販売している会社です(競合はChrome Cast,Amazon Fireなど).日本での知名度は低いですがUSではトップシェアを誇ります.ユーザは広告を見るかわりに様々なコンテンツを無料で見られる,というまるでオフラインのTVのような収益モデルをもっていて,これが主たる収益源となっています.元々Netflixからスピンオフしてできた会社らしく企業文化はNetflixに近いものがあると聞いています.
## オファー獲得後
### 現在の会社(Meta)での作業
引き継ぎやリファクタリングなどをしつつ退職の手続きを進めていきました.特に揉めるものもなかったのでスムーズに進みました.
### 新しい会社(Roku)に関する作業
開始日の調整,入社契約のサイン,バックグラウンドチェック,Visa申請を進めました.基本的に言われるがまま作業をすればいいので特に難しくはありません.
#### バックグラウンドチェック
今回も前回(Facebook入社時)同様にHireRight社によるバックグラウンドチェックがありました.前回準備した書類を保存していたので言われるがままにそれらをアップロードするだけでした.
#### Visa申請
[Skilled Worker Visa (pka. Tier 2 Visa) の雇用主変更手続き](https://www.gov.uk/health-care-worker-visa/update-your-visa-if-you-change-job-or-employer) を行います.Roku に割り当てられた弁護士の指示に従って作業していきます.これも前回準備した書類をそのまま送りつけるだけでした.準備した書類をSubmitしてから1日でApproveされたそうで,あまりの速さにびっくりしました.
Visaの更新に伴いこれまで使っていたBiometric Residence Permitが失効しました.各種ログインをPassportでできるように変更し,古いカードを破壊して返送しました.
## 休暇中
Garden Leaveから新しい仕事開始までは事実上の休暇です.この期間にヨーロッパを周遊しようと思っていたのですが,Visaの切り替えタイミングと被るためやめた方がいいとのアドバイスを受けました.具体的には
- 新しいVisa応募期間中に出国しないほうがいい(Visa申請が失効するため)
- 現職最終雇用日以降に入国しない方がいい(入国できない可能性がある)
とのことでした.結局,諸々の用事と重なってしまったため周遊の予定はキャンセルして正解でした.
結果,数学の本を読んだり機械学習の本をお勉強をしたりプログラミングのお勉強をしたり論文を書いたりと,かなり楽しい休暇を過ごしています (DRAFT).