zakisan's blog

https://github.com/kenzan100

海外でエンジニアとしてキャリアアップするためにやったこと。ベルリンのスタートアップからトロントのShopifyに転職します。

最後に記事を書いてから(2016年12月)なんと3年半の月日が流れてしまいました。

kenzan100.hatenadiary.jp

この度、カナダ・トロントにてShopifyという会社にSenior Software Developerとして転職することになりました。この機会に今までの仕事のふりかえり・棚卸しをしたいと思います。

現時点までで私は8年ほどエンジニアとして働いていますが、今年で「キャリアの半分以上を」海外で過ごしたことになります。なかなか感慨深いものがあります。

この数年何してたの?

最後にブログを更新した2016年12月以降、驚くことに同じ会社で3年半働き続けていました。ウェブ系スタートアップでの平均勤続年数から言うと「3年半は長くいた方」な気がします。

今の会社に長くいすぎ!?世界の主要IT企業エンジニアの平均勤続年数は3年以下 | Geekroid

ですので、まずはこの会社で過ごした3年半がどのようなものだったか記しました。

タイトルに「キャリアアップのためにやったこと」と書きましたが、結果としてキャリアアップにつながる経験値をたくさん積ませてもらえました。

実は勤務地も一回変わっており、去年の9月には現職を続けたまま、カナダ・トロントに引っ越しています。その顛末も別の機会に詳しく説明できたらと考えています。

f:id:kenzan100:20200708041723j:plain
トロントに引っ越しました。

目次

ハイライト

1.自分が在籍した3年半で、会社が3倍ほどの規模に成長した。

現職はChartMogulという、サブスクリプションビジネス向けに分析ツールを提供している会社です。 市場のニーズをタイミングよく捉えており、自分が働き始めたときには既に成長中でした(だから応募しました)。

そこから今までに、会社の人員も、ビジネス規模も約3倍くらいに成長しました(売上の方はどこまで出していいのか分からないので、人数でいうと15人から50人ほどになりました)。

3年半順風満帆だったわけではありません。けっこうしんどい時期が何回かありましたが、それを生き延びて、さらに(後述しますが)成長路線にもう一度乗せることに貢献するという、貴重な経験を積ませてもらいました。

2.成長とその間の紆余曲折で、自分の役割・責務が大きく変化した。

おおまかに分けて、3年半で下記の経験を積ませてもらいました。

1年目:Individual Contributor(部下を持たずに個人のタスク遂行で価値を出すことを求められている人。"IC"とかって略されたりします)としてやることをやる。コードを読んで、設計に対して意見を言えるように「刀を研いで」おく。

2年目:チームリードとして、チームの障害・構造的な問題を取り除いていく。1on1、技術面接、ロードマップへの提案など、やることが増える。

3年目:テックリードとして、データパイプラインの設計を行う。エンジニアリング部署全体の技術理解度、10倍・100倍スケールしたときのことを見据えて、要件の再定義を行う。チームリードを兼任しながらプロジェクトの成功に責任を負う。

詳しくは下記に別記事としてまとめたので、参考になれば。

kenzan100.hatenadiary.jp

3.3年目に入り、自分の成長速度の鈍化を感じた。

そのテックリードとして担当したデータパイプラインがリリースにいたったのが、今月3月のことです。 この時期の自分を分析すると、 「疲労がたまっている」 「バランスが崩れている」 という状態だったと思います。

会社を成長させること、自分が成長すること、価値を出し続けることなどについて「行き詰まっている」感覚がありました。

  • 以前と同じ質で物事を提案しているはずなのに、なかなか賛同が得られない。
  • チームとしてのスピード感が出ない。
  • プロジェクトの完遂と会社の成長のあいだの「変数」が増え、フィードバックがうまく機能しない。

おそらく、会社の規模・構成が変化するにともない、会社の文化が変わったことに気づけなかったのだと思います。

機能を開発し、みんな志高く同じ目標に向かって突き進むことが当たり前だった入社1〜2年。 ビジネスが大きくなり、個人からチーム、チームから部署になりはじめ、また入社する人たちのマインドセットも徐々に変わってきた後半の1〜2年。

自分はどちらかというと「働いている姿を見せること」で他の人に影響を与えてきたと思います。 そのリーダーシップスタイルは、まだ会社が小さいうちにはいいのですが、より大きな組織になると影響力ががくっと落ちます。

また、テックリードとして「この設計はどこまでスケーラブルなのか」という質問に常に答え続けなければいけません。このときに自分の脳裏をよぎったのは、「今の会社で自分は技術選定をリードする立場だが、自分よりもすぐれた知識やプラクティスが業界には絶対にあるはず」という思いです。

自分が現職に留まりつつキャッチアップするのがいいのか。シニアやリードの新規採用で新陳代謝を起こしたほうがいいのか。「自分が居続けることに弊害もあるのかもしれない」と考え始めるようになりました。

こういう振り返りができたのは最近です。プロジェクト終了直後は、とにかくデータパイプラインの再設計、チームリード、テックリードを並行して進めて、かなり疲労困憊でした。

これからは?

ソフトスキルの目標: "Calm, centered leadership"

