Geekplus Tech Blogのフィード
https://zenn.dev/p/geekplus
物流テックベンチャーの株式会社ギークプラスでは、「サプライチェーンマネジメント (SCM) の新しいあり方を、ソフトウェアで思い描く」をビジョンとして、オープン SCM ソリューション「skylaa」の開発をしています。本ブログでは、ギークプラスのソフトウェア開発チームが得た知見
フィード

本番DBに不要なレコードを数千万件登録してしまった話
Geekplus Tech Blogのフィード
ある日、普段数分以内で完了するはずのバッチジョブからレイテンシーアラートが上がってきました。調査すると、出荷明細の補足情報を登録する処理で、大量のINSERTが発生しています。このままでは、他の入出荷等にも影響を及ぼすため、早急な解消が必要な状況です。この記事では、無駄に増殖してしまったデータとの戦いについてご紹介します。 何が起きていたのか問題のINSERTが発生している箇所を調査したところ、出荷の明細に紐づく補足情報を保持するテーブルに対して大量のINSERTが行われていました。本来は、1出荷明細に対して多くても数十レコードです。一体何故?※補足です。アラートの...
8日前

BOM表のデータ設計を考える
Geekplus Tech Blogのフィード
こんにちは、ギークプラスの千葉です。弊社のサプライチェーンマネジメントサービス「skylaa」では新たに資材管理機能の開発が検討されており、機能の中心となるBOM表のデータ設計についての弊社事例をまとめてみました。今回は関係テーブル、jsonb、グラフDBの3案を比較し、BOMの関係をテーブルとして扱う方針が最有力となりました。 資材管理機能の必要性skylaaではいわゆる在庫管理機能と工場向けの生産日程管理機能が実装されています。在庫管理機能と生産日程管理機能では横断して完成品を扱える一方、完成品に必要となる中間品、梱包などの資材は在庫として管理することができませんでした。...
19日前

AIエージェントと一緒にバッチの結合テストをした話
Geekplus Tech Blogのフィード
ギークプラスのエンジニアの亀山です。普段はサプライチェーンに関わるお客様の業務を支援する skylaa の開発をしています。バッチの結合テストでAIエージェントを使ってみましたテストデータの設計と作成、実行結果の裏どりを AI エージェントに任せて、自分はデータの投入と実行、最後の確認・判断だけをやる という分担です。何回か回してみて手応えがあったので、どう分けているか、なぜそこで線を引いているかを書いておきます。今回のテーマは「AI には段取りと裏どりを、人間には実行と判断を」になります。題材はどこにでもあるような「夜間バッチ」で、業界に依らない話にしています。 結合テ...
1ヶ月前

TanStack Virtual を使ってみた話
Geekplus Tech Blogのフィード
初めまして。ギークプラスのフロントエンドエンジニアの杉平と申します!今回は、サプライチェーン計画のプロダクトで在庫計画の画面をリニューアルしたときのお話です。作ったのは、商品ごとのカードを縦に積んでいって、開くと中に大きな表が出てくる画面でした。表の縦軸は「拠点 × 指標」で、拠点 1 つにつき在庫数や入出荷数といった指標が並びます。横軸は時間で、日次・週次・月次を切り替えられます。これが最大でどれくらいになるかというと、拠点 100 件 × 指標 9 種類で 900 行。日次は今日を挟んで前後 365 日ぶん出すので 731 列。掛けると 約 66 万セルです。1 商品ぶんでこの...
2ヶ月前

技術カンファレンス協賛、はじめの一歩
Geekplus Tech Blogのフィード
こんにちは!ギークプラスの今村です。ギークプラスでは、2026 年にはじめて技術カンファレンスへの協賛を行いました。今回は、技術カンファレンスへの初協賛にあたりどのような準備をしてきたか、振り返ってみたいと思います。 プロローグ:協賛を検討する企業が技術カンファレンスに協賛する目的のひとつは、技術広報にあるかと思います。企業の技術広報は、その企業にどんな人が在籍していて、どんな技術スタックを取り入れているか、どのようなサービスを開発しているかを伝えるための手段として最適です。それに魅力を感じてくれる人が入社してくれれば、長期的な目線でカルチャーフィットした人材採用に繋がり、組織力...
2ヶ月前

