エムスリーテックブログ

https://www.m3tech.blog/

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

フィード

記事のアイキャッチ画像
m3.com 電子書籍アプリ Androidで持続可能な開発を行うための式年遷宮(リファクタリング)
はてなブックマークアイコン 2
エムスリーテックブログ
【マルチデバイスチーム ブログリレー5日目】 エンジニアリンググループ マルチデバイスチームの渡辺です。 m3.com 電子書籍アプリはエムスリーで開発しているスマホアプリの中で最も歴史のあるアプリです。 アプリの機能やデザインのリニューアルをしたい、しかし長年積み続けてきた技術的負債がそれを妨げ、簡単そうに見える改修でさえ難しいという状態でした。継続的な開発を可能とするためにどのように式年遷宮(リファクタリング)をしているか紹介します。 iOSは先行してリファクタリングが完了しており、今回はそれに追従するかたちで進めているAndroid側の内容です。
1日前
記事のアイキャッチ画像
エムスリーが技術書典18で新刊を出します!
はてなブックマークアイコン 1
エムスリーテックブログ
エムスリーエンジニアリンググループ データ基盤チームでソフトウェアエンジニアをしている橋口 (@matsudo840) です。 技術書典18が2025/06/01に開催されます(オンライン開催は5/31-6/15)。 今回もエムスリーでは有志が集まり、新刊「エムスリーテックブック8」を携えて参戦します。 回を追うごとに着実にページ数が増えておりますが、ついに今回は268ページとなりました。 エムスリーのギークで技術を楽しむカルチャーがふんだんに詰まった一冊となっております。 オンラインでは5/31以降、こちらから購入いただけます! techbookfest.org この記事では皆さんに新刊を手…
4日前
記事のアイキャッチ画像
Swift6対応で見えた課題とswift-dependenciesへのDI移行戦略
はてなブックマークアイコン 12
エムスリーテックブログ
【マルチデバイスチーム ブログリレー4日目】 こんにちは、マルチデバイスチームの藤原です。 私たちのチームでは、複数のSwift製のアプリを開発しており、Swift 6への対応を少しずつ進めています。 その過程で、依存性注入(DI: Dependency Injection)ライブラリとして利用してきた Needle が生成するコードと、将来的にSwiftで必須となる existential any *1 *2 との相性問題が顕在化してきました。 コード生成に依存するライブラリは言語仕様に大きな変更があると互換性の問題に悩まされることがよくあると思います。 今後のSwiftの進化に柔軟に対応し…
4日前
記事のアイキャッチ画像
IntelliJ IDEA AIツール比較: Copilot vs AI Assistant
エムスリーテックブログ
【マルチデバイスチーム ブログリレー3日目】 マルチデバイスチーム(以下、マルデバ)の田根です。 主にサーバーサイドとインフラを担当していますが、必要とあればスマホアプリの開発も行うことがあります。 エムスリーではAIの活用を推進しています。 サーバーサイドおよびインフラ開発には IntelliJ IDEA を利用しています。 そこで IntelliJ IDEA上で手軽に導入できる代表的 AI ツールとして「JetBrains AI Assistant」と「GitHub Copilot」をピックアップし、実際に試用したうえで比較します。
5日前
記事のアイキャッチ画像
Kotlin Multiplatform (KMP) でプラットフォーム固有の実装をcommonMainで扱う2つのアプローチ
はてなブックマークアイコン 18
エムスリーテックブログ
【マルチデバイスチーム ブログリレー2日目】マルチデバイスチームでモバイルアプリエンジニアをやっている小林 ([@bakobox](https://x.com/bakobox))です。マルチデバイスチームでは複数のアプリを開発していますが、一部のアプリではKotlin Multiplatform (以下KMP)を使ってロジックの共通化を行っています。KMPを使ってアプリの開発を行っていると、プラットフォーム固有のコードを扱わなければならない場面が必ず出てきます。プラットフォーム固有の実装をcommonMainからどのように扱えるようにするかは、KMPプロジェクトにおける重要な設計課題の一つです。本記事では、この課題に対処するための主要なアプローチである、1. `expect/actual`を使った方法2. DIフレームワークの管理に乗せる方法についてご紹介いたします。また2つ目の方法では、iOS側の実装をSwiftで行う方法もご紹介いたします。
6日前
記事のアイキャッチ画像
過去の技術書典で頒布したイカしたナンバーを紹介するぜ!
はてなブックマークアイコン 2
エムスリーテックブログ
はじめに 皆さんこんにちは、こんばんは。最近『映画大好きポンポさん』を見て気分の良いVPoEの河合(@vaaaaanquish)です。 Amazonプライムで見られるのでオススメです。 さて、開催も迫ってきた技術書典18。エムスリーはスポンサーとして応援しています。そして、弊社からも有志で8冊目の新刊を頒布予定です。 本記事は、エムスリーテックブックの過去作を振り返りながら、エムスリーと技術書典の昔話をしていくものです。 はじめに 技術書典とエムスリー エムスリーテックブック 1~4 エムスリーテックブック 5 エムスリーテックブック 6 エムスリーテックブック 7 おわりに
7日前
記事のアイキャッチ画像
マルチデバイスチームの8つのスマホアプリ、その技術選定を公開!
はてなブックマークアイコン 19
エムスリーテックブログ
【マルチデバイスチーム ブログリレー1日目】 エンジニアリンググループ・マルチデバイスチーム(以下、マルデバ)の星野です。 2年ほど前にスマホアプリ開発で採用している技術というブログを書きましたが、時間が経ち、採用している技術に更新があったり、新しいアプリもリリースされましたので、改めてマルデバで開発しているアプリとその技術選定について紹介します! アプリの数が多いため、各アプリの深掘りは行わず、アプリの概要 + 選定技術の紹介にとどめています。より詳しく知りたい方は方は、ぜひカジュアル面談・面接などでご質問ください!
7日前
記事のアイキャッチ画像
『フルスクラッチして理解するSSL/TLS』の裏側
はてなブックマークアイコン 204
エムスリーテックブログ
【デジカルチーム ブログリレー6日目】デジカルチームの末永です。5月31日から開催される技術書典18で頒布するエムスリーテックブック8の、フルスクラッチして理解するSSL/TLSという章を担当しました。この章では、標準ライブラリ縛りでTLS 1.3のサーバーサイドを実装していきます。 techbookfest.org ここでは執筆の流れや小話などの裏側を書いていきます。
8日前
記事のアイキャッチ画像
ECSのTask数がいつの間にか0に?Task消失事件の顛末
はてなブックマークアイコン 99
エムスリーテックブログ
【デジカルチーム ブログリレー5日目】 デジカルチームの井上 渉 (@wtr_in) です。米がなければということで、餅をよく食べています。実は餅はお正月以外も食べて良いんですよ皆さん。 さて、2024 年 7 月と結構前の話になりますが、AWS で以下のようなアップデートがありました。 aws.amazon.com このアップデートにより ECS が Task を起動する際にイメージを特定する挙動が変わったのですが、デジカルではその影響で、テスト環境の ECS Service の Task 数がいつの間に 0 になる というトラブルを経験しました。割とエッジケースなので、多くの方が遭遇するこ…
9日前
記事のアイキャッチ画像
ジョブ実行基盤をリアーキテクチャし、コストを60%以上削減した話
はてなブックマークアイコン 38
エムスリーテックブログ
AIに生成してもらったイメージ画像 【デジカルチーム ブログリレー4日目】 こんにちは。デジカルチームでエンジニアをしている武井です。 デジカルチームでは、クラウド型電子カルテ、エムスリーデジカルを開発しています。 digikar.m3.com 今回は、非同期処理基盤のリアーキテクチャを実施し、性能も向上しつつインフラコストを60%以上削減できた話をご紹介します。
11日前
記事のアイキャッチ画像
開発を止めない段階的フロントエンドリプレイスの実践 (3) 組織編
エムスリーテックブログ
フロントエンドリプレイスにおいて、プロジェクトを推進する上でのチーム体制や、円滑なコミュニケーション、そして品質を維持するための取り組みなど、組織的な工夫について紹介します。
18日前
記事のアイキャッチ画像
開発を止めない段階的フロントエンドリプレイスの実践 (2) 技術編
エムスリーテックブログ
フロントエンドリプレイスにおいて、段階的な移行を支えた技術的なアプローチについて紹介します。
19日前
記事のアイキャッチ画像
開発を止めない段階的フロントエンドリプレイスの実践 (1) 計画編
エムスリーテックブログ
フロントエンドリプレイスにおいて、開発を継続しながら段階的に移行を進めた計画について紹介します。
20日前
記事のアイキャッチ画像
社内で機械学習コンペ開催!ワイワイ楽しんだ1日をレポート
エムスリーテックブログ
こんにちは、AI・機械学習チームの氏家と農見です。 エムスリーでは、東京のみならず福岡・関西など全国各地にメンバーがおり、開発を進めています。 ただ、チーム全員での交流も大事ということで、AI・機械学習チームでは四半期に一度のペースでチーム全員で集まって様々なイベントを開催しています。 今回は、そのイベントの最新版として機械学習コンペを開いたので、その様子をご紹介します! 当日の様子 ちなみに、前回はGameDayと称して、開発環境で人為的に発生させた障害に対して、その対応のシミュレーションをしました。 こちらの記事で当日のワイワイした雰囲気を感じていただけるので、ぜひこちらもご覧ください! …
22日前
記事のアイキャッチ画像
SQLでQuine書いたから見て見て
エムスリーテックブログ
このテックブログを「quine」で検索していただくとわかるんですが、エムスリーのエンジニアはわりとQuine好きです。Quine(クワイン)とは、文字列を打ち出すだけのプログラムであってその打ち出した文字列というのが自身のコードそのものになっているようなもののことです。 Perl, Python, Rubyなど、手続き型言語で書かれることの多いQuineなのですが、日頃業務でSQLを扱うことの多い私は思うわけです。SQLだって文字列を出力できる言語だぞ、Quine書けるんじゃと。エムスリーエンジニアリンググループUnit1(製薬プロモーション)/Unit9(治験臨床研究支援)エンジニアの三浦[…
1ヶ月前
記事のアイキャッチ画像
憧れのAI・機械学習チームでインターンをしたらOSS Contributionもして、OSSを自分で作ってリリースもした話
エムスリーテックブログ
はじめに はじめまして。荒木です。2025年2月から3月までの3週間*1、AI・機械学習チームでソフトウェアエンジニアとしてインターンシップに参加しました。 このブログでは僕がインターン中に取り組んだ「gokartキャッシュオブジェクトの検索性向上 」について簡単に紹介しつつ、エムスリーで働いてみた感想を綴ります。エムスリーのインターンに参加する未来のギークの参考になれば幸いです。 はじめに インターンに参加するまで インターンテーマ: gokartキャッシュオブジェクトの検索性向上 gokartとは 課題: キャッシュの検索が難しい Objectにメタデータを付与して検索可能に Metada…
1ヶ月前
記事のアイキャッチ画像
エムスリーは『関数型まつり2025』をシルバースポンサーとして盛り上げます
エムスリーテックブログ
はじめに こんにちは、今期は『ウマ娘シンデレラグレイ』と『LAZARUS』に期待を寄せているVPoEの河合(@vaaaaanquish)です。 表題の通り、エムスリーは、6月14日に開催される『関数型まつり 2025』のシルバースポンサーを務めます。 本記事は、私やエムスリーのScalaの思い出を語りながら、関数型まつりのモチベーションを上げていく、そういった記事になります。 はじめに 関数型まつり(ScalaMatsuri)とエムスリー エムスリーでのScala活用 関数型まつりで会いましょう! We are hiring !!
2ヶ月前
記事のアイキャッチ画像
エムスリー初代CPOに山崎が就任、4代目CTOに大垣が就任しました
エムスリーテックブログ
はじめに 皆様こんにちは。4月といえば『四月は君の嘘』。心のままにエンジニアリングを楽しんで行きたいエムスリーVPoEの河合(@vaaaaanquish)です。 この度2025年4月1日より、エムスリーエンジニアリンググループで長らくCTOを努めた山崎(@yamamuteking)が、大垣(@Hi_king)にCTOを引き継ぎ新CTOとなります。 そしてCTOを退任した山崎は、CPOに就任する運びとなりました。 CPO&CTO&VPoEでやっていき! 本記事は、少しばかりの裏話と2人からの所信表明です。 はじめに エムスリーのCTOとCPO 新CTO大垣より一言 主人公になろう 変なこだわり、…
2ヶ月前
記事のアイキャッチ画像
エムスリーBIRチーム大解剖!プロダクト開発の舞台裏と、チームを支える文化
エムスリーテックブログ
はじめに こんにちは。エムスリーエンジニアリンググループ、BIR(Business Intelligence and Research)チームに最近入った丸山です。 この記事では、成長著しいリサーチプロダクトを開発している私たちが、新メンバーのオンボーディングを円滑に進めるために行っている取り組みについてご紹介します。
2ヶ月前
記事のアイキャッチ画像
有志で開発合宿@箱根にいってきました♨️
エムスリーテックブログ
こんにちは、エンジニアリンググループの横本(@yokomotod)です。エムスリーではしばしば開発合宿が開催されており、今回は一泊二日で箱根に行ってきました! またワイワイ楽しく開発してきてしまったので、その様子をお届けしたいと思います。 今回のベストショット
2ヶ月前
記事のアイキャッチ画像
結局、ビジョン
エムスリーテックブログ
こんにちは!2024年9月に入社しました、エムスリーエンジニアリングGプロダクトマネージャーの松尾です。 入社後の半年間、経験豊富な先輩プロダクトマネージャーたちと共に働き、多くの貴重な学びを得ることができました。 今話題のChatGPTに「先輩たちの背中から学ぶプロダクトマネージャー」のイラストを描いてもらいました。なお、弊社ではリモートワークがメインのため、実際の背中はあまり見たことはありません笑 このブログでは、学びの一部を皆さんに共有したいと思います。 プロダクトマネージャーの業務とビジョン 「ビジュアルシンカー」という思考タイプとの出会い 課題発見のための「ビジョン」 他の業務での「…
2ヶ月前
記事のアイキャッチ画像
マルチテナントなWebサービスでデータベースをBigQueryからPostgreSQLに移行してRow Level Securityを導入した
エムスリーテックブログ
こんにちは。AI・機械学習チームの高田です。 マルチテナント構成のWebサービスでは、データの分離とセキュリティを確保することが非常に重要です。マルチテナント構成とは、1つのシステムやアプリケーションを複数の顧客(テナント)で共有する設計アプローチを指します。 今回は、当社のあるプロダクトで行った2つの改善施策について紹介します。 BigQueryからPostgreSQLへの移行: より効率的なデータアクセスとコスト削減 Row Level Security(RLS)の導入: データベースレベルでのセキュリティ強化 これらの施策により、セキュリティ向上とコスト削減の両方を実現できた事例を解説し…
2ヶ月前
記事のアイキャッチ画像
m3.com iOSアプリにホーム画面とロック画面のウィジェットを導入しました
エムスリーテックブログ
こんにちは、マルチデバイスチームでモバイルアプリエンジニアをしている小林 (@bakobox) です。 先日、m3.com iOSアプリにホーム画面とロック画面用のウィジェットを実装しました。 エムスリーのiOSアプリでは初の導入ということもあり、ウィジェット実装に関する知見が得られたので共有いたします!
2ヶ月前
記事のアイキャッチ画像
7年間放置されたRuboCopをチームワークと自動化の二刀流で改善した話
エムスリーテックブログ
こんにちは。デジカルチームでソフトウェアエンジニアをしている武井です。 デジカルチームでは、クラウド型電子カルテ「エムスリーデジカル」を開発しており、メインのAPIサーバーとしてRuby on Railsを採用しています。 digikar.m3.com 今回、長年放置されてきたRuboCopの設定の見直し、運用の改善をチームで協力して行いました。この記事では改善の過程の一部始終をご紹介できればと思います。 この記事でも触れる「リファクタリングデー」の後に打ち上げで行った焼肉を楽しむ様子
2ヶ月前
記事のアイキャッチ画像
読み取り専用 DB を Aurora から SQLite に移行してコストを 1/8 に削減した話
エムスリーテックブログ
デジカルを構成するサービスの DB(基本的に読み取りのみ)を Aurora MySQL から Fargate 上の SQLite に移行し、性能も向上しつつ当該サービス全体のインフラコストを約 1/8 まで大幅に削減できた話をご紹介します。
2ヶ月前
記事のアイキャッチ画像
MCPサーバーが切り拓く!自社サービス運用の新次元
エムスリーテックブログ
こんにちは、エムスリーエンジニアリンググループ、コンシューマチームの園田です。本記事では、外部サービスとAIエージェントの連携を可能にするMCPプロトコルについて、技術検証の実装例を交えてお話しします。 1. MCPとは(ざっくり) MCP(Model Context Protocol)とは、Anthropic社によって策定されたAIエージェントが外部サービスから情報を参照したり連携することを目的としたプロトコルです。 「MCPサーバー」は、GitHubやPostgreSQLといったリソースをMCPで喋れるように変換してあげるプロキシのようなサーバーです。 Claude DesktopやCur…
3ヶ月前
記事のアイキャッチ画像
複雑なドメイン知識を身につける7つの方法
エムスリーテックブログ
エンジニアリングチームの末永です。クラウド型電子カルテ・レセコンのエムスリーデジカルを開発しています。 はじめに (1) コードレビュー (2) 実装 (3) 分からないことをまとめる (4) プロダクトのユーザー向けマニュアルを読む (5) ユーザーからいただいた全てのお問い合わせに目を通す (6) チーム外の人も分かるように説明する (7) 資格を取る ドメイン知識を身につけて役立ったこと まとめ We're hiring! この記事では私がドメイン知識を身につけるために行っている取り組みを紹介します。
3ヶ月前
記事のアイキャッチ画像
refresh tokenを使ってSalesforceのデータ連携をPythonでやる
エムスリーテックブログ
こんにちは、Salesforceのデータを使って推薦システムを作ることになったAI・機械学習チームの農見(@rookzeno)です。Salesforceのデータを扱うエンジニアは、Salesforceのオブジェクトからデータをダウンロードして、Pythonでデータを加工して、他システムにアップロードしたくなる時があると思います。今回はその流れを書いていきます。 refresh tokenを取得する refresh tokenを使ってデータをダウンロードする Simple Salesforce refresh tokenを使ってSimple Salesforceの認証をする Simple Sal…
3ヶ月前
記事のアイキャッチ画像
Rust で作る Step Functions が何でこけたかわかる君
エムスリーテックブログ
こんにちは、AI・機械学習チームの苅野です。エムスリーに転職してそろそろ一ヶ月、今日も楽しくコードを書いています。 この記事では仕事の合間に作った Rust 製の CLI を紹介します。AWS Step Functions のステートマシンが途中で実行に失敗した時に何が原因で何回失敗したかを数えることができます。
3ヶ月前
記事のアイキャッチ画像
【ソフトウェアエンジニアインターン参戦記】クラウド型電子カルテのリクエスト数を13%削減した話
エムスリーテックブログ
はじめまして!エムスリーのデジカルチームでソフトウェアエンジニアとしてインターンシップに参加した藤原です。 この記事ではインターン中に行なったタスク内容とエムスリーでのインターンシップの感想や学びをお伝えします! エムスリーでの働き方などをお伝えして、インターンや就職を考えている他の学生の参考になることを願っています!
4ヶ月前