「自分が働くことで成果をあげる」という意識のままでリーダーシップポジションに入ると、「自分みたいなのが複数人いればいいのに」という危険極まりない思考に入っていきかねません。CEOにフィードバックをお願いする機会があったのですが、その中で自分に刺さったのは「Calm, centered Leadership」という表現です。

今すぐ成果が見えずとも、自分のやったことが長期的・持続的な変化・変革につながっていくという信念をもつ。そのために研鑽を積む。その結果として上述のリーダーシップスタイルが導き出せるのでは、と踏んでいます。

その際、技術スキルは、周囲を「Enable」する、その点で有用になってきます。 そのためには、自分の興味分野で深掘りできるポイントをしっかり掘っていき、その中から普遍性を見出すことが大切です。

一方、マネジメントという観点で「Enable」するためには、ビジネス・部署の複雑性を理解しながら技術が「本質的になにを阻害しているのか」「何を変革できるのか」それらを様々な立場の人が「納得するしかない」形でプロジェクトに落とし込んでいくことが重要です。

技術目標: "Deepen the portfolio"

ChartMogulに入社した当初は、「Rails/Full-stack」「Getting things done」「Consistent learner」あたりのコンビネーションで価値を出せていたと思うのですが、 経験年数が二桁になるころには、より体系化された知識と専門性がないとキャリアが続かないのではと感じています。

ここらへんのキャリアトラックで悩んでいたときに、下記二つの視点が大変参考になりました。これも解説し始めるときりがないので、また別の機会に。知りたい人はコメント・連絡いただければ幸いです。

https://firstround.com/review/the-engineers-guide-to-career-growth-advice-from-my-time-at-stripe-and-facebook/

www.oreilly.com

Shopifyを選んだ理由

Shopifyでは、マーチャントの海外展開を支援するAPI基盤の開発、というチームに配属される予定です。

転職活動中は、TechLeadとしてやっていたデータパイプライン分野を深掘りすると言う意味で、データエンジニアリングにふったキャリア選択も候補にありました。

しかし、

  • まだ一つの専門領域に舵を切っていくには経験値・サンプル数が足りない気がした。
  • それよりも先に、大規模かつ既に馴染みがある技術スタックで運営されているシステムの内部を知りたい。そうすることで、幅と深さの両方を知った上で専門領域を考えられると思った。
  • Shopifyで働いている人にリファレンスをとったところ、みな口を揃えて「良い会社」といっているので、マネジメントの部分でも学ぶことがありそう。
  • 何よりも、最後のチームマネージャーとのマッチング面談で、話が一番弾んだ。

というあたりで、Shopifyからのオファーを受諾することに決めました。

また一からの出直しです。ワクワクしています。

海外でエンジニアとして働き続けるためのアドバイス

1.生活ががらっと変わるときは、職務・スタックは変えない方がいい。

初めて住む国で、職務内容も変えるとなると、相当のパワーが一度に要求されます。 一社目では日本でやったエンジニア職務で足がかりをつかむと、「文化・生活に慣れる時期」というバッファがとれるのではないでしょうか。

2.二社目からは、成長をとっていこう。

人は環境に影響されやすいものなので、成長中の会社に身を置くことは自分を成長させる上でよい方法だと思います。

こういう考え方を、Growth Mindsetと言うそうです。

3.「がんばって働く」という価値観はマイノリティになりうることを肝に銘じる。

これはニュアンスが難しいのですが、 「みんながんばって働くわけではない」ということをしっかり考えたことがありませんでした。

自分で会社をやったりスタートアップの初期メンバーだったことがあると、つい「まじめに働くのは当たり前でしょ(そうじゃなきゃ会社が潰れる)」と思ってしまいがちです。しかし、会社の成長路線・雇用体制によっては、それが長く続くわけではないですよね。会社のステージが変われば、社員の意識も変わります。

自分が期待する「勤勉さ」というのがなくても、会社に価値を与えられる人はいるのだろうな、それが多様性の意味だろうな、と考えるようになりました。勤勉さがマイノリティになりうることを意識していないと、めっちゃストレスになります。気をつけて。

4.フルリモートと、フルリモート+フル時差は全然違う。

チームメンバーの時差の最大10時間という、ハードな状況が何回かありました。 今でも、どうやったらその時差でいい感じのエンジニアチームがつくれるか分かっていません。

よりワークフローが非同期に特化した部署(最近のカスタマーサクセスなど)ならうまく回るのかもしれません。クリエイティブな技術設計の話など、私はホワイトボードを引っ張り出して、1時間集中して同僚とガチャガチャ議論したいタイプなので、これを非同期で置き換えるイメージがまったく湧きません。

成功事例があったらぜひ聞いてみたいです。

おわりに

こんな方とお話ししてみたいです。

  1. Ruby/Rails界隈でのデータパイプラインの知見、データ処理のライブラリに物足りなさを感じている人。Apache BeamやFlinkをそれ界隈の技術をやっている・やってみたい方。
  2. ベルリン、もしくはトロント進出済み・進出予定のエンジニアの方。もしくはそもそもエンジニアとして新規挑戦されたい方。
  3. Shopifyにご縁がある方。

9月頭までの1ヶ月半はわりと時間があります。はてなと同じハンドルネーム(kenzan100)で色々なソーシャルメディアにいますので、連絡いただければ幸いです。

それではまた次の機会に!