仕様の不足を指摘するLinear Agentで開発の高速化を目指す
Geekplus Tech Blogのフィード
概要弊社ではLinearを使ったタスク管理を行っています。今回は、Linearの機能であるLinear Agentを使って開発着手までのリードタイムを短縮することで開発の生産性向上を目指した事例を紹介します。 発生していた課題弊社では、概ね次のような流れで開発を進めています。PdMを中心に仕様を整理し、Linear上でIssueを起票するエンジニアが仕様を読む実装に必要な情報が足りないことに気づくPdMやドメインエキスパートへ質問する回答を受けて再確認する実装可能になるまで繰り返す実装開始このフローでは、PdMがIssueを起票してからエンジニアが仕様を...
3ヶ月前

ナレッジで賢くなる障害調査エージェント。障害対応のやりとりを組織の資産に変える
Geekplus Tech Blogのフィード
はじめにGeek+の鈴木です。アラートが鳴った時に「このドメイン、詳しくないんだよな…」と思いながら、ログの場所を探すところから調査を始めた経験はないでしょうか。弊社では、アラート通知をトリガーに、AIエージェントが自動で調査から一次切り分けまでを行う仕組みを構築し、開発チームで約3ヶ月運用してきました。この記事ではその構成とこだわったポイント、運用してみた結果を紹介します。 本記事のターゲット障害調査を自動化したい方Strands Agents + Amazon BedrockでAIエージェントを構築してみたい方 単語本記事で出てくる言葉の定義項目...
3ヶ月前

TypeScriptでサプライチェーンの整合性を型に閉じ込める
Geekplus Tech Blogのフィード
ギークプラスのエンジニアの亀山です。普段はサプライチェーンに関わるお客様の業務を支援する Skylaa の開発をしています。先日、TSKaigi Night talks 〜after conference〜というイベントにて「TypeScriptでサプライチェーンの整合性を型に閉じ込める」というタイトルで登壇する機会がありまして、この記事はその内容を記事化したものです。テーマはバックエンドの設計の話で、一言でいうと 「同じ事実を複数の表で別々に持つとズレるので、保存するのは"流れ"1本だけにして、表は計算で出す」 という話です。 同じ事実を別々に持つと、ズレる問題小売店でよ...
3ヶ月前

AIエージェントチーム開発をしてみた
Geekplus Tech Blogのフィード
こんにちは、ギークプラスの千葉です!今回は私が実際に開発で活用しているAIエージェントチーム(以下AIチーム)による開発を整理しつつ、弊社のエンジニアチームのAI利用状況も交えご紹介していきたいと思います! 前提弊社ではAI活用に積極的に取り組んでおり、昨年夏頃からのDevinの有償利用を皮切りに、ChatGPT(Proプラン)やClaude(Maxプラン)、Cursorも含めLLMサービスをハイクラスのプランで利用することができます。予算上限までであればどれを使っても問題はありません。好みのサービスを柔軟に利用することができ、同時並行で利用して比較したいとの考えから上限内で複数...
4ヶ月前

Amazon CloudWatch RUM の Session Replay でユーザー操作を録画してみた
Geekplus Tech Blogのフィード
Web サービスの運用において、ユーザーからの問い合わせがあった際に「不具合を再現できない」「ユーザーが何をしたのか分からない」となりがちだと思います。ユーザーが実際に操作した内容を記録できるようにしたいなと思っていたところ、Amazon CloudWatch RUM が Session Replay に対応(2026 年 5 月)したのもあり、気になったので触ってみました。CloudWatch RUM の Session Replay は、ユーザーの操作を動画のように再生できる機能です。AWS の発表では、クリック・スクロール・ページ変更・エラーを video-like playb...
4ヶ月前

