Findy Engineer Lab

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

CTOになったToriです。せっかくの機会なのでエンジニアとしてのキャリアを振り返ってみました

前職のAmazon Web Services(以下、AWS)でコンテナスペシャリストソリューションアーキテクトやデベロッパーアドボケイトを務め、2022年4月より株式会社カミナシに転職したHara Tori(@toricls)さん。 2022年7月1日に、彼がCTOに就任したことが発表されました。

Findy Engineer Lab編集部は、就任間もないToriさんにインタビュー。著名エンジニアである彼が、どのような経験を積んでスキルを研鑽してきたのか、そしてカミナシで何を目指すのかを伺いました。彼の歩みから見えた「エンジニアがより良いキャリアを実現するための方法」とは。

「あなたは大手企業には向かないと思う」

――改めまして、CTO就任おめでとうございます。せっかくの機会ですので、Toriさんのキャリアを総括したインタビューをさせてください。コンピューターに興味を持ったのは、いつ頃からでしょうか?

ありがとうございます。コンピューターとの出会いは小学校高学年の頃ですね。父が、富士通のFMVシリーズのデスクトップマシンを買ってきました。父はそのパソコンでゲームをしていましたが、後にもっと良いマシンに買い換えた際に、古いパソコンが私のものになりました。当時は、プログラミングなどをするわけではなく、ゲームをしたり、流行り始めたインターネットに少し触れたりして遊んでいるだけでした。

プログラマーという存在に触れたのは中学生の頃です。実は、株式会社はてなでCTOをやっているmotemenさんが、中学・高校の同級生なんですよ。彼はその頃からプログラミングに興味を持っていて、分厚い本を図書館で借りて読んでいましたね。彼の頭の良さは当時から群を抜いていて、「天才とはこういう人のことを言うんだな」と思っていました。プログラミングの面白さに気づいたのは、彼がきっかけですね。とはいえ、​​その頃はまだ積極的にプログラミングを学ぼうとはしていませんでした。

――そのToriさんが、なぜエンジニアとして就職したのですか?

両親の言葉が転機になりました。うちの両親、特に父はあまり私のやることに口を出すタイプではなかったんです。その父が、就職活動が始まる頃くらいに「お前にはたぶん大手企業は合わないと思うな」と、ポロッと言いました。

確かに、私は昔から権力に楯突くようなところがありまして。ルールに縛られて何をやるかを指示されるよりも、自由に伸び伸びとやれる環境のほうが、パフォーマンスを出せてきたなと感じます。父の言うこともその通りだなと思って、比較的規模の小さい会社を受けることにしました。当時はIT系のベンチャーがいくつも立ち上がっており、もともとパソコンが好きだったのもあって、複数のIT企業を受けてそのうちの1社に就職しました。

新卒で入った会社では研究開発に取り組むチームに配属され、優秀な同期と一緒に働いて。その次は、会社の先輩と一緒に起業して。どちらの環境も、スキルの高い人たちと働けて楽しかったですね。その後、株式会社SUPINFとAWSで働いてからカミナシに移るのですが、このSUPINFとAWSでの経験が、特にキャリアへの影響度が大きいですね。自分自身の、エンジニアとしての価値観や哲学を形成してくれました。

初めて運用のフェーズに携わり、価値観が変わった

――では、まずSUPINF社時代の話を聞かせてください。

当時のSUPINF社は社員10名以下くらいの規模で、ほぼ全員がエンジニアでした。入社当時はWebブラウザで遊べるゲームを受託で開発・運用しており、週次でクライアントとミーティングをして追加する機能などを決めていました。

それまで、私は自分の書いたソフトウェアをサービスとして運用する経験がほとんどなかったんですよ。コードを書いたら、運用は他の担当者にお任せでした。サービスのライフサイクル全てに仕事として関われたのは、SUPINF社が初めてなんです。

今思えば、1社目と2社目で働いていた頃の私は「いかにして運用フェーズを見越した実装にするか」「システム全体のアーキテクチャをどのように改善していくか」などの観点が完全に欠落していました。手を抜いていたわけではなく、このあたりの重要さを知らなかったんですよね。SUPINF社での経験がなければ、もしかしたら今ごろ「とりあえず動けばいい」という意識でコードを書くエンジニアのままだったかもしれません。

――SUPINF社では具体的にどのような運用業務に携わりましたか?

入社して最初にやったことを今でも覚えているんですが、当時、担当していたWebブラウザゲームで問題だったのは、デプロイが手作業だったこと。作業の属人性も高く、もし手順を誤れば障害が発生しかねないオペレーションになっていました。そこで、デプロイの一連の流れをbashスクリプトにまとめて、デプロイとリリースの作業を自動化しました。

