エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

Indeedがあらゆる職業の給料を分析・予測~エンジニア山口有理さんの挑戦を支える「超データ重視開発」

公開

 

2012年にリクルートグループになって以来、ここ日本でも急速に存在感を強めている世界最大級の求人検索エンジンIndeed。求人メディアや企業のWebサイトなどから情報を集め、求職者の希望に合った企業を一覧表示してくれるサービスだ。

そのIndeedの日本オフィスで、壮大な取り組みが始まっている。独自アルゴリズムの開発によって、「世界中の職業の給料額を分析・予測する」というものだ。

現状、Web上で求人検索をしても、求人票の給料情報が統一的に表示されるケースはまれである。情報提供元によって年収・月給・時給と表記がバラバラな上、給料目安額の幅が広過ぎてどれくらいもらえるのか分からないものや非公開となっている求人もあるからだ。

そこでIndeedは、世界55カ国以上でサービスを展開し(2014年11月時点)、膨大な数の求人データを扱っている強みを活かし、給料額を予測するアルゴリズムを作ろうとしているのだ。

国、役職、所在地など、給与に影響を与えるあらゆるデータを取得・解析し、予測値を算出することは、求職者により有用な求人情報を提示するという意味でありがたいサービスだろう。しかし、開発側にとっては一筋縄ではいかない超難題である。

「このミッションを負っているのは、Indeed内でサラリーチームと呼ばれる部門です。チーム内で、エンジニアは私を含めて3人だけ。扱うデータ量は半端じゃないですし、難しいミッションなのは承知しています。それでもやり切りますよ」

そう話すのは、サラリーチームで唯一の女性エンジニアである山口有理さんだ。一見無謀とも思えるIndeedの取り組みを、彼女はどう完遂しようとしているのか。山口さんの仕事を支える、Indeedの徹底した「データ重視開発」のすごさに迫る。

プロフィール

Indeed, Inc.
山口有理さん

1985年生まれ。幼少期をニュージーランド、ハワイなどで過ごした帰国子女。日本の中学・高校を卒業後、米スタンフォード大学に進む。当初は医師を目指していたが、在学中にプログラミングに興味を持ち始める。2009年にゴールドマン・サックス・ジャパン・ホールディングスへ入社してから、東京オフィスでプログラマーとして約5年半勤務。2014年6月、リクルートホールディングスに転職し、グループ会社のIndeedに出向して現在に至る

外資系証券からIndeed Japanへ移った理由

その前に、山口さんがプログラマーという職業を選んだいきさつと、Indeedに仲間入りした経緯を紹介しよう。彼女とプログラミングとの出会いは「運命的なもの」だったそうだ。

親の仕事の都合で、小さなころからニュージーランドやハワイで過ごしてきた山口さんは、心臓外科医になるという夢をかなえるべく米スタンフォード大学に進学。そこで選択授業の一環でJavaを学んだことが、人生をがらりと変えた。

「シリコンバレーに近いという土地柄もあってか、スタンフォード大はプログラミングの授業が多彩だったんです。そこで何の気もなしに1つ受けてみたら、すごく楽しくて。『私のやりたいのはこれだ!』と直感し、2週間後には専攻を変えていました(笑)」

プログラミングにのめり込んだ山口さんは、数学とコンピュータサイエンスのダブルメジャーを取得して大学を卒業。その後帰国し、大学3年次にインターンとして働いたことがあったゴールドマン・サックス・ジャパン・ホールディングスに入社した。

その後、トレーディングチームと連携した開発チームに配属され、株式取引のレポート作成やサポート業務を幅広く担当。「目が回るくらい忙しい時期もあった」とはいえ、プログラマーとして充実した開発ライフを送っていた。

さまざまな開発業務を担当した中でも、例えばレポート作成に関連した開発業務は膨大な取引情報をデータベースに取り込み必要な情報だけ自動抽出して各国のレギュレーションに合わせるというもの。こうした経験は今の仕事にも役立っている。

「ゴールドマンでの仕事は面白く、積極的に転職活動をしていたわけではなかった」という山口さん。しかし、たまたまコンタクトを取っていたリクルーターからIndeedを勧められ、面接を受けることになったという。

「最初は、『話の種くらいにはなるかな?』くらいの軽い気持ちでした」

なぜなら、Indeedはすでにリクルートに買収されていたため、「ドメスティックで営業中心の風土なのではないか」という懸念があったからだ。グローバル企業の中で、世界の拠点とつながりながら仕事をしてきた身としては、今さら国内に“閉じた開発”を行うつもりはなかったのだ。

ところが、面接でIndeedの開発担当者たちと話すうち、Indeedの印象は一変した。

まずIndeed Japanでの開発は、日本へのローカライズではなく、Globalマーケットを想定した開発だという点。自分が開発した製品や新機能によって、日本だけでなく、世界中の人の「仕事探し」という人生の重要な岐路での選択を助けることができる。

「さらに印象的だったのが、質疑応答の時間に仕事内容を聞いたら、自分が作っているソフトウエアや社内で使われているツールを、皆わくわくしながら楽しそうに見せてくれたことでした。全員が、携わるプロダクトに対して強いオーナーシップを持っていると分かりました」

プログラマーが中心となってサービスを作っている会社だと、ひしひしと感じたのだ。さらに山口さんを惹き付けたのは、Indeedの日本オフィスが開設されたばかりだったこと。新しいオフィスでイチから組織文化を作っていくのは貴重な体験だと感じた。

