見出し画像

[海外就職] カナダ・トロントでRailsエンジニアとして働くようになるまで

はじめに

先日ワークビザを取得し、自分の中でカナダに来てからの最低限の目標をクリアできたと感じたので、これまでのことを記録し、これからの目標を改めて確認したいと思い筆を取ります。今回の僕のように、ある程度日本でエンジニアとしての経験を積んだ後、移住を目的にトロントで働いている、という記事は僕がまだ移住を模索していた2018年当時見かけなかったこともあり、この記事が今後誰かしらの参考になればと思います。とりあえずはStay Home中の暇つぶしにでもなれば幸いです。
尚、この記事ではカナダやトロントがいかに住む場所としていいか(気候含む)などについての言及はしません。

誰?

@tooooooooomy です。GitHub上では@kazu9su です。アカウント取得当時インターネットに疎くてアカウント名を統一しなかったことは未だに心残りです。
新卒でマーケティング・リサーチ事業の会社で4年ほど働いた後、FRIL(現ラクマ)を作っているFablicに入社し、その後楽天への吸収合併に伴う転属を経て、現在トロントにあるE-commerce関連のスタートアップで働いています。専門はWeb Applicationのバックエンドで、普段メインで書いているのはRubyです。

トロントにいる理由

ソフトウェアエンジニアとしての夢は、シリコンバレー、マウンテンビュー、サンフランシスコ・ベイエリアの現地企業で働くことである。と思う方も多いのではないでしょうか。かくいう僕もその1人でした。しかし実際には特にトランプ政権になって以降、移民政策は厳しくなっていく一方で、移住するのは容易ではありません。Web上にあるありとあらゆる先人の記事を読み、「エンジニアとして世界の最前線で働くという選択肢」を読み、米国へのインターンを斡旋している会社に行ったり、実際にSFで働いている日本人エンジニアの方たちとお話させてもらって感じたこと、それは個人としてどれだけ頑張っても移民できるかどうかに運の要素が大きすぎる(ただしお金と時間がある場合は別)ということでした。漠然とそこまでしてサンフランシスコに行きたいのかな…と思っていた頃、転職したFablicでバンクーバーから帰国していた@ujm(現在は再びバンクーバー在住)が僕のメンターで、彼からカナダのあらゆるいい話を聞き、さらにRubyKaigi2018のスピーカーだったJulianに話しかけて友だちになり、前職の先輩で、当時すでにトロントで働いていた@takkyuuplayerから色々と話を聞いてリアルな想像ができた等の数奇な経緯を経て、2019年1月に楽天を退職後すぐに、2年前まで一切頭になかったカナダ経済の中心地であるトロントに引っ越してきました。

ソフトウェアエンジニアとしての英語

ソフトウェアエンジニアとして一番大事なのは技術力である。SNSでも本でもよくこの言葉を見かけました。僕もこれは真理だと思うし、自分もそうありたいと願っています。しかし、では英語はできなくてもよいのか?というと、一昔前ほどではないのではないかと現地での転職活動を通して感じました。もしかすると、GAFAなどの要求される技術力の高い企業ではまた話が違うかもしれませんが、僕が受けたローカル企業では、円滑なコミュニケーションが取れるか?を技術力と同じように重視していました。では、コミュニケーションとはどうやってとるのでしょうか?そう、英語です。面接に置いては、自分の技術力・経験を表現し、同僚と技術的な話題のみでなく、ビジネス要件を考慮したディスカッションができるかを問われますし、小さな会社のシニアポジションであれば、ジュニアエンジニアの指導をこの人に任せられるかということも見られます。実際に技術面接(1時間×2回)、Technical Deep Dive(サービスディスカッション的な)、そしてランチと計半日がかりの最終面接を行い、結果的に英語力が理由で落ちるなどの苦い経験もしました。
総合すると、技術力が一番なのは当然だけれど、英語が思うように使いこなせなければ窓口は狭まるのではないかと思います。
僕の具体的な英語力について知りたい方はこちらの記事を読んでいただければ。

現地ミートアップ

