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

OracleのSQLをそのままBigQueryで動かしたいんですよ、絶対に。
エムスリーテックブログ
【Unit4 ブログリレー9日目】 何言ってるんですかね。でも、見てみたいかも。こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 OracleのSQLに手を加えることなくBigQueryで実行させたいことってよくありますよね(ない)。今回はその手法を紹介します。 渋谷公会堂は、東京都渋谷区宇田川町にある公会堂。本文には関係ありません。 帳票環境のBigQuery移行とチーム横断での取り組み なぜSQL変換が必要なのか - bashを駆使してSQLを組み立てる地獄 段階的移行のための並行実行環境の構築 並行実行環境のアーキテクチャ SQL変換の課題と初期アプロ…
31分前

Claude Codeで理想のタスク管理環境を30分で構築した話
62

エムスリーテックブログ
【Unit4 ブログリレー8日目】 エムスリー エンジニアリンググループの井本です。Unit4チーム(m3.com開発チーム)に所属しています。今日が誕生日です。 この記事では、Claude Codeを活用して30分で作成した実用的なタスク管理ツールについてお話します。
1日前

ドメイン分離でユースケースの不安定度(Instability)を下げた話
24

エムスリーテックブログ
【Unit4 ブログリレー7日目】 こんにちは、Unit4のキムです。この記事はUnit4チーム (m3.com開発チーム) メンバーにより投稿されるブログリレー7日目の記事です。 本記事では、近年やけに不安定になってきたユースケースコンポーネントをドメイン分離を通じて安定させた事例をご紹介します。この内容は先日のtechtalk発表内容の続きでもあるので、ぜひ発表のほうもご覧ください! youtu.be はじめに 不安定度と SDP 「今日のクイズ」と「夕方クイズ」 1. 問題診断 2. リファクタリング方針 3. 実装 3.1 ドメイン分離 3.2 ドメインサービスの導入 3.3 クロスド…
2日前

猫につけているBluetoothデバイスの信号強度と機械学習で、いまどの部屋にいるかをトラッキングする!
142

エムスリーテックブログ
【Unit4 ブログリレー6日目】 こんにちは、CTOの大垣です。 このブログはUnit4ブログリレー 6日目の記事です。前日は西川さんの"「なんとなくこっちの方が良い」からの脱却"でした。エンジニアリングは言葉の仕事なので、言語化を考えるのとても大事ですよね。なお、打ち合わせたわけではないんですが2日連続自分の飼い猫の写真が貼られています。 さて、その猫の話。私は猫と日々暮らしているんですが、猫ってちょっと目を離すとすぐに視界からいなくなりますよね。 移動がすごく静かな上に、隙間に入るのが好きなので、同じ部屋にいるのに見失っていることがよくあります。 さらにどの部屋にいるかもあてがつかなくな…
3日前

「なんとなくこっちの方が良い」からの脱却
4

エムスリーテックブログ
【Unit4 ブログリレー5日目】 こんにちは、Unit4の西川です。JavaScript が好きです。別にJavaScriptに精通しているわけではないです。 うちの猫どもです。非常に可愛い 今日は言語化の話をしたいと思います。そしてエンジニアですがデザインの話もしようかと思います。 「1つ上の行、絶対猫の画像の前に動かした方がいいよ!」 「それはどうして?」 ……という話です。
4日前

GitHub Actionsをもっと安全に、もっと便利に運用する方法
54

エムスリーテックブログ
【Unit4 ブログリレー4日目】 はじめまして! Unit4でエンジニアをしている大熊です。こちらはUnit4ブログリレーの4日目の記事です。 エムスリーではGitLabからGitHubへの移行が進められています。私は現在、Unit4で最初のGitHubを活用したプロダクトの開発に取り組んでいます。 今回はGitHubの強力なCI/CD機能であるGitHub ActionsのTipsをご紹介します。 Unit4の概要については1日目の関根の投稿をご覧ください! www.m3tech.blog サードパーティのActionを安全に使う ghats Actionをコミットハッシュで固定 自作Ac…
5日前