「環境を変え、伸び伸びと開発をやれそうだという感覚が、Indeedへの転職に踏み切る最後の一押しになりましたね。世の中のいろんなサービスがWebへシフトしている中で、Webプログラミングの経験を積むには良い機会だと感じたんです」

ポジション問わず皆がデータを読み、次の機能開発を考える

まだエンジニアが3人足らず(2014年11月時点)のサラリーチームが持つ大きなミッションについて語る山口さん

現在、Indeedの東京オフィスに設置されているのは、山口さんが所属する「サラリーチーム」のほか、社内インフラを整備するチーム、検索エンジンを手掛けるチーム、検索結果の一覧ページ(カンパニーページ)を開発するチームの4つだ。本拠地オースティン(米国テキサス州)のオフィスには、さらにネット上の求人情報を集める「アグリゲーションチーム」など、開発サービスの領域ごとにさまざまなチームがある。

「私たちサラリーチームの最終ミッションは、アグリゲーションチームが集めた求人情報や、カンパニーページの企業レビューに書き込まれた情報などから、各地域・各職種の給与データを抽出して正確な予測額を分析し、それを基にした最適な検索システムを構築することです。私の今の役割はJavaによるバックエンド開発ですが、今後Hadoopについてもっと勉強して、解析に必要なデータをどう集めるか? という点にも手を広げていきたいと思っています」

前述のように、職種名や企業がある国、役職etc.といったパラメータを元に世界中の仕事の給料予測を行うという作業は、口で言うほど簡単なことではない。それでも、山口さんが「やり切れる」と断言する背景には、Indeedのチームメンバーが非常に高度な技術力を持ち、会社全体がデータドリブンで動いているからだ。

例えば、同社がデータ解析を行う際の独自プラットフォームとして開発した『Imhotep(イムホテップ)』というツールは、現在オープンソース化され、GitHubで公開されている。

Indeedが独自開発した解析ツール『Imhotep(イムホテップ)

Hadoopをはじめ、オープンソースを「使う側」として触るプログラマーは日本でも数多くいるが、自社で構築したフレームワークをOSSとして公開する企業はさほど多くないだろう。それだけ、データ解析力には自信があるという表れといえる。

「Indeedは、データ解析を元にすべてが回っている企業です。Imhotepが開発されたのも、データをしっかり解析して、それを元にプロダクト開発の方向性を決めようとする文化があったから。一介のプログラマーでも、日々データを見ながらプロダクトマネジャーと話し、対等な立場で『次に何を作るべきか』を議論しているような職場なんです」

さらに、そういったベースがチームの隅々に浸透しているからこそ、結果として現場判断で機能開発が進み、開発サイクルも短くなっている。

「前の職場では月1~2回程度のペースで機能をリリースしていくのが普通でしたが、Indeedでは各チームとも、最低週1回は何かしらリリースしています」

これは、月間で1億5000ものUV(ユニークビュー)/サーチ数では50億もあるという巨大サービスでは異例ともいえる頻度だ(※数値は2014年11月時点)。

「リリースの間隔が短ければ、新たな変更点に対してユーザーがどう反応したかなどのデータもいち早く取れますし、開発のリスクも小さくできます。もちろん、作り手としては付いていくのがやっとというか、キツい部分もなくはないです(笑)。でも、自分の工夫でクリック率が上がったりすると、やっぱりうれしいですよね。それを短いスパンで実感できるのは、開発者冥利に尽きることだと思っています」

“プログラマー天国”の裏側にある責任

開発チームには外国籍のエンジニアも多数いるが、「それがむしろ楽しい」と話す

これらの話からも分かるように、Indeedではプログラマーの自由を最大限に許容している。自分の意思で、やりたい仕事を決められるだけではない。オフィスの片隅にはゲーム機や卓球台などの遊具が置かれており、息抜きに卓球や『ぷよぷよ』、『マリオカート』などを楽しむ人もいれば、ハンモックに寝そべってコーディングする人もいる。

昼にはフリーランチも提供されるなど、エンジニアが最高のパフォーマンスを出すための環境づくりが徹底されている。

営業が中心と言われるリクルートの企業文化とは異なる印象だが、「リクルート流」を押し付けられることは決してないと山口さんは言う。

ただし、自由の裏側には当然責任もある。仕事に対する評価基準は、かなりシビアだそうだ。

「3カ月に1度、仕事へのレビューがあります。3カ月で手掛けた仕事に対する自己評価、同僚からの評価、自らの長所・短所などをまとめた上で、マネジャーの評価を受ける仕組みです。ですから、常に形に残る結果を出さなければいけないし、そのためにはどうすればプロダクト作りに貢献できるか考え抜かなければなりません。自由な反面、チームワークとオーナーシップを強く求められる厳しさがあるといえます」

上司や同僚に言われたままコードを書くようなプログラマーでは評価されない。データを注視し、次なる一手を自力で考えるプログラマーだけが、自由を享受できるのだ。

そんな環境で適度な緊張感を持ちながら、山口さんが目指すのは、「エレガントで分かりやすいコードを書くプログラマーになること」。

「デベロッパーとして働いてきた中では、手掛けたソフトがスパゲッティ・コードになってしまうケースも結構ありました。そこで苦労したこともあって、後でコードを読む人が短時間で理解できるような、シンプルできれいなコードを書ける人になりたいという思いが強いんです」

集中してプログラムを書く時は、素足か地下足袋を履いてスタンディングデスクに向かうという山口さん。日本から世界の常識を変えるかもしれないアルゴリズムを生み出すべく、一級工芸品を作る職人のようなきめ細やかさでコードを紡いでいく毎日が続く。

取材・文/白谷輝英 撮影/竹井俊晴