当初僕が想像していたような、日本で言う地域rubyコミュニティのようなものはありませんでした。それでも地域のTechコミュニティに参加するようにはしていましたし、発表もしましたが、そこから採用につながるということはありませんでした(発表したのは現在の会社に入社後)。ただし当然ではありますが、発表したり参加者と話す経験はとてもいいモノでした。


インタビューを受ける前にやったこと

ベタにCracking the Coding Interviewを読み勉強しました。一ヶ月程度では付け焼き刃感否めなかったので、できれば数ヶ月かけてじっくり準備することをオススメします。
あと、インタビューの練習はPrampでよくやってました。同じくインタビューを受けようとしている人たちと、interviewer役とinterviewee役を交代しながらコーディングインタビューの練習ができるサービスです。便利ですね。
ここで頭がまっさらになったり、一切問題文が理解できなかったり、最低限必要な単語を知らないなどの経験ができると、何をすればいいかがわかって便利です。例えば僕の場合、引き算(subtract)とか知らなかったりしました。

レジュメ、会社選定

2019年1月に渡加後、1ヶ月ほど語学学校に通い(体験として行きたかった)、2月中はコーディングインタビューの練習やワーホリの申請などをして、3月に入ってからIndeed, Linkedin, AngelListなどのサイトを通してまずはレジュメを送りまくりました。会社を探すときの条件として、まずは年収の設定をしました。働くのみでなく移住が目的なので、ワークビザを申請する際に「この人にはカナダで働いてもらう価値がある」と移民局に思ってもらう必要があります。つまり、自分と同じような経験を持つカナダ人エンジニアの平均年収くらいは最低でももらう必要があります。体感として、 年収が一定ラインを超えるとシニアとしての能力と経験を要求される確率が高いと思います。(GAFAなど人気企業を除く)。注意点としては税金が日本より高いので日本と同じ額でいいやと思ってると手取りは下がります。また、家賃や外食費などの生活費も日本で生活するより高いと思うのでそこも考慮したほうがいいかもしれません(シェアハウスに住む・ホームステイする場合を除く)。
次に技術スタックですが、基本的にはRails BackendメインのFull Stack寄りでも可、くらいの条件で探しました。英語を流暢に話せるわけでもなかったので、ビザ取得も見据えて、入社後に自分のバリューを最大限発揮できる領域に絞った感じです。

コーディングインタビュー

一般によく言われるような(僕の観測範囲)アルゴリズムの問題一辺倒ではなく、APIの設計やリファクタリング・要件に従ったシンプルなクラスの実装など、内容は多岐に渡りましたが、基本的には普段コードを書いているかを見られていると感じました。ただしこれは、僕が大手企業ではなくスタートアップを中心とした比較的小規模の会社を受けていたからかもしれません。それとは別に、自分のキャリアの中で取り組んだ技術的な課題の説明であったり、サービスデザインのディスカッションなどもやりました。書いてて思いましたが、日本の技術面接とあまり変わらないですね。つまり、日本語で以上のことができればあとは英語に翻訳できれば多分いけます。

Behavioural インタビュー

2時間のインタビューがあるとすると、1時間はこのインタビューというくらい、コーディングスキルとともに重視されていると感じました。簡単に言うと、その人がどういう人であるか、会社のカルチャーにマッチするか、一緒に働きたいかを見られます。基本的にはめちゃくちゃ質問されます。英語を喋り慣れてないとしんどくて頭パンクするかもしれないので、喋り慣れておいたほうがいいです。
例を挙げると、バグの報告があったときにどうやって解決するか?チームで働く上で気をつけていることはあるか?などの質問を聞かれると思います。これも、日本語でイメージできていれば英語でもある程度いけると思います。

オファー & 承諾

