エムスリーテックブログ
https://www.m3tech.blog/
エムスリー(m3)のエンジニア・開発メンバーによる技術ブログです
フィード

今年もエムスリーアドベントカレンダー開幕します!
エムスリーテックブログ
最近、娘と一緒にはじめたポケモンGoにハマり過ぎて無限に散歩をしている、エムスリーVPoEの河合(@vaaaaanquish)です。 本記事は、エンジニアリンググループマネジメントチームのブログリレー7日目の記事です。6日目は木田さんの『テーブルとテーブルをざっくりと比較する』でした。 ここでは、来週からスタートする毎年恒例アドベントカレンダーの開催宣言をしていきます。アドベントカレンダーから生まれた過去の名作品をAI推薦で紹介しながら、エムスリーがアドベントカレンダーにかける想いを書いています。 さっそく、やっていきましょう! 家族で壁に絵を描いた日の写真(※本文には関係ありません) エムス…
2日前

テーブルとテーブルをざっくりと比較する
2
エムスリーテックブログ
こんにちは。エンジニアリンググループGMで、データ基盤チームリーダーの木田です。この記事はマネジメントチームブログリレー6日目の記事です。 前回は藤原さんの Claude Codeを手懐けてAndroidアプリ高速リファクタリング でした。 はじめに 今年、エンジニアリンググループでは、オンプレミスのOracleデータベース環境からのクラウド移行をはじめ、多くのデータ移行プロジェクトをチーム横断で推進して来ました。また、データ基盤チームではBigQuery上で稼働しているデータ処理バッチをdbtに移行する取り組みも進みました。活動の一端はこのテックブログでもご紹介してきました。 www.m3t…
3日前

Claude Codeを手懐けてAndroidアプリ高速リファクタリング
1
エムスリーテックブログ
こんにちは。エンジニアリンググループ GMの藤原聖です。このブログはマネジメントチームブログリレー 5日目の記事です。前回は窪田さんの、ローコードツールから Playwright 移行への道 2025 でした。 私はマルデバ・デジカル・デジスマという3つのチームのGMを担当していますが、その傍ら エムスリーテクノロジーズ株式会社 にてM3グループ各社のエンジニアリング支援も行っています。 最近はその支援の一環で、とあるAndroidアプリのリファクタリングをClaude Codeを使って高速に進めています。 紅葉の秋。本文とは関係ありません。 本記事では、Androidアプリのリファクタリング…
4日前

ローコードツールから Playwright 移行への道 2025
73
エムスリーテックブログ
エンジニアリンググループ GM 兼 QA チームリーダーの窪田です。 本日はマネジメントチームブログリレー4日目として、現在取り組んでいる自動テストを Playwright で構築するチャレンジについてお話しします。
5日前

アクセント学: "エムスリー"のアクセントは-3型なのか平板型なのかの謎に迫る
1
エムスリーテックブログ
こんにちは、CTOの大垣です。 このブログはマネジメントチームブログリレー 3日目の記事です。前回は岩佐さんの、リモートワークを自作ルーター(OpenWrt)で支える でした。リモートワークで必要な3種の神器、キーボード・机・ルーターは自作するの楽しそうですよね(?) さて、今日のテーマは打って変わって、"アクセント"です。 普段皆さんが何度も口に出していてほしい"エムスリー"という名前、皆さんどういうアクセントで呼んでますか?エムスリー?そうですよね! さて、今回はCTOとして、"エムスリー"はどういうアクセントで読むのが正しいのか、について技術的に決着をつけに来ました。 今回のブログを読ん…
6日前

リモートワークを自作ルーター(OpenWrt)で支える
エムスリーテックブログ
週末に訪れたゴルフコース はじめに M3の岩佐(@bloody_snow)です。 最近は M3 Technologies にてM3グループ各社のエンジニアリング支援をメインで担当しています。エムスリーキャリア株式会社と株式会社イーウェルで取締役を勤めていますので、興味のある方はこれらの会社もよろしくお願いいたします。 M3ではリモートワークをメインとしているため、ネットワークの品質が業務効率に直結します。長らく市販のルーターを用いていたのですが、同時接続台数が増えるとパケットロスや通信速度低下が発生するなど、安定性に課題を感じていました。 もちろん最新のハイエンド家庭用ルーターに買い替えれば手…
9日前