さらに、当時の同僚に凄腕のエンジニアがいて、彼がその職場に構成管理ツールのAnsibleを持ち込んでくれたんです。その後も、運用改善のためにより良い技術を探していたら、Dockerが2014年の半ばくらいから話題になり始めました。仮想マシンのお守りに使う時間に辟易していた僕は当然ながら「これだ!」となって、絶対に取り入れようと思いましたね。

そして、同年のAWS re:InventでAmazon ECSが発表されて、翌年の春にはユーザーが利用可能になりました。そこで当時に開発・運用していた複数のWebブラウザゲームのサーバーを直接的にアプリケーションを実行する形からAmazon ECSを使ってコンテナとして実行するように置き換えたり、デプロイを高速化するためにAlpine Linuxなんかをベースイメージとして使って軽量化に取り組んだり、他のプロジェクトでは案件の要求に応じてKubernetesを取り入れたりと、運用改善のために毎日試行錯誤を続けました。

もちろん、それらの取り組みのなかにはうまくいったものもあれば、「こうしておくべきだった」と反省したものもたくさんあります。

――そうした運用を通じて、SUPINF社では何を学べたと思いますか?

将来の運用やシステムの変化を考慮せず、初期構築が楽であることを重視して行われる技術的意思決定というのは、問題の先延ばしでしかない可能性が高いということ。これは個人的な意見ではありますが、初期構築が楽であることを優先しすぎると、実はその陰で将来的な拡張性や変化容易性を気づかないうちに犠牲にしていることがある、という話です。Easy to startなシステムコンポーネントを安易に選んでシステムを作り始めるというのは、継続的な改善を前提としたシステムにおいてはある種の技術的借金になりうるんですよね。

短期的に楽であることを追うよりも、稼働後の運用のしやすさとか、システムアーキテクチャ上のコンポーネントの組み換えやすさといった、中長期的に見て考えることを減らせる方針を選ぶほうがいい。数年というスパンで、サービスのライフサイクルの始まりから終わりまでを経験したことで、「長い目で見てシステム設計のあり方を考えること」の重要性に気づきました。

AWSで学んだ、組織やシステムをスケールさせる仕組み作り

――AWS社に移った経緯も聞きたいです。

SUPINF社のキャリア後半で、私はサーバーレスの技術に傾倒していました。開発と並行してシステムの運用業務にも携わるなかで、「インフラ運用にかかる工数をさらに低減させたい」と思うようになりました。

そして、AWS Lambdaに代表されるサーバーレス技術に魅了され、それらを積極的に採用するようになって。SNSや各種カンファレンスなどでもサーバーレスに関する情報発信をしていたんです。すると、西谷圭介さん(元AWS社員・現Singular Perturbations CTO)の目に留まって。「AWSに入って、中の人間としてAWSのサービスを見るとすごく勉強になりますよ」と、勧誘を受けました。

AWSは入社難易度が高いので「どうせ受からないだろうなー」と思いつつ、受けてみたんです。すると、なんと内定して。知らせを聞いて、一番びっくりしたのは私でした。技術的な好奇心から当然AWSの中のことに興味があったのと、仮に履歴書に「AWS」と書いてあったら箔がつくかなと考えたのもあって、入社を決めました(笑)

 
入社当日のToriさんのデスクのホワイトボード。チームメンバーからの寄せ書きがズラリ。

――AWSの中で働いてみて、どのような印象を受けましたか?

AWSへ入社するまで、私は比較的年齢の若いメンバーが多い環境で働いてきました。一方のAWSでは、同僚の考え方や立ち振る舞いが大人びていることにまず驚きました。それから、当然ながら働くメンバーのスキルがとてつもなく高い。これまで働いてきた会社のトップクラスにあたるような人が社内にゴロゴロいるわけです。

そして何よりも、ビジネスや組織、システムをスケールさせていくための仕組みが徹底的に構築・運用されていることに、AWSがAmazonという企業から受け継いでいるDNAを感じました。具体的な例を挙げると、AWSでは数名からスタートしたチームが、数年で数百人とか千人規模まで急成長することがわりと頻繁に起こります。そして、グローバルに展開されたチームでは、各メンバーのタイムゾーンが異なるのも当たり前です。

その前提でビジネスや組織をスケールさせていくには「非同期的なコミュニケーション」かつ、口頭ではなく「テキストでのコミュニケーション」を主軸に、チームの働き方を設計しなくてはなりません。その体制構築の重要性を、Amazonでの組織運営の経験からも学んでいるんですよね。

さらにはシステムのアーキテクチャにおいても、「スケールアウト(システムを構成するサーバーの台数を増やし、システム全体の処理能力を高めること)が可能な設計になっているかどうか」を非常に重視します。逆に言えば、どれほど利便性の高いツールやミドルウェアであっても、スケールアウトに難があるならば極力使用を避けます。これも、ECサイトのAmazon.comを運用し、とてつもない量のアクセスを捌いてきた結果、企業全体として学んできたノウハウの一つと言えます。