交渉をできるかどうかは自分の現在のステータスによるので、無職の状態で海を渡り、さらにビザのサポートもして貰う必要があった僕には、そこまで選択肢はなかったというのが実情です。ただ、HRリソース会社を通して企業からオファーをもらい、さらに別ルートで他の企業からもオファーをもらった状態であれば、$10,000 程度の金額交渉は全然できそうな感じでした。結局は同程度に魅力的だと感じる会社複数からほぼ同時にオファーをもらわないと成立しないので、難しいことには変わりないです。ちなみに僕の場合、2回目の転職活動の際には、前の会社が合わなかったということもあり、Glassdoorの評価や実際に面接を通して感じたヒトの雰囲気を金額よりも重視しました。(ワークビザ~永住権取得を考えると年単位でその会社に所属する必要があるため)

リファレンス

突然ですが、北米のエンジニアのキャリア観についてみなさんどういったイメージをお持ちでしょうか?現状よりいい職があったら転職してまもなくともさっさと転職してしまう、というようなイメージを持っていたりしませんか?
これはある意味で真です。しかしこれが成立するのは、優秀なエンジニアが、引き抜きに近い形で転職するときに限るのではないかと僕は思っています。それ以外、つまり僕のケースのように、短期間の在職中になんらか事情があって転職活動をすると、まず間違いなくなぜ転職をしたいのか?ということを聞かれます。ここで答えるべきは、日本で同じような状況になった場合とそう変わらないと思います。そしてさらに大事なことに、オファー承諾後にはリファレンスチェックがあります。その人を雇って本当に大丈夫かを第3者に聞くというやつですね。そこで僕が現在の会社から当時受け取ったメールをそのまま載せます。

Please note this offer is contingent on references and a background check. For the former, please provide 2 to 3 references to include name, phone, email and professional relationship. Please note one of these must be your recent Canadian employer.

お気づきでしょうか。そう、気を許せる同僚のみでなく、前職の雇用者にどういう仕事ぶりだったかを問う連絡がいきます。もし後ろ足で砂をかけるような辞め方をした場合にどうなるかは、想像に難くないと思います。雇う側も雇われる側も、気軽にレイオフしたり、転職する社会というイメージが先行しがちですが、日本よりも人のつながりを採用時の評価指標として重視する文化は根強いと思います。皆さん気をつけましょう。
ちなみにリファレンスの1人には@ujmを指名し、めちゃくちゃ推薦してもらいました。感謝。

現地企業で働いてどうか

現地の会社で働いた感想ですが、働きやすいかどうか、働いてて最高か、働いてて楽しいか。それらはすべて会社によるという、とても当たり前のことを改めて実感しました。なぜそう言い切れるかというと、すでにカナダ2社目で、1社目はあまりフィットできるとは感じられず4ヶ月ほどで辞めたからです。逆に言うと、単純に働きやすい会社・環境で働きたいというモチベーションであれば、日本を出る必要は無さそうです。実際に僕が働いていたFablicは最高でしたし、今でも働きやすい企業かどうかの基準です。現在Fablic創業者である@shotaさん@takejuneさん@yutadayoさん新しく始めた会社でもエンジニアを募集しているようです。興味あれば。
技術レベルに関しても同様で、結局は会社次第かなぁ、という感想です。
それ以外の要素、例えば多様な人種が集まった社会で、その中で設立された会社で、同じく多様なバックグラウンドを持ったチームメイトと共通のゴールを設定し、あーでもないこーでもないと議論しながらプロダクトを作るという経験は、ここでしかできないのではないかと思いますし、僕はとても楽しんでいます。思うようにコミュニケーションが取れない(英語がしゃべれない)自分に嫌気が差したりすることもなくはないですが。
また、ここまで読んでくださった方はお気づきかと思いますが、僕はこの転職(ざっくり日本→カナダ間)でスキルやポジション的な意味でステップアップはしていません。基本的には前職と同じようなロールで、要求される職責もほぼ同じです。ただ、それを英語でそつなく行えるようになる。という課題を自身に対して課している感じですね。
なので次の短期的な目標としては、永住権を申請している間に、シニアを目指して今の自分の足りないものに向き合っていきたいと思っています。

画像1

集合写真。トイレから戻ってきたら撮影始まってた

画像2

朝から新鮮なフルーツが地味に嬉しい

画像3

会社のアイドルWinnieちゃん🐶