Karabiner-Elementsでキーボードにレイヤーを作る
3

エムスリーテックブログ
【Unit4 ブログリレー3日目】 永山です。 この記事はUnit4チーム (m3.com開発チーム) メンバーにより投稿されるブログリレー3日目の記事です。 2日目は堺澤による「Professional Cloud Architectを取得した話」でした。 www.m3tech.blog さて、自作キーボードのファームウェアには大抵「レイヤー」と呼ばれる機能が含まれています。 レイヤーは1つのキースイッチに複数のキーを割り当て、特に60%以下 *1 のサイズのコンパクトなキーボードを不便なく、むしろ便利なものにするための重要な機能です。 salicylic-acid3.hatenablog.…
6日前

Professional Cloud Architectを取得した話
1

エムスリーテックブログ
【Unit4 ブログリレー2日目】 こんにちは、Unit4でソフトウェアエンジニアをしている堺澤です。昨年生まれた娘と一緒に近所の公園に散歩に行くのが楽しい今日この頃です。 今回は以前から興味のあったGoogle Cloudの資格取得に挑戦したお話をさせていただきます。 無事合格できたので、どのように学習を進め、資格を取得したのかを共有いたします。
7日前

23以上のサービスを少人数で高速開発するm3.com開発チームの利用技術と開発スタイル
エムスリーテックブログ
【Unit4 ブログリレー1日目】 エムスリー エンジニアリンググループの関根です。 医療従事者向けポータルサイト「m3.com」のサイトプロモーションを行う、「Unit4」というチームに所属しています。 エムスリーテックブログリレーもUnit4のターンが回ってきました。 トップバッターである私からは、チームについての紹介と、利用技術や開発スタイルをご紹介します。 Unit4は m3.com の玄関口として、30を超える多種多様な技術スタックを持つサービスを15人前後のエンジニアで開発・運用する、ちょっと変わった(でも面白い!)チームです。 新しい技術への挑戦や幅広いスキルの習得、自由度の高い…
8日前

MIRU2025にシルバースポンサーとして参加してきました!
エムスリーテックブログ
こんにちは。AI・機械学習チームの氏家 (@mowmow1259)です。 この度エムスリーは7/29から4日間開催された画像の認識・理解シンポジウム MIRU2025にシルバースポンサーとして協賛させていただきました! 当日はAI・機械学習チームのメンバーが参加してきました。 この記事ではMIRU2025の参加レポートとして聴講させていただいた発表や当日の様子をご紹介しようと思います! 会場 MIRUとは 現地で聞くことができた発表 Large Vision-Language Modelの多様な属性に対する公平性の検証 NaiLIA: 多層的な依頼文に基づくネイルデザインのマルチモーダル検索…
11日前

10社経験したエンジニアがエムスリーに「出戻り」した話
エムスリーテックブログ
はじめに はじめまして。2025年7月1日からエムスリーテクノロジーズに入社した永江 (@yukinagae)です。 今回のキャリアでざっくり10社目。医療・金融・教育などの多様な業種、数人のスタートアップからSIerまで様々な形態・規模の会社でエンジニアとして経験を積んできました。 そんな私が今回選んだのがエムスリーでした。しかも「出戻り」です。 10社近い会社を渡り歩いてきた中で、最も働きやすく、刺激的なエンジニアリングができたのはエムスリーでした。 このブログでは、なぜ私が再び戻る決断をしたのか、そしてエムスリー/エムスリーテクノロジーズのどんな点に魅力を感じたのか、私の経験を交えて紹介…
13日前