今週11/21(金)にpmconf 2025 大阪に登壇します!という話など。
エムスリーテックブログ
皆さんこんにちは、こんばんは。今年も冬キャンプにベストなシーズンになってウキウキしている取締役CPO/CAIOの山崎です。 最近お気に入りのキャンプギアはSoomloomのIGTハーフ対応の焚き火台と、同じくSoomloomの円形のアイロンストーブです。 ということで、本日はマネジメントチームブログリレー1日目の記事を担当することになりました。 11月でもタープ泊のストロングスタイル。シュラフはEnlightened Equipmentの30F対応キルト。むしろ暑すぎました。 エンジニアリンググループマネジメントチームについて プロダクト支援チームについて 私の役割 イベントスポンサーとイベン…
10日前

アドホック分析を「資産」に変えるアプローチ
エムスリーテックブログ
エムスリーUnit9でプロダクトマネージャーをしている北島です。 この記事はデータ基盤チーム & Unit9(エビデンス創出プロダクトチーム) ブログリレー6日目の記事です。 私が所属するUnit9では、データプロダクトの提供やデータの社内活用を行い、データを通じた価値創出をすることをミッションとしています。そのため、日々多くの分析依頼を受けています。 アドホックな分析依頼は、その場限りの対応になりがちではないでしょうか。急ぎの案件が多かったり、依頼ごとに要望される分析ロジックが違うことなどが理由として挙げられます。ただ、単発での対応を続けると、依頼の増加とともにに担当者が対応に追われてしまう…
13日前

Oracleのクエリ実行履歴を網羅的に収集するための実践的アプローチ
エムスリーテックブログ
エムスリーエンジニアリンググループ、データ基盤チームの石塚です。 この記事はデータ基盤チーム & Unit9(エビデンス創出プロダクトチーム) ブログリレー5日目の記事です。前回は三浦さんの 「SQL課題:月の集合を連続した期間の集合にまとめてください」でした。 エムスリーが提供するサービスの中には、今も一部でオンプレミス環境のOracleを活用しているシステムがあります。私たちは、これらのシステムについてもコスト効率やメンテナンス性をさらに向上させるため、Oracleへの依存を段階的に減らしていくプロジェクトを進めています。 このプロジェクトを推進する上で、「そもそも、どのシステムがどれくら…
18日前

SQL課題:月の集合を連続した期間の集合にまとめてください
エムスリーテックブログ
データ基盤チーム & Unit9(エビデンス創出プロダクトチーム)ブログリレー 4日目は、SQLプログラミングのお話をお届けします。Unit9エンジニアの三浦[記事一覧 ]です。昨日は木田さんの『巨大テーブルにインデックスを追加したい、Flywayで』でした。 今回の課題はタイトル通り、月の集合(たとえば、ユーザーがアクティブであった月の集合)から「何年何月から何年何月まで連続していた(アクティブだった)」という期間の集合に変換せよというものです。連続した期間ってのがまとまっていると判定で便利な局面があるんですよね。具体的にどう役に立つかは後述しますが、大変に実用を意識したデータ基盤プログラ…
19日前

巨大テーブルにインデックスを追加したい、Flywayで
エムスリーテックブログ
エムスリーエンジニアリンググループGMで、データ基盤チームの木田です。 この記事はデータ基盤チーム & Unit9(エビデンス創出プロダクトチーム) ブログリレー3日目の記事です。前回は橋口さんの データ整備の「曖昧さ」に立ち向かう、ドメインエキスパートと協業するための実践的Tipsでした。 本日は、既存のPostgreSQLのさるテーブル (レコード数 100億超) に対して、差分データをSQLで抽出してBigQueryに連携するための索引追加をしたときの経験を元に、PostgreSQLの巨大テーブルに対してFlywayを使用してインデックスを安全に追加する方法についていくつかのテクニックを…
20日前

