転職・求人DODAエンジニア IT/トップ > 転職情報・成功ガイド > ギークアカデミー > FinTechの現場で関数型言語を並列処理に、機械学習の活用も視野に 株式会社ZUU 開発本部 Senior Manager 浅野隆文 氏

GEEK ACADEMY 先端を走る技を、ギークに学ぶ

掲載日:2015.9.14
このエントリーをはてなブックマークに追加

独学でエンジニアになり、ネットワーク、Web、クラウドインフラまで経験、そしてFinTechと出会う

PROFILE 株式会社ZUU 開発本部 Senior Manager 浅野 隆文 氏(あさの たかふみ)

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と出会う

ココが今回のギークの学びどころ

  • 独学から始めてキャリアを形成。成長できる仕事を積極的に探し求め続けることで、キャリアをステップアップすることができた。
  • 世の中を変える仕事をしたい。そのために大きな野望と自由度があるスタートアップを選んだ。
  • 最新技術と四つに組む。関数型言語、並列・並行分散処理、クラウド、機械学習など最先端の技術に当事者として関わり続けることで、エンジニアとして成長できる。
DODAエージェントサービス 専任のキャリアアドバイザーが、キャリアアドバイスから求人紹介、退職フォローまでを一貫してサポートします。ご利用になりたい方は、こちらからご登録をお願いします。はじめて退職する方のために3分でわかるエージェントサービスのメリットを紹介 エージェントサービスに申し込む(無料) 3分でわかるエージェントサービスのメリット

「ギークアカデミー」バックナンバーはこちら

無料エージェントサービスに申し込む

IT業界に精通した専任のキャリアアドバイザーが、エンジニアの転職活動を無料でバックアップします。

イベント情報

転職のプロに相談できる DODAエンジニア個別相談会

おすすめ診断コンテンツ

ITエンジニア・クリエイター合格診断

あなたの“本当の年収”や今後の“年収推移”も分かる!年収査定サービス[無料]

インタビュー、コラム

アプリケーションエンジニアのための転職力アップ法

アプリケーションエンジニアのための転職力アップ法

エンジニア特有の転職成功ノウハウや市場動向をご紹介

インフラエンジニアのための転職力アップ法

インフラエンジニアのための転職力アップ法

インフラ領域特有の転職成功ノウハウや市場動向をご紹介

業界専任キャリアアドバイザーの連載コラム Webクリエイターのための転職力アップ法

Webクリエイターのための転職力アップ法

クリエイター転職特有のノウハウ・事例などご紹介!

未来を創る 意志あるエンジニアたち

未来を創る 意志あるエンジニアたち

最前線で活躍するエンジニアのこだわりに迫る

GEEK ACADEMY

GEEK ACADEMY

先端を走る技術を、ギークに学ぶ

メールマガジン無料配信

簡単登録で最新の転職情報、
希望の求人が届く