転職の話と給料の話(その2)

昨日最近の転職活動のブログ)を書いたあと、友達何人か友達から同じ質問が飛んできたので、もうちょっと転職した経験のことを書いたほうがいいだろうと思ってブログ書きました。

結論と自分が思ったことをに書いておきますと:

  • 転職はTinderと同じく、両方がスワイプしなければ成り立たないため、相性が悪ければ別の相手を探せばいいと思って、なのでポジティブで転職活動を楽しんだ方がやりやすいかなと思います。自分自身も人と話すのが好きなので、いろいろな会社の人と話すのを楽しんでいました。
  • 応募する会社(時に外資系)は自分に合うか、カルチャーはどうなるかを判断するためには主にGlassdoorとTeamBlindを活躍しました。TeamBlindは悪口が多いので、ポジティブの点をピックアップする必要があります。
  • 面接とかコーディングテストの準備はとても大事ですけど、長い時間をかけて(6ヶ月とか1年)ひたすらLeetcodeとかやってもつまらないし、逆に自分が面接官としてやった経験には、落ちる理由のなかでコーディングテストとか問題が解けないのがそこまで多くなく、実は緊張とか、英語が伝えられないとか、そういうコミュニケーションの問題で落ちたほうが何倍も多いです。そのため、ある程度基本の知識を準備して、その後面接==問題解決のを楽しむ、という楽観的な考え方で進めた方が受けやすいでしょう。自分自身も「もしわからなかったら気軽に面接官聞こう!」というスタンスで面接受けて、とても気持ち楽でした。
  • 外資とかいい会社に行けるのはすごい!とかは自分にとって全くなくて、そこがスタートラインなので、現職で成果出している人の方が何倍よりすごいと思います

で、本題に入ります

事前でやったこと、転職先を探す段階

タイミングのこと

転職タイミングですけど、多くの場合は、「現職が辛くなってきた」タイミングで転職活動始めると思います。ただそういうタイミングだと自分も焦って、メンタルが悪い状態を感じながら面接するといい結果にならないし、例えば自分の好きな会社に入れなく転職一旦失敗となると、さらに現職に戻りづらくなります。なので自分自身は現職が辛くなってくる前にやったほうがいいと思うタイプです。

転職先を探す方法

日本の会社だと大体

をメインに使いました。Bizreachの悪い点としては、年収が先に書く必要があります。現職の年収がある程度高い方だと、面接する前に期待値が変に高まってやりづらく場合があります。その反面FindyとかWantedlyは十分カジュアルさがあってやりやすかったです。

外資の会社だとLinkedinのJobs機能だけを使いました。自分が知っている限りは大体の募集がLinkedinに乗っていますのでうまくフィルタすれば自分がほしそうなポジションが見つけやすいです。自分はいつも「Software Engineer」+「Tokyo」でフィルタして見ていました

linkedin

外資の募集は二つの種類があって

  • (1)ジェネラルのポジションを1年中募集タイプ
  • (2)ヘッドカウントが決まって、そのタイミングだけで探すタイプ

ジェネラルポジションのいいところは、ヘッドカウントが決まっていないためあるラインを超えたら入れることです。ただその反面そのラインを越えようとする人がたくさんいて、ジェネラルの面接手法でしかできない。そのジェネラル手法がアルゴリズムですありつつ、そればかりを狙って毎日Leetcodeやっている人がやたらいますので、当然ハードルもとても高いです。

ヘッドカウントが決まっている方だと、今必要のポジションを、チーム単位で募集をするためポジションが要求するスキルを重視して募集するところが多いです。もちろんアルゴリズムも聞かれたがすごいTrickyとかアルゴリズム中心でやるではなく、「基本の知識」と「わかりやすいコードかけるか」という軸で主に見る(と思います)。ただその反面、ヘッドカウントが埋めたら(いいひとが来たら)、すぐポジションクローズしますので、自分がそのポジションにベストフィットしてもタイミングが悪く入れないことが多いです。

自分の場合、アルゴリズムを練習する時間もそんなに取れなく、そしてすごい自信あるかと言われても競技の経験もなく多少他人と比べると自分の強みではないので、タイプ(2)を主にみました。

