堀江 利哉 - Horie Toshiya
大学卒業後、主に法人向けのシステム運用監視のアウトソーシングを行う情報通信企業へ入社。その後は大手インターネット関連サービス企業へ入社し、Web検索領域のテックリードとして事業を牽引。そして2016年にグリー株式会社(以下「グリー」)へ入社し、ゲーミングプラットフォームの立ち上げから携わり、2019年11月にグリーの子会社アウモ株式会社(以下「アウモ」)へ出向。現在は開発グループでサーバーサイドエンジニア・リードエンジニアとして従事。趣味は大日本プロレス、PANTERA(ヘヴィメタル)、海外旅行、オートバイ。
これまでの経歴
以前の情報通信関連の会社では、システムの運用監視の方法として主にパッケージ製品を使っていました。それだと細かい要望に応えられないと感じる場面が多く、どうしてもオーダーメードの監視用アプリケーションが必要になるんですよね。そこからコードを書き始めたのが自分のキャリアの原点です。コードを書いているうちに、toB向けの領域に留まらず大きいユーザー規模のサービスを作りたいと思ったのがきっかけで、大手インターネット関連サービス企業に転職しました。
その会社では、天気や占い、ニュースなどを展開するポータルサイトのWeb検索領域を担当していました。最初はプログラマから始まり、徐々にフルスタックとして業務の幅が広がっていき、その会社で5年ほど経った頃に転職を考え始めてグリーに惹かれて入社しました。
グリーは当時から技術的な発信を多くしていて、そういう企業は今ほど多くなかったので先進的で目立っていたんですよね。そこが興味の起点になって、GREE製のミドルウェアやフレームワークのコードを読んだりして、こういう人たちがいる環境で働いてみたいなって思ったのが入社のきっかけです。
メディア事業への転身
グリーでは、PCゲーム向けのプラットフォームの立ち上げから携わり、担当領域はサーバーサイド・クライアントサイドでした。PC版のプラットフォームを粗方作りきった実感が湧いたとき、システムも元気に動いてて運用上の課題もなさそうで、他のことにチャレンジできそうな余裕が出てきたんです。そのことを会社に相談して、いくつか引き合いをもらったうちのひとつがアウモでした。今までの経歴はゲーム事業の領域だったので、ちょっと違うことをやってみたいなと思って広告メディア事業のアウモを志望しました。
ちょっと失礼な話、それまでメディアサイトは単なるCMS+αくらいにしか思ってなかったんです。でもそのはずなのに、アウモはそれなりに社員規模もシステム規模もあって、なんかちょっと変だし面白そうと感じたのがアウモへの興味の起点です。
主担当となったプロジェクトの成功
アウモへ異動後、最初は検索システムの改善を担当しました。簡単に言うと、「検索を最適化してくれ」というオーダーではあったんですが、蓋を開けてみたら検索目的ごとにCloudSearchで検索インスタンスを10台くらい使っていて、そこにかかってたコストも結構かわいくなかったので、まずはそこから手を付けました。
「aumo」は、ユーザーの位置情報によって配信するコンテンツを最適化しているため、地理情報は重要な要素として取り扱っています。そのためElasticsearchにしたことによって、座標情報やシェイプ情報など、検索インデックスを柔軟にチューニングできるようになりました。また、1台のインスタンスで賄うことができるようにしたので、コストも5分の1くらいに大幅削減することができました。これをやり遂げたことによってその後の開発の選択肢が広がりましたね。
次に、いわゆるレコメンドエンジンの最適化を担当しました。「aumo」の場合だと、記事の内容とユーザーの閲覧傾向に基づいてユーザーに最適な記事を推薦するシステムです。記事の特徴とユーザーの行動特徴を数理的なアプローチで導き出しているんですが、その過程において機械学習を採用しました。
そもそもプロジェクトの背景は、既存のルールベースの実装があったところに機械学習を導入するといったものでしたが、自分にとってはやりたいことをできるチャンスでもありました。着手したのは、記事の推薦手法の検討から設計、実装まで。アカデミックな内容も多くて、久々に猛勉強しないと業務が追いつかないという状況を味わいました。A/Bテストでは絶対負けられんし、ここで負けてしまうと機械学習の導入チャンスがなくなってしまい、やりたかったことができなくなる。そしてモチベーション低下につながってしまう…そうなってしまうことはなんとしてでも避けたかったですね。無事にこのプロジェクトが成功してからは、前のロジックの時と比べて改善幅が18%くらい上がりました。効果が出たことはもちろん、やりたいと思っていたことを実現できたという経験にもなりました。
事業成長に欠かせない、エンジニアの高い技術力
自分には技術力があるとは思ってないです。「技術的な限界=事業の限界」になりうるんじゃないかと考えていて。技術的に未熟だと事業の実現までに時間がかかるし、機会損失になっちゃったりするので、そういうつまんない状況に陥りたくないんですよね。自分はそんな器用な人間じゃないし、エンジニアという仕事しかできないから、技術面で事業の限界値を上げていきたいと思ってます。
最近はクラウドとかOSSが浸透してるので、昔に比べてスクラッチでコードを書く機会が減っていて、それ自体は喜ばしいことではあるんですが、いつも「これってほんとに自分の成果かな」って自問自答してます。やりたいことが実現しやすい時代ではあるんですが、その反面でエンジニアが馬鹿になりやすいとも思ってます。自戒も込めて。なので、なるべく表層的な理解にとどまらないように、サービスがどうやって動いているかを追及する癖をつけるようにしてます。そういった習慣が、エンジニアという自分をつくってきた感覚さえあります。
技術力の向上を妥協できない理由
技術力を高める方法が二種類あるとしたら、「幅」と「深さ」ですかね。引き出しを増やすために情報収集して技術の幅をどんどん広げていく。そうやって引き出しをデカくしたら、次に技術に深みをもたせていく。Tech系の雑誌やサイト・同僚との会話でトレンドをキャッチしたり。前はよく勉強会に行ったりもしてました。そうして集めた情報の中から、自分の興味関心に引っかかったものや業務で使えそうなものがあれば、実際にコードを書いてみて深掘りをする。その繰り返しです。特に変わったことはしてなくて、みんなやってることですかね。
前職での経験もあり、検索エンジンのバックグラウンドはある程度理解していました。ただ、その当時は内製の検索エンジンから途中でできあいのGoogle検索エンジンに切り替わったんですよね、もうそっからは脳死状態になりました(笑)。でも、そんな予想外の事態を経験して、表層の部分だけではなく根底で使われてる技術まで深掘るようになりました。それがいまの学習意欲にも繋がってるので、あの経験は無駄じゃなかったなと思います。
視界を広げるため、変化を求め続ける良い影響を受ける『人』の特徴
どんな人でも、モチベーションコントロールは難しいんじゃないかなと思います。自分も飽きやすいし、モチベーションは結構下がりがちだし(笑)。まぁでもそこを自ら理解してか飽きない努力はしてますね。
初代タイガーマスクの言葉で、「やる気になることも技術のうち」というのがあるんですが、本当にその通りだなと思って自分の中でもその言葉を大事にしています。仕事が慣習的にならないように、自動化に取り組んだり、新しい技術を取り入れたりと、考え方を固めずに変化させ続けるということを意識的にやってます。そうすることでモチベーションを維持できて、やる気のある状態を作り出せてるんじゃないかと思います。
良い影響を受ける『人』の特徴
これは経験談になっちゃうんですが、若手でこれから優秀になりうる人って、技術力は置いといて『丁寧な人』なのかなって思います。エンジニアに限らずですが、仕事を丁寧にやるのってスキルは関係ないじゃないですか、誰にでもできると思いますし。
学生時代に情報系の学校出てコード書いてきた人は、入社時点ではアドバンテージになりますが、そうじゃない人でもどちらにせよ仕事への向き合い方や進め方がきれいな人の方が、長い目で見たらそれが後々大事になってくるんだと思います。ここは自分が通ってきた道ではあるので、周りの人が良い影響を与えてくれる環境がいかに大事かというのは若い人に伝えられるんじゃないかな。
何気ない日常のはずが、それが経験に変わる
自分自身、周りの人から学ぶことも多いので、この先もお互いに良い影響を与えられる人たちと一緒に仕事をし続けたいなって思ってます。一緒に仕事をする仲間って人間的に信頼できる関係性が大事で、そういうのって日々の業務でも出てくるんですよね。コードレビューの指摘の仕方一つとっても。なので自分も業務上のコミュニケーションの中であっても周りの人に良い影響を与えることができればなぁと思いますね。仕事観はそれぞれ違うのが当たり前ですから。
自分もそうだったんですが、実際に一緒に働いてみると身近な人からの影響ってかなり大きいじゃないですか。自分にとっていい人たちと仕事をすることで、その経験がいつの間にか気づいた時には肥やしになってるんだなって実感してます。
『今しかできないこと』ができるということ
新しいことをやりたい人はどんどんやっていいという風土があるのはすごくやり易いですね。コードが素晴らしくても独善的だと短命で終わったりするのも見てきたので、やりたいことをやるにも組織環境は大事だなぁと常々思ってます。
いまのアウモの開発組織はまだコンパクトな方なので動きやすいっていうのはあるし、それぞれが裁量持ってできるのはこの環境あってこそなので、それを作ってくれてる周りの人にもすごく感謝しています。特に、村田さん(アウモ 開発責任者)は仏のような人なんで、いつも助けられてます。アウモの良いところは開発組織に仏のような村田さんがいるってことですね(笑)。
進み続ける事業とこの先の挑戦
プラットフォームにおける仕様策定なんかは機械的なプロトコルに従ってたことが多かったんですが、「aumo」というメディアは人間が書いた文章を人間が読んだり、ユーザーのアクティビティや季節性、地政学においてもメディア全体が影響されるので、そこが緊密な構成で面白いと感じてます。
いま自分は、季節性のある記事の配信ロジックについての開発をやっていますが、有機的な振る舞いを人間が判断してサービスを改善していくのではなく、それを技術面で科学することができれば楽しいだろうなぁってのが今のモチベーションでもありますね。
サービスが成長していても、これからの事業スケールのためにはまだまだエンジニアとして挑戦できることがあって、それが尽きることはないですからね。