KAKEHASHI Tech Blog

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

技術

Okta ログを AWS S3 にログストリームで保存する

この記事は秋の技術特集2024の2記事目です。 Okta のログは社内ユーザの認証とアクセスを記録するため、セキュリティとコンプライアンスの観点から長期保存を行いたいです。 AWS S3 に保存することでインシデント対応や不正アクセス調査に活用することができ…

Databricksでnotebookのセルの中身を検証する

我々のチームではDBをホスティングせず、S3上のDatabricksのdeltaテーブルを使って社内プラットフォームのシステムを提供しています データの登録はDatabricksのnotebookを使って行うのですが、それをチーム外のメンバーに利用してもらうにあたり入力バリデ…

情報の見つけやすさを追求する - 社内ドキュメンテーションの階層整理術

カケハシのプラットフォームチームでソフトウェアエンジニアをしているすてにゃん (id:stefafafan) です。今回はチームに配属されて数ヶ月の私が、いかにして社内ドキュメンテーションの階層構造を整理し、情報の検索性を向上させたかについてお話します。

GitHub Actions arm runnerはじめました

GitHub Actionsのarmランナーが利用可能に 2024年6月3日にGitHub Actionsのarmランナーがパブリックベータになりました。現状larger runnerでの提供なので、Team, Enterpriseプラン専用となっています。 カケハシでもさっそくarmランナーを利用し始めていま…

Lambda zipアーカイブデプロイを深堀りしてコールドスタートを速くしよう

ここ最近のトレンドとして、Vercel, Cloudflareとサーバレスにおけるコールドスタート高速化周りでしのぎを削っており Lambdaも様々な取り組みがなされています。それでもLambdaはシェアが大きいこともあり、コールドスタートが話題になることは多いです。こ…

Google Analytics4による行動データの取得とレポートの作成方法について

こんにちは、Musubiアカウント管理サービスのフロントエンドエンジニアをしている市川です。 本記事では、Google Analytics4(以下、GA4)にてMusubiアカウント管理サービスによるユーザーの行動データをどのように取得し、役立てているかを解説します。 GA4…

ドメインイベントを伝達するためのモデリング技法

前回は、アーキテクチャの進化はドメインイベントが起点になるという記事内で、ドメインイベントの重要性を語りました。本稿では、ドメインイベントを伝達する際にシステム要件を満たした上で、どのようにしてデータモデル並びにドメインモデルを象るかを説…

CloudFront配信サイトでGitHub組織のドメイン認証するときの注意

GitHubドメイン認証がうまくいかない 会社でGitHubを利用するときは組織のドメイン認証を行い、トップ画面に"Verified"マークを表示させることが多いと思います。 GitHubのドメイン認証を行うときは指定のTXTレコードを追加しますが、CloudFrontを使っている…

AtCoder 第一回マスターズ選手権-予選- 参加記