面接の話

比較のために、国内会社2社と外資の2社を並んで詳しい話を書きます:

任天堂

任天堂を受ける理由としては、LINEより世界で通用する会社はどこ?だと考えたら任天堂ぐらいしか浮かんでいなかったです。任天堂の採用ページを見て東京オフィスのポジションに直接応募しました。

採用プロセスは:書類選考 → 事前コーディングテスト → 一次面接 → 最終面接 となります。今身替えしたら、各プロセスは一週間間隔で行ったので一ヶ月で全部終わる感じです。

一次面接は二人面接官の体制で行いました。ホワイトボードコーディング(LeetcodeのMediumぐらい)もあって、ちょっとびっくりしましたが十分楽しい問題だったので楽しんでいました。その他に現職の経験だったり、自由の技術相談(テーマは自由)などでいろいろ技術の話ができました。

最終面接は東京と京都の(多分)えらい方々と面接しましたが、基本志望動機とか、ゲームへの熱心とか、会社のカルチャーマッチの話をされました。自分は今までウェブ系で自由に発言して、自由にやることを決める、という環境を慣れてしまったのと、ゲーム業界の経験の浅さと熱心が足りないのもそこでわかって、面接中でもミスマッチだろうな?と思いつつ翌日に不合格もメールが来て、なるほど、となりました

Freee

Freeeをうける理由としては、ベンチャの会社を見てみる、という軽い気持ちで最初のカジュアル面談をBizreach通して受けました。カジュアル面談でいきなり「なぜ弊社に入れたいですか」と聞かれ、なかなか良い回答ができないまま本選考に進めてしまいました。

本選考では自分の前職がマネジャーということで、もしFreeeに入ったらマネジャー立場で仕事をする、という前提で話を進められ、技術の話一切聞かれなかったです。話の中もで自分の価値観(長期を重視して技術に投資すべきなものを投資する、マイクロマネージメントしない)と面接官の価値観(売り上げ優先でとりあえずたくさんサービス作ってヒットのを待つ、マイクロマネージメント積極的にやる)がなかなか合わなくていい会話ができなかったので、次の日にお祈りメールがきて、自分は納得する結果となりました。

Apple

Appleはたまたまツイッターの募集(ApplePayのSREポジション)を見かけて、応募しました。

レジュメをウェブ経由で出しましてから2週間後にHRからの連絡が来ました。一番最初はHRからの電話で自分の経験だったり希望だったりを40分ぐらいで話しました。

その後に、2週間で、三日ぐらい面接が調整されました。面接は基本1-1で、日本のチーム、中国のチーム、アメリカのチーム、そしてロンドンのチームに一人か二人で面接行いました。面接内容は基本彼らが要求するスキルセットと、自分が持つスキルセットを軸に勧められました。コーディングテストもちょっとだけ入ったんですがメインではないです。

Appleの採用はGlassdoorとかTeamBlindを見たらすぐわかりますが「チーム採用」となって、なので会社全体に統一のプロセスだったり、難易度がなく、そのチームが必要とされるものを軸に人を探します。そのため、面接をする前に、必ずそのチームのやること、その事業のこと、そのチームの技術などをしっかり見て判断した方が良いかと思います。もしどうしても自分がやりたくない分野っだたり技術だったりがあったら、面接するときにどうせバレるので応募しない方がお互いの時間を無駄にしないかと考えます。

最終の面接を受けてから五日間ぐらいで面接結果がきました。

Square

SquareはLinkedinのJobDescriptionをたまたまに見かけて、なんか自分にあってそうと思ってLinkedin経由で応募しました。

応募してから翌日にHRから連絡きて、30分ぐらいのHangoutでMTGが調整されました(HRがアメリカにいるので)。

その次にHiringマネジャーと面談が入って、自分の経験だったり、志望動機が聞かれました。シリコンバレー系の会社で多くの場合は、Hiringマネジャーが入社後のボスとなって、採用決定権を持つので非常に大事な存在でした。

