TECH PLAY

株式会社カケハシ

株式会社カケハシ の技術ブログ

394

KAKEHASHI Tech Encounterは、カケハシの開発組織やプロダクトづくりの裏側にある、社内のリアルな熱量を外部に伝えるために開催している技術イベントです。 第6回となる今回は、入社半年のSRE・森藤の「次回のイベント、自分めちゃくちゃいい話できる気がするんです!」という一言をきっかけに企画しました。 テーマは「カケハシを支える開発チームの今と次なる課題」。転職時に考えた人生の目的、入社半年で見えたカケハシの開発組織の現在地、そしてチームをまたいだ次の課題について、理想論ではなく、登壇者自身の言葉で語る回となりました。当日は、前半を森藤によるセッション、後半を森藤・大山・竹本の3…
こんにちは、ソフトウェアエンジニアの沖(@takuoki)です。 私たちのチームでは、バックエンドを TypeScript で開発しており、Web フレームワークには Hono、メッセージキューには NATS を使っています。その中で、Server-Sent Events(SSE)を使ったリアルタイム通知の仕組みを実装する機会がありました。 SSE のような長寿命の接続では、クライアントの切断・タイムアウト・サーバー側のエラーなど、さまざまな理由で接続が終了します。このとき、NATS サブスクリプションやタイマーを確実にクリーンアップしないと、リソースリークが発生します。実際、最初にプロトタイ…
ETL の変換 (Transformation) 層は、Source のデータを変換して Sink に出力する場所です。SQL で書くこともできますが、テストや再利用性の観点を踏まえると、小さい関数を組み、それらを組み合わせるやり方に行き着きます。 本記事では、変換層を堅牢に組むための 4 つの設計原則を扱います。 純粋関数として書く パイプラインを組む Sink ごとにモジュール化する スキーマで型情報を補う 例示には PySpark の DataFrame API を使いますが、これら 4 つの原則は ETL の変換層に共通する考え方で、Polars / Pandas など他のツールでも同…
こんにちは。カケハシでAI在庫管理の開発をしている江藤です。 AI在庫管理では、複数タブを開いた状態で使われることがあります。認証周りを再実装する中で、複数タブを開いていると発生するアクセストークンの自動更新の重複問題に向き合うことになりました。今回はその問題をWeb Locks APIで解決した実装の変遷を紹介します。 アクセストークン自動更新時の重複 AI在庫管理はSPAで動いているため、アクセストークンの有効期限が切れてしまう数分前に自動でトークンの更新処理を行なっています。 ユーザーが開いているタブが1つだけなら単純に更新リクエストを行うだけで済むのですが、複数タブを開いている場合に少…
RenovateのlockFileMaintenanceの利用シーン Renovateを導入してパッケージを更新しても、GitHubの脆弱性検知数が減少しないことがあります。これは、リポジトリの脆弱性検知が間接的にインストールされるパッケージも対象とする一方で、デフォルトのRenovateの挙動では間接依存のパッケージを対象にしないためです。この記事ではRenovateで間接依存パッケージ更新も行うオプションを紹介します。 lockFileMaintenanceの説明 RenovateにはlockFileMaintenanceという一見わかりづらい機能があります。ドキュメントには以下の説明があ…
はじめに こんにちは。 電子薬歴 Musubi の基盤開発チームで SRE を担当している大山です。 今回は、Claude Code で増えていく git worktree を PR 情報つきの一覧・選択・起動・後片付け までまとめて扱える個人 OSS の CLI ccw を紹介します。claude --worktree と git worktree を薄くラップしているだけのツールです。 普段の開発では Claude Code をメインに使っているのですが、単一のリポジトリで複数の作業を並行して進める となると、気づけば worktree が溜まって、どれが何の作業だったか迷子になったり、ま…
こんにちは、ソフトウェアエンジニアのkackyです。 私たちのチームでは、AIコーディングアシスタント(Claude Code / Cursor)の「スキル」という仕組みを使い、自然言語でDatabricksのダッシュボードを生成できる環境を構築しました。「○○の推移を可視化してみたい」と指示するだけで、ダッシュボードのたたき台が数分で出来上がる世界です。 しかし、その裏側では「公式に仕様が公開されていないJSON形式を、いかにしてAIに正しく生成させるか」という地味で泥臭い作業がありました。この記事では、その設計判断とノウハウを共有します。 背景:Databricksダッシュボードの課題 私…
VP of Data and AI 鳥越 2026年3月2日、カケハシは執行役員 VP of Data & AIに鳥越大輔の就任を発表しました。 この人事の背景には、医療×AI・データという難易度の高い課題に向き合っていくことへの覚悟があります。今回、鳥越と執行役員CTOの湯前慶大に、執行役員 VP of Data & AIの人選理由から、カケハシにおけるAI・データ活用の現在地、そして今後の挑戦まで聞いてきました。 医療× AI・データという課題に挑むための執行役員就任 執行役員CTO 湯前 ──── なぜ今、カケハシに「VP of Data & AI」という役割が必要だったのでしょうか。 …
はじめに こんにちは、カケハシの認証・権限管理基盤チームで開発をしている金子です。 最近は生成AIの性能向上により、生成AIを活用できるシーンは日々拡大しています。コーディング以外にも、新しい機能の設計や要求分析、バグ発生時のトラブルシューティングなど、本当に多くのシーンで生成AIは力を発揮します。 既存コードの調査も同様に生成AIツールが活躍しますが、時には生成AIの確率的な要素を含んだ結果ではなく、「確実に漏れなく」検索したいという場面もあります。 インタラクティブな検索ツール 本記事で紹介するツールを使用すれば、検索結果の確認と検索クエリの変更を高速に繰り返すことで、細かな表記揺れなども…
こんにちは。ソフトウェアエンジニアとして、カケハシの新規プロダクトの開発をしている鳥海です。 カケハシでは、組織横断で特定のテーマについて知見を深め合う「研究会」という取り組みがあります。 今回は、その中の AI 活用研究会からの発信です。 今回のテーマは、未経験領域である Windows アプリ開発において、AI を活用しながら立ち上げの初速を出しつつ、Web フロントエンド開発との文化の違いを吸収し、経験者との共創を通じて価値を作っていく方法です。 実際に取り組んだ内容をもとに、うまく進んだことだけでなく、失敗しかけた場面やそのときに感じていたことも含めて、背景や課題感、どのように考えて進…
はじめに こんにちは、カケハシで Pocket Musubi というサービスの開発をしている宮里です。 Pocket Musubi は多数のリポジトリで構成されており、開発環境の構築は毎回それなりの時間がかかる作業でした。今回、その中でも主要な3リポジトリの環境構築を、Claude Code の「スキル」機能を使って自動化してみました。 本記事では、スキルの設計や工夫、使ってみた感想を紹介します。 環境構築がつらい Pocket Musubi の主要コンポーネントは、バックエンドAPI(Django / Docker Compose)、薬局管理画面(Next.js)、患者向けLIFFアプリ(N…
はじめに こんにちは、カケハシでデータサイエンティストをしている川邊です。 2026年3月9日〜13日に栃木県宇都宮市のライトキューブ宇都宮で開催された、言語処理学会第32回年次大会(NLP2026)に参加してきました。 カケハシはプラチナスポンサーとして協賛し、スポンサーブースの出展に加え、ポスター発表も行いました。本記事では、発表内容の紹介や学会の様子、気になった発表についてレポートします。 NLP2026について 言語処理学会年次大会は、自然言語処理(NLP)に関する国内最大級の学術会議です。今年は参加者約2,300名超、発表797件と、いずれも歴代最多の規模での開催となりました。 今年…
はじめに 対象となる読者 IaC 化を決めた背景 🏗️ 困ったこと & カウンター 課題.1 リソースの管掌範囲が明文化されていない 🤯 カウンター ✅ 課題.2 IaC ツールが乱立していた 🤯 カウンター ✅ 課題.3 デプロイ元のリポジトリが体系化されていない 🤯 課題.4 Serverless Framework の有償化 🤯 工夫したポイント 💡 Terraform ディレクトリ構成 📂 CI/CD パイプラインの並列化 ⚡ セキュリティの担保: OIDC 認証で IAM User を撲滅 🔐 drift 検出: 手動変更を見逃さない 🔍 PR のライフサイクル 🔄 Devin によ…
こんにちは、認証・権限管理基盤チームの五十嵐です。 直近のプロジェクトで、Claude Codeに既存のコードベース・Slack・社内ドキュメント(Confluence)を読み込ませ、要求分析の叩き台を生成するという取り組みを行いました。 今回はその具体的な進め方と結果を共有します! 背景と課題 私が所属していたチームは2026年01月に認証・権限基盤チームに統合となり、統合先のメンバーと一緒に働くことになりました。 直近の新しいプロジェクトで、エンジニア主導で要求分析を行おうと試みましたが下記のような課題がありました。 メンバー全員が既存システムに詳しいわけではない 既存システムの業務知識が…
カケハシでの社内講演に、Honoの作者であり、現在はCloudflareでデベロッパーアドボケイトを務める和田裕介氏(@yusukebe)をお招きしました。 テーマは「OSSとコミュニティ」。一個人の原体験から始まり、いかにしてHonoが世界的なコミュニティへと成長したのか。その裏側にある「来るもの拒まず」の挑戦や、泥臭い葛藤についてお話しいただきました。 社内向けのクローズドな場でしたが、圧倒的な熱量と「エンジニアとしての生き様」に触れる濃密な時間だったため、ご本人の許可を得て特別に公開します。当日は、前半を講演編、後半を対談編として構成し、対談パートにはカケハシのVPoTである椎葉(@bu…
こんにちは、kosuiこと岩佐幸翠 (@kosui_me) です。カケハシで認証権限基盤チームのテックリードを務めています。 私たちのチームでは、認証基盤・ID基盤・端末基盤・ライセンス基盤など、様々なプラットフォームシステムをTypeScriptで構築しています。 サーバサイドTypeScriptをビジネスとして実践する場合、動的型付けのPythonやPerl、クラスベースの名目的型付けのJavaやC#、パターンマッチ中心のElixirなど、型に対するアプローチが異なる言語の経験者が、様々なバックグラウンドを持ったチームメンバーとして開発・運用することとなります。しかし、それぞれのバックグラ…
はじめに 今年は変化した一年だったなぁ。一番の変化というと個人の課題からチームの課題へと視座感が変わったところで、それまでは個人のスキルアップが目標のほとんどだったけど、チーム状況の変化を目の当たりにして今のままだとダメだなと感じ、チームの課題を自分の課題と思って取り組めるようになったのが大きな変化だった。 それによって主体的に動き・提案したり既存フローを変えたりして、これまでマネージャー層が現場の意見を聞きながら少しずつ調整かけていたものを現場の目線でいい感じに変えられるようになったし、実際手応えも感じることができた(あとは、変化したやり方がまだ浸透しきっていない感じはするので、文化として当…
はじめに こんにちは。フロントエンドエンジニアの大村です。 みなさん、React Compilerはもう試しましたか? React 19とともに登場したReact Compilerは、これまで手動で書いていたuseMemoやuseCallback、React.memoを自動的に適用してくれるコンパイラです。手動メモ化から解放されるという期待感がある一方で、現段階で導入してよいものなのか迷っている方も多いのではないでしょうか。 今回は、私たちのチームで実際にReact Compilerを導入した経験をお伝えします。導入してみた結果としては、大半のコンポーネントでは期待通りにメモ化されて効果を確認…
はじめに はじめまして、竹浪と申します。2025年8月にカケハシへエンジニアとして入社しました。 現在は Pocket Musubi チームに所属しています。この記事では、入社の経緯や、半年間で感じたことをお伝えできればと思います。 自己紹介・これまでの経歴 1999年に専門学校を卒業後、SI系の会社でエンジニアとしてのキャリアをスタートしました。翌年にはフリーランスに転向し、その後メガベンチャーを含むWeb企業を経て、複数のスタートアップでの開発にも携わってきました。 技術スタックとしては Go、Java、PHP を中心としたバックエンド開発が主軸で、AWS や GCP を活用したインフラの…
ランキング参加中プログラミング こんにちは。フロントエンドエンジニアをしているNokogiri(@nkgrnkgr)です。 はじめに 私たちのReactをつかったプロダクトでは Suspense をデータフェッチに利用しています。useTransition や useOptimistic も触ったことはありましたが、プロダクションでどう活かすかという解像度がまだ上がっていませんでした。 そんなとき、uhyo さんの「React 19時代のコンポーネント設計ベストプラクティス」や「Async Reactとは何か」を読んで、Async React の全体像をちゃんと理解したくなりました。実際にコー…