こんにちは。カケハシでデータサイエンティストとして働いている川渕です。 2024年3月3日にAtCoderで開催された第一回マスターズ選手権-予選-にカケハシのメンバーと参加してきたので、決勝前に参加記を書いておきたいと思います。 なお、対象読者はAHC(Atco…

GitHub Actions に Python のパッケージインストーラー uv を導入する

こんにちは。 カケハシの Musubi AI在庫管理 チームにて業務委託のエンジニアをさせていただいております takanakahiko と申します。 今回はuvをGitHub Actionsに導入したらとても効果があったので、紹介することができればと思います。 uvとは uvとはPython…

チームで行っている輪読会の紹介

はじめに こんにちは。カケハシの牧野です。 私が所属するチームでは数カ月間にわたり「ソフトウェアアーキテクチャの基礎」という書籍の輪読会をしておりました。この記事では輪読会を実施した背景や、実施して良かったことなどを紹介いたします。 輪読会の…

安心してメンテナンスを行うためのメンテナンスモードの実現において考えたこと

こんにちは、カケハシでAI在庫管理のプロダクトのバックエンドエンジニアをしている松本です。 AI在庫管理でメンテナンスを行うための機能としてメンテナンスモードを開発しました。本エントリではメンテナンスモードを実現する際に考えたこと、気をつけたこ…

@apollo/clientの3.8.xへのアップデートに伴う挙動変更

はじめに AI在庫管理のフロントエンド開発をしている木本です。 先日、@apollo/clientのv3.7.17からv3.8.1へのアップデートに伴う大規模なデグレが発生しました。具体的には無限スクロールで情報を取ってくる画面で、一切情報が見られなくなってしまう状態と…

GitHubを使わずDatabricksだけでお手軽にライブラリ共有やCIができる環境を作ってみた

こんにちは、株式会社カケハシのデータサイエンティストの保坂です。 データ分析をやっていると、典型的な処理、よく使う処理を再度使い回せるようにしたり、他のメンバーに共有したくなることはないでしょうか?さらにこのような処理を適宜みんなが自由に拡…

アーキテクチャの進化はドメインイベントが起点になる

こちらの記事はカケハシ Advent Calendar 2023 Part2の24日目の記事になります。 adventar.org はじめに 反復的な開発は、変更容易性の高いソフトウェアが不可欠です。ソフトウェア開発の経験がある方なら、デリバリ後の洞察や市場環境の変化から、新しい機…

オフサイトミーティングでLLMのハッカソンをやってみた

MusubiInsight のダッシュボードチームでは、四半期に一回ぐらいのペースでオフサイトミーティングを行なっています。今期は、そのオフサイトミーティングで LLM(大規模言語モデル)のハッカソンを行いました。 OpenAI が ChatGPT を発表してから、チームの中…

All TypeScriptのMonorepoのlinterをESLintからbiomeにしたらlintが25倍速くなった🚀

フロントエンド(React.js TypeScript) バックエンド(Node.js TypeScript) インフラ(CDK TypeScript) の Monorepo の linter を ESLint からbiomeに変更したら lint が約50秒かかっていたのが大体2秒になって嬉しかったので共有します。 こんにちは、カケハシ…

データメッシュアーキテクチャの段階的な検討プロセスをご紹介します

この記事は カケハシ Advent Calendar 2023 の19日目の投稿になります。 adventar.org 東 浩稔(あずま ひろとし)と申します。 私は、カケハシでデータプロダクトのPdM(プロダクトマネージャー)を務めております。 2023年の7月に入社し、全社のデータ利活用…

横断データサイエンス組織になったので共通的な分析プロセス・ルールを整備し始めました

こちらの記事はカケハシ Advent Calendar 2023 Part2の17日目の記事になります。 はじめに こんにちは、株式会社カケハシのデータサイエンティストの保坂です。 2023年9月より、これまで2つに分かれていたデータサイエンス系メンバーの属するチームが合併し…

DynamoDBのCDCデータを利用して、ニアリアルタイムにDatabricksへ取り込む

こちらの記事はDatabricks Advent Calendar 2023の16日目の記事になります。 こんにちは。カケハシのデータ基盤チームでデータエンジニアをしている松田です。カケハシでは、2022年7月ごろから全社的なデータ活用基盤のプラットフォームとしてDatabricksを採…

顧客からの課題解決はエンジニアにとってのgood first issue

こちらの記事は カケハシ Advent Calendar 2023 の12月10日の記事になります。 はじめに こんにちは。カケハシで機械学習エンジニアをしている木村です。 私は今年の8月に入社してMusubi AI在庫管理の開発を行なっています。カケハシでは入社時のオリエンな…

TensorFlow Probabilityを使ってドメイン知識を組み込んだ独自の確率分布を定義してみた

カケハシでデータサイエンティストとして働いている蓑田です。 こちらの記事は カケハシ Advent Calendar 2023 の8日目の記事になります。 今回はTensorFlow Probability(以降、TFPと呼ぶ)を使って独自の確率分布を定義するための方法について書いていこう…

ベイズ推論を用いた2群間の比較

カケハシでデータサイエンティストをしている島吉です。 こちらの記事は カケハシ Advent Calendar 2023 の4日目の記事になります。 A/Bテストなど、ある2つのグループ(2群)の特徴に差があるのか検証したい場面があります。このとき、t検定などの仮説検定…

AWS Glue Crawlerを利用した分析用テーブルの構築

こちらの記事は カケハシ Advent Calendar 2023 の3日目の記事になります。 こんにちは、カケハシで Musubi AI在庫管理 の開発をしているMLエンジニアの藤本です。 Musubi AI在庫管理 ではS3に出力している内容に関する分析用テーブルの管理にAWS Glue Crawl…

GBDTによる分位点回帰は推論時の誤差を正確には表していない

Musubi AI在庫管理の機械学習エンジニアをやっている中野です。 こちらの記事は カケハシ Advent Calendar 2023 の1日目の記事になります。 昨年はprophetについて書きましたが今年は勾配ブースティングにしました。 医薬品や食料品、アパレルなどの需要予測…

コードフォーマッターをPrettierからdprintにしたら10倍以上速くなった話🚀

はじめに こんにちは!ソフトウェアエンジニアの種岡です。 私たちのチームでは、TypeScriptを使用して開発を行っており、Prettierというコードフォーマッターを利用し、チーム内でコーディングスタイル統一に大変重宝しています。 そんなフォーマッター界隈…

リソースの大掃除にはChatGPT

はじめに カケハシで BI ツールを開発している横田です。 AWS のリソース、いつの間にか増えていませんか? 今回は、ChatGPT を使って AWS のリソースを簡単に可視化することができたので、紹介したいと思います。 今回の課題と工夫したこと 我々のチームで…

Renovate の対応状況を確認し、開発者がライブラリアップデートを頑張っていることを可視化した

ライブラリのバージョンアップはセキュリティを担保する上で重要で、大変な作業です。 その作業を省力化してくれる Renovate をカケハシでは 2020 年から導入しています。 そんな Renovate の対応状況を可視化し、セキュアな状態を保てているかを確認しまし…

AWSのIoT CoreとIoT Device Shadowで管理する「レセハブ」の紹介

はじめに こんにちは。処方箋データ基盤チームの山田です。 私の所属するチームでは、レセハブというIoTデバイスを作っています。 今回は、レセハブの機能や特徴・および採用されている技術について紹介いたします。 これまで、処方箋データ基盤チームのプロ…

GitHub Actions料金 Datadogによる可視化と削減のヒント

開発コストのうちGitHub Actions料金が占める割合は小さい傾向にありますが、組織規模によっては削減の必要があるでしょう。 この記事では、主にDatadogを利用した可視化による特定方法と、一般的なコスト削減のヒントを述べます。 前提:パフォーマンスを改…