Hiringマネジャーを通ったら次に「コーディングテスト(3回)」→ 「システムデザイン(2回)」→ 「リーダシップ面接(1回)」→ 「カルチャーフィット面接(1回)」を順番に調整されました。

コーディングテストとシステムデザインはアメリカの会社の典型的なやり方で行いましたが, Squareの違う点としては2点

  • すごい難しいアルゴリズムを解くのがゴールではなく、完成であるコードを求めること。完成==ちゃんと実行でき、ちゃんとテストされ、そしてちゃんと設計される、という意味です
  • ペアプログラミングで行うこと。「ペア」なので面接官が積極的に手伝ったり、ヒント出したりしているので気持ちがすごい楽でした。

面接周りは会社ブログにも公開しているので興味ある人はブログに参考すれば良いかと思います

https://developer.squareup.com/blog/ace-the-square-pairing-interview/ 

Squareを面接入る前に、Appleのオファーがきて、「一週間内で決めてくれ」と言われました。その時にSquareのHRに伝えると、三日連続で面接調整してもらって、対応がすごく早く感動しました。最終面接が終わって翌日にオファーがきました。大体プロセス全体が2週間ぐらいであって外資の中でもかなり早い方と感じました。

Squareに入社経緯

前のブログにも書きましたが、Squareに入りたい主な理由は「人がいい」ということでした。前職は言語の壁が大きくコミュニケーションがなかんか通らない場面が多い中、Square面接官だったり、HRと話などを通して、すごいスムーズに会話ができ、こういう人たちと仕事すると損しないはずとすぐ決断できました。

もちろん自分に偏りがないように、GlassdoorとかTeamBlindなどもひたすら会社のレビューをみましたが、Squareのようにポジティブばかりなものが書かれる会社はなかなか見たことなかったので、さらに確信ができました。

もう一つの決め手としては、「Appleと悩んでいる」と伝えるとき、翌日HiringManagerとグループリーダなどから直接の「Squareの方が絶対いいよ、あなたと一緒に仕事したい!」というメールがたくさんきました。日本オフィスでいるルビーコミッターのSoutaroさんも早速面談が入って社内のことをいろいろ教えられました。もちろんそういうプロセスは会社のテンプレートのことはわかりますが、そのテンプレートあるという自体もすごく感動であって、「利益First」じゃなくて「Human First」というのが伝えられました。

あとSquareという会社自体は利益ももちろん大事ですけど、「人(Seller)を助ける」というミッションも自分にとっととても共感できました。今までの自分は「こういう技術を使いたい」とか「ゲームの業界で働きたい」などの決まっている軸で仕事などをしなくて、基本的に「たくさんの人(エンジニアであったり、一般エンドユーザ出会ったり)が喜ぶのを実感する」という曖昧の軸で仕事を楽しんできました。そのため会社のミッションに共感できるとすごい仕事やりやすいかなと思って、Squareの一員になると決めました。

給料交渉、そしてちょっと軽い給料に関連する話

先に結論から言うと

  • 外資の方が圧倒的に報酬が高いこと
  • 給料交渉するには、「現職の報酬」と「他社のオファー(CounterOffer)」があるかが交渉ポイントとること
  • その報酬を得るためにはその分のリスクを担うこととなること(首になるリスク、株のRefreshがこなく高い税金を払うリスク)

日本企業 vs 外資の話

「転職」という話題になったら、99%の人は給料の話を気になるかと思います。自分も家族がいて、奥さんも専業主婦で、子供一人がいるため、ある程度に家族が生活ができる報酬じゃないとかなり厳しいです。

一般の給料の関してをちょっと軽く触れると、最近OpenSalaryなどがあって、他社のレンジなどを把握することができかなり便利な世界になっています。

