独創的発想で活躍している若手エンジニアを探し出して紹介するこのシリーズ!今回登場するのは、日本初のSNSサービスで今や、1110万人を超えるユーザーを有する『mixi』で、膨大なコンテンツの検索システムを自社開発した研究開発グループの若手マネージャーだ。

『mixi』の膨大コンテンツを支える検索システムを新たに作り上げた
 06年6月の入社後から、研究開発エンジニアとして『mixi』の検索システムの構築に従事。ほとんど独学で身につけたプログラミング技術で独自開発した全文検索システム「Hyper Estraier」の知見を活かし、1110万人ものユーザーが利用、今なお拡大を続けるコンテンツの検索システムの開発に挑み、約1年かけて順次、自社オリジナルのシステムへと入れ替えていった。現在は、研究開発グループのマネージャーとして、データベースや検索システムの改良を手がけるとともに、『mixi』内のコンテンツを対象としたデータマイニングシステムの構築を行っている。

■パソコンを始めたのは、大学3年。典型的な文系SE就職だった
 自分がエンジニアになっているなんて、学生時代は予想もしていませんでした。大学は文系、パソコンを始めたのは、大学3年。就職も典型的な文系SE就職でした。たまたま大学で専攻することになったのが、デジタルアーカイブ。特に京都の学校でしたから、役所の公文書などのほかに、古い演劇や歌舞伎のシナリオ、さらには写真、そういう物理的なデータをデジタル化する必要性を強く感じて。でも、文字列だけを保存しても何の資料かわかりません。内容をテキストで付けて、しかも検索できるようにする必要がある。そんな研究が必要だ、と卒論で書いていたりしていました。ただ、深いプログラム技術など当時はありませんから、詳しいことはよくわからない。就職も、コンピュータをやっておけば、つぶしがきくかもな、くらいの気持ちだったんです。

 最初に入った大手OA機器メーカーでは、システムソリューションから仕事が始まりました。ただ、OA機器メーカーですから、OA機器を売るためのソリューションという意味合いも強かった。そこはちょっと不満でしたが、いろんなお客さまとのお付き合いがあったことは面白かったし、貴重な勉強の機会でした。2年して全文検索システムを案件化するというプロジェクトに加わりましたが、まだ下っ端。テスト関係の手伝いが中心です。2年後、大手企業向けのソリューションを展開する新規事業に。花形の部署と言われていましたが、僕はたまたま上司が行ったから自分も行った、くらいの認識でした。そしてこの職場を最後に退職して、ミクシィに転職することとなりました。

 SEになってまず思ったことは、重要なのはプログラミング技術だけではないということ。仕様を把握、作成する能力や、社内外で交渉してニーズを把握、提案を伝えるコミュニケーション能力が重要だと感じました。そしてもうひとつ、SEの仕事は主に自分でモノを創るというより、人を使って何をやるかということが大切であり、既存のソフトをいかにうまく活用するかが問われてくるということ。でも、ここでふと思ったんです。では、活用したいと思う商品がマーケットになかったらどうするか。ないものは作る必要がある。足りないものを自分で作れる能力が必要になるはずだ、と。

 だから、昼間は普通に会社の仕事をしながら、夜、家に帰ってから、あるいは休日に、自分で基礎からコンピュータやプログラムを勉強しました。典型的な勉強法である、世の中にあるソフトを自分流に作り替えてみたり、すでにあるものを自分で作ってみたり。Webサーバー、文字コード変換、文字列検索……。いろんなものを自分で作りました。当時は仕事で生きるものではありませんでしたが、こうやって学んだ技術が自分のベースになっていったんです。

■独学で挑んだ全文検索システム開発。「やればできる」と知った
 昼間は会社でSEとして仕事をして、夜や休日は自分で会社の仕事とはまったく関係のないプログラムを組む。そんな毎日。せっかくだから、作ったソフトはオープンソースで公開していきました。すると、それなりに評価をいただけることがわかってきました。学生時代のデジタルアーカイブで、最も大きな課題が検索だったので、特に興味を持つようになったのが、全文検索システム。しかも、高価なワークステーションなどではなく、普通のPCで全文検索できるソフトを作りたかったのですが、当時、そんなものはありませんでした。ネットワークでマシン同士が通信する仕組み、データベースの仕組みなど、要素技術を少しずつ蓄積していきました。すでにたくさんあった全文検索システムは、公開されたソースコードのすべての中身を調べ、自分のシステムと比較、改良していきました。

 もちろん挫折やつまづきは何度もありました。でも、じっくり考えていくと、ブレイクスルーは出てくるものなんですよね。そのたびごとに、「やればできる」と思って(笑)。例えば、検索漏れがまったくない仕組みを考えようとすると、ものすごく効率の悪いデータベースになる。でも、仕組みを2ステップに分けて、最初は粗く検索して次は詳細、とするとそれだけで高速になる。発想の転換で仕組みを変えたんです。こういうのが昼間の仕事中、パッとひらめいたりして。そうなると、急いで家に帰りたくて(笑)。

 ある程度できると公開して、それなりにフィードバックを得るようになってきたんです。オープンソースの世界で知られるようになると、雑誌に記事なども書かせてもらうようになりました。昼間の仕事もあって、言ってみれば二足の草鞋。ほとんど寝ない日もありましたね。でも、面白くてしょうがなかった。遊ばないから、お金も貯まって(笑)。今から考えると、いわゆる下積み時代も楽しんでましたね。

■IPA未踏ソフトウェア創業事業が転機に
 入社5年目のとき、たまたまホームページで、まだ無名のプログラマーを支援していく制度があるのを知りました。それが、未踏ソフトウェア創造事業でした。せっかくだから、モノは試しと思って、開発していた全文検索システムを完成させたい、と応募してみたら、予想外に受かってしまって(笑)。でも、企画書では開発活動に必要な工数を書く欄があって、1日8時間、と。そうなると休職の必要がある。会社には事前に応募の話はしてありましたが、まさか受かるとは思っていなかったんでしょう。でも、ありがたいことに6カ月の休職を認めてくれたんです。

 二足の草鞋(わらじ)じゃない人生は、こんなにラクか、と思いました(笑)。この半年は、まさに開発漬け。データベースの構造から考えて、圧縮したり、保存を考えたり、ディスクのスキマができないようインデックスから作ったり。新しい工夫を入れると、すぐにパフォーマンステスト。何度も何度も、です。それこそ寝ても覚めてもテスト(笑)。テストの間の時間だけ寝たりして。それで起きてチェックする。

 そんな日々で、着々と成果がよくなっていきました。オープンソースへのリリースもどんどんやりました。フィードバックがあると、すぐに再リリースする。たくさん意見をもらいましたね。おかげで週4回、リリースしたこともあります。そしてソフトをパッケージソフトとして作り込んだら、使ってくれる人が現れて。商業利用サイトや製品に組み込まれていったんです。24時間プログラマー生活はこんなに楽しいのかと、実感した時期でしたね。



mixiの検索システムを開発する29歳スーパークリエータを知りたい人はコチラ!
 :
 :
この記事の続きはライブドアキャリアで

■関連リンク
livedoor キャリア