Findy Engineer Lab

エンジニアの"ちょい先"を考えるメディア

一度はエンジニアを諦めかけた私がこだわり続ける、刺激ドリブンなキャリアの歩み方

こんにちは!めもりー(@m3m0r7)です。現在、株式会社エンペイでソフトウェアエンジニアとして働いています。2023 年に入って「レガシーコードとどう付き合うか」「Swooleで学ぶPHP非同期処理」など複数の書籍を出版したり外部登壇したりと精力的に活動しています。

エンペイに入社する前の前職は執行役員 CTO という立場ではあったのですが、本記事でも触れている転職活動を 5 月から始めることになりました。2023 年 6 月に、今回の転職活動の備忘録として note を公開しています(一部有料記事)。この note では、コンフォートゾーンから出ることによる刺激ある毎日を送りたいという私自身の「刺激ドリブン」なキャリア観についても語っています。

私がソフトウェアエンジニアとしてここまでこれたのは「刺激ドリブン」を重視していたからです。刺激ドリブンを重視するようになったのは、これまでの経験が大きく影響しています。なぜ、刺激ドリブンを重視するようになったのか。その源泉を振り返るべく、本記事を寄稿することにしました。

プログラミングと出会い没頭した 10 代

私自身がプログラミングに出会ったのは小学 5 年生です。2023 年で 29 歳になったので、20 年ほど前になります。当時はインターネット黎明期で、「おもしろフラッシュ倉庫」、「しぃペインター」、「前略プロフィール」が流行っていた時代でした。

友人の家でこれらを見て面白そうだと思い、親に「誕生日プレゼントもクリスマスプレゼントもいらないからパソコンを買ってほしい」と懇願し、パソコンを買ってもらったのを覚えています。結局誕生日プレゼントは貰っていましたが(笑)

私の人生のターニングポイントの一つ目は、当時プレイしていた「ゲーム」です。当時プレイしたゲームにはさまざまな個人の方が運営している攻略サイトなどがありました。それらを見ているうちに私自身もそのゲームの「攻略サイトを作ってみたい!」と、プログラミングに片足を突っ込むようになりました。

最初は HTML/CSS から始めたのですが、そのうち掲示板を設置したい、会員登録機能を作ってみたい、と思うようになりました。そこで KENT-WEB と呼ばれる Perl で書かれたアプリケーションを配布しているサイトで Perl に挑戦をしたものの、当時の私には Perl は難しく挫折してしまったのです。

それでも諦めきれず、ひたすら調べていると PHP というプログラミング言語があることを知ります。実際にコードを覗いてみて、PHP の日本語のマニュアルの豊富さから「あれ、これなら私でも理解できそう」と感じてきました。さらに、いろんなサイトにサンプルコードが落ちていたので、コピペで学んでいくことができたのです。

頭を悩ませつつも、書かれたコードの動作原理を理解することの楽しさは何事にも代えがたいものでした。学校でも家でも寝る前でも四六時中プログラミングのことを考えるようになりました。学校に印刷したソースコードを持って行って、授業中ずっと「こうでもない、ああでもない」と添削したこともあります。そんなプログラミングを考える毎日が楽しくて楽しくてしょうがない時代でした。

高校生から "過酷な" エンジニアとしてのアルバイト

その後、情報科を併設している高校に推薦で進学することになりました。その高校はホームルームなどはあったものの、クラス内の学生と同じ講義を受けるのではなく、自らが受ける講義を選択するような、いわゆる大学のような仕組みです。そのため、友人という友人ができるわけでもなく、私自身は空き教室でプログラミングに思いを馳せていることが多かったです。

このころ、とにかく新しいパソコンが欲しくてアルバイトを探していたところ、SNS で知り合った方から「納期短いけど 10 万円の仕事あるからやってみない?」とお誘いをいただきました。今思えばめちゃくちゃ怪しいアルバイトですが(笑)、当時はそこまで疑心暗鬼になることもなく引き受けました。

このアルバイト、蓋をあけると、「明日まで」「三日後」のような案件が多く、納期が短くて驚愕した記憶があります。徹夜して、なんとか納品をこなしているような、そんな学生生活を送っていました。