つまり、「自分たちがどのような課題を解決したいか」「将来的にどうなっていなければならないか」というゴールから逆算して、最適な組織やシステムの設計を導き出している。その思想を肌で感じられたのは、私にとっても大きな学びになりました。

だからこそ言えるのですが、事業計画などの情報をエンジニアが読むのはすごく大事なんですよね。ちょっと陳腐に聞こえるかもしれませんが。自社のサービスが今後どのように成長していく計画なのか、数年後にたとえばユーザー数はどれくらいになるのかといったことをエンジニアが知っておく。

こういった情報は間違いなく、将来の適切なアーキテクチャを導き出すうえで重要になります。事業の方針に基づく未来をふまえてエンジニアリングの方針を決められるメンバーがいると、その企業は継続的に成長しやすいだろうと思います。


2021年末にラスベガスで開催されたAWS re:InventでのAmazon ECS/AWS Fargateセッション後、現地でイベントに参加していた一部のチームメンバーと撮影。

「何をやりたいか、誰と働くかを重視して仕事を選ぶと、めちゃくちゃ楽しいですよ」

――数々の経験を積んで、カミナシに入社しCTOに就任されたのですね。

カミナシで、キャリアの“答え合わせ”ができるんじゃないかと思っています。SUPINF社で気づき、AWSにおいて言語化された自分なりの考え方が、本当に価値のあるものなのかを検証できるチャンスが、これから大きくなっていくタイミングのカミナシにはあると思っています。その挑戦は大きな意義があると感じたんです。もしかしたら、自分はただの頭でっかちだったと痛感させられるかもしれませんが(笑)。

もちろん、AWSの仕組みや思想がそのままカミナシにフィットするかというと、そんなことはありません。事業や組織、システムの規模もサービスの性質も、何から何まで違いますからね。カミナシにフィットする、カミナシなりの方法論を確立しなければならないです。

でも、今すごく仕事が面白いですね。「この人数のスタートアップで、ここまでしっかり業務を回せているんだ!」と驚く局面もあれば「ここはまだまだ改善できるよね!」という場面もあって。未来を構想して行動している瞬間が、本当に楽しいです。

余談ですが、私はこれまでのキャリアを、そのときエンジニアとして興味・関心のあったテーマに合わせて直感的に選んできました。でもカミナシへの転職は、これまでで最もキャリアの先を見据えた意思決定だったかもしれません。

この先、まだまだ何十年先もIT業界で仕事をしたい。だからこそ、プレイヤーとして働くだけではなく、ピープルマネジメントなどの業務にも興味があります。これまでやったことのない新しい物事に挑戦することで、自分の幅を広げられるか試してみたい。CTO就任には、その考えが反映されています。


カミナシの全社イベントでの様子。

――今後のCTOとしての活躍が楽しみです。最後に、メディアのテーマである「キャリア選択」という軸で、読者に伝えたいことはありますか?

私はこれまでの職場で、本当に良い人たちとともに働けました。一緒に働きたいと思えるような人や、一緒に働いて学びを得られる人たちが、世の中にはたくさんいます。そういった環境で働くと、エンジニアとしてのキャリアはきっと豊かになるはずです。

私はこれまで、お金では仕事を選んでいないんですよ。もちろん、どの職場でも生きていくのに十分なお給料はいただいてきましたが、それを目的に転職したことはありません*。

*…Toriさん曰く「とはいえ、我が家が共働きなおかげで金銭的な制約をあまり受けずにチャレンジしやすかったというのもまた事実なので、ポジショントーク感も多少はある気はします」とのこと。

「その会社に入ってどのような仕事をやれそうか」とか「どのような人と一緒に働けそうか」を大切にして、職場を決めてきました。そういった判断基準で仕事を選ぶと、きっと楽しく働けます。私が言うと生存者バイアスのようになってしまうかもしれないですが(笑)。

読者にもっと含蓄のあるアドバイスができたらいいでしょうけれど、まだまだ私は未熟で、人にキャリアについて語れるほど立派な人間ではないと思っているので、あまり偉そうなことは言えません。何か伝えたいことはあるかな。あ、「挑戦のある人生って最高ですよね!」って書いておいてください!

取材・執筆:中薗昴

【アーカイブ動画】Findy Engineer Lab アフタートークイベント

ToriさんとYosuke Furukawaさんから学ぶ、エンジニアキャリア論

ToriさんとYosuke Furukawaさんから学ぶ、エンジニアキャリア論 -Findy Engineer Lab After Talk Vol.2-
・開催日時:2022/11/2(水)12:00~13:00
・アーカイブ視聴方法:こちらから
※視聴にはFindyへのログインが必要です。ご登録いただくと、Findy上でその他の人気イベントのアーカイブ視聴も可能となります。