見出し画像

ヤフー株式会社を退職したのでついでに自分の半生を振り返ってみる

男もすなる退職エントリといふものを我もしてみむとしてするなり。

2020 年 10 月にヤフー株式会社を退職しました。退職に至るまでのあれこれと、今後のキャリアについて漠然と考えていることをまとめたいと思います。

学生時代

小・中・高は普通の公立に通い、1 年浪人して東大に入りました。

涼宮ハルヒの憂鬱からオタクになり、ニコニコ動画全盛期を経て引きこもり属性マシマシと化して、パソコンとゲームばかりしている中学・高校時代を過ごしました。
このオタク属性は大学に入って「声優おっかけ」に昇華し、声優イベントのためであれば日本国内はもちろんのこと、0 泊 2 日で台湾に弾丸で行くこともいとわないような生活を送っていました。
最終的に、大学の学園祭に声優さんを招いて自分でトークイベントを主催するというところまで行き着き、いろいろな意味で充実した学生生活を送ることができました。

電子情報工学科へ

画像4

勉強のほうは、大学に入学してすぐの段階では修めたい学問が明確に決まっていたわけでもなかったため、進学振分け( 2 年生のときに、志望する学部・学科を決めて、それまでの成績をもとにして割り振られる制度)でどの学科に志望を出そうか悩んでいました。
なんとなくかっこよさそう、というくらいの気持ちで第一志望に航空宇宙工学科を、ロードバイクのサークルに入って日本中を走り回ったことで、まちづくりやインフラに若干の興味があったため第二志望に社会基盤学科、そして第三志望にはなんとなく潰しが効きそうな電子情報工学科を選びました。
結果として、成績の兼ね合いで電子情報工学科に進むことになります。

電子情報工学科は、名前の通りですが、電子のことから情報のことまで幅広く学ぶ学科です。つまり、CPU などの半導体の仕組みを電子レベルで勉強するのと同時に、プログラミング、OS の仕組み、音声解析、画像処理、ディープラーニング……などを幅広く学ぶことができる学科です。

電子情報工学科は、兄弟学科の電気電子工学科と合わせて eeic と呼称されることが多いので、以下そのように表現します。

プログラミングとの出会い

僕の場合は eeic に進学して人生で初めてプログラミングというものに触れました。正確には、小・中学生のころに、つたない HTML をメモ帳で書いたり、お年玉でホームページビルダーを買ったりして自分の Web サイトを作り、それを今はなきヤフージオシティーズに FTP でアップロードして公開する……ということもしていましたが、黒歴史です。

eeic での初めてのプログラミングは C 言語でした。エディタは、先生がやんわりと推奨していた Emacs をそのまま使っていました。
初めてのプログラミングを、Emacs という独特な操作方法をもつエディタで四苦八苦しながらやっていくのは、なかなかの苦行でした。C 言語が難しすぎて、プログラミングって難しいんだなあ、自分には向いてなさそうだし、これを仕事にするのはキツそう……と感じたのを覚えています。

画像2

その 1 年後に、「電気電子情報実験・演習第二」という、いくつかある実験・演習から自分のやりたいものを選ぶことのできるコマがありました。さまざまな選択肢の中から、JavaScript を扱う「情報可視化技術とデータ解析」という演習をたまたま選択しました。
これは本当に偶然で、当時の自分はとにかくプログラミングは向いてないと思っていたので、楽に単位をとることだけを考えていました。
eeic の実験・演習はどれもとても大変で、「情報可視化技術とデータ解析」が相対的に簡単そうに見えたのです。

「情報可視化技術とデータ解析」は、なんでもよいから好きなデータをどこかから拾ってきて、それを d3.js というライブラリを使ってインタラクティブに可視化するという演習でした。

インタラクティブというのは、例えばマウスやキーボードなどを使ってユーザーがグラフに対して何らかのアクションを起こすと、それに連動してグラフが形状を変える、みたいなものです。
静的なグラフとは違い、ユーザーの要求に応じてグラフが変化することで、データのもつ性質をより伝えやすくなります。そのような手法を実践で学びましょう、という演習です。