もう少しまともなところで技術を磨きたいと思っていた矢先、先ほどの方とはまた別の方から SNS で「自分が勤めている会社でエンジニアとしてアルバイトしてみないか」とお声がけいただきました。ぜひ!と思いその会社の面接に行き、結果は採用でした。高校生の自分が、エンジニアとして働くということに胸が高鳴ったのを覚えています。

しかしこの会社、朝 7 時に出勤、夜 23 時に帰宅が常態化しているような職場で、社長から何かしらの怒声が飛んでくるのが日常茶飯事。従業員は常にビクビクしているような状況で、高校生だった私にとって就職することに対してあまり良い印象を持てない環境でした。

決して順風満帆ではなかったキャリア初期

高3になり、就職を選択するか進学を選択するか、というタイミングを迎えます。進学すればアルバイトを辞められる絶好のチャンスだと思った私は、大学への進学を決意しました。

高校の成績もそこまで悪くなく、指定校推薦で大学を選択できたので、実は大学進学に至るまで受験勉強をしたことがありません。受験勉強をしていない代わりに趣味のプログラミングにのめりこんでいました。

しかし、大学に入学するも 1 年で中途退学をしようと決意をします。大学の講義が思ったより楽しくなかったというのが大きな背景です。特に、プログラミングの講義が期待と大きく乖離していました。もちろん就職から逃避するという目的もあって入学したというのもありましたが、これなら就職してお金を稼いでいたほうがマシだと思ってしまったのです。

大学を中退、初めての就職は苦い思い出

このタイミングで高校のときにアルバイトしていた会社から「大学はどう?」と電話がかかってきたので「大学辞めるんですよ」という話をしたところ、「うちにこないか?」と誘われました。

つらい職場環境であることは知っていたので、正直あまり乗り気ではありませんでした。しかし、引越代を出してくれる、大卒と同じ給料を出してくれる、行く宛もコネクションもない、何よりも断るのが苦手だったということもあり、その会社に入社することになったのです。

今では笑い話ですが、就職してからの日々は相当にしんどく、精神的に不調をきたしてしまいました。退職の話をなかなか切り出せず、一生辞められずにこの会社に骨を埋めることになるのか…と自宅で泣き崩れてしまったのを覚えています。こんな人生ならエンジニアという職種を選ばなければよかったとさえ思ったことも何度かあります。

それでも周囲が協力してくれたおかげでようやく退職が叶いました。同時にたまたま知り合いから「自分が勤めているスタートアップに来てみないか」とお声がけをいただいて、人生で初めての転職をすることになります。

プログラミングをしていればつらいことを忘れられた

精神的に不調をきたしてしまうと、何もする気が起きなくなると言われています。人間本来の欲求である食事も睡眠も、例外ではありません。しかし私の場合、プログラミングをしているときだけは特別でした。新しいアイデアが次々と思い浮かび、パソコンに向かってコードを書き続けていれば、つらいことを忘れることができたのです。実はこの時に JVM (Java Virtual Machine) を PHP で実装する原型を作っていました(当時 21 歳)。

プログラミングだけは続けられてしまったがゆえ、「私はつらくないはずだ。精神的に不調をきたしている人はもっとつらいはずだ」と思い込んでしまって病院へ相談するタイミングが相当に遅れてしまいました。

もしかしたら刺激ドリブンの源泉は、つらいことを忘れたいからというのが根本にあるのかもしれません。

エンジニアとしての自信を取り戻していく

転職したスタートアップには、エンジニアが数名いました。ファイルの更新には FTP を使わず GitHub を使っていたり、コーディングルールが策定されていたり、他にもコードレビューがあることに驚きを隠せず「本当のエンジニアはこうやって働くのか!」と感動を覚えました。

エンジニアという職業を辞める選択肢もあったわけですが、転職したことでエンジニアとして働くことに楽しさが改めて芽生え、失っていたエンジニアとしての自信も徐々に取り戻していきました。この転職は、私のキャリア観を変える大きなきっかけのひとつになりました。

