


1985年生まれ。茨城県出身。中学生時代に人工知能に興味を持ち、Visual C++6.0でchatterbotを開発する。音大を受験するが失敗し、独学でネットワークエンジニアに。専門学校非常勤講師、大手通信会社の金融担当部門ソリューションSEなどを経て、クラウドサービスを提供する株式会社STEADYでCTO職を務める。2015年、株式会社ZUUに入社。
ZUUに参加した浅野氏は、新サービスの開発、開発環境の改善など、次々と手を動かしていった。新技術をいち早く採用できるスタートアップならではのスピード感に魅力を感じている。関数型言語の採用による開発速度と品質の向上、そして機械学習の活用が今後の課題だ。

- ──ZUUに入社したころの印象を聞かせてください。
- 技術的な取り組みが摩擦なくできることに感心しました。エンジニア同士で合意を取れるなら、新しい技術もすぐ導入できる。このスピード感はスタートアップならでは、と感じました。
- ──ZUUに入ってから、最初に手掛けた仕事は?
- 最初に関わったサービスは、「ZUU Signals」です。2015年2月末にリリースしたサービスですが、日本株の売買タイミングを信号機のように赤、青、黄のシグナルで知らせます。その裏側では、ニュースの分析、ソーシャルネットワークの分析、テクニカル分析、ファンダメンタル分析などが動いています。それらの情報を読み解く専門知識がなくても、売買シグナルを簡単に理解できるサービスです。これは、金融分野の情報の非対称性に対する一つの答えと言えると思います。
- ──ZUUに入社してから導入した技術には、どんなものがありますか。
- まずCI/CD(継続的インテグレーション/継続的デリバリ)の仕組みを作りました。それまでは、コードはGitHub上に置いて開発を進めていたのですが、開発ブランチにマージされたリリース候補のコードが壊れているのが、ステージングへのリリース時に初めて発覚するような事態が発生していました。CIの導入でそこを改善しました。
- アプリケーションのポータビリティを担保する仕組みとして、(軽量コンテナ技術)Dockerが一番いいだろうと考え、これも導入しました。開発環境、ステージング環境、運用環境を共通にできます。こうしたインフラ技術も、エンジニア同士の「いいっすね!」の一言で合意して導入が決まりました。

- ──HaskellやScalaの活用も狙っているそうですね。
- 関数型言語が好きなんですよ。もともと中学生時代から人工知能に興味があり、(関数型言語の一種である)Lispには親しみを持っていました。愛用のエディタがEmacsなのでEmacs Lispも使っていたりします。実は前職でも個人用の細かいツールはHaskellで書いていました。
- 思い出に残っている使い方としては、“Excel地獄”を関数型言語のScalaで乗り切ったことがあります。ネットワンパートナーズ時代に、「およそ800台分のスイッチのconfigのパラメータシートをExcelで作成して提出しないといけないが、まだ白紙だ!」という事態が発生して、さてどうしよう、ということになりました。
- ──ExcelのVBAは候補には入らなかったのですね?
- Excelで完結するような処理ならともかく、configをパースすることを考えるとVBAは触りたくなかったんですね。Excelファイルをほかの言語から操作するとき、普通はJavaからAPI(Microsoft Office形式をJavaから操作するApache POI)を叩くのですが、Javaを書くのはだるい。そこで探してみたら、(Java仮想マシン上で動く関数型言語)ScalaならJavaのAPIを使える上に、強力な表現力がある。コンフィグレーションパーサも楽に書けそうだ。そこで、ここはあえてScalaからJava APIを呼ぶ作りにしました。実装に3日かかって、実行は10秒。同僚には大変喜んでもらえました。
- ──この先、関数型言語をどんな局面で使っていく考えですか。
- 実行したいことの本質を記述する強力な表現力と、参照透過性を担保することで並列・並行処理をコントロールしやすくするという点で、関数型言語は優れていると思います。一般的なマルチスレッドの実装のように、ロックと共有メモリで制御するやり方では状態管理を行う開発者の負担が大き過ぎます。
- 関数型言語の魅力は、まず処理の本質を簡潔な表現で記述できること。関数型言語を構成する基本要素は式であり、特に参照透過性を備えた純粋関数型言語では変数はイミュータブルで副作用を持たないのでコードの見通しがずっと良くなります。コードが状態を持たなくなると、実行単位での並列化可否が見分けやすくなります。コードが状態を持つ(イミュータブルでない)と状態を人間が追いかけないといけなくなりますので。
- 今興味があることとして、(Erlang上の言語)Elixirをバックエンド周りで使う機会をうかがっています。参照透明な言語ではありませんが、Rubyと似た構文を持ち、Erlangと
同様に並列処理指向の関数型言語というのがいいところです。分散処理を取り入れることで、耐障害性とレスポンスを向上させることができます。実装済みのプロダクトバックエンドをマイクロサービス化していくための基礎技術として使えるのではないかと思っています。

