エムスリーテックブログ

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

Go

レビュー依頼の優先度について考えていたら、レビュー依頼をスコアリングしてソートするツールができた

レビューの優先度を考えていく中で、「これは自動化したら面白いのではないか」と思い立ち、レビューの優先度をスコアリングするツールを作ったので、その経緯を簡単に紹介していきます。

goのエラーをスタックトレースも含めて構造化ログで残したい

Go

こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 golangでずっと課題に思っていたエラーの処理について試行錯誤してみました。 イオンモール センソックシティは、カンボジアにある商業施設。本文には関係ありません。 エラー処理…

Goaのlinterを作った: Goalint

Go

永山です。 本記事では筆者の開発した、Go製のWebフレームワーク Goa (v3) 向けのlinterツール goalint を紹介します。 些細な間違いの検知を人間に頼ることはやめたい Goa とは モチベーション 既存のlinter goavl IBM OpenAPI Validator goalint 使用方法 …

高機能なZshプロンプトを自作する ーモダンなシェルプロンプトを構成する工夫ー

永山です。 普段から趣味PC、業務PCの双方で Zsh をログインシェルとして利用しています。 エムスリー社内には fish や、少数ながら Xonsh のユーザも存在していますが、多くのエンジニアがZshを使用しています *1。 Zsh は fish 等に比べデフォルトで有効な…

グローバルサービスの開発における技術的な意思決定

これは エムスリー Advent Calendar 2022 Advent Calendar 2022 の4日目の記事です。 前日は id:abouch による、Reactで管理画面(SPA)を作った時の技術選定とか。 でした。 エムスリーエンジニアリンググループ AI・機械学習チームの笹川です。 趣味はバスケ…

API on GKE に高速で認証をつけるIdentity-Aware Proxy × Identity Platform

Identity-Aware Platform × Identity Platformによるメールアドレス/パスワード認証をを採用した所感をお伝えします。

AI・機械学習チームでのインターンでBigQueryのローカルテスト基盤を作った話

こんにちは、10月後半の2週間、エムスリーのAI・機械学習チームでインターンをしていた後藤です。 今回は私の行ったタスクと、インターン生からみてエムスリーはどのような会社なのかについて書いていこうと思います。 他の学生の方々のインターン選びやBigQ…

絶対に落とせない!友人の結婚式の余興用アプリケーションをエラーゼロで突破した

エムスリーエンジニアリンググループ AI・機械学習チームでソフトウェアエンジニアをしている中村(po3rin) です。検索とGoが好きです。 今回は友人の結婚式の余興用に作ったアプリケーションの実装とエラーゼロで突破するための工夫などを紹介します。

Datadog導入によるSLOの設定

エムスリーエンジニアリンググループの秦野です。主にアンケートシステムを開発しているBIRというチームに所属しています。 今回、我々のチームにDatadogを導入したのでその経緯と過程についてご紹介したいと思います。 www.datadoghq.com

Go1.19に採用されたPattern-defeating Quicksortの紹介

Go

Pattern-defeating Quicksortの論文を読んで実際にGoでどのように使われているかを調べてみました。

Goによる動的なJSON生成パターンの比較検討~Elasticsearch Query生成機構を求めて~

Go

今回はElasticsearchのクエリ生成を例に、JSON生成パターンをまとめて検討していきます

Goで時刻のゼロ値が変になった話

Go

エムスリーエンジニアリングG/BIRの遠藤です。 アドベントカレンダーは終わっちゃっいましたが、年納めに小ネタを。 BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマーケティング支援を提…

Go で Chrome Bookmark Fuzzy-finder を作ってたら無限ネスト JSON を平らにしてた

Go

Google Chromeのブックマークをfuzzy-findingできるツール ***bmfzf*** を作りました。今回はGoでfuzzy-findingツールを作る方法と、Chromeブックマークのような無限ネストJSONをVisitor patternでスライスにパースする方法などを紹介します。

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

これは エムスリー Advent Calendar 2020 の15日目の記事です。 前日は id:Hi_king による、臨床AIはなにができ、何が難しいか: 臨床AI研究開発の3類型 でした。 エムスリーエンジニアリンググループ AI・機械学習チームの笹川です。 趣味はバスケと、筋トレ…

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

Go

この記事は エムスリー Advent Calendar 2020 の13日目の記事です。 エムスリーエンジニアリンググループ/BIRの滝安(@juntaki)です。 BIRはビジネスインテリジェンス&リサーチの略で、そこでは医療従事者の会員向けアンケートをベースに、製薬会社へのマー…

今どきの Go の書き方まとめ (2020 年末版)

Go

こんにちは、m3 エンジニアリンググループ CTO 矢崎(id:Saiya)です。 過去に Go 言語の仕様を一通り見た経験があったのですが、久しぶりに Go のコードを最近読み書きした際に、ここ数年の Go 言語やエコシステムの進化による変化もあり、発見やハマりが多々…

コードリーディング: Go 標準ライブラリ net/http/httputil ReverseProxy での WebSocket の取り扱い

エンジニアリンググループの山口 (@no_clock) です。 クラウド電子カルテ「エムスリーデジカル」のシステム水平分割(参考)を実施するにあたり、 HTTP リクエストを分割システム群にルーティングするリバースプロキシを実装しました。実装規模は Go 言語で …

IaCを意識したCLI開発のエッセンス

〇〇をファイルで宣言的に管理 したい。そのようなツールを開発 するときは少しコツが必要です。

最近のOSS活動の取り組みの紹介

エンジニアリンググループ、AI・機械学習チームでデータエンジニア/チームリーダーをしている笹川です。 趣味は文字列と、筋トレです。 先日、このところのWFHの影響で、運動不足が顕著だったので、2個で60kg弱のダンベルを注文したのですが、自宅に届けてく…

BIRの技術スタックとアーキテクチャ

この記事はエムスリー Advent Calendar 2019の12日目の記事です。 エムスリーエンジニアリンググループの滝安(@juntaki)です。BIRというチームでエンジニアやらプロダクトマネージャー的なことをしています。 BIRはビジネスインテリジェンス&リサーチの略…

Kubernetes上でのGoによるシンプルなAPIの開発と、その効率化のためのcookiecutter templateを作った話

エンジニアリンググループ AI・機械学習チームの笹川です。 これはエムスリー Advent Calendar 2019の12月4日の記事です。 前日は、CTO 矢崎による 1つの terraform で複数 AWS Account をまとめて構築・管理する でした。 今回は、AIチームでのAPI開発で利…

AWS SAM + DynamoDB Local + Go で始めるサーバレスアプリケーション開発

この記事は エムスリー Advent Calendar 2018 6日目の記事です。 こんにちは、エムスリー エンジニアリンググループの大和です。 普段は Spring Boot (Java + Kotlin) を使用したサーバサイド開発をしていますが、この度 AWS Lambda を使用したアプリケーシ…

WEBリサーチビジネスの業務プロセス・システムを改革していく

エンジニアリングGの井口です。WEBリサーチビジネス事業グループのエンジニアチームリーダをしています。 当グループは主に、「会員の皆様にアンケートにご協力いただき、集まった情報を元に、クライアントの課題を解決していく」というサービスを提供してい…