読者のほとんどの方がご存知のように、一度でも精神的な不調に陥ってしまったら完治させるのはそう容易くはありません。私も例に漏れず長期間不調が治りませんでした。ただある日、何の前触れもなく、ふとした瞬間に「考え方を変えなければ、自分は朽ちるだけだ」と考え方を改めました。徐々に自信を取り戻していき、結果として精神的な不調も復調していきました。今は毎日が楽しくて仕方がありません。

大企業で大規模な開発の知見を得るために

その後、受託企業での経験を経て、株式会社 GameWith に入社します。このころの私は、仕事が絶え間なく供給されるような組織で、チーム開発の経験を積めてより技術的に尖っていけるような刺激的な環境を次のキャリアとして描いていました。

GameWith は 1 秒間あたりの接続数が数千以上あるような、当時の私から見てとてつもなく大きいアプリケーションでした。それを開発組織 20 名ほどで運用できていることに感動したことを覚えています。

今はどうかは不明ですが、当時は幸いにもソーシャルゲームのように書き込みが非常に多いサービスではありませんでした。「書き込みが多かったらこうしているんだろうなぁ〜」などと考えつつも、大規模アプリケーション開発に全力で取り組める環境でした。

そのためさまざまな知見を得られたということから GameWith に入社したことは、私の人生の二つ目のターニングポイントとなりました。さらに PHP コミュニティと出会うきっかけをもたらしてくれたのも GameWith でした。

PHP コミュニティとの出会い

最初のきっかけは、上司から「PHP カンファレンス関西(2018)のスポンサー企業になったのだけど、人手が足りないから手伝ってほしい」とお声がけいただいたことでした。このときはまだ「会社のお金で大阪にいけるなんてラッキー」くらいにしか思っていませんでした。

カンファレンスの現場で受けた感銘

包み隠さずに言えば、当時はカンファレンスや技術イベントに参加する人達は初心者が多いものだと思っていた節があります。

しかし、カンファレンス会場に行ってその考えは覆りました。ブースの目の前でリアルタイムに資料を更新しながら非同期処理の解説をしている方がいたり、プロポーザルの内容もニッチなものがいくつかあったりで、カンファレンスやイベントへの考え方がガラッと変わったのです。

カンファレンスや技術イベントは、初心者が行く場所であるというより、初心者でも楽しめる場所であり、中級者・上級者でも楽しめる場所です。そしてコミュニティを形成したり、エンジニア同士のつながりを作っていけるような場にもなっています。

カンファレンスを運営するスタッフやコミュニティのメンバーのほとんどは、ボランティアです。技術が好き、技術が発展してほしい、よりエンジニアが増えてほしい、そんな気持ちからカンファレンスやイベントを運営している人が大半だと知り、感銘を受けました。

同時に、私自身に強すぎるプライドがあったこと、カンファレンスに抱いていた印象が勝手な推測であったことに忸怩たる思いがありました。

上司に背中を押され、初めてのプロポーザル

コミュニティの熱量に感化されていたところ、上司から「PHP カンファレンス 2018 にプロポーザルを出してみないか」と言われ、思いきって出してみることにしました。しかし、結果は残念ながら不採択。自分では絶対に面白いと思った内容であったからこそ、悔しさを募らせていました。

今になって振り返ると、聴講者の皆さんが聞きたいであろう内容にすれば良かっただけだと思うのですが、当時はそこまで配慮できていませんでした。配慮できていないなりに、アプローチを変えてみようと思い、次は自分の経験ではなく会社で得た経験を共有することにしました。

そして「開発期間 2 ヶ月で Elasticsearch をプロダクトに使ってリリースした話」というプロポーザルを PHP カンファレンス仙台 2019 の CfP に応募したところ採択されて、すごく嬉しかったのを覚えています。

コミュニティ内で認知され始める

私の人生のターニングポイントの三つ目は、その PHP カンファレンス仙台の懇親会です。

PHP で JVM の原型を作っているという話をしたところ、PHPerKaigiを運営している長谷川さん(@tomzoh)に興味を持っていただいたのです。そのことをきっかけに「PHP で JVM を作った人」としてコミュニティ内で認知され始めました。いろんな方とつながりができたのもこの頃です。