ライブラリ脆弱性に対するAIトリアージの試み
エムスリーテックブログ
お疲れ様です。エムスリーでセキュリティなどを担当している山本です。 最近は「生成AI x セキュリティ」にも関心を寄せており、色々と試していますので、その辺りの話をブログリレーの中で書いてみたいと思います。 テーマは「検出された少ないライブラリ脆弱性にどのようにAIを武器にして向き合っていくか」です。 脆弱性検出とその対処 脆弱性情報から脆弱性の実効性探索へ 脆弱性情報の収集と形式化 トリアージの試み 「脆弱性判定プロンプトを作れ」 実際のプロジェクトに適用 人間による評価 今後やりたいこと 他にも試していること We are hiring!
18日前

RiverpodとFlutter Hooksで作る、宣言的UIに適したFlutterアーキテクチャ
エムスリーテックブログ
デジスマチームの荒谷(@_a_akira)です。最近の特技は、家の外観1枚と内装4,5枚の写真から施工したハウスメーカーを特定することです。AIにはまだ負けません。 この記事はデジスマチームブログリレーの10日目の記事です。 普段はデジスマ診療のアプリ開発を担当していますが、今年の初めから新規事業のアプリをFlutterで開発しました。このアプリは、エムスリーで7つ目のFlutterアプリとなります。 新規開発にあたり、国内外の設計事例やカンファレンスを調査しましたが、「Flutterのアーキテクチャにおける正解は何か」という問いに、未だ明確な答えがないのが現状だと認識しています。 デジスマの…
19日前

Android Auto向けのアプリを開発してみた
エムスリーテックブログ
デジスマチームでソフトウェアエンジニアをしている大和です。車で全国各地の温泉を巡るのが趣味です。今回は運転中の困りごとを解決するために開発したAndroid Auto向けアプリの開発過程を通して、開発方法について共有していきます。 この記事はデジスマチームブログリレーの9日目の記事です。 開発のきっかけ 開発するアプリの内容 Android Autoについて Android Autoアプリ開発の基礎知識 制限 サポートされているアプリカテゴリ Android for Cars アプリライブラリとテンプレート 開発環境の設定 Android Studio (Android SDK) の設定 開発…
20日前

PostgreSQL を使ったユーザー検索機能のパフォーマンス改善の話
エムスリーテックブログ
こんにちは、デジスマチームでソフトウェアエンジニアをしている伊藤です。 この記事はデジスマチームブログリレーの8日目の記事です。 今回は我々が開発しているデジスマ診療 (以降、デジスマ) で、医療機関向けに提供しているユーザー検索機能のパフォーマンスを PostgreSQL の機能を活用して改善した話について紹介します。 ユーザー検索の課題感 データ構造 検索クエリ Step 1: 仕様の変更で対応できることはないか? Step 2: 部分一致検索のままで高速化できないか? (pg_bigm の導入) Step 3: インデックスを効率的に活用できないか? (2段階検索への分解) Step 3…
21日前

Flutterで音を奏でよう!リアルタイムオーディオ生成アプリの第一歩
エムスリーテックブログ
こんにちは、デジスマチームでソフトウェアエンジニアをしている立花です。 最近の趣味は ゆる言語学ラジオ - YouTube を聞くことです。宜しくお願いします。 このブログはデジスマチームブログリレーの7日目の記事です。 Flutterでリアルタイムオーディオ生成 この記事ではFlutterアプリでリアルタイムに音を生成・再生する仕組みを実装し、最終的にAndroid実機で音を鳴らすまでを解説します。 この記事を読むことでFlutterアプリにリアルタイムオーディオ生成機能を組み込むための第一歩が踏み出せるはずです。 Flutterで音の波形を生成・再生する それでは具体的な実装方法を見ていき…
22日前

チームでDevinを導入して2ヶ月経ったので振り返ってみた
エムスリーテックブログ
こちらはデジスマチームブログリレー6日目の記事です。 デジスマチームで開発チームのリーダーをしている田口です。日々目まぐるしくアップデートされていくAIエージェントを使って、どう生産性を向上させるかを考えることが多くなってきました。そんな中、今回はチームでDevinを導入した結果についてまとめてみました。
23日前