OpenSalaryを見て話すと:

  • 日本の会社はメルカリとかLINE、スマートニュースなどが結構高報酬プレイヤーで、ある程度経験と知識あったら1000万以上をもらえるのが一般的です。業界に有名の人だったり、特別の専門知識持つと2000万も行けるように見えます。自分はLINEのエンジニアであって、周りにメルカリの友達にも確認したんですが、OpenSalaryの数字はかなり正確なので信じてもいいでしょう。
  • ただ外資GoogleAmazonIndeed, Stripe)などはさらに高い報酬を得られるのもOpenSalaryでわかります。新卒(GoogleのL3, AmazonのL4)だと1000万ぐらいだったものの、Intermediateレベル(GoogleのL4, AmazonのL5など)になるとは大体 1500万〜2000万の報酬をもらえるとなります。さらにシニアレベル(L5)になると2000万〜3000万のレンジとなります。もちろんそのレンジは会社で若干違って、自分の感想だと例えばGAFAの中でも:Google ~ Facebook >> Amazon ~ Apple、となるイメージです(もちろんすごいトップの人材だとどこでも高いのを簡単に要求できますが、GAFAのトップに入るのには多分すごく難易度が高くなるので、「一般エンジニア」という前提で話ます)。

外資系の給料の主に日本の会社の違う点は、「株」という大きな割合で入ります。最近の日本の会社(メルカリ、LINEなど)だと株もかなり寛大に配るようになりますが、アメリカ(特にシリコンベレー系の会社)と比べるとその割合が全然少ないです。例えばGoogleの2000万報酬の中ではベースが大体1200万で、株報酬が800万毎年もらう例が多く見えます。

もらった株は基本Grantされるときの値段となりますので、株価が増えるほど報酬が増えるという設定となります。そのため5年前にGoogleとかAmazonに入る人は大体株価の増える分を考えると平均に年収が3000万〜4000万となる人が少なくないでしょう。

ただ一つを気をつけないといけない大事なことがあって、それが「株価」と「株の配分仕方」とです。

「株価」はことばどおり、今後株価がたくさん上がりそうの会社に入ったら報酬がどんどん上がります。その反面現在がPeakで、今後がどんどん落ちると報酬がどんどん下がるとも相当です。個人的にはこの数年BigTechの株が上がりすぎて、もうそろそろPeakに到達しそうで下がるリスクも十分あります。自分が入社ときめたSquareも一時的に伸びてきたCashAppの影響で最近すごいあがったみたいですけど、それが続いているかの不明であって、最初にもらった分はあくまでも固定収入じゃんなくて「ボーナス」(もらえる分はうれしくもらう)と考えたほうが楽かなと。

「株の配分仕方」は、オファーをもらった時に外資の会社だと大体「4年パッケージ」が配られます。なのでオファー内容は大体、あなたのベースはX万円で、そしてY万円の株パッケージです、という流れとなります。そのY万円を4年に渡ってちょっとづつ配られます、配り方は会社によって違いますが、AmazonみたいにIncremental(20%, 30%, 50%みたいな)のやり方もあるし、Googleみたいに半年12.5%ずつ配るところもあります。ただ問題は、その「4年パッケージ」が終わったらどうなる?ということです。そのまま終わることもある、というところもあって、ちょっとだけまたもらうところもあって、すごいハイパーフォマンスを出した人だとまたすごいGrantされる、という様々なパターンがあります。なので4年後に報酬ぐんと下がって、高い税金のまま地獄となる5年目、というのも十分あります。十分あるというか、結構あります。そのリスクを十分理解する上で自分の報酬は本当に高いかどうかを判断したほうがいいと思います。

追記:給料の話はこのブログがとても丁寧に書いているので参考になればとおもいます:https://anond.hatelabo.jp/20201002000619

給料交渉の話

私自身は日本の会社にずっと努めたので、正直に交渉する仕方はわかりませんでした。やったこととしては二つ

  • Levels.fi というサイトで、自分がオファーされるレベルのレンジを見てみる
  • GAFAにいる知り合いなどを相談する

Levels.fi はアジア圏のサンプルがあんまりなく、基本はベイエリアの基準となりますので、めちゃくちゃ高く見えます。ただどこの会社でもロケーションで調整されています。調整指数はGitlabを参考してみると大体合っていますが、基本日本の給料 = ベイエリアの給料 x 0.56(つまり半分ぐらいです)。なので例えばGoogleのL5でオファーされたら、MountainViewだと5000万もらう人だと日本で2500万〜2800万ぐらい要求したら妥当ではないかと思いました。