この演習で JavaScript を初めて書いて、衝撃を受けました。書いたコードがブラウザ上ですぐに動いて、進捗が見てすぐに分かる。ポインタに苦しむ必要はない。当時流行っていた Atom というエディタを使ってみたら、素直に操作ができてコーディングそのものが楽しめる(Emacs 比、当時の僕の感想です)。など、みるみるうちにプログラミングの楽しさにのめりこみ、夜遅くまで時間を忘れてプログラムを書く、という感じになっていきました。

インターン・アルバイトで開発経験を積む

この演習で「もしかしたら自分は、プログラミングでご飯を食べていくようになるのが幸せなのかもしれない」と思い始め、勢いでインターンを探しまし、当時五反田にオフィスがあったプレイドさんに半年ほどお世話になりました。
(プレイドさん、2020 年 12 月 17 日にマザーズに上場するらしい。おめでとうございます🎊🎊)

当時ほとんど開発経験がなく、git を使ったチーム開発やテストコードの書き方などまったくもって知らなかった僕を有給インターンとして迎え入れてくださって、「仕事としてプログラムを書くのはどういうことか」というのを体験することができました。結果として、自分は Web デベロッパーないしソフトウェアエンジニアになるんだ、という気持ちを確固たるものにすることとなりました。

そこからは、ユニプロという会社でアルバイトとしてお世話になって、引き続きプログラミングの経験を積んでいきました。プログラミングのアルバイト、通常の学生がやるアルバイトに比べるとたくさん稼げるので、これを声優おっかけのお金に使っていました。

留年する

インターンに行ったりアルバイトをしたりしている中で、大学院入試が近づいてきました。eeic (に限らず、東大の工学部はだいたいそうだと思う)はおそらく 90 % 以上の人が大学院に進むので、周りの空気に流されるままにとりあえず院試の勉強をはじめました。

しかし、どうしても勉強に身が入りません。自分の中で、「早く社会人になってソフトウェアエンジニアとしての経験を積みたい」という思いと、「自分は研究生活には向いていない気がする」という直感とがあり、それらが院試に向けてのモチベーションを低下させる原因になっていました。

結局、大した勉強もせずに院試を迎え、順当に不合格となりました。冗談抜きで全然問題が解けなかったので、あれで合格になっていたら逆に不安になるくらいでした。

ここで選択肢が 3 つありました。今回落ちたのは「夏院試」で、冬にもう一度チャンスがあります。この「冬院試」に向けて勉強を頑張るというのが選択肢 1 。そして、大学院に行くことを諦め、その時点から就活をして、次年度から社会人になるのが選択肢 2 。最後に、次次年度での新卒入社を見据えて、自主留年をする、というのが選択肢 3 です。

若干の検討の末、選択肢 3 をとることにしました。選択肢1にしなかった理由は、大学院に行って研究をし続けるビジョンがどうしても見えなかったこと。選択肢 2 にしなかった理由は、夏院試が終了した 8 月末には、もう選考が終わってしまっている企業がほとんどであるように見えたこと。そして、選択肢 3 にした積極的な理由は、モラトリアムが1年延長されること。

そういうわけで、留年をすることになりました。

就活

卒論を書き上げたあと、就活を始めました。始めてから気づいたのですが、どうやら Web 業界は一般的な企業よりも選考開始がかなり早く、3 月からの動き始めでは遅かったようでした。とはいえ、エントリーが締め切られているわけではなかったので、ヤフーを含めていわゆる Web 系企業といわれるところ 10 社弱にエントリーをして、選考に進みました。

結果だけ言うと、内定をいただいたのはヤフー含め 2 社でした。最終面接まで進んだものの落とされる、というケースが多かったです。経営層に近い人に好かれない属性を何か持ち合わせているのかもしれないです。

