楽天株式会社を退職しました(退職エントリー)
フジイ タカヒロ
5/Dec · 10 min read
記念すべき、1回目の投稿が、退職エントリーというのもなんなんですが、熱が冷める前に書いておきたいという気持ちもあり、1回目の投稿ということで書かせて頂いています。この度、2019年12月31日を持ちまして、新卒入社以来約10年間働いていた、楽天株式会社を退職します。(以後'楽天'と表記します) 最終出社は11月15日に既に終えていて、現在は有休消化中です。
自分自身、入社した時は、一社に10年近くも務めることは想像もしていませんでした。長い楽天生活の中で、何度か転職を検討することもありましたが、結果として10年も働き続けることが出来たのは、様々な変化や挑戦が、自分に刺激を与え続けてくれたからだと思っています。自分の当時の心境や、どのような技術を身につけてきたのか。振り返りながら、まとめていきます。
※先までの文章でも、感じ取れるかもしれませんが、僕は今でも楽天のことが好きです。今回、転職はあくまで自分の挑戦の為であり、ネガティブなものではありません。(もちろん、会社に感じている課題とかはありますが)
· · ·
自己紹介
ふじい
藤井貴浩(ふじいたかひろ)です。2010年4月に新卒として、楽天に入社しました。研修後は、楽天トラベルの開発部に所属し、以降約9年間、部署移動はあれど、一貫して楽天トラベルの開発に携わっていました。職種としては、フルスタック -> BackEnd + TechLead -> FrontEnd + Engineering Managerという流れで経験を積んできました。担当サービスは、書ききれないものや、載せられないものなどもあり、一部となりますが、下記のサービス等を担当していました。
- 楽天トラベル(主にアウトバウンド(海外旅行), ホテル、航空券予約関連)
- 楽天トラベル Supplier(管理画面)
- 社内ツール
- 経理システム
- インバウンド(訪日外国人旅行向け)
- 外部システム連携
- 問い合わせ当番
- 新規アプリの開発
- refacroring, redesign architecture, system
入社した理由とかは、下記のリンクに書いてあります。(そのうち見れなくなるかもですが)。あと、書いてないこととしては、当時行きたかった外資を受けて落ちたという経緯もあります。
· · ·
英語
まず、何と言っても(?)、僕が入社した2010年は楽天が英語公用語化を発表した最初の年です。僕も内定を頂いた段階では英語化の話は知らなかったので、確か内定式か何かの集まりでこの発表を聞いた時に衝撃が走ったことを覚えています。社会人は何があるか分からないなって思いました笑。
最初の5年ほど(長いw)は私自身の英語の能力が低く苦労したこともありますが(いや、今でもありますが笑)、何よりダイバーシティや、文化の違いなどを理解したり、受け入れたり、考慮することに苦労した記憶があります。英語を話せること自体も大切ですが、考え方の違いを知る(まずは理解しようとする)ことが、特に一緒に仕事する上で大切だと思います。(とはいえ自分の中に根付いていた考え方などもあり、1日2日で対応できたこともなく、少しずつ、時間をかけて理解できるようになってきた気がします。)
この頃の苦労があって自分自身が成長できたのは間違いないですが、当時働いていた、外国籍の人たちは、今の環境よりも、だいぶ色々なストレスがあっただろうな、、と思います。その人たちが、今の職場をみたらどう思うんだろうな、、と偶に思います。当時は、朝礼で少し英語を話したり、英語でランチしたり、そんなことをしながら、地道に勉強したりしていました。自分がある程度英語が話せるようになったのは、仲の良い友達ができて、彼らと休日ご飯食べたりするようになってからな気がします。気づけば話すことに抵抗は無くなっていました。
結果、楽天で英語を身につけられたこと、ダイバーシティの理解を深めることができたことは幸運でした。
· · ·
1~3年目
新卒研修や開発研修を終えた後(正確には開発研修中に配属されることになった為、終えてはいない)、配属先には楽天トラベルを選びました。トラベルを選んだ理由は3つあって、花形である市場を超えるサービスにしたかった/海外展開や、世界をターゲットにしていること/会社の同好会であった先輩がいい人だったという理由で選びました。
トラベルに配属されてから、OJTとして、3ヶ月ほどはハギレ案件とよばれる、比較的小さい規模の修正やバグ修正などをメンターにサポートしてもらいながら、進めていました。良かったことは、プロダクトや、チーム関係なく修正するので、色々な人に顔を覚えてもらえることや、サービスを知る(特に管理画面や社内ツールや、バッチなどの表に見えない部分)ことができたことです。
OJTを終えた後は、国際業務チームに配属され、主に海外に関連するシステムの開発を行いました(主にJava)。ここでは上司や先輩に恵まれ、挑戦させてもらいつつ、守ってもらいつつ、仕事をすることができました。また、海外に関連するということから、早い段階で多言語化や、国や地域毎の仕様差分と向き合うことが出来ました。
最初の1年位は新規のサービスや機能追加/修正をひたすら行いました。基本はユーザ画面と管理画面に関連する開発でしたが、経理関係のシステム開発なども経験できたことは貴重でした。(あまり好きではなかったですが笑)
そして、会社に入って1年目が終わりそうな2011年3月11日、地震がありました。地震があってから1週間位は、志願して大阪で仕事をしていました。サービス開発の重みを何よりも感じた1週間でした。
その後は、案件をこなしつつ、巨大なMonolithicアプリ群を機能別に切り出していくことをやっていました。平行して、今までのサービス単位の組織編成から、機能別に組織も変わっていきました。
この位のタイミングで、小規模なチームやプロジェクトをリードするようにもなり、(意図されたことかはどうか分かりませんが)割と外国籍多めなチームで構成されることが多かったので、このあたりから英語で仕事することが徐々に増えていきました。
ある程度プロダクトを分割してからは、API化を進めていきました。(実際には平行して行われたり、API化を先に進めたものもあります)
その頃から予約ドメインをメインで開発するようになりました。トランザクション周りの知見とかもあるのですが、何よりも障害を出した時のインパクトが凄まじく、あの規模のプロダクトで、監視や運用、緊迫感を体感できたことの方が、貴重だったのかもしれません。
この頃から、ちょこちょこ勉強会などで話をするようになりました。
あとは、通常の業務と切り離される形で、問い合わせ当番という仕事が担当制でありました。現在では、専任の組織があるのでない役割なのですが、当時は当番制で、事業からの(技術的な)質問などに対応していました。普段事業側と関わることが無い人間としては結構緊張するのですが、サービスを利用している人と直接やりとりする機会は貴重でしたし、ドメイン知識や、ログの調査能力とかは結構鍛えられました。あとは、時間管理。いつまでに何を答えるとか、少なくともここまでは明らかにする。この時間までにできなかったら別途チケット切って対応する旨を伝えるなどの、時間管理能力も身についたりしました。ただ、本番作業をする上での課題や、サービス規模が拡大するにつれてドメイン知識が薄いプロダクト調査効率の悪さや、メインで進めているプロジェクトの進捗を阻害する(こともある)、、などの副作用もありました。その結果、専任の組織が作られ、バグなどが彼らからエスカレーションされる形で、対応する形に変わっていきました。
· · ·
4~6年目
2,3年目あたりから、APIに機能を切り出して行ったものの、当時は単純にクライアントに特化した巨大なAPIが多かったので、ジェネリックな概念や、共通のドメインなどを抜き出して、APIとして切り出したりしながら、少しずつmicroserviceな感じに寄せていきました。ただ、なかなか既存のビジネスロジックや要件の調整に苦労する部分も多く、そんなに綺麗に分割できないところも多々ありました。
また、この頃から、プロダクトマネージャ(PDM)組織ができ、明確にPDM, DEV, QAなどのrole、組織が確立し始めました。この頃になって、始めて設計書(DevSpec)を書くようになりました。
2014年頃の組織の状況や、プロジェクトについては、下記の発表にまとまっています。
この頃から、Spring, Spring Bootを利用して開発する機会が増え、JSUGのコミュニティなどで発表させて頂いたりもしました。
6年目頃に、約半年くらいかけて、3人ほどで、大規模なリアーキテクトをしようとしていたのですが、既存の仕様の洗い出しや、要件を削る作業な難航し、思ったように勧められず、苦しみました。。(結局これ自体は達成できず)。振り返ると、出来たことばっかりじゃなくて、出来なかったことや、失敗したことが割と鮮明に思い出されます。
また、この頃から、社内のキャリアとして、SpecialistとGeneralistという二つのラダーが出来ました。決して早いタイミングではありませんが、徐々に技術力や、IC(Individual Contributer)が評価されやすい土壌もできてきました(僕はGeneralistラダーでした)。ラダーがあるだけで解決する問題では決してありませんが、こういった仕組みが1年目(2010年)からあれば、もっと活きたであろう優秀なエンジニアがいたな、、と思います。
· · ·
7~9年目
7年目あたりから、UIに専念することになりました(ついに!)。エンジニアとしてはほぼフロントエンドに専念し、Engineering Managerとしては、Webとスマホチームを担当していました。
もともと、トラベルではあまりフロントエンドに専念する人はいなかったのですが、2016年にPOCとして比較的小さな規模の管理画面をReact + Reduxで実装する機会があり、当時の上司の協力もあり、設計、実装に参加することが出来ました。プロダクトのフィードバックが比較的良く、現在では、新規のフロントエンドアプリをほぼ全てReactを利用して作成しています。とはいえ、もともと我々の組織でフロントエンド専任で働いていたのは1,2人しかいなかったので、Reactを使うことになって以降、上司や同僚と一緒にほぼ1から人を採用して、組織やチーム、文化を作っていくという経験ができたのも面白かったです。
今では、ReactやVueの経験があるエンジニアも沢山いらっしゃると思いますが、当時はまだまだ実例も少なく、経験者という観点では、海外から方が多く、、今までで一番グローバルな組織になりました。海外の名だたる企業から参加してくれたメンバーもいて、技術的にも非常に多くのことを学べました。
あとは、よこみちさんと仕事できたことがよかったです。
よこみちさんとふじい(と見切れている大ボス)
また直近2年ほどは、非常に大きな規模のプロダクトの新規開発をしていました。この頃からマネージャ職ではありましたが、設計や要件定義を終えた後は、1エンジニアとして、がっつりとプロダクト開発にも携わっていました。ある程度プロダクトが出来てきた後は、プロダクトの改善の為に組織を変更したり、よりチームが自己組織化して動けるように、ビジョンやミッションを明確化したり、組織図上のチームを無くして、メンバーと一緒に都度組織を自分たちで編成してプロジェクトに取り組む体制を作ったりしていました。特に、Manager-led teams -> Self-managing teams -> Seld-designing teamsを意識しながら権限の委譲を進めました。
まだまだ自己組織化については道半ばという所もありますが、メンバーやリーダーのオーナーシップが育ってきているので、彼らが、今の組織を次の段階に進めてくれるはずです。
というのが、約10年間の楽天生活でした。トラベルのアーキテクチャがどのように変わってきたのか、今どういうことやっているのか、ということに関しては自分の過去の発表を見て頂く方が分かりやすいと思います。
自分が最後にやってきた、フロントエンドの組織の話をすると、これからもやっていくことが沢山あります。特にある程度の規模でReactを利用した開発をしたい方、フレームワーク作成などに注力したい方、グローバルな組織で働きたい方にはめちゃくちゃおすすめです。こちらは、継続して組織を拡大していく予定なので、ご興味ある方は、下記ご覧ください!自信を持っておすすめできる組織です。
· · ·
転職
僕は楽天が1社目の会社なので、今まで転職した経験はありません。どこかで他の会社を経験したい、他の会社で自分のスキルやマネジメントの再現性があるか確認したい、と考えることは今までもありました。なので、転職を考えたのは今回が初めてではなく、今まで何回かありました。
また、比較的プロジェクトが一区切りついたタイミングで、自分のモチベーションを再度見つける必要がありました。会社に残るにしろ、色々な選択肢を見た上で、自分が会社に残って今一度貢献したい、という想いになりたかったからです。という所から、他の会社の話を聞きにいったりするようになりました。
話を聞く際には、
- ビジョンやミッションに共感できるか
- 自分が解決するべき難しい/成長できる課題や挑戦が見つけられるか
- グローバルな環境である / もしくはグローバルなビジネスを展開している
- + (責任あるおしごと(無い仕事なんてないとは思いますが))
という3点 + α を主にみていました。会社は、親しいエンジニア経由で話を聞かせて頂いたり、Linkedin経由でやりとりをさせて頂きながら、探していました。Linkedinに関しては、やりとりする中で自分が信頼できる人、会社を見つけることができ、彼ら経由で紹介してもらっていたりしました。リクルーターは外国籍の方だったので、外国籍の方から日本の会社を紹介してもらうっていうやりとりがちょっと面白かったです。
転職活動をしてよかったのは、会社の経営陣や、優秀な方々とお話しする機会を多く頂けたことです。彼らと話をする中で、自分の視座が高まったり、仕事や目標に対する考え方について考えさせられたりしました。そして、単純な採用面接に止まらず、色々とアドバイスを頂けたことにも、大変感謝しています。一人一人にきちんとメッセージ送れていないのですが、本当にありがたかったです。
また、僕は楽天でエンジニアの採用面接を担当していたので、どういうことを聞かれるのか、ということに興味がありました。何を意図した質問なのか、と考えながら受ける面接は面白かったです。一方で、面接をしている側と言えど、質問にうまく答えることができないこともあり、難しさも感じることができました笑。日本の会社だと技術の質問はあれど、コーディング試験は基本なかったのですが、海外の会社は、Engineering Manager職であれど、ほぼ間違いなくコーディング試験がありました。とはいえ、コーディング試験がすごく難しい所は受けていなくて、HackerRankとかで少し準備する程度でした。Leet Codeとかやってみたらよかった。
何社かお話しを聞く中で、自分の中で上記の3点を満たす会社を見つけることができました。加えて、良い評価、オファーを頂くことができ、転職を決意しました。現在はまだ楽天社員ですので、来年次の会社に正式にjoinし、ある程度落ち着いてきたタイミングで、次の会社でどのような挑戦をしているか、改めてご報告させて頂ければと思います。
退職の際には、色々もらいました!
· · ·
楽天での経験を経て身につけられたこと
楽天での経験を経て、自分では主にこういった能力を身につけることができました。(ソフトスキル寄りものは省いています)
- Single Page Applicationの設計、開発、運用
- Web APIの設計、開発、運用(主にJava/SpringBoot)
- 多国籍、国際的な大規模な組織のマネジメント(10カ国以上、30名以上、4チーム)
- フロントエンド、バックエンド、ネイティブアプリケーション、フルスタックチームのリード、マネジメント
- グローバル(i18n, l10n)なアプリケーションの設計、開発
- クライアントアプリの設計(Webアプリケーション)
- 旅行,予約ドメインの知識
- 日本、日本以外での採用面接、採用実施、キャリア開発、1on1、On boarding
他にも、監視、調査や負荷対策などの経験もあります。特に、マネジメントの規模や特性、採用経験などは、楽天だからこそ経験できたものだと思います。また、並行してSpringBootやReactなどが導入できて、自分が学びたい技術スタックが学び続けられたことも大きかったです。
· · ·
楽天のよかった点
※あくまで、自分が見えている視界からの主観的な意見です
- 英語(正直に言えば、今時点で英語がそんなにできなくても、TOEICの点数を取ったり、自分自身が英語を話すことに対してポジティブであれば、英語で仕事することが出来ることは、ありがたいです。もちろん仕事の内容によっては、より高い英語力が求められるところもあると思いますが)
- 海外展開を意識したビジネス,プロダクト開発(これが本気でやれる会社はそんなに多くないと思います。もちろんそれは単純な多言語化とかローカライゼーションだけではなく、国やマーケット毎の特性を理解したり、その中でどうgenericな部分とspecificな部分を作っていくかとか、、)
- 大規模、高トラフィックなプロダクトの開発と運用(案外、これは意外と経験しにくいことなのかもしれない)
- 有給(これはまぁ、部署とかにもよるのかもしれませんが、とりやすいです)
- 知り合いがたくさんできた(たくさんの同期、同僚がいるし、ランチが無料なので、気軽にいろんなひととランチに行って話をできる文化がある)
· · ·
謝辞
Facebookのポストでは、色々書ききれなくて、ここに出来るだけ書こうと思ったんですが、結局書ききれなかったです笑。
色々と書かせて頂きましたが、僕が10年間も楽天で(それなりに)活躍、貢献できたのは、楽天で出会った人たちのおかげです。
結構生意気に、先輩方と絡んだりしてた気がするのですが、朝先輩にEdyを借りにいく(ほぼ話しにいく為なんですが笑)からはじまり。インフラで分からないことがあれば、すぐ質問できたり、各サービスに詳しい人がいたり。そして、上司に恵まれ、ロールモデルとなる先輩がいたり、同期や優秀な後輩、パートナーさんに刺激をもらえる環境もありました。
仕事意外でも同好会(バスケ)の活動を通じても、いろんな先輩方にお世話になりました。
そして、転職するにあたって、なんだかんだ負荷や迷惑をおかけしている部分はあるのですが、結果的に快く送り出してくれた上司や関係者のみなさんにも本当に感謝しています。
やっぱり月並みなまとめになってしますが、ここで得たものを活かして、次の会社でより大きな成果を出し、成長した姿を見せ、いつの日かまた一緒に仕事できたらいいなと思っています。ありがとうございました!
· · ·