あと実際にGAFAに入っている友達の話を聞くと、そのレンジは妥当かどうかを検討することもできます。

ただ世界はそこまでが甘くないです、自分がもらえるべきの報酬と、実際に会社が自分に払う報酬が一致しないのが大半でしょう。そのギャップを縮むためには二つのポイントが必要です

  • (1)自分の現在報酬を高くすること
  • (2)転職するときに複数の会社からのオファーもらうこと

(1)は自分がマネジャーになってからわかりますが、人の給料は無言で仕事して上がる人は本当にわずかで、彼らの強さ(技術だけじゃなく、事業への貢献度など)は圧倒的すぎて、上がらないとおかしいとCXOレベルでもわかりやすく伝わる人たちです。残りの人たち(99%)の場合は、自分から「上がってください!上がってください!」とたくさん叫ばないと、基本大きく上がりません(もちろん毎回ちょっとずつ会社の規定によってあがりますが)。そのため、「自分が妥当と思う報酬を、自分で要求する」というやり方が基本だと思います。どのぐらいが妥当か、なぜ自分はその金額に相当するかは、マッケートを知り、自分はどのぐらいの会社の利益に貢献できるかを自分で把握しないといけないです。人によっては変わりますでのジェネラルの方程式みたいなものは存在しないでしょう。

(2)に関しては、カウンターオファーがないと、大体の場合はGAFAでも現職の給料の維持(もし現在がすでに高い報酬を持つ)か、あるいは現職の給料を20%アップぐらい、という場合が多いようです(周りを聞いた話だと)。

ですが、カウンターオファーで他社とマッチアップ文化は日本のGAFAでもすごい浸透しているわけでもないのすごい期待しない方がいいと思います。ただ、ないよりは絶対いいと思います。また、複数の会社の中で自分と合うチームだったり、福利厚生だったりを自分で選択できる環境を作った方が有利かと。

終わりに

給料は全てではない、自分に合わない仕事、合わないチームと数年間働いたら低い給料より何倍も辛い、という偉そうな結論を出したかったんです。

ただ実際に転職活動をしてみると、面接プロセスが厳しいほど、エンジニアの質が高いのは間違い無いので、実に入って辛いを感じるのは正直にリスクが低いではないかと思います(自分もまだ一ヶ月立っていないのでなんとも言えないですけど)

あと転職活動というのは、人と話して、自分のやることと違う分野の話だったり、人柄だったりいろいろ体験できるので、「辛くなってきた」を待たずに暇な時に転職活動をしてみたら損はしないかと思いました。自分自身も特に現職不満なく、たまたまいいチーム見つけたことで転職決めたのでした。

もう一つは外資に行くと、高い報酬を得られながら、違う仕事スタイル、世界通用のプロダクトを作る、という体験もえられるので、一回入ってみた方が良いではないかと思いました。正直に言うと、日本エンジニアは、アルゴリズムもでき、コーディングができる人もたくさんいるので、ちょっと英語とコミュニケーションを頑張ればチャンスたくさんあるではないかと思いますので、みんなさんもどんどん外資に行って欲しいと思いました。

LINE株式会社を退職しました、そして転職の話

退職してそして新しい会社にに入って一ヶ月ぐらい経ちました。

リモートのまま、そしてまだ元同僚とほぼ毎日話したりして、「退職した」という実感は正直にそこまでしなかった。

LINEでの在籍期間は役4年半でした、私の人生では最長の職場となります。退職ブログを書くつもりはなかったが、やっぱりもう年取っていることで物事をすぐ忘れてしまい、「あ、昔は自分こういうことやったね」というチェックポイントぐらいを残したいと思います。

ざっくりLINEでやったこと

最初はちょっとLINEメッセンジャー開発チームに顔出した以来はずっと社内共通のモニタリングシステムを担当しました。社内システムと言ってもかなり規模も大きく、ユーザ数もLINE開発者の数相当(数千ぐらい)なのでたくさんチャレンジできる仕事だったかなと思います。

