エムスリーテックブログ

エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです

エムスリー デザイナー採用サイトをリリースしました!

こんにちは、人事の友永です。以前ブログにも書いた通り、今年4月よりデザイングループの変革とデザイナーの採用強化を進めています。その過程で10月にコーポレートサイトのリニューアルを実施し、そして今回デザイナー採用サイトをリリースいたしましたのでお知らせいたします!
この記事ではデザイナー採用サイトに込めた想いなどを紹介したいと思います。

キービジュアル

f:id:otkmym:20201215191258p:plain エムスリーのミッションは「インターネットを活用し健康で楽しく長生きする人を1人でも増やし、不必要な医療コストを1円でも減らすこと」です。
このミッション実現に向け、長期ビジョンをバルセロナのサグラダファミリアの建築になぞらえています。サグラダファミリアは建築なので3次元ですが(縦・横・高さ)、エムスリーの長期ビジョンも同様に3次元(事業の広がり・グローバル展開・付加価値)です。また、サグラダファミリアは独特な外観が有名ですが実は内部がとても美しく、我々エムスリーも世界最高レベルの組織を作り、一人一人が生き生きと働いている状態を目指したいと考えています。
デザイナー採用サイトのキービジュアルでは、デザイナー自身がサグラダファミリアの設計に参加しているシーンを切り取っており、デザイナーがプロダクト開発の企画から関わっていることを表現しています。デザイナーとして事業やプロダクトに寄り添いながらユーザーに価値あるものを届けていきたい、その想いをキービジュアルに込めました。

続きを読む

IE の E2E テストを TestCafe で実現する

この記事はエムスリー Advent Calendar 2020 17日目の記事です。明日以降も面白い記事が続きますので、是非購読・拡散お願いします。

エムスリーエンジニアリンググループ QA の窪田です。私がエムスリーに入社したのが去年の11月なので、およそ1年。あっという間でした。この一年で自動テストを含めて色々なことに取り組んできました。本記事では IE の E2E 自動テストに取り組んだ内容をお話したいと思います。

f:id:j-kubota:20201214161158j:plain

  • 背景
  • 本番不具合の傾向
  • E2E テスト導入検討
    • TestCafe で IE を動かす
    • reg-suit でVRTを実現する
  • まとめ
  • [PR] We are hiring!
続きを読む

CloudTraceの導入を通して学んだTIPS集

この記事は エムスリーAdvent Calendar 2020の16日目の記事です。

エムスリーエンジニアリンググループの関根(@sekikatsu36)です。 2020年4月よりエムスリーへ参加し、主にSRE業務を担当しています。

エムスリーでは数百のマイクロサービスを開発・運用していますが、マイクロサービスは1つの処理の流れを追跡すること(トレーサビリティ)が難しく、トラブル時の原因特定にコストがかかるという課題があります。 その解決策として分散トレーシングに着目し、GCPのCloudTraceを主要サービスへ導入することを進めてきました。

ここではその活動を通じて得た知見を雑多にご紹介していきます。

続きを読む

BigQueryのテーブル連携時間を監視する

これは エムスリー Advent Calendar 2020 の15日目の記事です。 前日は id:Hi_king による、臨床AIはなにができ、何が難しいか: 臨床AI研究開発の3類型 でした。

エムスリーエンジニアリンググループ AI・機械学習チームの笹川です。 趣味はバスケと、筋トレで、このところはNBAのプレシーズンが始まってワクワクしているところです。

今回は、弊社のデータ基盤であるBigQueryへのデータ連携の監視のための便利ツールである tblmonit を開発したので、紹介したいと思います。

github.com

f:id:hsasakawa:20201214100730j:plain
寒くなってきて、ブランケットにくるまって鼻だけ出してる犬氏(かわいい)

  • エムスリーのBigQueryの概要
  • テーブルの更新時間の監視
  • テーブルメタデータ監視ツール tblmonit
    • おまけ
  • まとめ
  • We are hiring!
続きを読む

臨床AIはなにができ、何が難しいか: 臨床AI研究開発の3類型

こんにちは、エムスリーエンジニアリンググループ/AI・機械学習チームの大垣 (@Hi_king) です。

これは エムスリー Advent Calendar 2020 の14日目の記事です。 前日は id:juntaki による、Goのchannelとスケジューリングでした。