新卒ではとにかく大きめの会社に行って、大きな会社でしか積めないような経験(たとえば、大量のユーザーアクセスに耐えうるインフラ構成など)を積みたいと思っていたので、ヤフーに入社することに決めました。

ヤフー入社、そして配属

2019 年 4 月にヤフーに入社し、最初の 3 ヶ月は研修を受けました。Java や Linux について座学で勉強したり、与えられたテーマにそってチーム開発をしたり、といった内容でしたが、知らない知識もちらほらあったので勉強になりました。とはいえ、知っている内容のときは内職をしていました(講師の方も許可していたため)。A Tour of Go をやって golang の勉強をしていた記憶があります。

研修ののち、ヤフオク!を開発する部署に配属されました。配属はしばしば「配属ガチャ」と表現され、当たり外れがあるような扱いをされますが、僕にとってはヤフオク!は「当たり」だったように思います。
中学生のころから、遊戯王カードや中古ゲームソフト、自作PCパーツの売却にヤフオク!を使っていて、非常に馴染み深いサービスであったことと、ヤフーへの入社理由の 1 つでもある「大規模なユーザーを抱えるサービスを開発して、世の中にインパクトを与えたい」を叶えるには最高の場だったからです。

PayPayフリマの開発へ

ヤフオク!の開発をする部署に配属されてしばらく、ヤフオク!という巨大なシステムの全体像を理解するための研修を受けていました。ヤフオク!は本当に巨大で、自分が開発に関わった領域、全体からすると 1/100 くらい、しか理解できていなかったように思います。世の中の巨大なプロダクトは本当に「巨大」なんだなあと実感しました。

そうこうしているうちに、当時絶賛開発中だった新たなサービス PayPayフリマ の開発に興味がないかと聞かれ、新規サービスの開発フェーズに関われるのはとてつもなく貴重な経験であると思い快諾しました。
(PayPayフリマはヤフオク!の姉妹サービスで、開発もヤフオク!の部署内で行われていました。)

PayPayフリマは当時開発中ということもあって、新しい技術がバンバン使われていました。例えば、以下のエントリで紹介されているワードを抜粋するだけでも、マイクロサービス、サーバーサイド Kotlin、GraphQL、など今風のワードが並びます。

僕はPayPayフリマの BFF を開発することになり、TypeScript + Node.js で開発をしていました。

サービスのリリース(2019 年 10 月 7 日)を無事に迎えることができたときは本当に嬉しかったですし、リリース後もPayPay・ZOZOとの連携やアプリとしての純粋な機能拡充など、たくさんの機能開発を行って、そしてその新機能をリリースするたびにユーザーからのフィードバックが返ってくる、という刺激的な日々を送ることができました。

コロナによる在宅勤務と、心境の変化

確か 3 月くらいから、コロナの影響で在宅勤務が始まりました。ヤフーはもともと月 5 回までリモートワークを行うことができる、という制度が整っていたので、5 回という上限を撤廃する形で、ぬるっと在宅勤務に移行しました。

それ以前は、家に帰ったら疲れてだらだら Youtube やアニメを見て就寝する、といった生活を送っていましたが、在宅勤務になってからは退勤後にプログラムを書くことが増えました。LeetCode にも課金をしました。
ずっとやりたいと思っていた OSS 活動を始めたのもこの頃で、実際 GitHub の草の様子を見ると在宅勤務が始まる前後の境界が結構はっきりと出ています。

画像1

そして、家に引きこもるようになって、必然的に自分のことを考える時間が増えました。この頃に心に抱いていたのは、コンピュータサイエンスを学問として修めたい、そして日本の外にも目を向けたい、という気持ちでした。
自分は学部卒なので学士しかもっておらず、修士号への憧れは未だに持っています。自分で学部卒を選んでおいていまさら、という話ではありますが、今はコンピュータサイエンスやソフトウェアに関することをもっと勉強したり、何かしらの研究をしたりしてみたい、という気持ちがあります。また、どの学問にも当てはまるかもしれないですが、コンピュータサイエンスやソフトウェア工学は、日本語で得られる情報と英語で得られる情報に、量はもちろん、質の面でも極めて大きな差があるように感じていました。