PHP カンファレンス仙台 2019 の 2 か月後に開催された PHPerKaigi では、「PHP で JVM に入門する」で登壇しました。その間にも Elasticsearch 勉強会で登壇することになり、エンジニアリング業務と並行して資料作りにも勤しんでいました。

このころからコミュニティへ入り浸ることが多くなり、2019 年だけで隔月に 1 回のペースで登壇するようになりました。

コミュニティへの貢献をキャリアの軸に

PHP コミュニティでの経験を経て、コミュニティへの貢献活動をキャリアの一部として考えたいと思うようになった私は、Twitter で転職先を探すことにしました。そして、数多くのイベントでスポンサーをしていて自分のキャリアの志向とマッチしていそうな BASE 株式会社 に入社を決めます。

BASE に入社後、 Builderscon 2019 に「PHP で JVM を実装して Hello World を出力するまで」というプロポーザルが採択されました。PHP で JVM を実装するという話は、他の言語コミュニティの方にも認知されはじめ、一時期 Ruby で JVM を作ってみた、Rust で JVM を作ってみた、などさまざまな言語で JVM を作る試みがなされるなど、影響が大きいものとなりました。

他にも PHP カンファレンス北海道 2019 や沖縄 2019 にも登壇していました。


PHP カンファレンス北海道 2019

登壇を続けていたことで、人生で初めて商業誌への執筆のお話をいただき、さらに PHP のムック本を書いてみないか、という話から「みんなの PHP」の執筆に参加することに。「Swooleで学ぶPHP非同期処理」の執筆依頼をいただいたのもこのころでした。


足を捻挫して車椅子で出勤してたときの画像

コミュニティでの活動がキャリアの幅を広げてくれた一方で、規模が大きい開発チームでの仕事にあまり刺激を感じられなくなっていきました。よりアーリーステージな会社に身をおいたほうが、自分のパフォーマンスを最大限発揮できるかもしれないと考え始め、 BASE を退職しました。

まだ自分がやっていないことに挑戦できる環境へ

15 年ほどの開発経験がある中で次のキャリアに思いを馳せたとき、いままで自分がやっていないことである「マネージャー」と「テックリード」の両立、いわゆるプレイングマネージャーをしていきたいという思いが強くなっていきました。

それこそ「プレイングマネージャーは成立しない」と言われていた時代です。時代とは逆行しますが、自分の中の「刺激ドリブン」を信じてキャリア像を描いたものです。

私の思い描くキャリア像を達成できそうだなと考え入社を決めたのは、知育玩具サブスクリプションサービスを提供する株式会社トラーナでした。

アーリーステージ特有の採用、技術選定と組織設計の難しさ

当時、トラーナはパートさんを含めて数十名の組織で、事業的にも今から伸ばしていく!というアーリーフェーズなタイミングでした。エンジニアの正社員は私が一人目で、minify された JavaScript と git 管理されていない PHP のコードが散乱している状況が当時の稼働しているシステムでした。

また、使用していた SaaS は API Rate Limit の天井を突きつつあり、メンテナンスもできない状況である上、このままではお客様は増えるのにシステムがスケールできないという苦しい状況でもありました。一方で、エンジニアの正社員は私一人であるため、システムのフルリプレイスの片手間に、採用と組織設計を行っていく必要もありました。

エンジニアの採用を進めるも、エンジニアと接点をつくるのはなかなか難しいものでした。そもそもエンジニアの評価制度そのものがなかったので、一人で頭を悩ませながら評価制度の設計をすることに。また、採用に注力してしまうとデッドラインがあるプロダクト開発ができなくなるという、鶏卵に近い課題を抱えていて相当苦しい時期でした。

加えて、技術選定自体の難しさにも悩んでいました。当初、バックエンドは PHP で書きなおすか Go で書きなおすか検討していましたが、Go 言語を用いた場合の求人数や年収のボリュームゾーン、私自身のコネクションや経験も含めて PHP を選択するしかないと判断しました。

PHP を使っている企業は多くあり、ただやみくもに PHP を選択しただけではエンジニアに興味を持たれづらいだろうと考えました。そこで、当時は技術選定に相当尖った形で「Swoole」という PHP で非同期処理を扱うためのライブラリ(後の Swoole 本で紹介しているライブラリ)を使用し、多くの方に興味を持ってもらおうと考えました。

