「定職に就く必要はない」と思いフリーランスのエンジニアに

やまげん氏(以下、やまげん):WHILLさんで働いた後、今のSpartyさんに移られたのかなと思うのですが、このあたりは何かきっかけがあるのですか? 新しいことをやり過ぎて疲れてしまったんですか(笑)

山下貴大氏(以下、山下):当時嫁と離婚して。嫁が公務員家系で、向こうの親からの見られ方で「定職に就いていなければいけない」みたいなところがあったんですけれど。離婚して、「別に定職に就いておく必要はないかなぁ」と思いました。

WHILLのCTOに「辞めていい? 業務委託としてやるから、辞めていい?」と言って辞めました。(そして)フリーランスのエンジニアになります。

その話をしたら、当時WHILLで営業をやっていた榊原という人がいるんですけど、そいつに「シャンプーのサイト作ってほしいから手伝って」と言われて。(それで)作ったのがSpartyのMEDULLAという(プロダクトでした)。

別に僕自身は、美容系やシャンプーには興味がなかったんですけれど、MEDULLAのサイトを作ったからにはもうちょっとがんばらなきゃと思って、気づいたら4年経っていたという。

やまげん:本当に、立ち上げみたいなところからという感じですよね。

山下:そうです。

パーソナライゼーションのチャレンジ

やまげん:(この部分で)ここも聞いてみたいなぁと思っていたんですけれど、(山下さんは)ビューティー系のパーソナライゼーションとかもチャレンジされてるのかなと思うんですが、そこの部分をテクノロジーで工夫されていたりもしますか?

山下:パーソナライズもある程度は。機械学習を使うまではぜんぜんできていないです。(お客さんが)診断を受けて、実際に注文をしてもらって使ってもらって、そのフィードバックを受けて処方開発に活かして、また(新たな)診断や処方に変えるPDCAを回したりはやっていますね。

やまげん:なるほど。ありがとうございます。

山下氏がこれまでSpartyで挑戦してきたこと

やまげん:ではせっかくなので、今SpartyさんでCTOとして活躍されている中で、今まで挑戦してきたことや(今)していること、これから挑戦したいことを話せたらなと思ったんですけれど。実際に(Spartyに)入って、CTOとしてどういったところに取り組んでいたんですか?

山下:そうですね。最初はずーっとCTOといいながらもエンジニアは独りぼっちでした。自分の前のエンジニアで、サーバーを立ち上げて消えていった人がいるんですけれど、そのサーバーがEC2に1台ポツンとあるだけでした。

EC2の1台にDBサーバーが入ってるわ、メールサーバーが入ってるわ。なんかいろいろなものがオールインワンになっていました(笑)。

やまげん:はい(笑)。

山下:(これは)CTOとしてというか、「え? 何? アクセスが増えたらどうすんの?」「このサーバーが死んだらどうするの?」みたいなやつなので、最近のサーバー構成になるように、RDS(Amazon Relational Database Service)を立てて、データ移行して、「EC2が複数台あった時にセッションはどうする」みたいことになったので、EKS(Amazon Elastic Kubernetes Service)を立てて、みたいな。

やまげん:はい(笑)。

山下:そういったところをやりました。ある程度規模が大きくなってくると、エンジニアを採用したり、デザイナーやディレクターを採用したり。

あとは、どうしても昔からのカートというかコードというか、ずーっとやっているとどこかで移行したいなと(いう気持ちに)なって、MEDULLAのカートやサービスとは別のところ、新ブランドはまた別のカートのサービスを使って立ち上げました。

やまげん:はい。

山下:だから、それぞれのカートで、ブランドが別々に走っているような時がありました。本当はその新しいカートのほうに移行したくて、できるかなと思ってやっていましたが、結局できないというか、使い勝手が悪いとか、開発体験も悪くて。

とはいえ、どこかでちゃんと両ブランドを統合しないといけなくて。「どうする?」となった時に、おとなしくMEDULLAの元からあったカートのほうにデータを移行しようとなりました。

カートを移行する時は、サービスの施策を止めないといけないところをどうしようかと考えつつ、苦労しながら。データ移行もうまくいくようにとか、(社内の)各部署と調整しながらやりました。(その結果)なんとか移行できたというところです。

あとはフロントもjQuery、昔からのコードみたいな感じになっていて、「Reactを入れたいな」と思いながらReactを入れて。「TypeScriptにしたいな」と思ってTypeScriptをして、みたいな。(そんなことを)けっこう昔はやりましたね。

やまげん:本当に一つひとつモダンにするというか、その時に合わせて(必要な)開発を行っていった感じですね。

山下:そうですね。

やまげん:EC2オールインワンは衝撃的ではあります。

山下:いやぁ衝撃ですよ。しかも「FTP(File Transfer Protocol)でファイル転送して」と言ってくるみたいな(感じで)。「何を言ってんねん」と。「GitHub管理じゃないです」「なんで!?」(笑)。

やまげん:(笑)。

山下:今思うと笑い話ですけれど、もうしんどいですよ。こっちは独りぼっちで全部やらなければいけないし。

やまげん:それからあとは、強いインスタンスに入っていった感じですか(笑)?

山下:あー、そうですね。けっこう強めだった気がします。

やまげん:そうですよね(笑)。

山下:なんだろう、こういうの。“ノーガード戦法”みたいな感じに。

やまげん:ノーガード戦法(笑)。

山下:なかなかすごかったですよ。今はインフラエンジニアも採用できて、ちょうど年明けにもCMがありましたが、ちゃんと高負荷のものに耐えられるように(なったり)とか。