そんなわけで、在宅勤務の昼休み中に「大学院 留学 コンピュータサイエンス」などのワードで検索してみたり、Tatsuya Nanjoさんの以下のスライドや note を穴があくまで読んだり、学部時代の GPA を知るために大学に資料請求をしたり、TOEFL の公式模試本を買ったり、ということをしていました。

結局、大学院留学したいという熱は自然消滅しましたが、チャンスがあれば挑戦してみたいと今でも強く思っています。留学ではなくとも、例えば JAIST のような国内の大学院も気になっています。

転職活動を始める

そんなこんながありつつ、ちょうどゴールデンウィークの頃に、出来心でいくつかの「スカウト型」の転職サイトに登録をしてみました。今の自分の市場価値を知りたいというのに加えて、findyLAPRAS のようなサービスでは GitHub アカウントを連携することで、技術力を「偏差値」や「スコア」といった形で可視化してくれる、というのも理由でした。数字に踊らされるのはどうなの、という考えもあると思いますが、自分としては OSS 活動などをする上での大きなモチベーションの1つとなっています。

転職サイトに登録すると、エージェントの方からは山のように、そして企業の採用担当者の方からもいくつかのスカウトメッセージをいただくことができました。GitHub をチェックしてくださっていることが伝わるメッセージだとやはり嬉しかったです。
ある意味コロナのおかげではありますが、カジュアル面談からその後の選考のプロセス含め、すべて Zoom や Google meet などオンライン通話で行うことができ、時間の都合がかなりつけやすかったです。

すぐに転職しようと思っていたわけではなかったものの、カジュアル面談をしていく中で、何社かとても波長の合いそうな企業さんに出会いました。選考に進んで、いくつか内定をいただくことができました。もともと選考に進んだところはどれも「波長が合う」と感じたところだったため、1 つに絞るのがとても難しかったですが、最後は直感で決めました。

ヤフーを退職するにあたって、このご時世のため Zoom 越しではありましたが、とっても多くの方から送り出していただきました。新卒で入って 1 年半でやめる生意気な若者だったと思いますが、本当に「人」に恵まれていたなと改めて感じました。新卒でヤフーに入社したことは間違っていなかったと胸を張って言えます。ありがとうございました。

これから

転職先では Go を書いたり少し TypeScript も書いたり Rust で Wasm を書いてプロダクトを改善するための技術調査をしたりとかをやっています。

OSS 活動のほうは Deno という TypeScript/JavaScript ランタイムの開発に多くの時間を使っていて、今後も貢献を続けていきたいと考えています。非常に活発に開発が行われていて、コアチームメンバーもみなとても親切で、質問にも丁寧に、そして素早く回答してくれます。Discord 上で日々行われている議論の様子を見ているだけでとても勉強になります。

特に僕がたくさんコントリビュートしているのは deno_lint という Deno に組み込まれている linter で、ユーザーが独自のルールを作ることのできる「プラグイン」機能を追加したり、ドキュメントを充実させたり、既存のルールのバグ修正をしたり、といったことを日々行っています。やるべきことはたくさんあるので、コントリビュートしたい方はぜひ!

5年、10年スパンの展望としては、本文中でも触れたように大学院に行く、というのはとても前向きに検討しているところです。現実可能性を一切考えない「野望」としては、とにかくたくさん勉強して勉強して勉強して、OSS にも貢献して、影響力のあるエンジニアになりたいと思っています。これではあまりにも漠然としているので、勉強をしていく中で方向性を決めていければなと。

今後買おうと思っている教材のリストです。



この記事が参加している募集

退職エントリ

この記事が気に入ったらサポートをしてみませんか?