傍らで、カンファレンスへのスポンサーを行い「めもりーさんが所属している会社」 と認知してもらえるようにまでなりましたが、ここまで効果がでるのに 1 年ほどかかっています。

このとき、頭ではわかっていたものの、採用はすぐに結果が出るわけではないっていうのは本当だったんだ…と感じました。

次第に新しい業務委託の方が参画してくれたり、正社員でジュニアのメンバーが参画してくれたり、副業の方が参画してくれたりしました。採用活動をしているときにカジュアル面談などで「めもりーさん知っています」「めもりーさんと一緒に働いてみたい」と言われたときは本当に嬉しかったです。

CTO だからこそ自分の音楽性を信じたい

最初は私一人だった開発組織も 20 人規模にまで成長、会社全体としてパート含めて 250 人規模にまで成長しました。そして 2022 年の 10 月頃、「めもりーさん CTO やってみないか」とCEO から話を持ちかけられます。

当時はまだ 27 歳。CTO なんて 35 歳くらいになるもんだと勝手に思っていた節もあり、正直拒否反応がありました。何より、私よりも CTO として適任な人材なんてたくさんいるだろうとも思っていました。

ただ、外部から CTO を連れてくるには膨大な時間がかかります。自分が CTO を担って成長したほうが早いかもしれないし、CTO が在籍している企業だと対外的に言えるのは採用にいい影響があるだろうと思い、話を受けることにしました。

トラーナ自体は元々 CTO がいなかった組織です。CTO という職種を考えていくにつれて、どれだけ会社のキャッシュが大切であるか、なぜスタートアップにはお金がないのか、なぜ最初からアーキテクチャの設計もできるエンジニアを採用できなかったのか、なぜエンジニアリングは会社にとって重要なのか、自分の中で言語化が出来るようになっていきました。

エンジニア組織も採用が功を奏し、三つのチームそれぞれにエンジニアリングマネージャーが就くようになりました。チームとしては成熟してきており、権限委譲を行っていったおかげで、CTO が不在でもそれぞれのチームで意思決定できるようになっていきました。

一方で、組織や事業のフェーズが変わり、私自身が思いを馳せる組織像とは異なる形で、全社的な組織の在り方などの見直しが行われるようになりました。この頃から、徐々に自分との音楽性の違いが明確になっていきます。これは経営として目指すべきものが変わってきているからであって、正しい/正しくないの物差しで図れるものではありません。

CTO であるからこそ、自分の音楽を信じて進むことの大切さも時に必要であるし、音楽性が異なってきたら去るという決断をすることも必要だなと考え始めました。私自身は刺激ドリブンが源泉にあるからこそ、自分の音楽を変えるわけにはいかないと考え、CTO の退任を決意することにしました。

退任した後、多くの CTO 経験者から「めもりーさんお疲れ様でした」「CTO 大変でしたね」とお声がけいただいたときは感極まりそうになりました。CTO のみならず経営そのものが同じ状況下に置かれている会社というのはほぼありません。それは、そもそも事業モデルが違うというのもありますし、何よりも経営の考え方も一人ひとり異なります。さらに従業員として働かれている方々の人柄も異なります。

感極まりそうになったのは、周りに相談できる人もおらず、一人で CTO という孤独に思料を重ねてきたがゆえかもしれません。お声がけいただいた CTO 経験者の皆さんは、この経験を乗り越えてきているからこそ、CTO としての孤独を理解しているのだと腹落ちしています。私も CTO という経験を経たからこそ、次の方に「お疲れ様でした」と言いたいと思っています。


著者

つらかったぶんだけ楽しいことをしたい

刺激ドリブンの源泉は、つらいことを忘れるためだと書きました。つらいと感じるよりも、それ以上に楽しい!という刺激を得ることで、つらさを掻き消せると思っています。その楽しいという刺激が、プログラミングであったり、今では組織・プロダクト全体のエンジニアリングをしていくことだったりするのです。