11週間でMVPリリースに至るまでの開発
Geekplus Tech Blogのフィード
GeekPlusの中村です!私は主にskylaaの計画機能群の開発に携わっています。今回は、2026年2月に実施した計画機能群のMVPリリースまでの11週間を振り返り、チーム全体で工夫したポイント、そして個人的に学んだ教訓をお伝えします。 skylaaとはskylaaは、企業のサプライチェーン計画・管理をサポートするWebアプリケーションです。計画機能群は需要予測、発注計画、在庫計画など、サプライチェーン運用に必要な計画機能を統合したもので、企業の供給計画を効率化し、意思決定を支援します。詳細については、公式紹介ページをご覧ください。 MVPのスコープ2月の計画機能群の...
5ヶ月前

TSKaigiのブースで使うクイズアプリを、簡単にFirebaseに乗せられた話
Geekplus Tech Blogのフィード
ギークプラスのエンジニアの亀山です。今度 TSKaigi にブース出展する予定がありまして、その企画として「TypeScriptトリビアクイズアプリ」を作りました。ブースに来てくれた人にスマホでクイズに挑んでもらって、結果をランキング表示するようなWebアプリです。最初に作ったのはブース内のモニターでクイズを遊んでもらおうと、完全にローカルで動くやつを作ろうと思い、ランキングは localStorage に貯めるような形にしましたが、各自のスマートフォンで遊べた方がより大人数に参加いただけると思い、Firebase に乗せてオンライン公開に方針変更しました。 作ったものざっく...
5ヶ月前

イベントストーミングはCUJと相性がいい
Geekplus Tech Blogのフィード
はじめにGeek+の鈴木です。SLI/SLOを作成していく上で、その土台となるのが CUJ(Critical User Journey) です。CUJはどの現場でもユーザー体験をイメージして作成されているはずですが、その粒度や、ユーザー・ビジネスにとって本質的に重要なことをどこまで捉えられているかによって、SLI/SLOで見えるユーザー体験の解像度は大きく変わってきます。逆に言えば、CUJの質がそのままSLI/SLOの質の上限を決めてしまう、と言っても過言ではないと思っています。一方で、CUJをチームで議論しながら作り上げる過程には難しさがあります。この記事では、弊社がC...
6ヶ月前

マルチテナントSaaSにAIエージェントを組み込むとき、テナント分離をどう設計するか
Geekplus Tech Blogのフィード
はじめにマルチテナントのSaaSに、ユーザーの自然言語の問い合わせに対して柔軟にデータを取得・分析できるAIエージェントを組み込みたい。しかし、AIエージェントに自由にDBへクエリを投げられる設計にすると、マルチテナントSaaSでは他テナントのデータにアクセスしてしまう事故につながりかねません。今回は、他テナントのデータにアクセスしてしまう事故を防ぎつつ、AIエージェントが柔軟にデータ取得できるようにするにはどうすればよいかを考え、大きく3案に分けて比較しました。この記事では、マルチテナントな業務SaaSにAIエージェントを組み込むときの設計上の論点と、各案の良い点と限界を整...
6ヶ月前

Storybook MCP for React と Composition で、モックを共通コンポーネントに寄せて実装する
Geekplus Tech Blogのフィード
Storybook MCP for Reactの登場もあり、気になったのでStorybookのMCPを触ってみました。最近は、エンジニア以外がコーディングエージェントを使うことも珍しくなくなってきました。UI モックの共有手段も、Figma だけでなく、HTML + CSS + JS や React のコードで渡されるケースが少しずつ増えてきたように感じています。弊社ではデザイナーは製作物をGitHub上で管理しており、エンジニアに共有されます。ただ、実際のプロダクト開発では、モックをそのまま実装したいわけではなく、既存の共通コンポーネントやデザインルールに合わせて作り直したいこ...
7ヶ月前