データ整備の「曖昧さ」に立ち向かう、ドメインエキスパートと協業するための実践的Tips
エムスリーテックブログ
データ基盤チームの橋口です。この記事はデータ基盤チーム & Unit9(エビデンス創出プロダクトチーム)ブログリレー2日目の記事です。 昨日は坂元さんの『冴えたClaude Codeの育て方(50本のSQLをdbt化した話)』でした。 私の所属するチームでは、社内のデータ活用サポート(データマート作成、分析支援など)を重要な業務の1つとしており、関連部門と一緒にプロジェクトを進める機会も多くあります。 関連部門とプロジェクトを進めていく中で、私は技術的な課題と同じくらい、ステークホルダーといかに上手く協業するかが大事だと学んできました。 なぜなら、データ利活用は「ビジネス課題の特定」から「どの…
23日前

冴えた Claude Code の育て方(50 本の SQL を dbt 化した話)
エムスリーテックブログ
システムを運用していると時折直面するのが「移行作業」です。 新しい技術に触れられるのは楽しいです。一方、大量のコードの書き換えはちょっと辛いですよね。単純な置換で済めばよいのですが、そううまくはいかないことがほとんどです。 今回はこの書き換えを Claude Code を活用して楽に、精度良く実施したお話です。 データ基盤チーム/Unit9(エビデンス創出プロダクトチーム)エンジニアの坂元です。このブログはデータ基盤チーム/Unit9 ブログリレー 1 日目の記事です。 背景 はじめの一歩 独り立ち そして検証も… できたこと 残った課題 細かい工夫 全文読んでから対応すること セルフレビュー…
24日前

続・Claude Agent SDKでClaude Code Webを作ってみる ~SDKの名前変わったけどそんなことよりStreaming Inputの話をしよう~
エムスリーテックブログ
基盤チームリーダー兼エンジニアリンググループGMの横本(@yokomotod)です。 このブログは基盤チームブログリレー4日目の記事です。3日目の記事は林さんの「BigQuery から高速にデータを持ってきてシームレスに Kotlin data class で使いたい - エムスリーテックブログ」でした。 今回の記事は、Claude Agent SDKの続編です。 前回記事でClaude Codeの公式SDKを使って対話型CLIやWebアプリを作りましたが、いくつか課題がありました。 その後SDKが大きく進化し、Streaming Input Mode でそれらの課題が解決しているのが個人的に…
1ヶ月前

BigQuery から高速にデータを持ってきてシームレスに Kotlin data class で使いたい
エムスリーテックブログ
この記事は基盤開発チームのテックブログリレー3日目の記事です。 (2日目の記事は、田尻さんの「未来に続く、これからの非同期処理 ~ Algebraic Effect and Handlers ~ - エムスリーテックブログ」でした) こんにちは、基盤開発チーム/Unit3を兼務している林です。 最近の仕事で、AWS環境のKotlinアプリケーションでBigQueryにあるデータを高速処理したくて、BigQuery Storage Read APIを使ったうえでKotlin data classへの変換処理を実装しました。 「簡単に見える処理でも色々考えることがあるなあ」ということをあらためて実…
1ヶ月前

未来に続く、これからの非同期処理 ~ Algebraic Effect and Handlers ~
エムスリーテックブログ
非同期処理、難しいですよね。 現代のプログラミングにおいて、非同期処理や並行処理は必須とも言え、各言語で様々な実装があります。コールバック、promise/future そして async/await など。 複数の概念・実装があるものの、例に漏れず銀の弾丸はなく、難しい非同期処理との戦いは今もなお続いていると言えます。 今回紹介するのはその戦いの武器になるかもしれない概念、代数的エフェクト (Algebraic Effect and Handlers) 1 です。 現時点では代数的エフェクトを使える環境・言語は限られていますが、今知っておけば十年後にすました顔でいられるかもしれません。 代数…
1ヶ月前

OCamlでQuineを作った
エムスリーテックブログ
ギークな皆さん、こんにちは、こんばんは。 10月より基盤開発チームのチームリーダーもやりはじめました、エムスリーエンジニアリンググループVPoEの河合(@vaaaaanquish)です。 夏の思い出。本文とは関係ありません。 当記事では、私がOCamlに初挑戦した話、そしてQuineを作った話を書いていきます。 基盤チームとOCaml Quineを作った OCaml Quine解説 ディレクティブ OCaml eval アスキーアートへの整形 おわりに We are hiring !! エンジニア採用ページはこちら カジュアル面談もお気軽にどうぞ インターンも常時募集しています
1ヶ月前

