FiNC・エムスリー・メドレー3社合同イベントに潜入!各社CTO・エンジニアが語ったテクノロジーの活用事例やカルチャーとは?LifeTech - meetup for engineer #01レポートをお届けします。
イベント開始の時刻、席についてLTが始まるのを待っていた。
すると、「今から瞑想をします」と司会者からのアナウンス。
イベントで瞑想を行なうことが、多くの参加者にとって前代未聞だったようで、会場全体が少しざわついた。少し戸惑いもあったようだが、「目を閉じてください」という瞑想スタートの合図と共に、参加者も瞑想に集中しているようだった。
FiNCでは会議や業務を始める前に、1分間の瞑想を行なう時間を設けています。瞑想を行なう目的は、呼吸を整え雑念を払うことで集中力を高め、思考を整理し、穏やかな気持ちで仕事に取り組むためです。瞑想をすることで、業務の生産性を高める効果があると考えています。
と、FiNC広報の玉野井さんは話してくれた。
さて、こうしてスタートした異色のLifeTechイベント。その内容やいかに。
FiNC のSRE Development Manager 鈴木健二氏
Lifetechという分野は遺伝子情報・生態情報など、守らなければならない重要な情報を多く取り扱っている。FiNCの鈴木健二氏は、セキュアな開発環境を作るために、MicroservicesとDockerを活用していることについて話した。
個人情報を統括するシステムはMicroservicesで作っていて。そこに遺伝子情報などの重要なデータを暗号化して保管しています。そして、サービスに必要な情報だけを必要なときに取りにいく。そうすることで徹底的な管理ができていますね。
Microservicesは安全面で優れているんですが、ローカルで運用するには色々面倒なので、それを解消するためにDocker を使っています。また、デプロイごとに新しいコンテナを作ることにより、サーバー上にセキュアなログなどを残さずに運用が出来るんです。MicroservicesとDockerの組み合わせは、セキュアな仕組みづくりに重宝していますね。
エムスリーの長澤太郎氏
日本Kotlinユーザーグループ代表も務める、エムスリーの長澤太郎氏は、「MR君」AndroidアプリのKotlinを用いた開発背景について話した。
「MR君」のAndroidアプリはかなり古くレガシーなもので。AndroidJavaで書かれていて、コード修正にかなりの労力がかかりそうでした。なので、Googleの20%ルールのような裁量労働制を活かして、秘密裏に、Kotlinで作り直しました。
Kotlinを採用した理由は主に2つです。
1つ目は、Javaよりも開発効率が上がるから。ラムダ式が使えるので書く量が減ります。機能追加したにも関わらず、17060行あったものが7197行と、57.8%も削減できました。2つ目の理由は、学習コストが低いので他メンバーを引き込みやすいからです。
メドレーの石井大地氏
もともと東京大学医学部にいたが、小説家になろうと文学部へ転部。その後、実際に小説家として幾つもの書籍を出している、異例な経歴の持ち主である。そんな石井氏は、MEDLEYの機能の1つである、症状から病気を知れる「症状チェッカー」のパフォーマンスと自動化について話した。
症状から病気を推定するようなコンテンツはWeb上にもいろいろありますが、これらのほとんどは与えられた症状によって条件分岐を行い、可能性のある病気を振り分けていくようなアルゴリズムです。一方、私たちの症状チェッカーの場合、より医学的に妥当な推定ができるよう、独自のアルゴリズムで確率計算する形となっています。確率計算なので、「可能性は低いが、重大な病気」を、Yes/Noの条件分岐でばっさりと切り捨てる危険性を減らせるわけです。
この機能の前提として、「この症状がある場合、あの病気である確率は何%か」といったデータ、つまり症状と病気の組み合わせを網羅した60万件のエクセルの表のような症状ごとの病気発生確率一覧を、医学文献を参照しながら作りました。問題は、この膨大なデータを適切な形式でインポートするという作業自体がきわめて面倒だということ。そこで、CSVのインポートを効率化するために独自のインポーターを作ったりもしました。
さらに、こうしてできた膨大なデータに基づく確率計算アルゴリズムも、あまり遅いとサービスとして使い物にならない。そこで今度は、50ms(100分の5秒)以内に計算処理ができるよう、メモリやCPUを効率的に使うための様々な工夫を施しました。
これらの機能はすべてDokerの上で動いていて、症状チェッカーのベースとなるデータも1ファイルにコンパイルされています。運用に必要なバッチ処理もすべてDockerコンテナとなっており、Microservicesとして管理しています。以上のような仕組みを、私たちは2週間で作りました。
イベントの終盤にはウェルネスタイムという聞きなれない時間が設けられていた。
そこでは、FiNC社員のフィットネストレーナーによるエクササイズが行なわれた。トレーナーの威勢の良い掛け声に合わせ、テンポの良い動きを必死に真似しながらも、参加者からは終始笑顔がこぼれていた。
このウィルネスタイムについて、FiNC広報の玉野井さんはこう話す。
ウェルネスタイムとは、FiNCのウェルネス経営の取り組みのひとつで、週に1回、社内イベントとして、プレゼンティズムロス(寝不足や肩こりなどによる心身の不調により生産性が落ちること)をなくすために行なっています。
FiNCのCTO南野氏は、イベントの冒頭で次のように話していた。
最近HealthTechが熱くなってきた。HealthTech企業は堅苦しくなくて、テクノロジーにも注力して、楽しくやっている。というのを知ってもらいたくて、今回のイベントを開催しました。
その狙いの通り、本イベントを通して各社のカルチャーや属しているエンジニアが、堅苦しいイメージとは全く異なることが伝わったのではないだろうか。
LifeTechに携わるエンジニアは課題解決のために様々な技術を駆使し、開発を楽しんでいることが感じられるイベントだった。今回に限らず、今後もLifeTechイベントを開催していくそうだ。これからのLifeTechの動向に注目していきたい。
(おわり)
文 = 大塚康平
4月から新社会人となるみなさんに、仕事にとって大切なこと、役立つ体験談などをお届けします。どんなに活躍している人もはじめはみんな新人。新たなスタートラインに立つ時、壁にぶつかったとき、ぜひこれらの記事を参考にしてみてください!
経営者たちの「現在に至るまでの困難=ハードシングス」をテーマにした連載特集。HARD THINGS STORY(リーダーたちの迷いと決断)と題し、経営者たちが経験したさまざまな壁、困難、そして試練に迫ります。
Notionナシでは生きられない!そんなNotionを愛する人々、チームのケースをお届け。