カナダで30歳になったのでこれまでのキャリアを振り返る
元記事
2023年7月に30歳の誕生日を迎えたので、せっかくなのでこれまでのキャリアを振り返ってみた📝
2016年:新卒でソフトウェアエンジニアとしてキャリアをスタート
実は、コンピューターサイエンス系の学部でもなければ日本有数のトップ大学というわけでもなくいわゆる中堅どころの私立文系を卒業して、たまたま新卒でソフトウェアエンジニアとしてキャリアをスタートできた。
一応、大学時代に自分の専攻とは無関係にひたすら大学の図書館で、オライリー本を借りまくってプログラミングを独学していたり、当時としては珍しく、リモートで東京の会社でiOS開発のアルバイトなどをしていたが、新卒をエンジニアとして始められたのは完全に運が良かったからだと思う。
入社した会社は、Sansan株式会社という名刺管理というドメインでサービスを展開するToB企業。
今やもう立派な東証プライム上場企業であるが、自分が入社したときはメガベンチャー一歩手前ぐらいの規模感だったと思う。
何をやっていたか?
主には、Ruby on Railsを使ったエンドユーザーには見えない社内基盤のシステム開発に関わっていた。
入社するまでの自分は、gitの使い方も add, commit, mergeぐらいしか知らない状態で、Githubを使ったチーム開発のノウハウを全く知らなかった。テストコードを書くことも全く経験がなかったので、先輩エンジニアとペアプロをしてもらいながら、なんとか日々の業務をこなしていた🤯
普通の Ruby on Rails による開発に慣れてきたところで、同じチーム内のBizメンバーから、欲しいデータの抽出を頼まれることが多かったので、SQLを書く機会がかなり増えた。
日々の自分のアサインされたタスクと並行して、Bizメンバーから非同期でデータ抽出依頼を頼まれるので、コンテキストスイッチの切り替えがとても大変だった。。。
とはいえ今になって振り返ると、SQLをがっつりあの時書いた経験は良い糧になったと思う。
※ その当時、SQLの勉強で読んでいた「10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く」は本当に良い本なので、SQLを活用したい全ての人に薦めたい良書。
また当時、開発・運用していたシステムがある意味ユニークで、一般的なWebアプリケーションというよりは、複数のサービスから構成されるワークフローシステムという感じだった。
ワークフローシステムを実現するために、AWS SWF(Simple Workflow)というたぶん日本国内でもほぼ採用実績がないサービスを使っていたが、正直今なら同じことをするなら Step Functionsの方が良いと思うし、自分もこのAWSサービスについてはもうほぼ記憶がない😇
あとは名刺というドメインを扱う過程で、住所の名寄せをプログラム的に頑張るみたいなことをやっていたりもしたので、いろんなパターンの住所に対応できるような正規表現をひたすら書いて、酷いときは1ヶ月間ずっと正規表現を書いているという時期もあり、軽くノイローゼになった。。。
3年目あたりからは、CI基盤の改善にも取り組み、当時所属チームで使っていた古のJenkinsオンプレミスサーバーからCircleCIに移行させたり、DevOps領域に興味を持ち始めた良いきっかけになった。
そして退職へ
当時所属していたチームが新プロジェクト発足によりチーム体制もガラッと変わった。その影響で終電続きで疲れとストレスがかなり溜まっていき、かつ自分のエンジニアとしてのレベルがあまり成長できていないなと思い始めたのがきっかけで転職を考え始めた。
しかしこの時期は、毎日夜遅くに帰っては部屋の電気も付けずに真っ暗な部屋で1人焚き火動画を観るという状況が続き、心がヤラれる一歩手前な状態だった💀
このような状況だったのもあり、まずはゆっくり休むことを優先して次の転職先を決める前に退職して、晴れて無職ニートに転身した✨🎉
2018年8月:退職からの無職ニートを謳歌
前の会社を退職してからは、以前から興味があった技術書典に同人誌を出す側として参加するために、同人誌の執筆を始めた。
たしか、その時に参加したのは第5回目である技術書典5だった気がする。
北海道で骨休め
無職になり、時間と場所に制約がなくなったので東京を離れ、自然の中で悠々自適に執筆活動に勤しみたいと思ったので北海道の夕張に一時的に滞在することにした。
実は自分は当時、東京にあるギークハウス新宿という主にソフトウェアエンジニアが集まるシェアハウスに住んでおり、北海道夕張にも同じコンセプトのギークハウス夕張があったので、その縁で夕張に行くことにした。
人間よりも鹿の方が多い自然豊かな夕張で、同人誌の執筆を薦めつつ、北海道のあちこちを他の住民と一緒にいろいろ旅行したりして、最高に楽しかった素敵な思い出🌅
技術書典で自分が書いた本を出す
なんとか締め切りや印刷会社への出稿も間に合い、無事に技術書典5にサークル参加。
Firebaseを題材にした同人誌を執筆し、在庫は全部はけるのかな〜とか少し不安も抱えながらだったが、無事全ての本を購入してもらい初めての技術書典は無事終えることができた。
自分の同人誌が商業出版されることになった
上記のイベントが終わろうとした所で、出版社の方が自分のブースにやってきて名刺を渡されたので、これはもしや噂に聞く商業出版の誘いかッッ!!と思ったら本当にそうだったのでかなりびっくりした😅
せっかくの機会だったのでこの誘いを受け、改めて内容を修正したりスケジュール調整をしながらも無事に自分の本が出版され、良いお肉が食べれるぐらいに印税が入った瞬間は感無量だった。
※タイトルは、「Firebaseによるサーバーレスシングルページアプリケーション」という書籍。今となっては情報が古く陳腐化した内容なので購入は薦めないです😣
商業出版も終え、なんやかんやで過ごしつつ10月ぐらいから、そろそろ貯金が底をつきそうになったので、また働くか〜と思い、当時少し話題?になっていたTwitter転職ツイートをしてみた。
思いの外、反応があり嬉しさと共にリプライが大変だった思い出。なんやかんやで後述するCrevoという会社に転職することが決まった。
2019年1月:社会復帰 & 転職して再びエンジニアとして働く
Crevoという動画制作エージェンシー業務と動画制作の工程管理に特化したSaasを展開する企業に入社。
前職では、Ruby on Railsによるバックエンド開発のみの経験だったが、前職と違い数十人規模の会社だったので、Vue.jsによるフロントエンド開発とRailsによるバックエンド開発の両方を行っていた。
この会社は、2023年1月の退職まで数えて約4年勤務したが、一緒に働くエンジニアメンバーにとても恵まれた。ほんっとうに!!恵まれた!!!
何がどう恵まれていたか?
自分以外のメンバーが経験豊富でそれぞれ異なる強みを持っていた
事業ドメインを適切に理解し、プロダクトの改善提案を得意とするエンジニア
フロントエンド領域、特にCSSについてかなり詳しい知識と確かな実装力を持つフロントエンドエンジニア
アプリケーションレイヤーだけでなく、インフラに強みをもったエンジニア
UXとUIデザインの考案・制作に長けたデザイナー
リーダブルかつメンテナブルなリファクタリングを得意とするベテランRubyエンジニア
経営層に対してエンジニアチームの存在感を示してきたプロダクトマネージャー
自分が今まで経験していない分野でも手を挙げれば挑戦させてもらえた
入社当時は、Railsによるバックエンド開発しかできなったが、Vue.jsを使ったフロントエンド開発に挑戦させてもらえた。というか手が足りないので自分もやる必要があった
主にインフラ部分を担当していたメンバーが退職する際に自分が代わりに受け持つと言ったら、信じて任せてもらえた
恵まれた点については、他にも挙げればキリがないが、チームメンバーに恵まれたおかげで自分自身、エンジニアとしてかなり成長できたと思う。やはり優秀なメンバーと一緒に働くことこそが一番の福利厚生だと実感。
※ 千葉の土善旅館で開発合宿したのは良い思い出😌
できるようになったこと
約4年の中でチームメンバーに恵まれたおかげで、ざっと棚卸しすると以下のような経験とスキルが得られたと思う。
ハードスキル面
PORO(Plain Old Ruby Object) を活用したRailsアプリケーションのリファクタリング
Vue.jsによるコンポーネント指向なフロントエンド開発の経験
CSS Grid Layout を活用したメンテナブルかつレスポンシブなCSSレイアウト実装
AWS Solution Architect Professional の資格取得
EC2で稼働するシステムをECS Fargateによるコンテナベースなインフラに移行
TerraformによるAWSリソースの構築と運用
CircleCI, Github Actionsを使ったCI/CD基盤の構築・運用
ElasticSearchを使った検索機能の開発
Serverless Framework を使った AWS Lambda の実装・デプロイ
AWS MediaConvert を使った動画ファイルのトランスコード処理基盤の構築
バックエンドとフロントエンドが独立して開発が進められるようOpenAPIを導入
ソフトスキル面
否定ではなく提案ベースのコミュニケーション
例えば、プルリクエストのレビューコメントで、「〜してください。」という口調よりも「〜してみたらどうでしょう?👀」みたいなイメージですかね
自分が持つナレッジを記事などにしてチームに展開する
インシデント対応のガイドラインを策定してチームに展開
技術選定のための調査とチーム展開
Slack絵文字を使った和やかなチャットコミュニケーション😊
2023年:フリーランス開始
前職は、チームメンバーに恵まれた大変良い環境だったが、所属していた会社の状況に変化もあったのと4年という区切りの良さとその会社で、できることはやりきったという達成感もあったので、退職を決断。
元々、本業とは別に副業で個人の仕事は既にしていたので、その流れで今年に入ってからフリーランスになった。
副業だけでは流石に収入が保てないので、新たな本業を探すべくリモートワークOKな案件を探してみた。何社か面談した中で、技術スタックよりかは以下のようなソフト面を重視して主に面談を受けていた。
正社員・業務委託で、変に温度感を分けていなさそうな会社・チーム
アジャイル開発を採用しているか
スプリントの振り返りは個人単位ではなくチーム単位での振り返りをしているか
チームの心理的安全性を図るベンチマークの1つとして
クロスファンクショナルなチームかどうか
バックエンド・フロントエンドで明確にロールを分けていないかどうか
雑談できる雰囲気かどうか
正直、ハードスキルは後でいくらでもキャッチアップできると思っていたので、自分の中では上記のような価値観を特に重視して、2023年2月から新しい会社に参画した。
予想通り、参画後のギャップはほぼなかったので今後も特別な理由がない限りは今の取引先とお仕事を継続できればなと思う🙏
やっぱり人間として良い人と働きたいし、自分も何か良い影響を与えられる人でありたいというお気持ちです🙌
2023年7月:カナダに来た🇨🇦
ここまで自分のキャリアを振り返ってみて、まあそんなに悪くないというかむしろ本当に人に恵まれたなあという気持ちしかない。別にこのまま日本でキャリアを続けていても良いかなという気持ちはありました。
ただ一方で、自分の中で秘めたる気持ちとして、いつか海外でソフトウェアエンジニアとしてキャリアを積みたいという気持ちは悶々と燻っていた。
なぜ海外でソフトウェアエンジニアとしてキャリアを積みたいのか?
きっかけとしては、「エンジニアとして世界の最前線で働く選択肢」という書籍を読んだことで、日本以外のソフトウェアエンジニアのキャリアを知るきっかけになり、まさにアメリカン・ドリームを感じたからです。
また、5年後10年後を見据えた時に漫然と今のまま日本でずっとソフトウェアエンジニアだけの経験を積むことが、自分にとって本当にやりたいことなのだろうか?という気持ちもあります。
キャリアの選択肢として、エンジニアマネージャーやプロダクトマネージャーなどチームやプロダクトに対して最終的な責任を持つ立場やロールを目指す時に、北米圏のような多様なバックグラウンドを持つ人に囲まれて働く経験は未来から逆算すると、絶対に得たほうが良い機会だと考えました。
そこで、いろいろと調べる中でカナダの特にバンクーバーが海外挑戦のファーストチョイスとして最適だと考え、今自分はカナダにいます🇨🇦
なぜカナダ・バンクーバーを選んだのか?
主な理由は以下になります。
自分にとってアメリカは、就労ビザを取得するハードルがかなり厳しい
持っている学位、アメリカの移民政策事情、単純にスキル面が不足
カナダは他の英語圏の国と比べるとビザ面でハードルが低い・現実的
カナダはアメリカと同じ英語圏かつバンクーバーは同じ西海岸エリア
他の英語圏の国・都市と比べて日本人のテック系コミュニティの規模・情報量が多い
たぶんソフトウェアエンジニアとしてバンクーバーに行く人なら全員知っているであろう Frog というコミュニティの存在が大きい
バンクーバーと日本の時差なら、なんとか日本の仕事の折り合いがつけられそう
ざっと挙げるとしたらこんなところです。自分は今まで人の縁に助けられてきたので、コミュニティの存在は大きな決め手の1つでした🙋♂️
これからについて
この記事を書いた時点で、まだこちらに来てちょうど2週間のカナダガチ初心者勢です。
当面は、英語学習の方に時間を割いて半年経つぐらいのタイミングで本格的にこちらのソフトウェアエンジニアの求人に応募していこうかなと考えています。
最近の北米市況は、あまり芳しくなくレイオフも多々あるという状況なので、ベストと言えるかわからない状況ですが、自分がコントロールできる部分についてできることは全部やるという姿勢で、後は成るように成るしかないです💪
兎にも角にもまずは英語がんばるぞい!!