エムスリーテックブログ

https://www.m3tech.blog/

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

フィード

記事のアイキャッチ画像
AIコーディングはQAチームに何をもたらすか——理解負債・技術負債・認知負債との向き合い方
エムスリーテックブログ
【QAチーム ブログリレー7日目】の記事です。 はじめに 前提:なぜPlaywrightへ移行したか 「まずコードを書けるようになろう」は諦めた 5つのステップで開発フローへ Step 1: Claude Codeに慣れる Step 2: シナリオを「読む」 Step 3: VS Code Codegenを使う Step 4: mablシナリオの移行ができる Step 5: 積み重ねで改良・省力化へ 現在地 AIだけでは足りなかった:地道な活動 レビューでテストの意図を確認する リファクタリングで品質の均一化を図る AI導入と同時に向き合っている3つの負債 1. 理解負債:AIが書いたコードを…
14日前
記事のアイキャッチ画像
iOSビルドの凡ミスから学ぶ、FlutterのビルドキャッシュとAOTコンパイルの仕組み
エムスリーテックブログ
ソフトウェアエンジニアの末永です。私は個人開発でFlutter製のモバイルアプリを開発しています。このアプリを開発している中でアプリのビルド周りでハマってしまったことがあり、その際ビルドシステムに関してしっかりと調査しました。この記事はその調査の際に書いたものです。*1 なお、本記事は次のバージョンを対象とした内容となっています。 Flutter: 3.38.0 Dart: 3.10.0 また、ビルド対象はiOSとAndroidのモバイルアプリのみとします。 *1:私は業務ではFlutterアプリの開発をしておらず、あくまで個人開発での経験に基づく内容です。
16日前
記事のアイキャッチ画像
ICLR2026が開催中なので、エムスリー AI・機械学習チームの推し論文を勝手に紹介するぜ!
エムスリーテックブログ
こんにちは。エンジニアリンググループのAI・機械学習チームに所属している鴨田 です。弊チームでは毎週1時間の技術共有会を実施しており、各自が担当するプロダクトの技術や、最近読んだ論文を紹介しています。今週はICLR2026が開催されていることもあり、同学会の論文読み会となりました。1セッションにつき1名が担当し、各自が選定した論文の詳細について解説しました。本ブログではその一部として、セッションごとの「推し論文」を紹介します。 まだ読んでいない方は前回のAAAI2026の輪読会ブログも是非ご覧になってください www.m3tech.blog ICLR 2026からトップページバナーを引用
19日前
記事のアイキャッチ画像
PlaywrightとClaude Codeでやってみよう、手軽に始めるテスト自動実行
エムスリーテックブログ
【QAチーム ブログリレー6日目】の記事です。 はじめに こんにちは。エンジニアリンググループ QA (QualityAssurance) チームの中塚です。 2週間ほど前からバジルの水耕栽培にチャレンジしていて、少しずつ大きくなる双葉を見守るのが毎朝の楽しみです。肥料を溶かした水だけで本当にあんなに大きく育つのか?自由研究の気分で楽しく観察しています。 画像はAI(Gemini)により生成されたイメージです。このブログ記事の内容から生成してもらいました。バジルの鉢植えもあってかわいい! さて、私は普段コンシューマ向けサービス全般のQAの設計、実施、計画、その他諸々の活動をしています。 その中…
21日前
記事のアイキャッチ画像
Playwright移行を自律化。Claude Codeで実現するマルチエージェント設計
エムスリーテックブログ
【QAチーム ブログリレー5日目】の記事です。 こんにちは。エンジニアリンググループ QAチームの須賀です。 最近エムスリーに復帰しました。 私は2月1日に入社してからQAエンジニアも使い放題のClaude Codeを用いてmabl(ノーコードのE2Eテストツール)の自動テストをPlaywrightにリプレースしています。 AIエージェントを用いた開発は未経験だったため、最初は期待するコードをなかなか生成できず試行錯誤の連続でした。しかし、最近では人の介入なしで期待するコードが生成できることも増えてきました。 試行錯誤の結果、AIエージェントの活用において重要だったのは、実は『人間同士が円滑に…
22日前
記事のアイキャッチ画像
仕様の文体はAIテスト生成に影響するか?クノー『文体練習』に倣って実験
エムスリーテックブログ
【QAチーム ブログリレー4日目】 はじめに こんにちは、QAチームの草場です。 レーモン・クノーの『文体練習』という本をご存知でしょうか? 1947年に出版されたこの本は、とある短い1ストーリーを99通りの文体で書きわけるもので、語られるのは同じストーリーなのに文体を変えるだけで得られる情報や印象の変化を感じられる味わい深い本です。 今回は「文体練習」を参考に、システムの仕様を表す文体として最適なものは何か? もしくは文体による差は無いのか?をカジュアルに実験してみました。 仕様は、書き手や場面によって様々な文体で書かれることがあります。決められた書式で厳密に書かれた物、広く知られた記法では…
22日前
記事のアイキャッチ画像
QAエンジニアがClaude Codeを半年間使って気づいたこと 〜テスト自動化74%高速化を実現した3つの技術アプローチ〜
エムスリーテックブログ
TL;DR 背景と課題 なぜClaude Codeを選んだのか 課題1: テスト実行時間の長さ 何が問題だったのか 解決アプローチ 1. 待機処理の最適化 2. Page Objectパターンの徹底 3. 並列実行の自由度向上 結果 課題2: ワークフロー自動化の余地 何が問題だったのか 解決アプローチ MCP(Model Context Protocol)による外部ツール連携 カスタムスキルによるワークフロー定義 結果 課題3: テストの保守性と安定性 何が問題だったのか 解決アプローチ 1. CI/CD認証パターン 2. 環境依存テストの「警告扱い」パターン 結果 実績サマリー 半年間のコ…
24日前
記事のアイキャッチ画像
Playwright移行を支えるClaude Agentシステム - AI+ツールで品質を担保する
エムスリーテックブログ
こんにちは。エンジニアリンググループ QA (Quality Assurance) チームの津向です。 2月に入り、暖かくなってきたのでBBQをしたのですが、ピンポイントで降雪になり、雪の中で肉を焼くという稀な経験をしてきました。 後日、元プロテニス(現スポーツキャスター)の方が国内不在と知りました。 そんなわけでQAチームブログリレー2日目になります。 お肉は焼くことで美味しくなると言われています。 はじめに 1. エージェントの2層構造 専門エージェントの役割分担 逐次処理による「AIのコンテキスト過負荷」防止 2. 標準化を担う生成エージェント ナレッジベースによる標準化 共通パーツの再…
1ヶ月前
記事のアイキャッチ画像
Firebase MCP × Claudeでアプリクラッシュ解析をSlack通知する
エムスリーテックブログ
【QAチーム ブログリレー1日目】 こんにちは。マルチデバイスチームQAエンジニアの前川です。 新国立のテート展のダミアン・ハースト、久しぶりにホルマリン漬け来るか!の期待に対しての無難なオフィス机の展示にちょっぴり落胆した春先です。 最近LAでクラブよりも午前中のコーヒーパーティが流行っているらしいです。夜&酒の脳コンディションよりもシラフで冴えた頭への社交シフトがビジネスやクリエイティブ層で強まっている。密度と精度、スピードが重視されるAIの普及が、コミュニケーション指向へも影響していると取れなくもないと思えます。 画像はAI (Gemini)により生成したイメージです はじめに 消えるこ…
1ヶ月前
記事のアイキャッチ画像
23年続くOSSの、9年越しのバグが直るまで
エムスリーテックブログ
AI・機械学習チームブログリレー15日目の記事を三浦 (@mamo3gr) がお送りします。前日は須藤さんによるClaude Codeと安全に付き合うためのサンドボックス機能の検証でした。 www.m3tech.blog 私は先月まで半年間の育児休業を取得していたのですが、復帰してからというもの、AIエージェントの進化とそれに伴う開発プロセスの様変わりにびっくりしています。日進月歩の変化にキャッチアップしなくては…、と危機感を募らせつつ、今日は20年以上も続く老舗ソフトウェアへのコントリビュートに挑戦したエピソードを通して、ちょっとだけ世界を良くするために小さなことでも始めようよ、という話をし…
1ヶ月前
記事のアイキャッチ画像
AIエージェントを安全に使い倒すには?Claude Codeのサンドボックス機能を試してみた
エムスリーテックブログ
こんにちは、AI・機械学習チームの須藤です。 この記事はAI・機械学習チームブログリレー14日目の記事です。 13日目は田中さんによる「スタートアップCTOが、M3のAIチームに転職して3か月。感じた不安と、その答え。」でした。 www.m3tech.blog 突然ですが、私は今年に入ってからランニングを始めました。1月頃はキロ8〜9分ペースで2〜3km走るのがやっとでしたが、毎日続けているうちに最近はキロ4分台で走れるようになり、20km程度であれば走れるようになってきました。今年の目標はマラソン大会に出場することです。継続は力ですね。 最近買ったadizero evo sl woven。A…
1ヶ月前
記事のアイキャッチ画像
スタートアップCTOが、M3のAIチームに転職して3か月。感じた不安と、その答え。
エムスリーテックブログ
こんにちは。AI・機械学習チームの田中(@yusuke14tanaka)です。 この記事はAI・機械学習チームブログリレーの13日目の記事です。12日目は鴨田さんによる「SAM3とマトリックス・コードで作る"cat matrix"」でした。 www.m3tech.blog 2026年1月にエムスリーに入社し、気がつけば3か月が経ちました。前職では、視覚障がい者向け歩行支援デバイス「あしらせ」を開発する株式会社Ashiraseで共同創業者兼取締役CTOを務めていました。 前職あしらせのTシャツを着た筆者 今回は、スタートアップのCTOから、エムスリーのAI・機械学習チームに転職した自分が、入社前…
1ヶ月前
記事のアイキャッチ画像
SAM3とマトリックス・コードで作る"cat matrix"
エムスリーテックブログ
AI・機械学習チームの鴨田です。この記事はAI・機械学習チームブログリレーの12日目の記事です。11日目は池嶋さんによる「Agentic MLOpsで加速する機械学習開発」でした。 娘の影響でYoutubeで「シナぷしゅ」を見ることが多くなったのですが、毎月更新される月歌(その月のテーマソング)とそれと共に投稿されるパパ・ママ向け解説動画が楽しみになりました。プロデューサーが直接こだわりを解説していて内容が濃くおすすめです。 nanobananaに「マトリックス・コードで猫の黒いシルエットが表現されている画像」で作成した画像 記事要約 Facebook/Meta AIの画像セグメンテーションモ…
1ヶ月前
記事のアイキャッチ画像
Agentic MLOpsで加速する機械学習開発
エムスリーテックブログ
こんにちは、AI・機械学習チームの池嶋大樹です。 LLMエージェントがモデルの性能グラフを見ながら、YAMLの設定を自律的にチューニングしていく――そんなAgentic MLOpsを私たちのチームでは実践しています。 私たちのチームでは6年前から、YAMLで機械学習モデルの設定を管理し、設定を差し替えるだけで実験を回せるconfig-drivenな機械学習を実践してきました。 もともと実験管理やコードと設定の分離といったメリットがありましたが、LLMエージェントがYAMLの設定を自律的にチューニングできるようになったことで、開発がさらに加速しています。 本記事では機械学習におけるconfig-…
1ヶ月前
記事のアイキャッチ画像
技術書典20で新刊『エムスリーテックブック9』を出します!
エムスリーテックブログ
データ基盤チームでソフトウェアエンジニアをしている橋口 (@matsudo840) です。 技術書典20が2026/04/12(日)に開催されます(オンライン開催は4/11-4/26)。 記念すべき20回目の技術書典ということで、エムスリーのエンジニア有志を募り、新刊『エムスリーテックブック9』を携えてサークル参加します! エムスリーではギークでスマートなカルチャーを大切にしていますが、その中でも技術を楽しむギークさが際立つ1冊となっております。 オンラインでは4/11から、こちらからご購入いただけます!148ページで1000円と大変お得な内容となっています。 techbookfest.org…
1ヶ月前
記事のアイキャッチ画像
LLM as a Judgeで生成物の品質を担保する
エムスリーテックブログ
こんにちは、エムスリー AI・機械学習チームの氏家(@mowmow1259)です。 この記事はAI・機械学習チームブログリレーの10日目の記事です。9日目は苅野さんによる「Claude Code と進める Ingress から Gateway への移行」でした。 移行をゴリゴリ進めていただいている苅野さんによる解説記事です! www.m3tech.blog 私は福岡に住んでいるんですが、最近同僚と大濠公園でお花見BBQをしてきました。 お花見と言いつつ桜はまだ咲いていなかったのでただBBQをしただけになりました。 お花見シーズンに限らず、大濠公園は落ち着いて過ごせるいいところなので福岡に来た際…
1ヶ月前
記事のアイキャッチ画像
Claude Code と進める Ingress から Gateway への移行
エムスリーテックブログ
AI・機械学習チームの苅野です。この記事はAI・機械学習チームブログリレー 9 日目の記事です。8 日目は高田さんによる DuckDB と Taskfile で作る EDA 環境の解説記事でした。 www.m3tech.blog 明日 4 月 10 日に劇場版名探偵コナン第 29 作がいよいよ公開されるので関連エピソードを復習しています。萩原刑事と松田刑事が登場した「揺れる警視庁 1200万人の人質」は映画でもおかしくないようなスケールなのでおすすめです。 さて、AIチームでは機械学習プロダクトの実行基盤としてGKE(Google Kubernetes Engine)を利用しており、外部からの…
1ヶ月前
記事のアイキャッチ画像
DuckDBとTaskfileで作るBQ×スプレッドシートの使い捨てEDA環境
エムスリーテックブログ
こんにちは。AI・機械学習チームの高田です。 他部署からスプレッドシートでデータを受け取って、社内のDWHにあるデータと突き合わせながら探索的に分析したい。こういう場面で毎回環境構築するのは手間なので、さっと始められるEDA環境がほしいと思っていました。DuckDB + Taskfileの組み合わせがちょうどよかったので紹介したいと思います。
1ヶ月前
記事のアイキャッチ画像
台湾から日本へ:初めての海外就職体験記
エムスリーテックブログ
皆さんこんにちは。去年10月からAIチームにジョインした、台湾出身の范(ハン)です。 そんな大好きな国ですが、そこからさらに自分の視野を広げたくて、実は大学生のころからずっと「海外で勉強したり働いたりしたいな」と思っていました。 でも、大学・大学院の時期にちょうどコロナが流行ってしまい、卒業後には台湾の男性の義務である「兵役」にも行く必要がありました。 2024年になって無事に兵役が終わり、コロナも落ち着いたので、これ以上待たずに海外での就職に挑戦することにしました!技術的な興味や、気候が合うかどうかも考えて、新しい就職先は「日本」に決めました。 この記事では、私が仕事探しや面接の準備をしてか…
1ヶ月前
記事のアイキャッチ画像
安く作りたい、でもRDBは欲しい。Cloud Run × SQLite × Litestream を試す。
エムスリーテックブログ
AI・機械学習チームの中村伊吹(@inakam00)です。 この記事はAI・機械学習チームブログリレー6日目の記事です。 最近はNetflixでコナンの映画が配信されるようになり、毎日コナンの映画を1つずつ消化するのが日課になっています。 『探偵たちの鎮魂歌』はギミックがわかりやすくてお気に入りです。 前日は高橋さんの『Agentic Coding時代のデータ分析環境: marimo + gokartで高速かつ再現性あるEDAを実現しよう』でした。 www.m3tech.blog はじめに 個人開発や社内の小さな検証(PoC)では、まず「動くもの」を短時間で出したいことが多いです。 その場合に…
1ヶ月前
記事のアイキャッチ画像
Agentic Coding時代のデータ分析環境: marimo + gokartで高速かつ再現性あるEDAを実現しよう
エムスリーテックブログ
こんにちは、AI・機械学習チームのMLエンジニア、髙橋です。 この記事はAI・機械学習チームブログリレー 5日目の記事です。 4日目は北川さんによる自作OSS pavise解説記事でした! www.m3tech.blog 特に本編と関係ない夕方前の桜と空 はじめに AIエージェントがコーディング作業の主役となった昨今、データ分析でも可能な限りコーディングの部分はエージェントに任せたいと考え、実践している方は多いと思います。 一発デモ的にデータ分析のJupyter Notebookを作成させると、短時間に一見整った分析ノートブックが出力されます。 しかし、実際に仕事でClaude CodeにJu…
1ヶ月前
記事のアイキャッチ画像
DataFrameを型安全に使うためのライブラリpaviseを作った話
エムスリーテックブログ
AI・機械学習チームの北川(@kitagry)です。 この記事はAI・機械学習チームブログリレー4日目の記事です。 前日は横本(@yokomotod)さんの『distrolessコンテナイメージの中を覗いて「なんか軽くてセキュアらしい」より理解を深める』でした。 www.m3tech.blog pandasやpolarsを利用していると、「このDataFrameは何のカラムを持っているんだ?」と悩まされたことはないでしょうか。 型ヒントをつけたくても pd.DataFrame や pl.DataFrame という型では列の情報を表現できず、説明をきちんと書かなかった過去の自分を恨むということは…
1ヶ月前
記事のアイキャッチ画像
distrolessコンテナイメージの中を覗いて「なんか軽くてセキュアらしい」より理解を深める
エムスリーテックブログ
この記事はセキュリティチームブログリレー3日目 兼 AIチームブログリレー3日目の記事です。 こんにちは、セキュリティチーム 兼 AIチームの横本(@yokomotod)です。 今回は distroless コンテナイメージについて自由研究してみました。 エムスリーでもよく使われている gcr.io/distroless/static などの distroless イメージ、「シェルもパッケージマネージャもない最小限のイメージ」「軽量!なにもないから安全!」といった説明がされますが、今回は実際にその中身を確かめてみようと思います。
1ヶ月前
記事のアイキャッチ画像
AI プロダクトのマイクロサービス開発でスキーマ共有に困ったので CLI「skem」を作った
エムスリーテックブログ
こんにちは、山本(@hiro_o918)です。 この記事はAI・機械学習チームブログリレー 2 日目の記事です。 1 日目は北川さんの「gokartに型を入れるためにspotifyやfacebookのOSSにコントリビュートした話」でした。 www.m3tech.blog はじめに AI チームでは、LLM を活用した AI プロダクトを開発しています。 こうしたプロダクトでは LLM の推論に時間がかかるため非同期処理が必須になったり、機能ごとに独立した API として切り出したりすることが多く、自然とサービスが分割されていきます。 サービスが分割されると、API の定義だけでなく PubS…
1ヶ月前
記事のアイキャッチ画像
gokartに型を入れるためにspotifyやfacebookのOSSにコントリビュートした話
エムスリーテックブログ
AI・機械学習チームの北川(@kitagry)です。 この記事はAI・機械学習チームブログリレー1日目の記事です。 この記事では、gokartの型チェックをmypy pluginからpyrightやpyrefly, tyなどのモダンな型チェッカーへ移行するために、SpotifyのluigiやFacebookのpyreflyといったOSSにコントリビュートした経緯を紹介します。 Pythonの__new__やDescriptor Protocol(__get__/__set__)など、型システムの深い部分にも触れていきます。 結果的に社内のプロダクトについてはmypyで1分10秒ほどかかっていま…
1ヶ月前
記事のアイキャッチ画像
「御社ドメインのSPFにおいて当社ドメインをincludeしてください」を紐解く
エムスリーテックブログ
メール配信サービスのオンボーディングで求められる「SPFへのinclude追加」。実はenvelope-fromの仕組み上、メインドメインへの追加が不要なケースがあります。キャリアメール対応やDNS lookup回数制限も踏まえ、SPF設定の判断基準を整理します。
1ヶ月前
記事のアイキャッチ画像
みんなで楽しくハッカーになろう!社内CTFを開催しました
エムスリーテックブログ
こんにちは! 1月に入社したセキュリティチームの坂梨です。この記事はセキュリティチームブログリレーの1日目の記事です。 みなさん、セキュリティはつらく大変なものだと思っていませんか? セキュリティはどうしても「義務としてやるもの」というイメージがつきまといがちです。 しかし私にとっては、セキュリティはまるで古代遺跡を発掘する冒険です。システムという遺跡の奥深くには、まだ誰にも発見されていない脆弱性というお宝が眠っています。エラーメッセージ、レスポンスヘッダー、ソースコードなどは遺跡の壁に刻まれた碑文の断片であり、それらを読み解いてお宝の場所を特定できたときの達成感は一度味わうとクセになります。…
1ヶ月前
記事のアイキャッチ画像
PostgreSQL 18からNOT NULL制約をNOT VALIDで追加できるようになりました
エムスリーテックブログ
こんにちは! デジスマチームの山田です。これはデジスマチームのブログリレー3日目の投稿です。 本番稼動中のデータベースの運用において、NOT NULL制約を持たせたいカラムを既存のテーブルに追加する作業は頭を悩ませるものです。PostgreSQL 11(以下、PG11)以降、DEFAULTを固定の値で指定した場合のカラム追加は高速化されました。しかしDEFAULTとして固定値を用意するのではなく、各行ごとに異なる値の非NULLなカラムを追加したいというケースもあります。このような場合「一度NULLを許可してカラムを追加し、アプリケーションの改修やUPDATEによるバックフィルを完了させた後にN…
2ヶ月前
記事のアイキャッチ画像
チームで本格的に Docs as Code を運用しているので紹介します
エムスリーテックブログ
エムスリーのソフトウェアエンジニアの伊藤です。デジスマチームのブログリレー2日目の記事です。 チームではチームリーディングとプロダクトマネジメントを主に担当しています。 はじめに コンテキスト・エンジニアリング AI Ready なコードベースにするためのドキュメント管理 プロダクト画面仕様書 ADR Design Doc API 定義 (Protocol Buffers) まとめ We are Hiring! エンジニア採用ページはこちら エンジニア新卒採用サイト! ! カジュアル面談! !
2ヶ月前
記事のアイキャッチ画像
ダイアログ実装にみるトレンドと実装の中身
エムスリーテックブログ
皆さん、こんにちは! デジスマチームの小島(@jiko_21)です。 このブログはデジスマチームブログリレーの1日目の記事です。 フロントエンド開発において、モーダル(ダイアログ)の実装は非常にポピュラーなタスクの1つです。しかし、近年のUIライブラリを見ていると、その「実装スタイル」が大きく様変わりしていることに気づかされます。 今回は、ダイアログの実装トレンドと、Radix UIなどのモダンなライブラリが裏側でどのように動いているのか、その「中身」について掘り下げてみたいと思います。 ダイアログ実装のトレンドの変化 従来のスタイル 最新のスタイル なぜ渡していないonClickが動くのか …
2ヶ月前