詳しい仕事内容は、簡単にいうと、Datadogのようなものを社内で開発しています。ミドルウェア、ストレージレイヤー以外はほとんど自作で(メトリクス、ログ収集エージェントから、Instrumentライブラリ、UIまで)やることが無限にありました。最終的にストレージ(時系列データベース)までも作ることもでき、エンジニアとしてはなんとなく成長したんじゃないと思いました。

在籍の時はIC(Individual Contributor)をやって、最後の1年半は日本のチームのマネジャーを担当しました。マネジャーの仕事は大変だろうと最初からと思いましたが、実際は大変でした。が、楽しい場面もたくさんありました。メンバーが成長することを見て、自分ができない仕事もどんどんやってもらって、そういうのを体験することがとても気持ちよかった。マネジャー、というポジションはネガティブ印象持つ人も多いだろうけど、一回経験した方がいい、と自分思いました。やっぱり私にとって、他人の気持ちを理解する、という仕事を体験できるのは損ではないです。

LINEという会社どうだったの?

簡単にいうとと、LINEより良い職場を探すのが大変でした。待遇もそこそこよく、エンジニアの自由度もそこそこ高く、自分より優秀なエンジニアもそこそこいる、スケールも国内最大級であって、やるべきのものをちゃんと時間取れて検証できる、という言い切れないいい職場でした。

自分は4年前にLINEというサービスが好きで入社しましたが、その後社内でのLINE FRIENDSキャラクター割引とか、LINEスティッカーのポイント(1年5万ぐらいもあるので基本無限いステッカー購入できると考えれば良いです)などの福利厚生をもらって、LINEサービスとしてもすごく楽しむことができました。

もちろんいいことばかりではなく、LINE会社自体はまだたくさん課題がまだあります。例えばマネジャーをやりたい人が少なくマネジャーが圧倒的に足りないとか、韓国チームとやり取りするときに通訳が必要となってコミュニケーションが大変などがありますが、まあ自分にとっては許容範囲であって、ちゃんと「やりたいことが分かる」人であれば十分楽しむことができる会社ではないかと思います。

転職のこと

実はすごく転職したいからガッツリ転職するつもりではありませんでした。

自分は5年間近く同じ会社、大体同じチームにいて、ComfortZoneにずっと楽しんで、そろそろ自分はどこにいるか、ちゃんと他の会社にも評価されるのか?とちょっと心配となりました。あと、ずっと面接官の立場だった自分が、面接されるとどうなる、という好奇心も持ちました。そこで(本当に)適当に何社に話を聞いたり、Linkedinで見かけたモノをボタンプチッとして応募してみました。

落ちる会社も含めて6社ぐらいをまともに選考を受けました。その中は日本の会社2つと外資4つとなって、結果的には日本の2社(任天堂+Freee)がお祈りの結果となって(自分から見ても相性合わなかったので当然の結果となりました)、外資組(Apple, Square, ByteDance, CatalinaMarketing)を偶然全部内定いただきました。他に何社か(Caddy,Ubie,FlyWheel)を話を伺いに行きましたが、タイミングが悪く応募することができなかったですが、非常にいい会社と感じて、またチャンスがあればどこかで彼らと一緒に仕事できれば楽しいではないかと思いました。

結果的にはSquareに入ることを決めました。

理由としては面接を通して、この人たちと一緒に仕事したい!という気持ちをすごく感じました。あとSquare会社自体、SquareのProduct自体、SquareのCEOであるJackDorsey,どっちも好きなので、入ったら後悔しないだろう確信ができました。

Squareでは再び社内Productを担当しますが、今回はエンジニアが対象ではなく、Saleの方とか、Complianceの方などが使うProductとなるので、かなり今までの経験とちょっと違う分野となって楽しみにしています。ところで開発言語はRubyJavascript、普通〜のフルスタックエンジニアになるかと思います、個人プロジェクトは引き続きGoを使いますが仕事上にはしばらく使わないでしょう。

受けてきた会社の面接過程と給料交渉はたくさん面白い話がありましたが、興味ある人がいればDMとか、Slackとかで話をかけていただけると全然話しますので、気軽にPingしてください。

Squareに入って一ヶ月どうだった?

