エムスリーテックブログ

https://www.m3tech.blog/

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

フィード

記事のアイキャッチ画像
紅白vsプログラミング!?年末年始はプログラミングクイズで過ごしませんか
エムスリーテックブログ
今期は『SANDA』を推して観ていました、エムスリー株式会社 VPoEの河合(@vaaaaanquish)です。 サンタクロースをテーマにしているだけに「信じる」について改めて考えさせられる良いストーリーでした。最終回グッと来ましたね。 年末年始は、アニメも多くがお休み期間。皆さんはどう過ごす予定でしょうか? 「今年は年末年始何しようかな…」という皆さんのために、エムスリーのギークなエンジニア達が作成したプログラミングクイズをまとめましたので、本記事ではそちらを紹介しようかなと思います。 娘と一緒に部屋の壁に絵を描いた時の写真、crazyですが本文には関係ありません Crazy Program…
1日前
記事のアイキャッチ画像
pmconf 2025 大阪登壇、東京参加と参考になったセッションを振り返るなど。
エムスリーテックブログ
皆さんこんにちは、こんばんは。今週月曜日に、3年ちょい使った会社のM1 MacBook Proの日本語キーボードからM4 MacBook Proのいまさら英語キーボードに乗り換えたら、指がつりそうなエムスリー取締役CPO/CAIOの山崎です。でも39年使い続けたJIS配列からANSI配列に2日で完全に慣れた人間の脳の学習能力にびっくりしています*1。たまに「a」打とうとしてCapslock打ってしまったり、「1」を打とうとして「`」打ったり、エンター打とうとして「\」打ったりしていますが、すぐにこれも慣れるでしょう。あと、「@」と「:」の入力にシフトが必要なのも不便ですが、英語キーボードのカッ…
2日前
記事のアイキャッチ画像
正規表現すぐ忘れるのでビジュアルプログラミングツールを作った ~ Blocklyで簡単にビジュアルDSL作ろう ~
エムスリーテックブログ
皆さん、DSLを作ることってありますか? 複雑な設定が可能な社内ツールを作るとき、 「DSLを許容したら自由度が上がって素敵では?」 と思うこと、ありますよね。 私個人としては、エンジニア向けのインタフェースとして、DSLで社内ツールを作ると、作る当時は楽しいものの、複雑なことを許容する分保守性に問題がでてくるデメリットも有り、近年は設定はyamlで書ける範囲にすることが多いです。 一方で、非エンジニア向けに、ロジックをビジュアルなDSLで提供できたら良いなってこともありませんか。 例えばjoinとfilterのみに絞ったデータ集計ツールを作りたい、行動Aをしたあとに行動Bをした一部のユーザー…
3日前
記事のアイキャッチ画像
NVFP4: 4ビットの浮動小数点でLLMを学習する仕組み
エムスリーテックブログ
こんにちは、AI・機械学習チームの髙橋です。 この記事はエムスリー Advent Calendar 2025 22日目の記事です。前日は同じAI・機械学習チームの鴨田さんによる LLMによって非定形の会話ログを価値あるFAQデータにする話 - エムスリーテックブログでした。 迎賓館赤坂離宮の噴水: 並列処理で射出された水が中央で集約される様子はまるでGPUで行われる行列演算のよう? はじめに ChatGPTが発表された2022年11月30日から3年が経過し、それからというものLLMの話を聞かない日はない世界になりました。 今日ではCoding Agent無しでは生きていけない、という読者も多い…
4日前
記事のアイキャッチ画像
LLMによって非定形の会話ログを価値あるFAQデータにする話
エムスリーテックブログ
AI・機械学習チームの鴨田です。 この記事はエムスリー Advent Calendar 2025の21日目の記事です。 20日目は星川さんのSlackワークフロー使いこなせてる?進化したトリガーとリストで実現するハックでした。 サムネ TL;DR 問い合わせログからFAQ記事を自動生成するパイプラインを構築 パイプラインはFAQ以外にも応用可能 日々、企業のシステムには膨大な「テキストデータ」が蓄積されています。問い合わせログ、社内チャットツールでの会話、メールでのやり取りなど...これらは「フロー情報」として消費されるか、あるいはDBの肥やしとして眠ったままになりがちです。 そんな中、LLM…
5日前
記事のアイキャッチ画像
Slackワークフロー使いこなせてる?進化したトリガーとリストで実現するハック
はてなブックマークアイコン 7
エムスリーテックブログ
はじめに 本記事は、M3 Advent Calendar 2025 20日目の記事です。 Unit3の星川 (@oboenikui) です。 Unit3では、主に医学書の電子書籍サービスや、医師の開業サポート、会員優待などのサービスを担当しています。 弊社ではチャットツールとしてSlackを使用しており、日々の業務で発生する申請や依頼といった定型作業は、Slackワークフローを使用することが多いです。 Slackワークフローをあまり触ったことがない方は、もしかすると「簡単なフォームを作って投稿を作成するツール」という認識で止まっているかもしれません。 しかし現在のワークフローは、簡易的なノーコ…
6日前
記事のアイキャッチ画像
プロダクトマネージャーに商売センスが必要な理由と磨き方
エムスリーテックブログ
こんにちは。エンジニアリンググループ プロダクト支援チームでPdMをしている中村です。この記事はエムスリー Advent Calendar 2025の19日目の記事です。 18日目は山本さんの「Google Cloud コンテナイメージの脆弱性スキャンを自作 OSS で運用する」でした。 画像はGeminiで生成しました。 はじめに なぜPdMに商売センスが必要なのか? プロダクトマネジメントにおいて商売センスが活かされるタイミング 商売センスを磨く3つの方法 1. 本で「基本」を学び、使いこなす 2. ドメイン外の知識を深める 3. 日々の思考の「型」を磨く まとめ We are hirin…
7日前
記事のアイキャッチ画像
Google Cloud コンテナイメージの脆弱性スキャンを自作 OSS で運用する
エムスリーテックブログ
こんにちは、AI・機械学習チームの山本(@hiro_o918)です。 この記事はエムスリー Advent Calendar 2025 18 日目の記事になります。 17 日目は北川さんの「わたしの Language Server にはパーサーが2種類あんねん」でした。 はじめに 皆さんは脆弱性の検知と対応をどのように行っていますか? エムスリーでは脆弱性管理ツールを導入することで、コンテナイメージやパッケージの脆弱性スキャンを自動化し、検知された脆弱性への対応をチーム全体で協力して行っています。 しかし、次の記事にもあるように AI チームでは次々にプロダクトを立ち上げているため、スキャン対象…
8日前
記事のアイキャッチ画像
わたしのLanguage Serverにはパーサーが2種類あんねん
エムスリーテックブログ
AI・機械学習チームの北川です。 この記事はエムスリー Advent Calendar 2025の17日目の記事です。 16日目は須藤さんのAIに正しく分析してもらうためのテーブル設計戦略でした。 猫も2種類に増えました。猫もそれぞれ性格が違ってそれぞれの良さがありますよねー はじめに 以前、BigQuery用のLanguage Server(bqls)を自作した話を書きました。 このbqlsは、GoogleのzetasqlをベースにしたBigQuery専用のLSPで、Web UIでは遅く感じていた補完をNeovimなどのエディタで快適に使えるようにしたものです。 github.com zet…
9日前
記事のアイキャッチ画像
AIに正しく分析してもらうためのテーブル設計戦略
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 16日目の記事です。 こんにちは、AI・機械学習チームの須藤です。 現在は、BigQuery上のデータを自然言語で分析できる社内向けプロダクトを開発しています。本記事では、AIに正しくデータを分析してもらうために工夫したテーブル設計戦略について紹介します。
10日前
記事のアイキャッチ画像
実用 Algebraic Effects and Handlers ~本番環境で OCaml を利用するために~
エムスリーテックブログ
記事のイメージ画像を gemini に生成させたもの 本記事はエムスリー Advent Calendar 2025 15 日目の記事です。 OCaml が好きです。 元々好きでしたが、バージョン 5 からはマルチコア対応が入り、更に好きな要素が増えました。 それは前回も紹介した Algebraic Effects and Handlers という新機能です。 新しい機能はそれだけで心躍るものですが、使い方が十分周知されていないのも事実です。 「なんでもできる」と前回紹介した通り、今回はこのなんでもできる機能が実用的な機能であることを見ていきます。
11日前
記事のアイキャッチ画像
「継続」は力なり - 継続を知り、Promiseの限界を超え、Effect Systemへ
エムスリーテックブログ
本記事は、M3 Advent Calendar 2025 14日目の記事です。 はじめまして。エンジニアグループ、コンシューマーチームの松本と申します。 今回は、「継続 - Continuation」の本質を理解し、Promiseやasync/awaitでは解決できない課題を明らかにした上で、それを乗り越えるEffect Systemについて解説します。 「継続 - Continuation」とは? コールバック関数は継続そのもの 継続と非同期処理、副作用 継続の課題:コールバック地獄 継続渡しスタイル(Continuation-Passing Style, CPS) CPSの問題点:継続のネ…
12日前
記事のアイキャッチ画像
アジャイル開発で準備した五目並べAI対戦イベントが盛り上がった話
エムスリーテックブログ
こんにちは。エムスリーのAI・機械学習チームの高田です。 このブログはエムスリー Advent Calendar 2025 13 日目の記事です。 AI・機械学習チームはメンバーが福岡から北海道まで、様々な地域のメンバーから構成されています。そこで、チームビルディングデーと称して、オフラインの交流も四半期に一度のペースでチーム全員で集まって様々なイベントを開催しています。 今年の3月に機械学習コンペを開催した際のレポートもテックブログで紹介しているので、ぜひご覧ください。 www.m3tech.blog このブログでは、2025年10月31日に開催した「五目並べAIチーム最強決定戦」について、…
13日前
記事のアイキャッチ画像
新しい環境から私のこれまでの蓄積を振り返ってみる
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 12日目の記事です。 医療従事者向けポータルサイト「m3.com」のサイトプロモーションを行うチームに所属している岸田と申します。 実は今年、妻ともアドベントカレンダーをやっており、毎日プレゼントを送り合っています。毎日少しワクワクできるのでとても良いです。ちなみに今日はレッグウォーマーを貰い、私はフェイラーのハンカチをあげました。 我が家のアドベントカレンダーと私がもらったフェイラーではないハンカチ(箱が思ったより小さいのでポインタとしてメモ用紙だけいれて中身は直接渡しています) 私は2025年10月にエムスリーに転職したので、…
14日前
記事のアイキャッチ画像
Goでgo fmtしたくないコードを書いた(Go版Quine)
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 11日目の記事です。 AI・機械学習チームの中村伊吹(@inakam00)です。 早速ですが、こちらをご覧ください。 package main;import(b"encoding/base64";f"fmt";s"strings");func main() {r:=s.ReplaceAll(s.ReplaceAll( p," ",""),"\n","");u:=s.SplitN(r,"::M3::",2);d:=b.StdEncoding.DecodeString;t,_:=d(u[0]);m,_:=d(u[1]) ;q:=f.S…
15日前
記事のアイキャッチ画像
gitの履歴を維持したまま、リポジトリを1つに統合する
エムスリーテックブログ
こんにちは。AI・機械学習チームの苅野です。 このブログはエムスリー Advent Calendar 2025 10 日目の記事です。API と Batch でリポジトリが分かれているプロダクトを 1 つのリポジトリに統合しようと考えて検証を行い、 「既存リポジトリで git mv してから merge --allow-unrelated-histories する」 方法を採用することに決めました。 git filter-repo など他の手法も検証しましたが、この方法だと 「Commit ID を変えずに(過去の PR リンク等を維持したまま)、--follow オプションでファイル移動前の…
16日前
記事のアイキャッチ画像
TSKaigi Hokuriku後日談 ~どのようにHTMLを型で表現しているか~
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 9日目の記事です。 デジスマチームの小島(@jiko_21)です。 TSKaigiの次の日に行った近江町市場での新鮮な牡蠣とのどぐろ。おいしかったです。 今回は自分が趣味で実装しているhtml-typeというプロジェクトにて行っている、HTMLタグの持つルールをTypeScriptの型として表現する方法について紹介します。
17日前
記事のアイキャッチ画像
Rails アプリケーションへの型導入検討
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 5日目の記事です。 エムスリーエンジニアリングG コンシューマーチームの松原です。 Rails アプリケーション開発で型が欲しいと思ったことありますか? 正直なところ、筆者はそれほど必要ないと考えていました。日々開発・運用している Rails アプリケーションの中には10年選手のものもあり、コードベースの勘所もほぼ把握できている状態だったためです。 しかし、ここ最近は TypeScript で開発されているプロジェクトに触れて型のメリットを実感し、型があった方が嬉しいことの方が多いかもしれないと感じています。 ここ半年ほどを振り返…
18日前
記事のアイキャッチ画像
GuardDutyの通知を仕分けたい。特にサンプル大量通知問題をなんとかしたい。
エムスリーテックブログ
こんにちは。SREチームのチームリーダーをしている後藤です。 このブログはエムスリー Advent Calendar 2025 7日目の記事になります。 我が家の子供達は今年は初めて(本物の)アドベントカレンダーを手に入れて毎日楽しそうに開封しています。 そんな様子を微笑ましく思いつつ、(テックブログの)アドベントカレンダーをお届けします。 今日はAWSのGuardDutyの通知について書いていきたいと思います。 伊豆シャボテン動物公園のメガネフクロウ。アラート通知はこれぐらいの眼力でウォッチしてます。
19日前
記事のアイキャッチ画像
gokartで実現する、ステートレスで低コストなLLMタグ付けバッチ
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 6日目の記事です。 AI・機械学習チームの池嶋(@mski_iksm)です。 gokartは、AI・機械学習チームのメンバーを中心にOSSとして開発されているパイプラインツールであり、チーム内のほとんどのPythonプロダクトで使用されています。 本記事では、LLMを使った自然言語へのタグ付け処理システムにおいて、gokartを活用することで、増分データの管理コストとLLM利用コストを最小化した事例を紹介します。 Nano Banana Pro作の「日々増加するデータの処理によってLLM課金が増大する」イメージ図
20日前
記事のアイキャッチ画像
セキュリティアセスメントシートに高度精密な回答をもたらす生成AI
エムスリーテックブログ
お疲れ様です。エムスリーの山本です。 各種の業務を担当させていただいておりますが、今回はセキュリティについて書かせていただきたいと思います。このブログはエムスリー Advent Calendar 2025 5日目の記事になります。 今回のお題は「生成AI x セキュリティアセスメントシート」です。 セキュリティアセスメントシート 実際に人力で一度真面目に答えてみる 生成AIによる回答提案 NotebookLM しかし信用できるのか? GASからの利用で回答自体を自動化 まとめ We are Hiring! セキュリティアセスメントシート セキュリティアセスメントシートとは、各社が取引先のシステ…
21日前
記事のアイキャッチ画像
GitHub のマージ方式を人間に毎回選ばせるのは、もうやめよう(やめた)
エムスリーテックブログ
エムスリー Advent Calendar 2025 4 日目の記事です。 クラウド型電子カルテのデジカル開発チームで色々なことをやっている井上 (@wtr_in) です。一年を通して伊藤園の天然ミネラル麦茶を愛飲していますが、最近どうも味が変わった気がしています。(しませんか?) さて、すでに当ブログでも過去に何人か記事を書いていますが、弊社では GitLab Server から GitHub Enterprise Cloud への移行を進めています。 www.m3tech.blog デジカルチームでもリポジトリごとに順次移行を進めていますが、その際に GitHub Actions を使って…
22日前
記事のアイキャッチ画像
引数でアスキーアートが変化するSwift Quineの仕組みをフローチャートで解説
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 3日目の記事です。 こんにちは、エンジニアリンググループ マルチデバイスチームの藤原です。 皆さんはQuine(クワイン)をご存知でしょうか。 Quineとは、「自身のソースコードと完全に同じ文字列を出力するプログラム」のことです。 今回紹介するのは、引数でアスキーアートの形が変わるSwift製Quineです。一見難解なコードの裏にあるロジックを、フローチャートを使って紐解いていきます。
23日前
記事のアイキャッチ画像
アーキテクチャカンファレンス2025に参加してきました!
エムスリーテックブログ
Unit7 リサーチプロダクトチームの佐藤(@riku929hr)です。 ブログにするのが少し遅くなってしまいましたが、Findy Toolsさん主催のアーキテクチャカンファレンス2025に参加してきました。 弊社VPoEの河合が登壇するセッションもありました! https://architecture-con.findy-tools.io/2025?m=2025/session/mdl/bFulLl-L どのセッションも申し込み多数で満席になるのが早く、僕が参加登録したときには埋まっているセッションがほとんどでした。しかし運よくたくさん聞くことができたので、簡単に内容を紹介したいと思います(…
24日前
記事のアイキャッチ画像
goroutineを作ってみる。Rustで
エムスリーテックブログ
この記事はエムスリー Advent Calendar 2025 2日目 兼 マネジメントチームブログリレー9日目の記事です。 こんにちは、エンジニアリンググループ General Manager 兼 基盤チームリーダーの横本(@yokomotod)です。 今回はgoroutineについての自由研究です。 「軽量」「何万個も作れる」「並行処理が簡単に書ける」...そんなgoroutineの裏側はどうなっているんでしょうか。 なぜOSスレッドより「軽い」の? グリーンスレッドとは違うの? なぜパフォーマンスが高いと言われるの? この記事では、goroutineのようなランタイムをRustで自作する…
24日前
記事のアイキャッチ画像
PHPのセッション管理入門
エムスリーテックブログ
こんにちは。エンジニアリンググループGMの高島です。 マネジメントチームブログリレー8日目の記事を担当します。7日目は河合さんの『今年もエムスリーアドベントカレンダー開幕します!』でした。 そう、これは エムスリー Advent Calendar 2025 1日目の記事でもあります。 京都南禅寺の水路閣。違う時代の建造物が混在する趣は、レガシーコードを読むときの感覚に似ています。
25日前
記事のアイキャッチ画像
今年もエムスリーアドベントカレンダー開幕します!
エムスリーテックブログ
最近、娘と一緒にはじめたポケモンGoにハマり過ぎて無限に散歩をしている、エムスリーVPoEの河合(@vaaaaanquish)です。 本記事は、エンジニアリンググループマネジメントチームのブログリレー7日目の記事です。6日目は木田さんの『テーブルとテーブルをざっくりと比較する』でした。 ここでは、来週からスタートする毎年恒例アドベントカレンダーの開催宣言をしていきます。アドベントカレンダーから生まれた過去の名作品をAI推薦で紹介しながら、エムスリーがアドベントカレンダーにかける想いを書いています。 さっそく、やっていきましょう! 家族で壁に絵を描いた日の写真(※本文には関係ありません) エムス…
1ヶ月前
記事のアイキャッチ画像
テーブルとテーブルをざっくりと比較する
エムスリーテックブログ
こんにちは。エンジニアリンググループGMで、データ基盤チームリーダーの木田です。この記事はマネジメントチームブログリレー6日目の記事です。 前回は藤原さんの Claude Codeを手懐けてAndroidアプリ高速リファクタリング でした。 はじめに 今年、エンジニアリンググループでは、オンプレミスのOracleデータベース環境からのクラウド移行をはじめ、多くのデータ移行プロジェクトをチーム横断で推進して来ました。また、データ基盤チームではBigQuery上で稼働しているデータ処理バッチをdbtに移行する取り組みも進みました。活動の一端はこのテックブログでもご紹介してきました。 www.m3t…
1ヶ月前
記事のアイキャッチ画像
Claude Codeを手懐けてAndroidアプリ高速リファクタリング
エムスリーテックブログ
こんにちは。エンジニアリンググループ GMの藤原聖です。このブログはマネジメントチームブログリレー 5日目の記事です。前回は窪田さんの、ローコードツールから Playwright 移行への道 2025 でした。 私はマルデバ・デジカル・デジスマという3つのチームのGMを担当していますが、その傍ら エムスリーテクノロジーズ株式会社 にてM3グループ各社のエンジニアリング支援も行っています。 最近はその支援の一環で、とあるAndroidアプリのリファクタリングをClaude Codeを使って高速に進めています。 紅葉の秋。本文とは関係ありません。 本記事では、Androidアプリのリファクタリング…
1ヶ月前
記事のアイキャッチ画像
ローコードツールから Playwright 移行への道 2025
エムスリーテックブログ
エンジニアリンググループ GM 兼 QA チームリーダーの窪田です。 本日はマネジメントチームブログリレー4日目として、現在取り組んでいる自動テストを Playwright で構築するチャレンジについてお話しします。
1ヶ月前