Kubernetes Podの計画的スケールでシステム負荷とコストを最適化したい!
エムスリーテックブログ
こんにちは。デジスマチームの伴です。この記事はデジスマチームブログリレーの5日目の記事です。 先週は SRE チームとして GitHub 移行をやっている話を投稿しましたが、兼務しているデジスマチームではインフラ周りを担当しており、Kubernetes のメンテナンスなどをしています。 デジスマ診療(以降、デジスマ)では、利用者および利用施設の拡大に伴い、サーバが処理するリクエスト数も増加しています。インフラ側ではこれに対応するため、様々な施策を講じてきました。 本記事は、講じてきた様々な施策のうち、KubernetesのPodを予定した時間に事前にスケールアウトさせる仕組みを整備して、システ…
24日前

90秒かかるDELETE文の原因を探る【PostgreSQL】
エムスリーテックブログ
こんにちは! デジスマチームの山田です。これはデジスマチームのブログリレー4日目の投稿です。 事業が成長してユーザー数やトランザクションが増加すると、それに比例して扱うデータの量やバリエーションも増加します。サービス規模の拡大に伴い発生する課題の1つにスロークエリがありますが、デジスマ診療においてもサービスの成長とシステムの健全性を維持するためにクエリの改善に日々向き合っています。 データベースの気持ちを知りたい
25日前

Firebase Remote Config で Web の A/B テストを実現する
エムスリーテックブログ
はじめまして、5月に中途入社したデジスマチームの東です。入社してから早くも3ヶ月が経とうとしていますが、日々学びがあり充実しております。 このブログはデジスマチームブログリレーの3日目の記事です。 この記事では Firebase Remote Config を利用して Web の A/B テストを実施する方法を紹介します。
1ヶ月前

JavaScript の Object 比較を変えるか? 新しいプロポーザル proposal-composite とは
エムスリーテックブログ
皆さん、こんにちは! デジスマチームの小島(@jiko_21)です。 このブログはデジスマチームブログリレーの 2 日目の記事です。 JavaScript の進化は止まりませんね! 毎年、新しい仕様が TC39(ECMAScript の標準化委員会)にて議論され追加されています。 今回は、最近 TC39 に追加された、proposal-compositeについてご紹介します。これは、JavaScript におけるObjectの比較という、長年の課題を解決する可能性を秘めた興味深い提案です。
1ヶ月前

Server Functions っぽい仕組みを自作して Lambda 関数呼び出しに適用してみた
エムスリーテックブログ
デジスマチームの池奥です。 新卒2年目のソフトウェアエンジニアです! 先週、人生で初めて外部モニターを買いました。快適な作業環境を手に入れたと思ったのですが、モニターのある環境に慣れておらずすっかり持て余しています。今のところ YouTube ビュワーとして活躍しています。 このブログは、デジスマチームブログリレーの 1 日目の記事です 🎉 イントロ 普段、私はNode.jsでバックエンドを実装することが多いのですが、一部の処理を AWS Lambda のような別の実行環境に切り出したい、というシーンに時々遭遇します。このような場合、Lambda の実装は別のパッケージに置き、元のサーバーから…
1ヶ月前

これで依頼対応は絶対に漏れない! 簡単確実Slackワークフロー
エムスリーテックブログ
エンジニアチームの仕事は開発、調査、障害対応などあって日々チケットを起票しては消化しながらお仕事を皆様回しておられるのではないかと思います。一方で、チケットにすることのない作業依頼というのも少なくないのではないでしょうか。「ミーティングのリスケ先日程を探して移しておいてください」などなど⋯ そして次に起こる問題は「Slack上で依頼が流れてしまって対応が漏れていた」ですね? 作業依頼の対応漏れというエラー、再発防止はどうしましょう、すべての依頼でチケット切ることにしますか? はい、それが確実なのですが、体裁に沿ったチケットを書くというのはそれなりに重い作業です。依頼をためらわせてしまうという難…
1ヶ月前

