KAKEHASHI Tech Blog

カケハシのEngineer Teamによるブログです。

技術

Go の context.Cancel パターンを TypeScript に持ち込んでリソースリークと決別した話

こんにちは、ソフトウェアエンジニアの沖(@takuoki)です。 私たちのチームでは、バックエンドを TypeScript で開発しており、Web フレームワークには Hono、メッセージキューには NATS を使っています。その中で、Server-Sent Events(SSE)を使ったリアル…

ETL 変換処理の設計原則 — PySpark を例に

ETL の変換 (Transformation) 層は、Source のデータを変換して Sink に出力する場所です。SQL で書くこともできますが、テストや再利用性の観点を踏まえると、小さい関数を組み、それらを組み合わせるやり方に行き着きます。 本記事では、変換層を堅牢に組…

医療ドメインの「表記ゆれ」をどう解くか?カケハシのNLP2026ポスター発表と展示ブースの様子をお届けします

はじめに こんにちは、カケハシでデータサイエンティストをしている川邊です。 2026年3月9日〜13日に栃木県宇都宮市のライトキューブ宇都宮で開催された、言語処理学会第32回年次大会(NLP2026)に参加してきました。 カケハシはプラチナスポンサーとして協…

サーバーサイドTypeScriptの型システムをどう教えるか — 他言語経験者に向けたオンボーディング事例

こんにちは、kosuiこと岩佐幸翠 (@kosui_me) です。カケハシで認証権限基盤チームのテックリードを務めています。 私たちのチームでは、認証基盤・ID基盤・端末基盤・ライセンス基盤など、様々なプラットフォームシステムをTypeScriptで構築しています。 サ…

React Compiler導入で得られた効果と気をつけたいポイント

はじめに こんにちは。フロントエンドエンジニアの大村です。 みなさん、React Compilerはもう試しましたか? React 19とともに登場したReact Compilerは、これまで手動で書いていたuseMemoやuseCallback、React.memoを自動的に適用してくれるコンパイラです…

2025年に社内で話題になったフロントエンド技術トピックを振り返る

こんにちは。AI在庫管理のプロダクト開発をしているソフトウェアエンジニアの大村です。 本記事では2025年にカケハシ社内で話題になったフロントエンド関連の技術トピックをピックアップしながら、昨年を振り返っていきます。 主要なライブラリ / フレームワ…

E2EテストをSaaSからPlaywrightへ移行する

はじめに こんにちは。Musubi Insightチームでエンジニアをしている中村です。 Musubi Insightでは、SaaS型のE2Eテストツール mabl で14のテストを運用していましたが、認証の安定性やコード管理の面でいくつか課題がありました。 昨今のフロントエンド開発…

多言語横断開発の現場から「Python と static duck typing」

長い前置き おはようございます。カケハシのPE新規サービス開発チームというところでソフトウェアエンジニアをやっているogijunこと荻野です。最近この技術ブログはAIの話題が多めなので、ここから言語オタク語りが始まってしまうのはいいのか?とか思います…

Musubi バックエンドの Python 開発環境を mise + uv へ移行しました(思ったより簡単)

Musubi 開発チームおよびサーバサイド Python 研究会の加藤です。最近は冷えますね。 私のチームで開発している Musubi のバックエンドは Python で実装されていますが、そのパッケージおよびランタイム管理の変遷を追ってみると 2017〜: requirements.txt +…

Lakeflow Connect PostgreSQL connectorの導入検討

こんにちは、カケハシでデータ基盤を担当しているチームの内田です。 カケハシでは、Databricks on AWS上でデータ基盤を構築しています。カケハシのプロダクトはAWS上で動いているものが多く、AuroraやDynamoDBなどのデータベースのテーブルをDatabricksに取…

新認証基盤への移行コストを最小化するフロントエンドリファクタリング

こんにちは。AI在庫管理チームでソフトウェアエンジニアをしている江藤です。 現在、カケハシでは認証基盤を新しくしていて、AI在庫管理チームではその新しい認証基盤(以下、「認証ポータル」と呼びます)への移行準備を進めています。 今回は、AI在庫管理…

プログラマのための Functor・Applicative Functor・Monad 入門

はじめに 認証・権限管理基盤チームでソフトウェアエンジニアをしている金子です。 「Monad(モナド)」という言葉をご存知でしょうか。Haskell を少し触ったことがあれば、名前だけは聞いたことがあるのではないでしょうか(私もその一人です)。Monad は圏…

TypeScriptのテストにはas const satisfiesが便利です

こちらの記事は カケハシ Advent Calendar 2025 の 14日目の記事になります。 はじめに こんにちは、kosuiこと岩佐 幸翠(@kosui_me)(id:kosui_me)です。カケハシで認証基盤・ライセンス基盤・組織階層基盤などのプラットフォームシステムを開発・運用する認…

LLM のフォールバックをどうテストする? Node.js で手軽に障害再現&カオスエンジニアリング

こちらの記事は カケハシ Advent Calendar 2025 の 4日目の記事になります。 はじめに 生成AI研究開発(GenAI)チームでソフトウェアエンジニアをしている坂尾です。 私たちのチームでは、生成 AI を利用したサービスを開発しています。このサービスでは、Goog…

PdMがAI×Databricksで5分待ちの外注システムからデータを取り戻すまで

こちらの記事は カケハシ Advent Calendar 2025 の 2日目の記事になります。 こんにちは!データが好きすぎる梶村(@n_kaji_kaji)です。 カケハシで薬局向けの在庫管理発注システムである「AI在庫管理」というプロダクトのPdMをしていますが、データが好きす…