- ──それでは、並列処理のニーズが強いのはどんな分野ですか?
- 例えばニュースの感情分析と株価への影響の分析です。対象とする情報が多いので単一プロセッサで逐次処理すると何時間もかかるような処理なので、分散処理基盤で実現できると良いと思います。実験レベルですが、すでに計画と検証を進めています。
- ──マイクロサービスのための関数型言語、という視点もあるのですね。
- 複雑性をどう管理するかを考えると、現在の当社の状況ではマイクロサービスの考え方はいいなと思います。“ガワ”(ユーザーに近いレイヤー)が変わっても、中心部分は共通に利用できる可能性があります。金融情報のAPIサービスを提供できる可能性も出てきます。
- あとは、単純に、運用を含めて今作っているアーキテクチャや実装が本当にいいものかどうか──結果的に良くなかったときに切り離せるのか、というところがあります。よく設計されたマイクロサービスであれば、こうした試行錯誤のコストを下げてくれます。インテグレーションコストが高いとリリースも重たくなってしまいます。
- もちろん、マイクロサービスを最初から導入するのは無理があります。最初のうちは、Ruby on Railsのようなラピッドプロトタイピングができるフルスタックのフレームワークで検討するのがいいと考えています。
- ──今、特に注目している技術分野はありますか。
- 機械学習まわりです。(NVIDIAのGPU向けの開発環境)CUDAを使って、ディープラーニングのライブラリCaffeを動かしてみています。あとは、自然言語処理の手法のWord2Vecにも取り組んでいます。
- 自然言語処理では、先ほど話題に出た感情分析や、ニュースの株価へのインパクト予測などに活用しています。関連して、日本の株式情報を扱うためのコーパス(言語資料)を整備していく予定です。
- ──これから特にやってみたいサービスは?
- お金に関することはとても重要なのに、学校で教えてくれません。税金、保険、年金、いろいろな知識が、自分から進んで調べないと分からない。金融に関する、個人が抱えている問題を解決することで、お金が社会を良くするための投資に回るようになる。しかし、専門のアドバイザーに相談するのは敷居が高い。そこでテクノロジーでユーザーを補助してあげられるといいと思っています。そんなサービスの開発に取り組みたいですね。
【前編】独学でエンジニアになり、ネットワーク、Web、クラウドインフラまで経験、
そしてFinTechと出会う
株式会社ZUUで働いてみませんか?
今回登場のギークが活躍する現場「株式会社ZUU」で、あなたの力を発揮してみませんか?エンジニア求人の詳細を、以下のボタンからご覧ください。
株式会社ZUU
設立:2013年4月
事業内容:インターネットを通じた資産アドバイザー支援事業、エグゼクティブ層向け金融経済ポータルメディア運営、エグゼクティブ層と資産アドバイザーのプラットフォーム運営
本社所在地:東京都渋谷区道玄坂2-23-14 道玄坂225ビル6F
ご登録後、すぐにご紹介できる求人がない場合は、インテリジェンス DODAカスタマーセンターよりその旨をご連絡の上、求人発生時まで求人紹介・カウンセリングをお待ちいただいております。あらかじめご了承ください。
「ギークアカデミー」バックナンバーはこちら