エムスリーの GitHub 移行、SRE の道中記
エムスリーテックブログ
こんにちは。エムスリーで SRE エンジニアをしている伴です。 このブログは SRE チームブログリレー 5日目の記事です。 M3 Tech Blog でも AI を開発に活用した記事が多く出ていますが、弊社では開発への AI 活用が積極的に進められています。 その流れで、GitHub が構築している AI のエコシステムを積極的に活用するため、昨年末からセルフホスティング版の GitLab Server から GitHub Enterprise Cloud への移行を進めています。 SRE チームは、GitLab の運用経験を活かし、GitHub への移行支援と運用サポートを担っています。 …
1ヶ月前

Claude Code SDKでClaude Code Webを作ってみる
エムスリーテックブログ
エンジニアリンググループ ゼネラルマネージャーの横本(@yokomotod)です。 このブログはSREチームブログリレー4日目の記事です。 昨日は山本さんによるSRE作業もGemini CLIで効率化する記事でした。 www.m3tech.blog 続けて今日もAIコーディング関連、Claude CodeのSDKが気になって触ってみた知見を紹介します。 言わずもがなClaude Codeは強力なツールで、最近はHooksなども登場し、拡張性もどんどん強化されています。 しかし、まだまだもっと自由に機能強化して「オレの最強のClaude Code」を作ってみたいですよね。 というわけで、Clau…
1ヶ月前

個人を活かしてチーム力も最大化する、属人性解消への取り組み方
エムスリーテックブログ
こんにちは。SREチームのチームリーダーをしている後藤です。 このブログはSREチームブログリレーの2日目の記事になります。 私がSREチームのチームリーダーに就任してからもうすぐ3年になります。 その間に様々な課題に取り組んできたのですが、中でもチームの属人性について考える機会は多くありました。 本記事ではSREチームが属人性の解消に向けてどう向き合ってきたか振り返りまとめていきたいと思います。 属人性についてディスカッションする動物たち generated by Gemini
1ヶ月前

SRE NEXT 2025 に行ってきました #srenext
エムスリーテックブログ
こんにちは! エムスリーエンジニアリンググループ、SREチームの平岡(@uhtter)です。 このブログはSREチームブログリレーの1日目の記事になります。 今年もこの季節がやってまいりました。 2025年7月11日と12日の2日間で開催された、 SRE NEXT 2025 に行ってきました。 今回の記事はその参加レポートです。 イベント公式マスコットの信頼けろぺん君。信頼性は高く、そしてかわいい。
1ヶ月前

Pythonのスタブライブラリを生成して、型ヒントのないライブラリも快適で堅牢に利用する
エムスリーテックブログ
AI・機械学習チームブログリレー13日目の記事を三浦 (@mamo3gr) がお送りします。 Pythonで型ヒントを補足するためのサードパーティのスタブライブラリにコントリビュートしました。 それを通して入門したスタブファイルの作り方を紹介します。 便利なPythonの型ヒント 型ヒントを補助するスタブライブラリ スタブファイルの作り方入門 stubgenで下地をつくる pathlib,importlib,inspectを組み合わせたモジュール・クラスの列挙と書き換え __init__ とフィールドの追加 その他、便利そうなツール 実際どれくらい便利になるか Before After まとめ…
2ヶ月前

Workload Identity Federationの安全を支える技術
エムスリーテックブログ
エンジニアリンググループ ゼネラルマネージャーの横本(@yokomotod)です。 このブログはAI・機械学習チームブログリレー 12日目の記事です。 ちょうど昨日の大垣さんの記事でも触れられていましたが、エムスリーではWorkload Identity Federation(以下WIF)*1を活用して、秘密情報を持つことなくGitLabのCI/CDからGoogle Cloudへ認証しています。 偶然ですが、昨日の活用方法の話に続き、今日はその裏側寄りの話をしようと思います。 www.m3tech.blog なぜWIFは秘密情報なしに安全にアクセスできるんでしょうか? 攻撃者がなりすまそうとし…
2ヶ月前