これまでの経歴
Web系の制作会社でRuby on Railsを用いた業務系SaaSシステムの自社開発に従事。その後、もっとユーザーに近いプロダクトでの開発がしたかったので、グローバルに展開しているソーシャルゲーム会社に転職し、サーバー・インフラ全体の責任者として3本の自社ゲームの立ち上げと運用、その他複数ラインの開発のサポートに携わりました。
開発でいうと、クラウド環境上での運用・開発がメイン。業務内容としてはネットワーク設計・DB・ミドルウェア・アプリケーション・ネイティブアプリケーション・企画サイドとの調整や運用を見越したイベント・ゲームデータ設計など、上から下まで一貫して設計・開発を行ってきました。
また、チームビルディング・予実管理・採用・人員計画などにも携わらせてもらい、その後、事業買収に伴い退社、そしてGo言語をメインに開発が行える環境と、広告配信の性能要件が厳しい環境にやりがいを感じ、現在のCAリワードに辿りつきました。広告配信・アフィリエイトシステムの基盤開発をGo言語で行っています。
一緒に働いてみたいエンジニアって?
完全にエンジニアの視点からですが、一芸志向と多角的志向との2つあって、1つは一芸に秀でている人。その分野の原理というか、データベースであれば、ストレージとメモリがどう関係していて、どう動いているかを熟知していたりしているといいですね。自分にも組織にも、いい刺激にもなると思います。
ただ、低レイヤのところじゃなくても、例えば、「フロントのSPAよく知ってます」とか、「Electron使って、アプリ作ってます」とかそんな一芸でもいいんじゃないかと。コンピューターサイエンス的な詳しさもいいと思うけど、もうちょっと、プラティカルというか、実用性の高い何かでもいいと思います。
もう1つは、自分はこっちを重視しているのかもしれませんが、技術に対して、多角的な視点を持っている人。世にある技術って、メリット・デメリットあるんですよね。そんなメリット・デメリットをいろんな会社・環境・プロジェクトで働いてその経験を活かしている人。 例えば、技術選択とか、実装の仕方によって、「パフォーマンスは最高なんだけど、運用で問題がでてくること」とかを経験から語れちゃったりするといいですね。
チャレンジと責任はセットで
新しいものを作るときに、部分的に今までにない、何か新しいものを入れてみたいといったチャレンジ要素を取り込む的なことはウェルカムですね。
特に広告配信・計測部分はリクエスト数も多く、直接ユーザーへの表示にも関わってくる所なので1msでも早くレスポンスを返したい部分となってきます。そういった技術的課題が多い領域に対しては、積極的に新しい事に挑戦していきたいと心掛けています。
ただ、新しいことを始めるのって、パワーがいるんですよね。独りでやってもダメだし、周りを巻き込まないといけない。周りに「僕がこれをやる」と宣言して、引っ張っていくイメージがいいと思います。
そしてなにか問題があっても、みんなで対応していく、どうしようもなかったら自分で最終的にはケツを拭くといったように責任もセットでないと、そのチャレンジ自体が失敗になってしまうので、きちんとやりたいですね。
マイクロサービスとメンバーの成長
個人的にはマイクロサービスって事業体ごとに分けるべきだと思っていて、もしするなら、プロダクトが一つのチームとして、成り立つ規模じゃない限りは分けるべきではないかなと思います。
わかりやすい例で言うと、AWSだとEC2かS3かそれぞれで分けている。極端にそれくらいでやるべきだと思います。もちろんその中で、細かく分かれているかもしれないが、そこはある程度妥協した設計になっててもいいかなと。ただ、広くみた範囲で2つのプロダクトは疎結合です。とかがいいのかなと個人的には思います。
僕らの今の分け方は、サービスというより機能で分けてますが、今の規模から考えると、全員が触れるのが理想かなと思っています。
うまくマイクロサービスに切り出すことによって、サービス単位での技術選択に幅が生まれるし、サービスごとに責務が分割されるので組織的にもスケールしやすくなる。
そうすることによって、それぞれのサービスがオーナーシップを持って運用していく事になるのでメンバーの成長に繋がる機会も多いと思います。ただ、サービスは何も考えずに綺麗に分割出来るケースのほうが少ないと思うし、分割した分のコストも決して小さくないで、その辺りのバランスはまだ試行錯誤ですね。
いいもの創れる組織で働きたい
前提に「いいものを作りたい」といったものがあって、例えば教育系やりたいとか具体的なジャンルはないけど、いいもの創れる組織で働きたいというのが強いです。なにを作るにしても、誰と作るかを重視しています。
強いて言うなら、それぞれがそれぞれのプロダクトに対してオーナーシップ持ちつつも、みんなが連携してチーム(会社)としての成果をちゃんと上げられるようにしたいですね。
さっきの一芸もそうなんですけど、いろんな特化したスキルを持っている人たちが、ちゃんと働けるチーム、一芸持っている人だけがただ集まってると、「自分はここまでです」と線を引きがちだけど、そこを組織的なサポートでうまく回るようにしたいです。
いいチームは、メンバーそれぞれがドライブできる環境、例えば、情報共有とか、みんなでレビューなり目が届いて、なにやっているか状況が確認できることが大事かなと思います。
普通なこと言いますが、当たり前のことを当たり前にやること。すごい組織って、それができていると思うんです。個人の力というより組織の力を発揮できるようにしたいです。
今後どんなことをしてみたいか
サービス開始から時間の経ったシステムも多いので、技術的負債を返しつつエンジニアメンバーがより開発にフォーカスしていけるような環境を作っていきたいです。
チームや組織作りにも関心が強いので、プロジェクトやメンバーの中でもリーダーシップを発揮して、どんどん問題発見や解決を進めて行きたいですね。
あと、弊社では組織の目標として「アドテクでアフィリエイトを変える」と掲げているように、機械学習や動画領域など様々な領域に挑戦しています。
Go言語に力を入れていたり、新しい挑戦を受け入れてくれる文化があるので、これからも失敗を恐れずに技術的なチャレンジで攻め続け、新しい価値を生み出していきたいですね。
CAリワードでは、そういったチャレンジ精神に溢れたエンジニアを募集しています。 詳細はこちらから。