僕はEKS(Amazon Elastic Kubernetes Service)でいろいろやりたかったのですが、そこまで余力がなくて。結局インフラのエンジニアがいろいろ全部やってくれました。「いやぁ、ありがたいなぁ、自分はちっぽけな存在だなぁ」と思いながら(笑)。

やまげん:(笑)。そこは社内のエンジニアに助けられつつ?

山下:そうです。

Spartyで運用している現状の環境

やまげん:今はKubernetesではなくて、何を採用されているのですか?

山下:Kubernetesでずっと。

やまげん:そうなのですね。じゃあEKSで。

山下:そうです。EKSで。

たまげん:高負荷に耐えながら?

山下:そうです。

やまげん:そう考えると、だいぶモダンになったというか。Webのフロントエンドも、ReactとTypeScript使うような構成になっているんですか?

山下:そうですね。全部が全部そういうわけでもなかったりするんですけれど、ほとんどReactでやっていて。ただ、SPA(Single Page Application)をやろうとなった時に、いろいろEC業界の慣習があって。フルフルSPAにできない問題があるので、普通にページ遷移しています。そのあたりの妥協点を見つけながらReactでやっている感じにはなっています。

やまげん:なるほど。

「EC業界のSPAできない風潮」の例

やまげん:ちなみに、そのEC業界のSPAできない風潮は、具体的にどんな感じのことがありますか。

山下:ページ遷移ごとにタグを発火させていくというものがあります。

やまげん:ああ!

山下:普通のECだと、単品通販ではLPにそのままフォームがあって購入できるのでまだいいんですけれど、弊社の場合は、LPがあって診断して、診断結果画面があってと遷移するので、すごくタグを発火させています。

SPAでそのタグを発火させているとなると、わりとしんどい。エンジニア以外の人がGTMで設定すると、「SPA用のタグは書けるっけ?」みたいになったりします。(だから)「いや、おとなしくページ遷移させよう」みたいな。

やまげん:なるほど。それは仕方ないですね。

山下:そうなんですよね。先ほどカート移行を結局元に戻したという話がありましたが、その新しいカートはSPAだったんですよ。やはりひたすらタグが発火しない問題が永遠につきまとっていて「もう無理だぁ」「やめた」となったりしました。

やまげん:コンバージョン命ですもんね。それを取ってなんぼの世界で取れないのは、「どういうことをや」という感じですよね。

山下:そうなんですよね。「利用者からするとSPAのほうが楽かもしれんけどなぁ」と思ったりはしましたけれど(笑)。

やまげん:確かに(笑)。

山下:そう(笑)。まぁなんともいえないところではありますよね。

Spartyの採用と開発組織

やまげん:採用の話もありましたが、今は何名ぐらいの開発組織になっているんですか?

山下:今は上下したりして、8人とかですかね。あれ? 本当に8人?

やまげん:(笑)。

山下:隣で広報も「うん、そのあたり」となっています(笑)。ちゃんと数えればわかるのですが、すみません。ポッと出てきたのが8人です。

やまげん:優秀なエンジニアの方を集めてやられている感じですか?

山下:そうですね。コロプラの時に一緒に働いていたメンバーで、僕をいろいろ教育してくれたというか、いろいろ教えてくれた、僕が勝手に師匠と呼んでいる人がいるんですけれど、そのコロプラ時代の師匠を呼んだり、その下のメンバーでコロプラに新卒で入った子がいます。その子は新卒で入った時からずっと見ていて、久々に会ってしゃべって、それで「うちに来て」と言ったら来てくれたり。そういう点では、リファラル採用が多かったですね。

やまげん:うーん、やはりリファラルは強いですか?

山下:リファラルは強いですね。しかも過去に一緒に働いていて、どのくらいのパフォーマンスというか、どのくらい優秀かがもうわかっているので、来た瞬間から「コミュニケーションを取りやすい!」みたいなこともあったりしますね。

やまげん:リファラル採用も、なかなかうまくいかない企業も多かったりするのかなと思うのですが、そのあたりのコツなどはありますか?

山下:リファラルのコツ。やはり一緒に働いている時に、自分がどういう人間かをちゃんと売り込んでおく。「こいつと一緒に働いていても別に害はないな」と思ってもらうとか(笑)。

あとは実際に一緒に来てもらって働く時に、きっかけとして、「この人と一緒に働いたら楽しいやろう」とか、「まぁいいやろう」と思ってもらえる関係性とか。

そういった「楽しそうな会社で働いているなぁ」という環境をちゃんと作っておくのが大事かなとは思いますね。雰囲気で、何をしたらいいかというHowがあまり言えていないんですけれど。

やまげん:いえいえ。山下さんの魅力があってこそなところもあるのかななんて(笑)。

山下:なんでそんな笑いながら言うんですか!

やまげん:いやぁ、はははは(笑)。飾らない感じがやっぱりすごく素敵だなと思ってですね。

山下:ありがとうございます。褒め言葉として受けておきます。

やまげん:あははは(笑)。この打ち合わせの時も、すごく楽しくお話しさせてもらったなと思っています。

山下:ああ、「ヤマカゲうるせえ」って1度言っちゃった。

やまげん:あははは(笑)。

山下:やまげんさんにして、ヤマカゲさん。内輪ネタなのでやめておきますけれど。今ヤマカゲさんは絶対聞いています。

やまげん:Voicyの社員のヤマカゲがもともと(山下さんと)知り合いで。ヤマカゲから「なんで?」とお便りが来ていますね。

山下:ははは(笑)。

(次回に続く)