思った通りにチームがよく、会社の雰囲気がよかったです。試用期間が6ヶ月ですが、そこまでに首にならないように日々頑張りますが、外資なので突然首になる可能性も十分あるではないかと思って、まあ首になったらまた転職頑張ろうとポジティブに考えるしかないです。

チーム自体は現在日本メンバー自分含めトータルで3人います。同じチームは一人いますが、残りのメンバーは基本サンフランシスコにいて、ミーティングが基本朝となります。私のマネジャーがいろいろ配慮してMTG時間をいい感じに調整していただいているのですごく感謝します。話す言語はもちろん英語です。

Squareという会社自体は透明性が高く、他のチームの仕事を見ることも当然、ソースコードいじって貢献することも全然歓迎されていますので、いろいろ見ることができとても楽しいです。CEOであるJackもとてもOpenで、社内にはCEOに何でも聞けるスラックチャンネル#imjackamaがあって、そこに適当に投稿すればJackが暇の時に答えることもあります。

まだ一ヶ月なので見切れないこともたくさんあると思いますが、とりあえず自分が入社する前に想像することとあって安心しました、引き続き試用期間を乗り越えることを頑張ります

終わりに

これからも新しいFintech分野で頑張りますので、引き続きよろしくお願いいたします。

新卒とメンターリングについて考えてみた

このエントリはEx CyberAgentアドベントの24日の記事です。

www.adventar.org

 

