10年かけてカナダでソフトウェアエンジニアになるまでの道のり
修士課程を退学した15年前に、僕は全く実現可能性を考えずに”30歳までにアメリカの大学院に留学”という目標を立てました。 もう一度大学院に行きたい、行くなら世界トップのアメリカがいいだろう、そんな程度の認識でした。 ただ、これはどちらかといえば無理やりひねり出した30歳まで生きる理由であって、そこまで強い意志があったわけではありません。 しかし、おかげで何とか30歳を超え40歳目前まで生き延びることはでき、気が付けばアメリカではなくカナダで永住権を取って暮らしています。 大学院留学は引き続き他のハードルが高くて達成できる気はしませんが、15年前に目標を立てた時点では認識できていなかった 「海外に移住する」という難儀を10年ほどかけて乗り越えることはできました。
けれど、そういえば事の顛末を一つにまとめたことが無かったなと気づいたので、僕のキャリア10年+αを振り返って記事にしてみました。 想定読者は、僕と同じように何らかの理由で海外に移住したい、特にソフトウェアエンジニアという職種で海外で稼ぎたいと思っている方や、 そういう方にアドバイスする機会のある方 で、こういう人がいたよと話の種になるようにN=1の単一事象として 僕が何をやってきたのかが淡々と書いてあります。既に情報としては古いですし記憶が曖昧になっている部分もあるので、 こういう人が過去にいたんだな、という程度の情報量にはなりますが、他人の思考過程や試行を知れることはそれだけで価値があると 自身の体験から確信があるので、インターネットの片隅に情報として残しておきます。
長いので見出しでまとめるとこんな感じです。11年目以降はおまけです。
目次
- カナダでソフトウェアエンジニアになるまでの道のり
- 1年目(2009) 修士課程退学→駆け出しインフラエンジニア
- 2年目(2010) 初めてのアメリカ滞在一週間
- 3年目(2011) ビザの重要性を認識
- 4年目(2012) 子会社への駐在でアメリカへ
- 5年目(2013) ソフトウェアエンジニアを志すも、アメリカの駐在は終わる
- 6年目(2014) 日本でソフトウェアエンジニアを経験する
- 7年目(2015) グローバル企業の社内転籍でアメリカを狙う
- 8年目(2016) 社内面接にことごとく失敗する
- 9年目(2017) カナダに学生で移住を決めたら、カナダへの社内転籍のオファーをもらう
- 10年目(2018) カナダに社内転籍で移住
- 11年目(2019) カナダの永住権を取得
- 12,13年目(2020,2021) 昇進、初めての自由な転職
- 14,15年目(2022, 2023) サポートエンジニアからスタッフエンジニアへ
- 終わりに
- まとめ
カナダでソフトウェアエンジニアになるまでの道のり
1年目(2009) 修士課程退学→駆け出しインフラエンジニア
まずバックグラウンドのおさらいを。暗くて面白くもないお話ですが、物語の始まりなので。
大学の学部は工学部機械情報工学科というロボットを中心とした学科にいて、ソフトウェアは授業と研究で少し扱いましたが、 いかんせん不良学生だったのでちゃんと学んだとは言えません。就活もしなかったのでそのまま無策で修士課程に入りましたが、 自分の行動は変わらなかったので修論を書くのは無理でした。修士修了見込みで就活をして内定もらった DeNA に、修士課程出るの無理そうだけど それでもいいかという話をして、既卒という形で取ってもらえたので修士は退学しました。 1
何かやることが見つかって退学とかそういうかっこいい理由ではなく極めて不真面目な理由で修士をやめて、エンジニアとしての経験はゼロだけど ひとまず技術職として採用してもらえた、それが僕のキャリアの始まりでした。冒頭の”30歳までにアメリカの大学院に留学”という荒唐無稽かつ コンプレックスにまみれた目標はその頃に捻り出したものでした。とはいえ、何であれ目標があるとそこまでの距離が分かるのは良いことで、 少なくともお金と英語が必要なのは間違いないとアホでも認識できたので、まずはお金が稼げるようになるためにしばらくは手に職をつけようと決めました。
DeNA での1年目は中々エキサイティングでした。僕はコードを書くソフトウェアエンジニアではなくインフラエンジニアとして配属されて、データセンターで 1日で100台のサーバーを物理的にラックに入れる作業から、システムアラートの24時間365日の対応、キャパシティプランニングにデータベースチューニング等々、 全て現場で叩き込まれながら生き延びてました。2
1年やってみて、インフラエンジニアについては、ソフトウェアエンジニアよりも数が少ないのでその分希少価値を見いだせていて、 これをこのまま続けていれば食っていくことはできそうだなと感じてました。コードを書く機会はほぼ無いものの、読む機会は非常に多くて、 それが後の自分のベースにもなっていきました。障害対応の基礎も、この頃身に着けたものが全ての基礎になっています。
一方、英語だったり留学だったり、みたいなところは優先度を下げたのでなんの進捗もなしでした。英語はこの時点では、学部大学院では真面目に勉強しなかったので、 大学受験レベルがせいぜい(入試では英語は得意科目ではあった)で、 TOEIC を初めて受けた結果は 595点でした。
2年目(2010) 初めてのアメリカ滞在一週間
この年の前半に、僕は生まれて初めてアメリカに行きました。それまででパスポートを使ったことは一回のみという人生でしたが、MySQL Conference という シリコンバレーで開催された大きなカンファレンスに参加させてもらえることになり、初めて1人で乗る飛行機 3・1人で泊まるホテルを海外で体験することになりました。 この経験は自分にはとても衝撃的で未だに強く刻まれています。なぜなら、本当に一言も英語を発することができなかったからです。 入管の質問やホテルの受付等で数語は話したと思いますが、それ以外はコンビニの買い物ですら何を言っているかわからないので無言で済ませ、 タクシーも会話が怖いし支払いも良くわからないのでホテルから会場の移動も長い徒歩とバスで済ませ 4、肝心のカンファレンスでは参加者と会話をすることはなく、 夜ご飯も貼ってあるメニューから番号でオーダーすれば済むファーストフードか、コンビニで無言で買った何かを食べてました。
たった一週間でしたが、それでもこの時みたシリコンバレーの街並み(道がクソ幅広くて歩いてる人ほとんどいない)、Stanford のキャンパス、青い空は、日本の限られた場所しか 見たことのなかった自分には十分すぎる刺激でした。 ここにいつか戻ってこよう、と何の根拠もなく思い、Stanford に留学できたらどんなにか素晴らしいだろう、という夢は今でもみています。
仕事はあいかわらず同じことを続けていて、自分の裁量で決断して進めることも多くなってきたので、少なくともインフラエンジニアで食ってはいけるなと確信できました。 これは一つ大きなマイルストーンで、何も持ってなかった状態から少なくとも食っていくだけのスキルは身についたので、徐々に次のステップを考えるようになりました。
3年目(2011) ビザの重要性を認識
YAPC::Asia という当時大きめのテクノロジーカンファレンスがあって、僕はそこで発表している人達にあこがれていました。そういう人達と運よく繋がって 仲良くしてもらったりしているうちに、どうしても自分も何か登壇してみたいと思うようになり、この年初めて登壇に成功しました。 おかげで人前で技術について発表することには全然抵抗がなくなって、この後の仕事でも度々活かすことのできるスキルとなりました。
仕事ではいわゆるプレーイングマネージャー(人事評価はしない)をやることになって、人を動かす(自分よりもはるかに経験値もスキルも高い人を含む)経験をしましたが、 これは自分には全く向いていないということが強く認識できたおかげで、これ以降マネージャーを目指すという道を考える必要がなくなりました。
徐々に海外留学をどうやるか考え始めた時に、さらにその先を見据えると移住するという目標の方が自分にはあっていると思うようになりました。 これは話すと長いしあまり共感も得られないと思うので省略しますが、端的に言えば日本に住みたくないという思いが強くあったということです。
さて、(アメリカに)移住するとは何なのか?この当時の自分は全く分かっていなくて、単に仕事のスキルがあって英語もできれば、日本国内で 転職するみたいにそのうちいい案件が見つかるのかな、と考えていました。そんな時に、当時サンフランシスコで働いていた方とお話する機会があり、 開口一番にビザについて説明されました。これは一つの大きなターニングポイントでした。
それまで、母国以外で働くということについて何も考えたことが無かった自分が愚かでした。ビザ(就労許可)とは無条件で与えられるものではなく、 戦略的に動かないと手に入る可能性は低い、特にアメリカは制約がきつく H-1B の人気も上昇してきた所でしたので、DeNA の様にアメリカに子会社を持つところで働いて社内異動する というのは、可能であるならばとても良い選択肢であることを示唆してもらいました。5
ビザに関する認識を一番最初の時点でインプットしてもらえたことは本当にありがたく、この後10年近くはどうやってビザを得て永住権につなげるか、 について考えそれを第一優先で選択し続けることになります。もしもこの時点でビザについての認識をできていなかったら、数年を無駄にしていた 可能性は大いにあり、今の自分にたどり着けているかは怪しいです。
とはいえ、待っているだけではついぞ機会は訪れませんでした。
4年目(2012) 子会社への駐在でアメリカへ
既に飯を食えるくらいの技術は身についたので、早くアメリカに行きたいという思いが強まってきたタイミングで、社内公募という形で サンフランシスコの子会社への1年間という駐在の機会を得ることがついにできました。まさに自分の思い描いた通りのシナリオが実現したように思えました。
とはいえ、特に英語は全く使えるものではなかったので必死こいて勉強しなおして、TOEIC で示すと2010年の595点から2012年には785点まで上げられて、 ついでに YAPC::Asia でまた登壇の機会を得ることができたので、英語での登壇にもチャレンジしました。
そうして秋にはついにサンフランシスコに移って、元々やっていたインフラエンジニアの仕事を ngmoco 側のシステムでやることになりました。 チームには日本人はおらず、今までとは全く違うシステムを担当するので、コミュニケーションでも知識でも劣っている状態でしたが、 それでも少しすれば勝手が分かってきて、仕事をすること自体はできるようになりました。6
このまま1年の期限後も駐在できる様な価値を発揮できれば、そのまま永住権まで繋がる可能性もあり、順風満帆に見えました。が、そう上手くはいきませんでした。
5年目(2013) ソフトウェアエンジニアを志すも、アメリカの駐在は終わる
ここまで4年間はコードを書かないエンジニアをやってきて、(駐在ではあるが)アメリカでもこれで食っていけることは分かったものの、どうにも物足りなさを感じていました。 コードを書かない・書けないでもエンジニアとしての仕事が山ほどあることが分かったのはいいんですが、もっと上に行くにはコードを書ける様にならないといけない、 と覚悟を決めました。しかし、仕事ではコードを書く役割は回ってきません。なので、個人のプロジェクトで git の使い方を 覚えるところから始めて、色々な言語を触ってみたり、オンラインコースでアルゴリズムから低レイヤ、さらには iOS アプリまで学ぶことにしました。 こうして、いつその時がきてもいいように準備を始めました。
そうこうしている内に1年が過ぎようとしたところで、残念ながら会社の決定として日本に戻る様に言われました。 これは駐在で来ている限り避けることはできず、 この経験が次のアクションの方向性を決定づけました。一つ目の試行は失敗に終わりましたが、少なくとも1年の滞在・就労経験はでき、結果として 2010年に感じた直観は間違ってなかったと確信しました。7
というわけで、この年の年末には日本に戻ってきました。
6年目(2014) 日本でソフトウェアエンジニアを経験する
日本に戻ってからは、全く新しい仕事をすることになりました。新事業(MYCODE という遺伝子検査サービス)をちょうど立ち上げることになっていて、 そこに最初のソフトウェアエンジニアのうちの1人として入りました。入った時点ではコードは0行、やりたいことと期日だけが決まっているような状態でした。 振り返ると、この1年が僕の15年のキャリアの中で唯一、コードを書いて機能を実装するというソフトウェアエンジニアをやった期間でした。
これまで全くソフトウェアエンジニアの経験は無かったですが、上述の様に自力で鍛錬はしていたおかげで、特に躓くこともなく入っていって、 むしろ周りに各種ライブラリやツールの使い方を紹介したり、プロジェクトで必要な内部ライブラリを作成したりもしてました。 また、遺伝子解析周りでも一部実装が必要だったので、僕は全く生物のバックグラウンドは無かったですが、専門家と一緒に話ながら ATGC を扱うコードも書きました。 他にも、セキュリティ周りの話を進めて、実際暗号化のための設計と実装を行ったり、CI/CD のプロセスを作ったり、色々手広くやっていました。
無事にサービスをローンチすることはできて、改めて次のステップを考えてみると、やはり(永住権を見据えて)アメリカで働くことの優先度は高く、 一方でこのままいてもまたサンフランシスコに戻れる機会はなさそうだったので、転職を考えていくつか試しました。一縷の望みをかけて、 アメリカのポジションに直接応募してみて面接をしてみたものも数個ありましたが、オファーまでは至らず(おそらくまぐれでオファーまでいっても、ビザが厳しかったでしょう)。
そんな時に、AWS に日本の Solutions Architect (SA) というポジションで採用があるけどどう?とメッセージが飛んできました。 SA が何なのか全くわかりませんでしたが、AWS であれば社内転籍という形で L ビザを使った移住が可能なので、これは可能性があるかもと思い 面接を受けてみて結果的にオファーをもらいました。8
最終的にはこのオファーを受けて、ここから数年かけて L ビザを取るという目標を持って Amazon に入りました。
7年目(2015) グローバル企業の社内転籍でアメリカを狙う
SA は実際には AWS のお客さんと会って話をして、アーキテクチャの相談に乗ったり課題を解決したり、はたまたお客さんのユースケースを サービス開発チームにフィードバックしたり、外部での講演をしたり、といったエンジニアのバックグラウンドを元に、お客さんのビジネスがより良くなるためにできることを全てやる、 という感じの仕事でした。ビジネスも B2C から B2B になって、全てが変わって新鮮でした。
英語という意味では、日々のコミュニケーションはお客さんとは日本語になりますが、開発チームや他の国の SA 等と会話するときは英語を使うことがあり、 また社内のドキュメントも英語で大量に書かれているので読む機会も多くなりました。さらに、当時は英語で発信される情報を素早く日本語に翻訳して 発信することで、日本語でもタイムリーに情報を届ける工夫をしていたので、かなりの量とスピードの和訳もこなしました。
徐々に慣れてきて、半年もするとベテランという感じになってしまうようなスピード感でしたが、新しいことが学べてとてもよい機会でした。 転籍という意味では L ビザだといずれにせよ1年は日本で働くことになるので、この年はあまりプロアクティブには動きませんでした。
8年目(2016) 社内面接にことごとく失敗する
SA の仕事にも慣れてきたので、当初の目的であるアメリカへの転籍に向けて、社内で面接を何度か試みました。 9 SA のままでの転籍も考えましたが、せっかく AWS にいるならやはり一度はサービス開発のエンジニアがしてみたいと思ったので、 アメリカのソフトウェアエンジニアのポジションで探しました。 仕事で何らかつながりを持ったチームの人に個別にお願いしては 面接をしてもらったり、社内のジョブボードで見つけたポジションに連絡とってみたりと繰り返しました。 AWS にいる間にたぶん合計 10 回くらいは受けたと思いますが、残念ながらどれもコーディング面接で落ちました。
僕はコーディング面接が嫌いで、クソ忙しい中であれの練習に時間を割きたいとは思わなかったので、代わりに実際に面接を何度も受けることで 慣れていって、もしたまたま受かったらラッキーと思いながらやっていました。が、現実には一度も通りませんでした。 現職(SA)でコードを書いていないので、コーディング面接もそうですがその他の質問についてもどうしても対応する経験の引き出しが少ない、もしくは古いので詳しく覚えてない、 という状態になってしまうのが大きな理由でした。
英語という意味では、この頃は逐次通訳をすることが多くなりました。 サービス開発チームが日本に来てお客さんと直接会話をすることがままあるのですが、 お客さんが日本語話者のみ、サービスチームは英語話者のみ、という状況では通訳をする必要があります。 通常は専門の通訳を雇ったり、もしくは AWS のビジネス開発の担当が通訳することが多いのですが、 技術者としてサービスの細かいところもお客さんの課題も分かっている自分が通訳した方が適任なケースが結構あったので、 双方向の逐次通訳を1日中やる、なんてこともありました。これは本当によい経験で、英語が飛躍的に伸びました。
9年目(2017) カナダに学生で移住を決めたら、カナダへの社内転籍のオファーをもらう
海外移住はそろそろ期限が迫っていました。30歳はとっくに迎えていたので当初の目標はもはやどうでもいいのですが、別の要因として子供の年齢がありました。 数年前に子どもが産まれていて、その子に英語で育つ環境を与えたいと強く思う様になりましたが、5歳に近づきつつあってそろそろ移住しないと、 言語や文化への慣れという意味で大変になりそうだな、と考えていました。なので、この翌年には物理的に移住できる様にする必要に迫られました。10
そんな折に、ふとカナダに移住した方の情報を見かけました。今まで全く考えたこともなかったですが、そういえばアメリカの隣にはカナダという国がありました。 自分の達成したいこととしては、日本を離れることと子どもを英語の環境に置くことになっていたので、別にアメリカにこだわる理由は特になくなっていました。 カナダは非常に移民に優しい制度で、永住権もポイント制なので、なんならカナダに一度も行くことなしに永住権をとることだって、条件が揃えばできてしまうというのです。
なぜこんな魅力的な選択肢にずっと気づかなかったのか、と正直今でも後悔していますが、改めてカナダをターゲットにして調べてみました。 すると、自分の現状ではポイントが低すぎてさすがにいきなり永住権は難しいことが分かりました。 そこで、Master course に学生ビザで移住したのちに働いて、永住権を取ることはできないか調べてみると、可能そう ということが分かってきました。 これはアメリカでは H-1B のせいで現実的には厳しいのですが、カナダなら H-1B の様な難しさはなく、更には狙っていたコースは卒業すれば職が得られてなくても 永住権に申し込める可能性ありというものだったので、パートタイムで働ける(配偶者も自由に働ける)という条件も相まって、 何通りかの方法でビザ(就労許可)および永住権を狙える可能性があることが分かりました。11
IELTS を受けて足切りを突破し、出願が始まったらすぐに書類を出して、結果半年後には無事に入学許可をもらいました。12 これでひとまず物理的にカナダに移る算段が立って一安心、会社にもその旨を伝え準備を始めようとしたところで、思いもよらない事態が起こりました。
この時の僕は、学生として行くけれども永住権に近づける様に、できれば学生のうちからパートタイムでの就労を始めて、コネを作っておきたいと考えていました。 そこで、まだ Amazon にいるうちに現地のオフィスでパートタイムのソフトウェア開発ポジションが無いか探そうと思い、社内名簿で見つけたマネージャーに片っ端からメールを送っていたのですが、 その中の一通がカナダで Amazon S3 を開発しているチームのマネージャーに渡り、「実はフルタイムのエンジニアポジションがあるんだけど興味ある?」という連絡がきました。13
とはいえ、面接自体はいつもと変わらずコーディング面接で、実際受けたところ3回中1回のコーディング面接は、自分でも分かるくらい明らかにダメだったので、あぁこれは終わったなと思いました。 それでも、学生で移住する道がすでに確保できていたので、あまり悲壮感なく受けられ、ダメだったなと思っても(既に10回くらい落ちているし)もはや落ち込むことはありませんでした。
数日後、そのマネージャから結果の連絡のための電話がきて 「オファーすることにしたよ」と聞いた時は自分の英語の聞き間違いだと思いました。 合格にはいくつかの要因はあって、僕のこれまでのバックグラウンドがユニークで、チームにはないもの(例えば AWS のアーキテクチャの指南)をもたらしてくれること、 コーディング面接は確かにダメだったけど Trainable な(後で訓練できる)レベルだったこと、を伝えてもらいました。
Amazon に入って以来、分散システムに興味が出て社内のリソースなどで学びまくっていたので、まさにその分散システムの第一人者である S3 を 開発できるというのは夢の様な機会であり、海外に移住したい、ソフトウェアエンジニアになりたい、という思いも一緒に叶えてくれ、 更には移住にまつわるコストもかなりの部分を会社が負担してくれるし、永住権の申請準備もすぐに始められる、ということで、願ったりかなったりのオファーとなりました。 入学許可を得ていた学校にはごめんなさいをして、S3 の開発者としてカナダに移住することを決めました。
10年目(2018) カナダに社内転籍で移住
事務手続き的には結構難儀して、ビザ(就労許可)を取るための LMIA というプロセスにも時間がかかり、 結局半年くらいかかってようやく物理的にカナダに移住することができたのが、働き始めてから10年目でした。 こちらに来てからは、会社のサポートですぐに永住権の書類集めを始め、IELTS も改めて受けて(1回目で点数足りず2回受けた)、年末には無事に永住権を申請をすることができました。
仕事は久々のソフトウェア開発(2014年の約1年しか経験がない)でしたが、しばらくは S3 の内部の仕組みを学ぶのが大変でした。 分散システムとして理論を学んだものが本当に生きて動いていて感動を覚える一方、それを動かし続けるのは本当に大変だと実感しました。 開発自体は当初の期待と近しい形で、直接の機能開発よりも傍系の開発を担当していました。チーム内ではほぼソロで、むしろ社内の別組織の人と話ながら 実装する形になったので苦労はしましたが、よい体験になりました。
英語は、読み書きがとても重要なのでたくさん読んでたくさん書きました。口語だと、自分も含め出身が多様なメンバーが集まっているので、英語の癖がたくさんあって 慣れるまでは聞き取りに苦労しました。特にフランス語訛りとロシア語系訛りの英語は聞きなれてなかったので、最初戸惑いました。14
11年目(2019) カナダの永住権を取得
永住権は半年くらいで許可がでる予定が、結局10カ月くらいかかり、11年目の終わりにようやくカナダの永住権を手に入れることができました。 これで、長らく自分の職業選択を縛ってきたものから解放され、カナダで自由に働くことができる、もしくは働かなくても住むことができるようになりました。
仕事では Amazon の開発者がもつ大きな役割の一つである oncall も始まって大変ではありましたが、たくさんの学びを得られました。15
12,13年目(2020,2021) 昇進、初めての自由な転職
Amazon には結局もう2年ほど在籍して、その間に Senior にも昇進できましたし、Amazon EKS という別のサービスチームでも働くことできました。 在籍期間を通じて、結局コードを書くよりも、oncall したり、ドキュメントを書いたり、他のチームと交渉したり、ということの方が多かったです。
ただ、永住権を既に取得して Amazon で働き続ける理由もなくなったので、新しい挑戦をしてみようということでいくつか面接を受けて、 Autify の Technical Support Engineer というポジションのオファーを受けました。
14,15年目(2022, 2023) サポートエンジニアからスタッフエンジニアへ
Technical Support Engineer として顧客からの問い合わせの技術調査を1年やったのちに、もっと会社全体にインパクトの大きいポジションで 働いてみたいと思っていたところで、Staff Software Engineer への昇進をオファーしてもらい、現在に至ります。 今はアーキテクチャレビューだったり、新機能や新しい挑戦を早い段階から入って技術的にサポートしているような感じです。
終わりに
特に深い理由もなく、単純に自分が知ってたからという理由でアメリカに行くことを目標にした結果、8年間はうまくいかなかったけど、カナダに切り替えたとたん、 あっというまに移住できて永住権も取得できました。もちろん8年間積み重ねたスキルがあったからではありますが、あのままアメリカだけに絞っていたら 未だに日本に住んでいた可能性は大いにあります。
実はカナダには、転籍のオファーをもらった時点では行ったことすらなかったのですが、バンクーバーは西海岸なのでまぁサンフランシスコと似た様なもんでしょという ノリで決めました。それから5年程住んでみて、子どもが大事にされる点や気候(雨の多さは違いますが)、チェーン店の種類等、期待と差はなかったです。 むしろ、シリコンバレーの様にガツガツした人は少なく、落ち着いた雰囲気(そういう人が多い地域に住んでいるという理由もあります)、 人の多様性、安全性などはサンフランシスコよりも自分たちには合っていると感じています。
ここから、再度アメリカのビザに挑戦するというのは可能ではあります。例えば、カナダ国籍を取得して TN ビザというものを狙うことも考えられます。 ただ、自分の場合はもうアメリカへの熱は冷めていて、旅行でさくっと行けるだけで十分に感じています。16またあの大変なプロセスを家族で繰り返すことを 想像すると、体力も持たないのでもういいかなと思います。
もし、海外=アメリカ、という図式に縛られてしまっている人がいたら、カナダ含め他にも選択肢がたくさんあることに気づいてもらえると良いと思います。 アメリカに行くことが目標なのか、それとも日本を出ることが目標なのか。もしも後者なのであれば、わざわざ競争相手の多いアメリカを狙うよりも、 カナダの様に比較すれば楽に行けるところを選択肢にした方が、目標に近づきやすいかもしれません。17
また、ソフトウェアエンジニアという職種もそれに引きずられすぎる必要は無いかもしれません。僕は結局15年のうち1年ほどしか手をがっつり動かして コードを書いたことはないけれど、むしろそれ以外に積んできた経験値が生きた結果として、移住もできたし昇進もできたと思っています。 ぶっちゃけ、ソフトウェアエンジニアになりたい人は五万といるので、競争相手を減らすという意味では別の職種の方がいいかもしれないです。18
あと、僕の英語に関する経験と、ソフトウェアに関する経験は既に別でまとめたことがあるので、よろしければそちらもご参照下さい。
まとめ
以上、10年+αを振り返るとさすがに長くなりましたが、一個人の体験談と意見をまとめておきました。ここに書いたことは部分的には 1on1 でいろんな人に 喋ったことはあるのですが、ブログにまとめておくことでより多くの人の参考になれば幸いです。 1on1 とか DM で相談したいとかあれば、以下を参考にいつでもご連絡下さい。
ソフトウェア開発やカナダのことについて、雑談/壁打ち/人生相談などを僕としたい方いれば、ここから適当に予約入れてもらって大丈夫です。(念の為DMももらった方が見逃し防止に安全かも) 日本語または英語でお願いします。
— Ryosuke Iwanaga (@riywo){" "} April 25, 2021
非同期で十分であれば、サクッとDMでどうぞ〜 https://t.co/kPDY1JKHm2
Footnotes
-
この時の人事の方には、僕を拾ってもらって本当に感謝しています。ここでダメってなってたらどうなってたかは、あまり考えたくありません。 ↩
-
最初の研修課題が MySQL のレプリ遅延パッチを作る、怪盗ロワイヤルという当時ヒットしたガラケーのソーシャルゲームの裏側で MySQL の分割等をやれたのは良い経験でした。 ↩
-
初めてなのになぜか LAX 乗り換えの SFOかSJC という便で、LAX の長い入国審査に捕まった上に乗り継ぎ便がターミナルの端の端でバスに乗る必要まであったので、 走りまくってギリギリの時間で搭乗口にたどり着いて、よくわからない英語でもう席が埋まってるとか言われたけど、やっぱ空いたから乗れる、とかなった記憶。 人生初めての1人で海外・1人で乗る飛行機だったので激しいトラウマを負い、10年以上たった今も LAX はこれっきり一度も使っていませんし、 LAX でなくても乗り継ぎには今でも恐怖を感じるので、可能な限り避けて生きています。 ↩
-
もちろん Uber なんてものはまだなかった時代です。 スマホはあったけれど海外パケホーダイみたいなのは自分の認識範囲ではまだ無かったので、滞在中は Wifi の外では何も情報が取れませんでした。 なので、ホテルでマップを可能な限りオフラインダウンロードし、歩く道やバスの時刻をメモしまくってから繰り出してました。 ↩
-
この前年に ngmoco というサンフランシスコの会社を買収しており、実際に何名かのエンジニアは異動していました。 ↩
-
日本以外に引っ越しをするというのがどれだけ大変かというのも思い知らされました。荷物を整理するのも大変だし、 日本での各種手続きも半端ない。渡米してからは SSN の取得から始まり、銀行口座開設に家探し、運転免許も試験を受けて取得しないといけない。 IKEA で家具を一式購入したものの配達日の予定時間には全く現れず、いきなり英語での電話を経験したり、トイレは早々に詰まったり。 それでも、既に会社で何人か同じように駐在として行っていたので、いろんな人に助けてもらってどうにか暮らし始めることができました。 ↩
-
例えば、西海岸の空気は、日本では副鼻腔炎に常に悩まされていた僕にとっては鼻炎がほぼ起きない 夢の様な空気でした。湿気でジメジメしない夏も汗かきには最高でした。 また、この年の Super Bowl は San Francisco 49ers が出場した時で、以来10年程 49ers のファンを続けています。 Candlestick Park が最後のシーズンで、そこで試合を何回か見ることもできました。 ↩
-
あまり本気には考えていなかったので準備はほとんどせずに行ったのですが、自分のスキルセットと SA に求められる資質がちょうどハマったことと、 Amazon の行動規範である “Our Leadership Principles” が自分に合っていたことが要因だったと思います。 ↩
-
Internal transfer と呼ばれる仕組みで、基本的には社内でも社外と同じような面接を受けて、オファーをもらえれば転籍するという感じです。 ↩
-
改めてこれまでの戦略を振り返ると、Amazon の L ビザを使ってアメリカを狙うのはいいのだけど、SA からソフトウェアエンジニアへ役割を変えつつ転籍するのは やはりハードルが高そうというのが見えてきて、戦略を少し練り直す必要がありました。1つは、Amazon Japan でソフトウェアエンジニアになって、 それから数年後にアメリカへ移る。これは現実的ではあるのですが、時間がさらにかかってしまうのが懸念でした。もう1つは、SA としてアメリカへ 移ってそれからソフトウェアエンジニアになる。これは英語のレベルが SA 的にちょっと厳しいかもというのと、もう SA には飽きてしまっていたので これ以上は無理かなという思いがありました。 ↩
-
それまでアメリカしか調べていなかったので、カナダがこんなにも楽だと気づかなかったのですが、もし30歳前に気づいていればワーキングホリデーも組み合わせて 戦略を練ることもできて、永住権申請という意味では若い方がポイントが高いという事実もあるので、惜しいことをしたと思います。 ↩
-
ちなみに行く予定だったのは NYIT Vancouver でした。推薦状もいらず、IELTS と GPA だけで出願できたのででとても楽でした。 また、入学の手続きをエージェントにサポートしてもらいましたが非常に親身にやって頂き、あのサポートがなければカナダには移住できていませんでした。 入学に至らなくて本当に申し訳なかったです。 ↩
-
Systems Development Engineer (SysDE) というポジションで、Software Development Engineer (SDE) という Amazon の一般的なソフトウェアエンジニアの ポジションとはちょっと違う役割なのですが、開発チームの1エンジニアとして働くことに変わりはなく、どちらかというとバックグラウンドの違いから、 インフラの自動化だったり CI/CD に近いプロジェクトを担当する感じの職種です。 ↩
-
インドと中国・韓国は、サンフランシスコの時にも SA の時にも同僚に多かったので聞きなれてました。 ↩
-
昼夜問わず飛びまくるシステムアラートや問い合わせを、当番制でエンジニアが対応するのですが、 僕のいたチームの oncall はかなり負荷の高い部類でした。S3 を使っているお客さんのデータの可用性や耐久性に直接影響あるシステムを担当していたので、 精神的な負荷はかなり高い上に、システムは10年以上も運用されてきたもので複雑になっており、ローテーションに入るだけでも何か月か必要でした。 特に夜間や週末の担当は大変で、リソースの少ない中で正しい判断と適切なエスカレーションが求められます。痺れる体験を何度もさせてもらって、 おかげでたくさんのスキルを身に着けましたが、もう一度やれと言われたらお断りしたいレベルのタフな oncall でした。。。 ↩
-
ちなみにバンクーバー国際空港ではアメリカの入国審査ができます。これは、アメリカに向かう飛行機に搭乗する前にアメリカの入国審査が 終わるということで、セキュリティを抜けたあとこの入国審査が終わると、その先の空港施設は事実上アメリカということになります。 なので、アメリカの目的地に着いた時にはアメリカの国内便扱いなので、飛行機を降りた後に入国審査が不要でめちゃくちゃ便利です。 ↩
-
もちろん移民に関する状況は刻々と変化するので、その時点での最適解は自分で調べる必要があります。 カナダでも、年によって難易度は変わるし、今後の政策によっては状況は大きく変化するかも知れません。 ↩
-
例えば、AWS の日本語サポートエンジニアは海外にも拠点があり、移住するだけなら仕事内容は変わらずに場所だけ移ることができたりします。 日本語が流暢な人を現地で採用するよりも、日本で採用した方が楽なことは想像に難くないと思います。 ↩