ICCV2025が開催されるので、エムスリー AI・機械学習チームの推し論文を勝手に紹介するぜ!
エムスリーテックブログ
こんにちは。エンジニアリンググループのAI・機械学習チームに所属している鴨田 です。弊チームでは毎週1時間の技術共有会を実施しており、各自が担当するプロダクトの技術や、最近読んだ論文を紹介しています。今週はICCV2025が開催されていることもあり、同学会の論文読み会となりました。1セッション1名の担当で、各自がセッション内で気になった論文の詳細を解説します。本ブログではその一部として、セッションごとの「推し論文」を紹介します。 ChatGPTで生成した、「ハワイ開催のコンピュータービジョン学会会場」 Scaling Laws for Native Multimodal Models 推しポイ…
1ヶ月前

睡眠時無呼吸リスク計測サービス「Sleep Doc」のデータ基盤を支えるAWSサーバレスIoTアーキテクチャ
エムスリーテックブログ
この記事はグループ会社支援チームブログリレー1日目の記事です。 エムスリーエンジニアリングGグループ会社支援チームの愛宕です。 私たちグループ会社支援チームは、その名の通り、エムスリーの多様なグループ会社が抱える技術的な課題を解決し、事業成長をサポートするというミッションを担っています。 今回はその中の1つ、エムスリーとソニー社のジョイントベンチャーである、会社サプリムが提供する睡眠時無呼吸リスク計測サービス「Sleep Doc」で採用しているIoTアーキテクチャについて、約1年間の運用で得られた学びをお届けしたいと思います。
1ヶ月前

GitLab CI から GitHub Actions への移行でハマった N 個のこと
エムスリーテックブログ
この記事はコンシューマーチームブログリレー5日目の記事です。 こんにちは。エムスリーのコンシューマーチームエンジニアの園田です。 以前のポストにもあるように、エムスリーでは GitLab から GitHub EE へ移行しています。 www.m3tech.blog コンシューマーチームで管理している GitLab リポジトリも、いくつか GitHub に移行しました。当然ですが、GitLab CI の CI/CD パイプラインは GitHub Actions に置き換える必要があります。移行前は「GitLab でできることは GitHub でもできるんでしょ?」と軽く考えていたのですが、実際に…
2ヶ月前

ほどほどに使う生成 AI
エムスリーテックブログ
この記事はコンシューマーチームブログリレー4日目の記事です。 エムスリーエンジニアリングG コンシューマーチームの松原です。 今回はここ半年ほど開発支援として使っていた AI エージェントについて振り返ります。 自分の使い方としてはバリバリに使いこなしているわけではなく人並みに使っているというレベル感です。 それでも AI エージェントに助けられていると感じることがいくつもあったので、この記事でいくつか紹介したいと思います。
2ヶ月前

「生成AIでサクッと!」というわけには行かなかったCoffeeScript → TypeScriptへの置き換え
エムスリーテックブログ
本記事は、コンシューマーチームブログリレー 3日目です。 はじめまして。エンジニアグループ、コンシューマーチームの松本と申します。 本記事では、社内で開発・利用している内部ツールのフロントエンドを CoffeeScript + Backbone.js の構成から TypeScript + React の構成に置き換えた時の知見を共有できればと思います。
2ヶ月前

「全員QA」を30分ミーティングで強くする
エムスリーテックブログ
こんにちは。エンジニアグループQA (Quality Assurance) チームの中塚です。 この記事はコンシューマーチームブログリレー 2日目の記事です。QAエンジニアがリスク洗い出しをサポートする取り組みの事例をご紹介します。
2ヶ月前

チーム開発はじめました。のその後
エムスリーテックブログ
コンシューマーチームブログリレー 1日目です。 こんにちは。エムスリーエンジニアリングG コンシューマーチームで主にアスクドクターズ開発を担当しているスクラムマスターの甲村と申します。 2023年にコンシューマーチームを3つのチームに分割した例をご紹介しました。チーム開発の導入から早2年。スクラムチームで起きた変化を語っていきたいと思います。 全員一丸となる開発の流れ チーム開発を導入した背景 現在の体制 起きた変化 先を見通せるようになった 品質の向上 大規模、シビアな開発もトラブル0へ 守備範囲を広げる 制約を乗り越えるスクラムのループ 終わりに We Are Hiring!
2ヶ月前