私達AI・機械学習チームの挑戦している課題としては、MLによるサービス体験の向上、MLを中心とする新規サービスなど諸々あるのですが、 今日は、なかでも、臨床現場で利用するためのAI開発について書いてみようと思います。

上記のスライドはこのテーマで45分ほど社内勉強会を行うために作ったもので、 このなかから、エッセンスをかいつまんでブログ記事にしてみました。 記事中で紹介しきれなかったそれぞれの研究などはスライドをあらためて眺めていただけると幸いです。

私自身は、もともとコンピュータビジョン分野が専門で、医療分野に本格的に関わり始めたのはここ1年ほどになります。 参入するに当たり、まず臨床に用いられるAIの研究・開発は、いまどのような分類があり、どのようなデータを収集して学習できるのか 、 という観点で、既存の研究をまとめる作業を行ったのがこの資料になります。

ということで、今回の記事は以下のような人向けです。

For

  • 臨床AIビジネスの攻めどころを考えている人
  • 臨床AIの研究・開発を始めたい人
  • ML周辺分野をやっている人で、医療分野での応用例をざっくり幅広く知りたい人

Not for

  • MLのアルゴリズム自体について知りたい人
  • 特定の課題についての、最も良い研究を知りたい人
続きを読む

Goのchannelとスケジューリング

この記事は エムスリー Advent Calendar 2020 の13日目の記事です。

エムスリーエンジニアリンググループ/BIRの滝安(@juntaki)です。 BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマーケティング支援を提供する事業を行っています。

BIRはエムスリーの中で比較的Goの開発・運用歴が長いチームです。 チームSlackでも、たまに他チームからのGoよろず相談が行われているのを目にします。

f:id:juntaki1:20201211180601p:plain

さて、今回の記事では、個人的に作ったCLIツールで発生したGoのスケジューリングの挙動について説明します。 さっそくですが以下のコードはどのような出力になるでしょうか(全然よいコードではないというのはさておき…*1

*1:色々直し方は考えられますが、たとえばgoroutineの処理完了をチャネルで通知して待ち合わせれば、スケジューラのことを考えなくても安定した出力が得られます。また、メモリモデルの観点で、sumはアトミックな更新であるほうが正確ですが、サンプルコードのわかりやすさのために省略しています。

続きを読む

DataflowのFlexテンプレートとScioで動的なパイプラインを実現する

はじめに

本記事はエムスリー Advent Calendar 2020の12日目の記事です。

エンジニアリンググループの西名(@mikesorae)です。

私のチームでは医療に関する様々なデータを集計して分析レポートの作成を行っています。

クライアントの要望に応じて条件や分析軸を変更するために、これまではRubyで動的にSQLを組み立てて集計を行っていましたが、条件が複雑なため出力されるSQLが3000行近くになり、デバッグやテストも困難なためメンテナンス工数が多くかかっていました。 また、データ数の増加に伴ってSQLの実行時間も次第に長くなり、このまま行くと継続的なサービス提供ができなくなるリスクがあったため、BigQuery + Google Cloud Dataflow + Scioによる作り直しを決断しました。

Google Cloud Dataflowの導入にあたって公式ドキュメント等を参照しましたが、テンプレートのデプロイ周りで特に分かりづらい点が多かったのと、Flexテンプレートに関する記事がまだ少なく苦労したので、本記事ではそのあたりを重点的に説明したいと思います。

  • はじめに
  • やりたかったこと
  • Google Cloud Dataflowについて
  • Apache Beamについて
  • Apache Beam SDKとScioについて
    • Java/Apache Beam版
    • Scala/Scio版
  • Dataflowジョブの実行方法
    • 直接実行(Dataflow Runner)
    • クラシックテンプレート
    • Flexテンプレート
  • ScioのFat JAR化
  • Flexテンプレートのデプロイ
    • 1. テンプレートファイル格納用GCSバケットの作成(初回のみ)
    • 2. Fat JARの作成
    • 3. metadata.jsonの作成
    • 4. Flexテンプレートの仕様ファイルパスの設定
    • 5. DockerイメージURLの設定
    • 6. Flexテンプレートのデプロイ
  • Flexテンプレートの実行
  • 動的なパイプライン実行
  • まとめ
  • We are Hiring!!!
  • 参考にした記事
続きを読む