※ 2020 5/19日現在、ロックダウンに伴いオフィスは完全閉鎖されており、全員Work From Home体制です。念の為。

ビザと永住権

僕は働き始めるに当たり、ワーキングホリデーを利用しましたが、現在どうなってるかはわかりません。もしワーホリが使えなければ、渡加前にビザ前提でオファーを貰う必要があり、条件はより厳しくなるのかなと感じます(バンクーバーではそういった事例をいくつか耳にしました) 。
ただし最近、The Comprehensive and Progressive Agreement for Trans-Pacific Partnership (CPTPP)という制度がスタートしており、この条件に当てはまる方はそこそこ容易にワークビザを取得できる可能性があります。落とし穴としては、Computer Science・Software Engineering、頑張って広げてInformation Technology、に関連した学位を持っていることがビザ取得の必須条件です。日本でエンジニアやってるとここで引っかかるかも…。僕もですが、CS専攻してない人多いと思うので。

永住権に関しては、移民を目指しているヒトには明るいニュースが続いているようです。永住権は点数制なので、とりあえず自分のスコアを計算してみてもいいかもしれません。

転職市場としてのトロント

トロントは転職の候補地としてどうか、ということを最後に触れたいと思います。サンフランシスコを始めとしたUSの物価の高騰が激しすぎるということもあり、カナダを次のオフィスの候補地としている企業が多いことは周知の通りだと思います。その中でも経済の中心地であり、周辺にWaterloo大学やToronto大学などのCSに強い大学があって優秀な学生がスタートアップを始めることも多いトロントは、エンジニアの募集数としてはバンクーバーよりも多いかもしれません。
数年日本で経験を積んでいる方であれば、その技術は通用すると思いますし、あとは希望する会社から納得できるオファーをもらえるかどうかだと思います。年収は夢がない気もしますが、物価や税金なども考慮すると「日本よりいい」くらいだと思います(ポジションと交渉、そして採用された企業によるところが大きい)。
他のメリットとしては、トロントはNYやSF以上に超多民族都市なので(多分)、日本人だからという理由で敬遠されることもほぼないはずで(少なくても僕はそうだった)、海外転職の第一歩目としてはいい環境だと思います。
注意したほうがいいかなと思うのは、未経験もしくはjunior ~ intermediate レベルのエンジニアを受け入れる土壌は、バンクーバーよりも広くはないかもしれないということです。現在の僕の会社も、前述したWaterlooの学生をinternshipで採用することこそあれ、一般向けにjuniorの募集は行っていないのが実情です。ただ、1人未経験からスタートアップに採用されたという人(日本人じゃなくて東欧から来てた人)を知っているので、可能性は0ではないと思いますが。
このあたりは興味あれば、バンクーバーでクリエイターの就職を支援しているFrogさんにお話を聞いてみるといいかもです。僕もバンクーバーを旅行した際に一度お話させてもらいましたが、とても親切に現地の就職状況などご教示してもらいました。ただしトロントじゃなくてバンクーバーメイン(今後はトロント進出も考えているとのこと)。

終わりに

ということで僕がここトロントで体験した生の声を記事にしてみました。日本にいたときに探したけど無い、欲しいと思った情報をまとめてみたつもりなので、どなたかの参考になれば幸いです。自身の経験として、ネット上で見かけるような一部の超優秀なエンジニアでなくとも、ステップアップとして海外に転職できると感じています。
今後としては、Web系以外の領域で働いてみたいという気持ちもあるので、永住権取得後に大学院でCSやOperating Systemを学ぶことを視野に入れつつ、頑張っていきたいと思います。但し予定は未定です。
あとは、もしこのnoteを見ていただいた方の中にカナダやUS(特にトロント含む東海岸周辺)で現在ソフトウェアエンジニアとして働いている方がいらっしゃったら、ぜひ情報交換含めて仲良くしていただけると嬉しいです。
最後に例のリスト(US or CAアカウントが必要)、もしくはサポートも参考にできると感じていただけたらよろしくお願いします。
とりとめのない話でしたがお口に合えば。

この記事が気に入ったらサポートをしてみませんか?