つらくてつらくて仕方なかったことでも解放されたら、その反動が大きくでるのに似ているかもしれません。つらかったぶんだけ楽しいことをすればいい、というのが刺激ドリブンの真髄だと思っています。

初めからつらいことなんてしたくない、と多くの方は考えているでしょう。ただ私自身、つらく苦しい戦いを乗り越えて得られたときの気持ちが自身のキャリアを築き上げているのだと感じています。

就職したときの出来事もあり、エンジニアという職業を諦めかけていたこともあります。しかし、プログラミングの楽しさはそれほどつらかった自分を癒やしてくれました。

それが功を奏し、さまざまな経験を経て、多様なコミュニティの人と出会い、今のキャリアをつくりあげています。

刺激ドリブンという言葉に言語化できたのは最近ですが、この気持ちを忘れないで生きていきたいと思っています。

新しい刺激を求めて新天地に挑む

現職のエンペイは、そもそも PHP ではなく Ruby on Rails メインの会社です。これまで PHP や Node.js などをメインに書いていたので、新しいバックエンドのプログラミング言語を学ぶ怖さはもちろんあります。それは即戦力としてコミットしたいという焦燥感もあるのかもしれません。

しかし、何よりも書き心地ではなく、今まで接触しなかったコミュニティと接触するという、コンフォートゾーンから出るという意味でも刺激的な挑戦であると考えました。つまり、ネクストキャリアでは今まで使った技術スタックについては特に重要視していないということです(詳しくは入社エントリを参照)。

最終的にエンペイへ入社を決めたのは、エンペイの「やさしいFintechを。」というビジョンに共感し、お金にまつわる「不」を解消するサービスに携わりたいという思いもありましたし、何よりも取締役 CTO の田野さん(@hikoharu06)や岩崎さん(@hi_iwasaki)と音楽性やバイブスがシンクロした、というのも大きいです(詳しくはプレスリリースを参照)。

一緒にこれから組織を盛り上げていきたいという気持ち、そして刺激ドリブンが源泉にあるからこそ、プログラミング言語の縛りにとらわれずプロダクトを成長させていきたいと思いました。

長期的には、会社をグロースさせていき、IPO という短期的な目標の達成、そして IPO を超えた先のまだ見ぬ景色を見るために、会社のビジョンを達成するためには何をするべきかを戦略立てて考えていきたいと思っています。

刺激ドリブンが源泉にあるからこそ、プログラミングだけではなく、技術を使って会社を大きくさせるためにはどうすればいいか、私自身が今まで培ってきたスキルをどう活かすか、どう新しいことを学んでいくかを常に考えていきたいです。

読者へのメッセージ

キラキラな経歴をしていますね、とたまにいわれたりします。しかし実はエンジニアを諦めかけたり、精神的に不調をきたした時期を越えて今のキャリアを築いてきました。もちろんこの記事以外ではオープンにしていません。

この記事を読んでいる方はもしかしたら、エンジニアという職種を諦めかけているのかもしれません。もしかしたら、次のキャリアに悩んでいるのかもしれません。

一度イベントやカンファレンスに参加してみたら見る世界線が変わるかもしれません。もちろん、これは生存バイアスでもあります。コミュニティ、少なくとも私自身が体感してきた PHP コミュニティは温かく迎え入れてくれるはずです。PHP と今まで縁がなかったとしてもです。

どんなにつらいことがあっても、自分で行動を起こせば何かが変わるんだ、それは楽しいことが待っているのであり、刺激ドリブンの一つなんだと読者の皆様が思っていただけると幸甚です。


【受付終了】2023/9/27(水)19:00〜
『めもりーさんと語るFindy Engineer Lab オフ会@東京』開催決定!


めもりーさんと語るFindy Engineer Lab オフ会@東京

めもりーさんと語るFindy Engineer Lab オフ会@東京
Findy Engineer Labにご寄稿いただいた方々をお招きしたオフ会イベントです。美味しいご飯とお酒を片手にLTを聞きながら、懇親会で楽しく交流しましょう!
・開催日時:2023/9/27(水)19:00~21:30
・LTテーマ:「エンジニアキャリアに影響を与えたモノ・コト・デキゴト」
・申込方法:connpassページよりお申し込みください