ダッシュボードをユーザーごとに出し分けたい!──Amazon QuickS ight の Embedding API
Geekplus Tech Blogのフィード
こんにちは、ギークプラスの千葉です!ギークプラスで開発しているオープンSCMソリューションサービス「skylaa」では、新規開発の一環として組織ごとに異なるダッシュボードを提供したいという要件がありました。本記事では、BIツールの選定過程で Amazon QuickSight を検証した際の知見について、Embedding API の使い方や権限制御の仕組みを交えながら紹介します。 なぜダッシュボードの出し分けが必要だったのかskylaaは複数の荷主企業(組織)にご利用いただくSaaSです。各組織が扱う商品や物流の特性が異なり、見たい数字は変わってきます。「全組織に同一のダッシュ...
7ヶ月前

AWS Supply Chain の謎を解明すべく我々は AWS の奥地へと向かった
Geekplus Tech Blogのフィード
こんにちは、ギークプラスの今村です!突然ですが、みなさんは AWS Supply Chain というサービスを触ったことはありますか?...ないですよね。ギークプラスは物流の会社ですが、私もこの会社にいなければ、まず触ることはなかったと思います。日本語での事例も私が探した限りではほとんどありません。そのような中、この記事の需要がいったいどこにあるのかは謎ですが、私自身もサプライチェーンというドメインを学ぶには良い機会かと思い、今回、この謎多き AWS Supply Chain というサービスを解き明かすべく、Deep Dive してみることにしました。AWS Supply Chai...
8ヶ月前

marimo vs Jupyter:.py ノートブックならCIが驚くほど簡単になる
Geekplus Tech Blogのフィード
はじめにこんにちは、ギークプラスの中村です。最近 marimo を知って、かなりワクワクしました。marimoはリアクティブなPythonノートブックで、Jupyterと同じようにブラウザ上で編集できますが、裏側では .ipynb のJSONではなく、普通の .py ファイルとして保存されます。リアクティブ実行やクリーンなファイル形式だけでも魅力的ですが、一番気になったのは「CIはどうなるんだろう?」という点でした。もちろん、すべてのノートブックにCIが必要なわけではありません。ちょっとしたデータ分析や一回きりの検証なら、ノートブックにサッと書いて終わりで十分です。ただ、チーム...
8ヶ月前

OR-Toolsでトラックへの荷物積み付けの最適化に挑戦
Geekplus Tech Blogのフィード
はじめにトラックへの積み付け効率を上げることは、運行台数や燃料・人件費の削減につながる、物流における重要なテーマです。現場では Excel で試行錯誤しながら最適化しているケースが多いものの、制約が増えると人手では限界が見えてきます。本記事では OR-Tools(CP-SAT)を使って、まずは Excel ベースの計算を置き換え、そこから積載率をさらに高めるまでの試行錯誤を整理します。 OR-Toolsとは組み合わせ最適化のための高速で移植可能なソフトウェアです。https://developers.google.com/optimization?hl=ja なぜ「E...
9ヶ月前

Step Functionsの「実行経過時間」をDatadogで可視化する
Geekplus Tech Blogのフィード
はじめにGeek+の鈴木です。AWS Step Functions(以下、SFN)を運用していると、「実行開始からどれくらい経過しているか」をリアルタイムに監視したくなる場面があります。ただし、SFNが標準で提供する実行時間の情報は、基本的に 実行が完了してから確定する“結果の所要時間” です。そのため、実行中のSFNに対して「開始から何秒経過したか」を標準メトリクスだけで取得することはできません。こうした事情から、ある実行で想定外のリトライが続き実行時間が長時間になっていても完了するまで気づきにくく、検知が遅れてユーザー影響が大きくなる場合があります。そこでこの記事では...
9ヶ月前