こんにちは、@huydx です。今年の4月で、新卒で入ったサイバーエージェントを退職しました。学生時代は技術を重視して採用していただきたいので「Github採用」という素晴らしい企画(https://www.cyberagent.co.jp/recruit/fresh/program_detail/id=8965)に参加して、採用きっかけになりました。

新卒でよかった

サイバーエージェントに新卒として入社しましたが、私は「新卒」というタイトルを付けられるのは初めてでした。その体験はよかったかと聞かれると考えずに「めっちゃいい」という返事をすぐ出せます。その理由は

  • 最高の同期ができる
  • メンターがついてくれる
  • 失敗しても良い

新卒入社を経験した方だとすぐわかると思いますが、中途入社と比べたら圧倒的に人間関係を作りやすく、すごく過ごしやすい生活ができました。同期も人それぞれで、競技プロが強い人、コンパイラが好きとかネットワークが好き人とかみんな自分の強さを持ってびっくりしました。退職のあとでもslackで毎日わいわいして同期最高しかいえません。

入社するときはサイバーエージェントのアドテクスタジオというところ、基本的にブラックじゃない広告を出せる技術を日々研究したりしている部署です。配属されたのは Right Segment の会社で、ビッグデータの活用などをして広告品質をよくするための会社です。会社に入って一番嬉しかったことはなんでもやらしてくれます。大きいな Aerospike クラスターをスケールするための取り組み、秒間1万ぐらいリクエストのアプリケーショインサーバを shadowプロキシー使って本番でテストできる仕組みの実験など、すごく貴重な経験になって、マネージャーの方々に感謝します。

ではやっとこの記事の本題に入りますが、新卒の大きなメリットとしては、自分の成長につながるメンターが一人ついてくれます。私はメンターは@kakakakakkuさんです。下の文章はちょっと長いので先に結論を出しますと:

  • メンターはかならず必要(技術がすごい人でも)
  • メンターシップは双方向的な関係である
  • シニアエンジニアになるためにはメンターシップの能力を身につけないといけない
  • @kakakakakkuさんを感謝します

 

メンターのこと

Good engineers write good code. But the best engineers cultivate and inspire their junior colleagues.

日本の会社では、メンターリング==OJTとか、メンターリングは講師が授業で一般的の知識を教えたりするとか、のイメージを持っている方が多いでしょう。ただ、人の成長をつながるために、短期のOJT、研修などではなく、1対1のメンターが必ず必要だと思います。

1980年代で心理学研究者のBenjamin Bloom氏の研究でメンターが付いていくと、学生の学習力が98%向上できたという。

それでメンターってどういう役割なんだろと、@hirokidaichiさんが素晴らしい記事を書いていましたので参考してみると

メンターというのは、特定の分野において経験を持つ人が「世話焼き兄貴・姉貴」として、キャリアや仕事の進め方、トレーニング、コーチングなどをしていく人のことです。その対象のことをメンティと言います。

そのため、目的は対象となる人の迷いを取り除き、成長させ一人前にしていくことです。また、メンターを経験することでより大きな人数での指導的立場やサポートをしていくことの足がかりとしても大変有用です。

 

 つまり、メンターは技術の質問を回答するする、社内ルールを教えるだけではなくて、最終ゴールとしては「成長させる」です。

個人の話に戻ると、私が会社に配属され、最初Rails管理画面などを機能作ったりして、リニューアルに参加させていただいたんですが、管理画面だけ数ヶ月やって技術力はあんまり伸びなかった。そこで@kakakakakkuさんが自分の担当じゃない部分(javaアプリケーションサーバhadoopのバッチなど)を私移動許可しました。管理画面で人が足りないし、Railsの経験を持っている私は普通のメンターだと絶対仕事の速度を優先して、どんどんタスク振ると思いますが、私の成長悩みを感じて移動させていただくのは本当に@kakakakakkuさんのメンター力だと思っていました。

またscalaが強いアドテクに配属しているが、RightSegmentもともとはほとんどレガシーjavaRailsであんまりscalaを触る機会がなかった。@kakakakakkuさんが他の部署のエンジニアをつながるいろいろチャンスを作っていただいて、scalaを触って始めるきっかけになって、ブログも書き始めて

Scala将軍達の後の祭り - connpassの登壇などにもできました。

そのあとRight Segmentにもやっとscala導入ができて、私が退職するあとに作った AI Messenger もscalaの最新技術で作られたそうで、うれしかったです。

現職でもjavaを主に使っていますので、配属されたときのメンターの決断のおかげで自分の成長だけじゃなくて自分のキャリアパスにも大きな影響を受けて深く感謝します。

他には、自分の成長につながることをリストしてみると

  • ゴールを明確で、小さいゴールから始まる。小さいなゴールからゴール設計することにより、達成を体験することもでき、もっと大きいなゴールを向けて自信もって実現可能になります。
  • 双方向的な関係を作る:私は割りとRubyを数年やっているので、メンターから作業の進め方、トラブルシューティングなどの技術を勉強しながら、Rubyを勉強はじめたメンターに逆に教える事ができました

 

良いメンターシップを作るの大事さ

自分の体験からも、世界のトップクラスの企業みても、メンターシップは絶対かかせないことだと思います。Effective Devopsの本から、メンターシップはシニアの人がジュニアをメンターするだけではなく他の種類もあります。

  • Senior-to-Junior

  • Junior-to-Senior

  • Senior-to-senior

  • Junior-to-Junior

つまり、メンターは二人だけではなく、会社一人一人の義務にも言えます。入ったばかりの人たちもお互いにメンターすることもできるし、社歴が高い人たちもお互いにメンターできるという。自分にアサインされない人でも積極的にメンターできる人を探したほうよいということもグーグル社の文化となります。

いいメンターシップの性質としては、quoraからいい回答がありますので貼っておきます:

Ian McAllister's answer to What are the most important attributes of a successful mentor and protégé relationship? - Quora

Mutually understood goals. お互いが納得するゴールを設計せよ

 Mentee-driven. : メンティが積極的にやることを探せ

 Bandwidth-appropriate : メンター時間が無理せず設定しよう

 A focus on approaches, not tactics. : アップローチが大事

 A focus on listening. : お互いに聞け

Transparency  : 透明性が大事

Dissolved appropriately : いらない会議とか政治とか避けよ

  もちろんいいメンターシップを作るためにもちろん人は一番大事ですが、会社からもちゃんとサポートしないといけないです。サポートは、面白い企画を設計するとか、材料のお金サポートとか いろいろありますが、何にしてもメンターする人を本業として評価をインセンティブを与えなければなりません。

 

長くなりましたがみんなさんメンターシップを大事にしましょう!

 

 

他に参考できる記事

emptysqua.re

 

medium.freecodecamp.com