エムスリーテックブログ

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

VPoEとしてこの2年間を振り返って

こんにちは。エムスリーエンジニアリンググループ執行役員*1兼VPoE兼プロダクトマネージャーの山崎です。

本ブログはエムスリー Advent Calendar 2019の25日目の記事です。

エムスリー Advent Calendar 2019の締めとして何を書こうか色々と迷ったのですが、今回はVPoEらしく、「VPoEとしてこの2年間を振り返って」と第して2019年を締めくくりたいと思います*2

qiita.com

はじめに

2017年12月にエムスリーにおいて始めてVPoEが設置され、私が初代VPoEに就任しました。 それからの2年間は本当にあっという間に過ぎ、2年も経っているとは信じられないというのが正直なところです。 一方で、その間、多数のチャレンジをしてきました。

この記事では、社内外の参考になるかもしれないと思い、それらのチャレンジを抜粋して紹介したいと思います。 ちなみに、評価制度と報酬に関するチャレンジはセンシティブなので割愛します*3

f:id:yamazaki-m3:20191224225724j:plain
年末っぽくエムスリーデジカルの忘年会の写真です。

*1:2019/11より業務執行役員というポジションから執行役員というポジションにマイナーチェンジしました!

*2:今年の業務は12/27まで続き…なんなら運用は12/31の24:00まで続きますがそこはよしなに。

*3:CTO、VPoEの方で聞きたい方がいらっしゃればCTOミートアップなどで個別にお声がけください。

続きを読む

k8sハニーポットとログ出力の話

本記事はエムスリー Advent Calendar 2019 - Qiitaの24日目の記事です。

こんにちは。エムスリーエンジニアリンググループの木村です。 業務ではBIRというチームでアンケートシステムの開発をやっています。

今回は個人的に構築しているk8sハニーポットシステムとそこで生じたログ出力の問題について話をしようと思います。

続きを読む

サーバサイドアプリケーションにおけるリリース時の不確実性を減らす

エムスリーエンジニアリンググループの松原@ma2geです。この記事はエムスリーAdvent Calendarの23日目の記事です。

実は10月よりチームリーダーからエンジニアに戻り、開発メインの仕事を再びしています。 エンジニアリングマネージャーの振り子という話が一時期話題となっていたのですが、まさにそれをしているところです。*1 *2

現況

さてソフトウェアエンジニアとして今何をしているかというと、 クラウド電子カルテ「エムスリーデジカル」の開発チームに入り運用から開発まで一通り対応をしています。

デジカルチームの主な技術スタックは Rails, Angular, React, Scala などに加えて、インフラ周りは AWS の各種サービスを利用しています。 基本的にエンジニアは得意分野を生かしつつもなんでもやるスタンスで今の所仕事をしており、 フロントからインフラまで一通り対応しています。楽しい。

私はというとサーバサイド(特に Rails)に強みを持ちつつも、フロントからインフラまで見つつ仕事をしています。 フロントは以前主に触っていたのが Backbone.js から一気にジャンプして React ということで、いくつかの時代を乗り越えて一気に洗練された世界観に触れられたり、 Auto Scaling が有効に使われているインフラ環境を生で体験できたりと日々新しいことを学べています。楽しい。

さてデジカルはまだまだこれから事業を伸ばしていこうというフェーズで比較的プロダクトとしては若く技術も比較的新し目のものが多いです。 しかしそれでも初期のプロダクトからは数年経過しており徐々にレガシーとの戦いも目立つようになってきています。 すなわちやるべきことが溜まっている状態で改善できることしかありません。楽しい。

今回はこの中でデプロイの仕組みを改善した話をします。

f:id:ma2gedev:20191220154313j:plain
本文とは関係ありませんがピアノの内部構造

続きを読む

業務を効率化するためにツールを自作する ~ Emacs と時々 Electron ~

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

こんにちは。エムスリーエンジニアリンググループ、新卒2年目の青木です。 現在はクラウド電子カルテ「エムスリーデジカル 」でソフトウェアエンジニア兼チームSREをやったり、別チームで Windows アプリを作ったり CI 回したりしてます。

今回の記事では、業務の効率をあげるために今年作った小さなツールたちを紹介します(主にEmacsなのはご容赦を)。

  • 複雑な CSV(見出し無し)の扱いを効率化
    • > jp-medical-recept-reader.el
  • 単調なコピー作業をワンアクションで効率化
    • > cool-copy.el
  • コードリーディングを Virtual なコメントで効率化
    • > phantom-inline-comment.el
  • カーソル移動を履歴管理で効率化
    • > point-history.el
  • Slack での並列コミュニケーションを効率化
    • > SlackDeck-proto
  • GitLab での LGTM なコミュニケーションを効率化
    • > LGTM-Generator-from-Dropbox
  • おまけ
    • > mini-deck
  • We are hiring!!
続きを読む

機械学習パイプラインライブラリluigiのshell補完ツールを作った

こんにちは。Python謹製のshellを使って早3年、エムスリーエンジニアリングGの河合 (@vaaaaanquish) です。 この記事はエムスリー Advent Calendar 2019 の21日目の記事です。

エムスリー AIチームでは、機械学習パイプラインとして「luigi」及び、そのwrapperである「gokart」を利用した開発、運用を行なっています。 本記事は、エムスリーとluigiの繋がりと、私が作成したluigiのshell補完をサポートするmodule「luigi-completion」の概要、その使い方について示すものです。

f:id:vaaaaaanquish:20191216102634p:plain
luigi.readthedocs.ioより luigiロゴ

続きを読む

Scalaで参照透過に作用を扱う

エムスリーエンジニアリンググループの冨岡です。この記事はエムスリーAdvent Calendar及びScala Advent Calendarの20日目の記事です。

  • はじめに
  • Future の特徴
    • Future の長所
      • 標準ライブラリで提供されている
      • 抽象化の戦略がわかりやすい
  • Future の短所
    • 処理を即時実行する
    • 結果が否応なしにメモ化される
    • ExecutionContextが必要なシーンが多い
  • 参照透過な作用
    • (コラム)プログラムをプログラムすることについて
  • 3rd party の Pure Effect ライブラリの紹介
    • Cats Effect: IO
    • Monix: Task
    • ZIO
  • まとめ
    • 参照透過性について補足
  • We're hiring!

はじめに

Scalaでは、作用、特に非同期での作用を扱うためのデータ型として scala.concurrent.Future が提供されています。これは手軽につかえて便利である一方、使いづらい点もいくつかあります。この記事ではそれらFutureの使いづらい点に触れ、それに対する関数型プログラミングでのアプローチと、それを実現する3rd partyライブラリをいくつか紹介します。

続きを読む