あえて二度手間することで取り戻す、AI時代のコーディングの楽しさ
エムスリーテックブログ
はじめに エムスリーテクノロジーズの永江 (@yukinagae)です。 最近はAIエージェントを使った開発が当たり前になってきました。CLIだけでもClaude Code / Gemini CLI / Codex CLI など多くのツールが登場し、開発効率の向上を日々実感しています。実際、Claude Codeを使うと趣味開発のスピードが数倍に上がり、1週間かかるものが数時間で完成することもあります。 さらに、コーディング用途だけでなくDia / Comet / Gemini in Chrome といった、ブラウザとAIが一体化したツールも次々と登場しています。エンジニアリング以外の業務効率…
2ヶ月前

超一流のプロダクトマネージャーはどのようにデータを見るのか〜KPIを2倍にするための分析方法
エムスリーテックブログ
こんにちは。エンジニアリンググループ プロダクト支援チームでプロダクトマネージャーをしている中村です。 既存プロダクトを担当しているPdMにとって、どうやって次の非連続な成長(=Step Change)を起こせるかというのは、重要な課題だと思います。 私はこれまでPdMとして、既存プロダクトのグロースに携わることが多く、KPIを伸ばすためにデータ分析をし、仮説検証をしながらプロダクトを連続的に成長させる(KPIを120%〜130%伸ばす)経験を積んできました。さらにPdMとしてより事業成長に貢献するためには、次の非連続な成長(KPIを2倍にするなど)を生み出したいと考えていました。 そんな時に…
2ヶ月前

【インターン参加記】フロントエンドからインフラまで全部触ってきました!!!
エムスリーテックブログ
はじめに こんにちは、エムスリーで2週間インターンをさせていただいたしーぴー (@__cp20__) です。インターンではWebバックエンドを中心としてWebフロントエンド、インフラ (IaC)、など幅広い分野のタスクをこなすことができました。このブログでは具体的にどんなタスクをこなしたか、それによって何が学べたかなどをご紹介します。 インターン最終日に撮った写真 目次 はじめに 目次 概要 キッカケ タスク1: 請求画面の速度改善 解決策の検討 改善効果の測定 タスク2: ログイン導線の改善 タスク3: 請求画面のソート順序の整理 タスク4: マイクロサービスごとの Redis を統合 Re…
2ヶ月前

バッチが読むテーブルのスキーマ変更をimport1行の追加で検知できるOSSを作る
エムスリーテックブログ
【Unit1 ブログリレー7日目】 こんにちは、CTOの大垣です。 このブログはUnit1ブログリレー 7日目の記事です。前日は木田さんの、大規模メンテナンスを振り返る 〜「やってよかった」準備集でした。大規模な作業だからこそ、リハーサルや実況などワイワイやることの良さが光りますね! さて、今日の話題は、本番稼働している定期実行バッチの安全性についてです。 皆さんの環境でも、きっとたくさんのバッチが動いてますよね? エムスリーのMR君サービスを支えるUnit1でも400以上のバッチが動いています。パーソナライズされたコンテンツの生成だったり、KPIの計測だったり、データの健全性チェックだったり…
2ヶ月前

大規模メンテナンスを振り返る 〜「やってよかった」準備集
エムスリーテックブログ
【Unit1 ブログリレー 6日目】 この記事はUnit1ブログリレー 6日目の記事です。前日の記事は こちら 。 エンジニアリンググループGMの木田です。 先日、数年に一度の規模のシステムメンテナンスを実施しました。メンテナンス作業自体は複数のチームが関わり、サービスの計画停止も伴う複雑な作業だったにもかかわらず、入念な準備のおかげで大きなトラブルもなく予定時間を1時間ほど前倒しで完了できました。 関係者で行った振り返りで今後も続けたいプラクティスが多く得られたので、その学びを「やってよかった」準備集として整理してお伝えします。大規模なシステムメンテナンス作業を計画している方の参考になれば幸…
2ヶ月前