TypeScriptの宣言的な配列操作 - ビジネスロジックを明確にする

はじめに こんにちは、kosuiこと岩佐 幸翠(@kosui_me)です。カケハシで認証基盤・ライセンス基盤・組織階層基盤などのプラットフォームシステムを開発・運用する認証権限基盤チームのテックリードをしています。 LLMの登場以降、コードを自動生成することが…

Zustand を使用して状態管理のテストを独立して行う方法を考える

こんにちは、カケハシのAI在庫管理チームでフロントエンドエンジニアをしている江藤です。 AI在庫管理では複雑な依存関係を持ったフォームが数多く存在します。それらのコンポーネントの取りうる状態を網羅的にテストしようとすると組み合わせ数が膨大になり…

最も価値のある仕事は、最も「泥臭い」。データサイエンティストが向き合うべきデータ整備のリアル

はじめに こんにちは!データサイエンティストの川邊です。普段は医療・ヘルスケア領域の案件やSaaS利用促進に関わるデータドリブンな意思決定支援を行っています。 タイトルの通り、最近はデータユーザーの視点からアプローチするデータ整備に取り組んでい…

Databricks サーバレスコンピュート導入時の注意点、Tipsの紹介

私たちのデータ基盤はDatabricks on AWSで構築されており、従来、Databricksのコンピュートクラスタは自社のAWSアカウント内のEC2インスタンス上で稼働していました。昨年、DatabricksのサーバレスコンピュートがGA(一般提供)となり、その迅速な起動時間や…

Amazon ECR Docker Credential Helperを利用したECR認証

docker loginによるコンテナレジストリログインの課題 Docker Clientから各種コンテナレジストリに認証するときは、通常docker loginコマンドを利用します。しかし、以下の課題があります。この記事ではこの課題に対応するDocker Credential Helperを紹介し…

機械学習エンジニアが「機械学習を使わない」選択をした理由

はじめに こんにちは。機械学習エンジニアをしている藤本です。 「機械学習を使わないシンプルな方法に置き換えても良さそうだ」 これは、約4年間運用してきたMLモデルのパフォーマンスを初めて可視化した時の率直な感想です。この後、機械学習を使わないモ…

SQLAlchemy でスロークエリの呼び出し元を追跡する

こんにちは、AI在庫管理のバックエンドを担当している沖(@takuoki)です。 今回は、スロークエリの呼び出し元の追跡が難しいという問題について、実際に取り組んだ解決策をご紹介します。比較的シンプルなアプローチでしたが、開発体験の大幅な改善につながっ…

他言語経験者が知っておきたいTypeScriptのクラスの注意点

はじめに こんにちは、岩佐 幸翠(@kosui_me)です。カケハシで認証基盤・ライセンス基盤・組織階層基盤などのプラットフォームシステムを開発・運用する認証権限基盤チームのテックリードをしています。 TypeScriptのクラス構文は、一見するとJavaやC#などの…

社内管理画面を Slack App から Lambda Web Adapter を利用した Web アプリケーションに移行している話

はじめに 処方箋データ連携チームでエンジニアをしている岩佐(孝浩)です。 カケハシには「岩佐」さんが複数名在籍しており、社内では「わささん」と呼ばれています。 私が所属する処方箋データ連携チームでは、これまで Slack App を用いて社内管理画面を…

サイズが小さい新形式Let's Encrypt証明書

Let's Encryptのプロファイル選択機能 Let's EncryptにはProfile機能があり、異なる仕様のサーバ証明書を発行できます。 説明ページにある通り、現在classicとtlsserverの2種類のプロファイルが選択できます。(shortlivedプロファイルもありますが、まだ一…

チームに「確信」と「スピード」を与える、ディシジョンレコード駆動開発のすすめ

こんにちは、処方箋データ連携チームの岡田です。 突然ですが、皆さんは開発の現場で 「あの決定、誰がいつ、どういう背景で決めたんだっけ?」 と頭を抱えた経験はありませんか? 私はプロダクトに対する意思決定を行う立場上、こうした問いを投げかけられ…

薬局業務支援AI開発を加速!Databricks×Dify×Colaboratoryで実現する、ドメインエキスパートとデータサイエンティストの協働基盤

こんにちは、生成AI研究開発チームのデータサイエンティストとしてAI開発を担当している保坂です。 本記事では、薬局の現場オペレーションを支援するAIを開発する私たちのチームが、ドメインエキスパート(薬剤師など) と データサイエンティスト の協働を…

【4つの具体例】薬局向けプロダクトで実践!ユーザー理解を爆速化する生成AI活用術

ユーザー理解って大変 こんにちは。データが好きすぎる梶村です。 カケハシで薬局向けの在庫管理発注システムである「AI在庫管理」というプロダクトのPdMをしています。 プロダクト開発ではユーザー理解が一番大事だと分かっていても、実際に取り組むのは本…

外部仕様書の確認を Slack ワークフローに組み込むことで、 Devin くんにサポートしてもらってみた

カケハシの AI 在庫管理でソフトウェアエンジニアをしている鳥海 (@toripeeeeee) です。こちらの記事は 生成AI研究会 での取り組み記事になります。 カケハシでは、エンジニア個々のコーディング支援に留まらず、AI技術を活用して開発プロセス全体の生産性と…

150万円のMac Studio M3 Ultraを買ったので、使い倒す方法を考える

エンジニアの横田です。カケハシでは生成AIを活用し医療・薬局向けのプロダクトを開発しています。今回は、プライベートの話で恐縮ですが生成AIのキャッチアップのために150万円のMac Studio M3 Ultraを購入した話をしたいと思います。 150万円のMacについて…