10X Product Blog

フィード

記事のアイキャッチ画像
Octo STSで実現する"いい塩梅"のGitHub App Token運用
10X Product Blog
10X Product Blog読者の皆さん、こんにちはこんばんは、セキュリティチームのyagihashです。 この記事は、10X 新春ブログリレー 2026の1月31日の記事です。 本日は掲題の通り、10Xで導入したOcto STSというGitHub App Tokenの管理のための仕組みについて、背景にあった課題や使用感などを交えて紹介します。 9月から寝かしていた記事を締め切り駆動で書き切ってしまおうと思い立ち、まだ白紙の状態だったので締め切りは先の方がいいな…と思っていたらトリを務めることになってしまいました。緊張して声がうまく出なくてどうしようと思いましたが、ブログなので関係ありませ…
1ヶ月前
記事のアイキャッチ画像
セキュリティチームの輪読会についてご紹介
10X Product Blog
こんにちは、こんばんは、おやすみなさい。id:sota1235です。 この記事は10X 新春ブログリレー 2026の29日目の記事です。 新春というにはもう2月が目前に迫っている気もしますが細かいことは気にせず、今回は私が所属するセキュリティチームの取り組みである輪読会について緩く紹介しようと思います。 セキュリティチーム輪読会とは なぜ輪読会をやるのか きっかけ 情報収集の時間軸 どうやってやってるのか 輪読会のネタ出し 細く長く無理なく、がテーマ ガンガン脱線してもいい輪読会 どれくらい続いてるのか 読んだコンテンツをいくつか紹介 GitHub Organizationの安全な運用とモニタ…
1ヶ月前
記事のアイキャッチ画像
SRE×セキュリティ合同『技術改善キャンプ』で、Terraformレビューの一部をAIに任せられないか考えた話
10X Product Blog
10X SREの栗原です。 この記事は10X 新春ブログリレー 2026の1月28日分の記事です。 株式会社10Xでは、SREチームとセキュリティチームが合同で「技術改善キャンプ」を定期的に開催しています。 事業の優先度や日々の対応に押されがちな…でも大事なタスクへ、まとまった時間で取り組むためのイベントです。 本記事では、その取り組みの一例として、私が第6回(2026/1/26)で検討した「Terraformを管理するリポジトリのレビュー負荷をAIで減らせないか?」というテーマを紹介します。 なお、今回キャンプ内で実装(PoC作成)まで到達したわけではありません。検討と設計(Design D…
1ヶ月前
記事のアイキャッチ画像
イベント駆動な非同期処理を支える運用について紹介 (CQRS+ES conf 2026の補足)
10X Product Blog
この記事は、10X 新春ブログリレー 2026の記事です。 鈴木です。2026年1月に開催されたCQRS+ES Conference 2026にて「ネットスーパー事業におけるCQRS+ES的アプローチの取り組み紹介」というタイトルで登壇しました。 cqrs-es-con.jp CQRS+ES conf 2026の当日は Stailerにある注文を中心とした業務影響がある課題の共有 共有した課題がCQRSとイベントソーシングにある要素でどう解決できるのか この2点にフォーカスして話をさせていただきました。 当日使った資料はこちらです。 speakerdeck.com また、1月中にイベントで話し…
1ヶ月前
記事のアイキャッチ画像
10Xが求めるQAエンジニア像と10Xで得られる体験〜「なぜJSTQBの資格保有が必須ではなく推奨なの?」の回答〜
10X Product Blog
はじめに 品質管理チームのEMのブロッコリーです。 この記事は10X 新春ブログリレー 2026の1月25日分の記事です。 現在、品質管理チームではQA(Quality Assurance, 品質保証)エンジニアの募集をしています。 QAエンジニア / 株式会社10X 本記事では、今回の採用募集の背景と、応募資格に対する私たちの考えについて説明します。 目次 はじめに 目次 採用募集の背景 どんな人を求めているのか 応募資格(必須) 応募資格(歓迎) 求める人物像 「JSTQB Foundation Level の資格保有」を推奨にした理由 "応募資格(必須)"に入れなかった理由1. 知識の「…
1ヶ月前
記事のアイキャッチ画像
ソフトウェアエンジニアとして今 10X に入社する理由
10X Product Blog
この記事は、10X 新春ブログリレー 2026 の 1月24日の記事です。 2026年1月 にソフトウェアエンジニアとして入社した @omuomugin です。 入社してまだ1ヶ月も経っていませんが、早くも毎日が新しい発見と刺激に満ちています。 この記事では、私が 10X に入社を決めた理由と入社後に感じていることについて入社したての目線で書きたいと思います。 また、10X では絶賛ソフトウェアエンジニアの採用を強化しており、この記事を通して少しでも魅力が伝わればと思っています (カジュアル面談お待ちしています)。 open.talentio.com 入社を決めた理由 10X では、「小売業の…
1ヶ月前
記事のアイキャッチ画像
複雑なKubernetes Manifestに立ち向かうためのHelm移行と運用の工夫
10X Product Blog
この記事は10X 新春ブログリレー 2026の1月23日分の記事になります。 SREチームのid:horimislimeです。今回はチームでこれまでに取り組んできたことの1つとして、弊社Stailerの機能提供に使っているKubernetesのmanifest改善について紹介します。
1ヶ月前
記事のアイキャッチ画像
チーム境界をメンテナンスし続ける営み
10X Product Blog
この記事は10X 新春ブログリレー 2026の1月22日分の記事です。 ドメインベースの開発体制から3年 10Xの開発チームがドメインベースの開発体制へ移行してから、約3年が経過しました。 product.10x.co.jp 改めて当時と比較してみると、認知負荷の増大やオーナーシップの欠如といった課題は大きく改善したと感じています。もちろん新たな課題や難しさもありますが、ドメインベースへの移行自体は、総じて進めてよかったなと言い切れる試みでした。 この記事では、そんなドメインベースの体制の「チームの境界」という点にフォーカスして体制移行時にどのように初期的な境界を決めたのか、そしてこの3年間で…
1ヶ月前
記事のアイキャッチ画像
Cloud Pub/Sub の Ordering Key によるレースコンディションの解消(Firestore -> Elasticsearchのデータ同期)
10X Product Blog
この記事は、10X 新春ブログリレー 2026 の1月21日の記事です。 はじめに CXチームでソフトウェアエンジニアとして働いている@kotaroooo0です。 本記事では、FirestoreからElasticsearchへのリアルタイムデータ同期において発生したレースコンディションの問題と、それをCloud Pub/Sub(以下、Pub/Sub)のOrdering Keyを活用して解消した事例について紹介します。 システムの前提 10Xが提供する「Stailerネットスーパー」では、商品の検索や推薦にElasticsearchを利用しています。 一方で、マスターデータとして汎用的に使用して…
1ヶ月前
記事のアイキャッチ画像
ドメインイベントのデータ上の扱いについて紹介 (CQRS+ES conf 2026の補足)
10X Product Blog
この記事は、10X 新春ブログリレー 2026の記事です。 鈴木です。2026年1月に開催されたCQRS+ES Conference 2026にて「ネットスーパー事業におけるCQRS+ES的アプローチの取り組み紹介」というタイトルで登壇しました。 cqrs-es-con.jp CQRS+ES conf 2026の当日は Stailerにある注文を中心とした業務影響がある課題の共有 共有した課題がCQRSとイベントソーシングにある要素でどう解決できるのか この2点にフォーカスして話をさせていただきました。 当日使った資料はこちらです。 speakerdeck.com この記事では当日話きれなかっ…
1ヶ月前
記事のアイキャッチ画像
"攻めの開発"を支える安全安心なリリース
10X Product Blog
この記事は、10X 新春ブログリレー 2026の記事です。前日は、jojoさんによる「バージョンアップ手作業のつらみから解放された4つの自動化施策」でした。自動化って尊い! もう1月中旬!早いですね。 id:hisaichi5518 です。 2025年は、Stailer ネットスーパーの店内業務・配達用アプリのリアーキテクチャに伴う作り直しを主に進めていました。特に店舗で注文された商品を集めるときに利用するピッキングリストというStailer ネットスーパーを利用する小売企業のほとんどが利用する部分の作り直しを行いました。 この作り直しを"攻めた開発"として、安全安心なリリースとの両立を強く意…
2ヶ月前
記事のアイキャッチ画像
バージョンアップ手作業のつらみから解放された4つの自動化施策
10X Product Blog
十数パートナーにまたがるdbt共通パッケージのバージョンアップ運用を、Renovate・Claude Code Review・差分検証・通知で自動化。手作業とレビュー負荷をほぼゼロにした4施策を紹介。
2ヶ月前
記事のアイキャッチ画像
conftestによる自動レビュー
10X Product Blog
conftest は、Open Policy Agent (OPA) の Rego 言語を使って、構造化データ(YAML、JSON、Terraform、Dockerfile など)に対するポリシーテストを実行するCLIツールです。 よくあるユースケースとして、Kubernetes マニフェストや Terraform の設定ファイルに対して「コンテナは root で実行してはいけない」「すべてのリソースにタグが必要」といったルールの適用です。これらのルールを組織ポリシーとして定義して、それに適合しているかをconftestで検査できます。conftestをCIに組み込めば、PRに含まれた変更が問…
2ヶ月前
記事のアイキャッチ画像
OpenSSL x509 コマンドはPEMのフォーマットの検証まで行っていない
10X Product Blog
10X SREの栗原です。 この記事は10X 新春ブログリレー 2026の1月7日分の記事です。 OpenSSLのコマンドではエラーにならなくても、Google Cloud側の証明書アップロードで弾かれることがあるため、PEMを厳密に検証するステップを追加して再発を防いだ、という話です。
2ヶ月前
記事のアイキャッチ画像
フルスタックDartからRustバックエンドへ
10X Product Blog
この記事は10X 新春ブログリレー 2026の1月5日分の記事です。 弊社が提供するネットスーパーのサービスは、モバイルアプリとWebはFlutterアプリ、バックエンドはDartのgRPCサーバーで実装されています。isomorphicではないですが、言語統一がされたフルスタック的な状態と言えると思います。 バックエンドでのDartはマイナーであり、それに伴って様々なデメリットもありました。それらを乗り越えたり飲み込んだりしながら、5年ほどサービスを運用してきましたが、これから先は方針を転換することに決めました。 この記事では、我々が何故フルスタックDartから方針転換することにしたのかと、…
2ヶ月前
記事のアイキャッチ画像
10X の CX (Cool Experience) チームで働きませんか
10X Product Blog
10X の CX (Cool Experience) チームの @metalunk です! この度、CX チームのバックエンドエンジニアの求人をはじめました。 バックエンドエンジニア(検索、推薦) / 株式会社10X このブログは当ポジションの魅力を紹介するための文章です。 その中で、CX チームがこれまで上げてきた成果、それらの成果を上げられた理由、いま抱えている問題、それを解決した先に目指していること、をお伝えできたらと思います。
3ヶ月前
記事のアイキャッチ画像
イベントを活用したアプリケーション実装 | お届けチーム取組紹介
10X Product Blog
これまでシリーズの記事で書いたように、お届けチームの扱っているシステムはイベントを扱って非同期処理をしています。 product.10x.co.jp 非同期処理でイベントを扱うということは、イベントをモデルとして扱うのとセットです。 イベントは書き込み系で作成しか発生しないモデルかつ、参照系でイベントそのものをクエリしないものとしています。 この記事では書き込み系・参照系でそれぞれイベントに関わる実装がどうなっているのか紹介します。
5ヶ月前
記事のアイキャッチ画像
「デフォルト値」の罠containerdのFD上限変更が教えてくれたk8sの教訓
10X Product Blog
10X SREの栗原です。 弊社ではGKEを利用しています。 GKEでは1.33からcontainerdが1.xから2.xにバージョンアップします。 Migrate nodes to containerd 2 | Google Kubernetes Engine (GKE) | Google Cloud Documentation それによる影響の調査をしていたとき面白い発見があったので皆様に共有します。
6ヶ月前
記事のアイキャッチ画像
セキュリティチームの専門性を高める業務委託との協働
10X Product Blog
みなさんこんにちは、セキュリティチームの@sota1235です。 久々の会社ブログ投稿な気がしますが、今回は今までの記事とテイストを変えてセキュリティチームの成果にフォーカスしたいと思います。 背景から丁寧に書いていこうと思っているので前提パートが長いのですが、タイトルにある業務委託の方とどう協業するかという部分を真に理解してもらう上では大事な前提だと私は思ってるので、できればお付き合いください。 (でも忙しい人は読みたい部分だけ読むでもいいですよ、今ならLLMに要約させてもいいかもしれません) チームの成果とは たとえば 質と早さを上げるには 10Xのセキュリティチームの成果を最大化する チ…
8ヶ月前
記事のアイキャッチ画像
10X SRE 現状報告 2025
10X Product Blog
お久しぶりです。SRE の @babarot です。2022年4月に書いた 10X に SRE Team ができるまでとこれから 以来、3年ぶり2度目の文章です。10X に SRE チームができてから3年以上が経ち、その間の活動や成果などについて沈黙しまくっていたのですが、振り返ると実に多くのことを達成してきました。最近は会社的にも嬉しいニュースがあり、これから更にやっていくぞ 🔥というフェーズに来ております。この3年間、黙々と頑張りすぎてアウトプットがなかなかできていなかったので、このブログ記事ではこれまでの SRE の取り組みを軽く紹介しつつ、今後はそれぞれのテーマに深ぼったネタを定期的に…
8ヶ月前
記事のアイキャッチ画像
イベント駆動設計を支える非同期処理について | お届けチーム取組紹介
10X Product Blog
前回記事で書いたように、お届けチームの扱うシステム領域ではさまざまな非同期処理が行われています。 product.10x.co.jp この記事では 非同期処理の採用するモチベーション 非同期処理の実現方法 を書いています。 非同期処理の採用するモチベーション 「領域間をまたぐ」 「同期処理をミニマルにしたい」 実現するためのoverview publish side subscriber side メッセージによる非同期処理を本番導入するまでに 1. gRPCのリクエストハンドラ内でプログラム上、同期的にイベントハンドラを実行する 2. gRPCのリクエストハンドラ内でプログラム上、非同期でイ…
9ヶ月前
記事のアイキャッチ画像
React Routerで始める新しい管理画面づくり
10X Product Blog
ソフトウェアエンジニアの金子(@naoty_k)です。 10Xでは、これまでネットスーパー事業者向けの管理画面(以下、管理画面v1)をNuxt.jsを使って開発・運用をおこなってきましたが、現在はReact Routerを用いた新しいアプリケーション(以下、管理画面v2)への移行を進めています。本記事では、なぜ移行することになったのか、どのように進めているのか、そして技術的な工夫とこれからの展望についてご紹介します。 移行の背景 これまで開発してきた管理画面v1はNuxt.jsをベースとしており、当時は迅速な開発に大きく貢献してくれていました。 しかし、数年の運用を経て将来的な拡張性やメンテナ…
10ヶ月前
記事のアイキャッチ画像
検索の並び順改善を加速する道のり
10X Product Blog
10X のソフトウェアエンジニア @metalunk です。 このブログでは、10X が提供する小売チェーン向け EC プラットフォーム Stailer での検索改善について説明します。今回は特に “並び順” にフォーカスした内容です。 対象読者は主に検索エンジニアですが、「並び順改善の下準備が大事」の章以外は専門知識は出てこないため、検索以外を専門とするソフトウェアエンジニアのみなさんにも読んでいただけるはずです。 また、Stailer を使っている小売事業者の方も、使っていない小売事業者の方にも、ネットスーパーにおける検索機能はどう改善されているのか、なにが難しいのかをこの記事を通じて知っ…
1年前
記事のアイキャッチ画像
LLMを活用した商品検索タグ自動生成とRecall改善の取り組み(BigQuery × Gemini)
10X Product Blog
はじめに 課題:情報不足による検索ヒット率の低さ 施策:LLMによる検索タグの自動生成と活用 なぜタグ生成か? 設計 JANコード単位での生成と管理 タグデータの更新について タグ生成の品質とリスク プロジェクトの進め方 1. PoC:タグ自動生成の実現可能性と品質検証 2. インデキシングの実装 3. 商品検索ロジックの評価とプロンプトチューニング 4. 検索ロジックの修正と本番リリース 5. 本番リリース後の効果測定 おわりに はじめに こんにちは、10Xで検索推薦の機能・基盤の開発運用を担当している安達(id:kotaroooo0)です。 10Xでは小売チェーン向けECプラットフォームS…
1年前
記事のアイキャッチ画像
技術的チャレンジへつながるピックパックのモジュール化 | お届けチーム取組紹介
10X Product Blog
はじめに 10X ソフトウェアエンジニアの鈴木です。 これからしばらく「お届けチーム取組紹介」と題して「イベント駆動アーキテクチャ」につながることを複数の記事に渡ってお伝えしていきます。 product.10x.co.jp お届けチームでは、 「ピックパック」というお客様から承った内容を元に、商品を売り場や在庫置き場からとってきて(ピック)、箱詰め(パック)する業務領域(以下ピックパック)のシステムを疎結合化することで、技術的な課題を解決することを目指してきました。 社内では「モジュール化」という言葉を使用して取り組んできましたが、これは「ピックパック領域のコードをお客様へ対面するためのコード…
1年前
記事のアイキャッチ画像
アプリを起動せずにアプリを開発して品質と生産性を上げる
10X Product Blog
先日、Flutter Tokyo #6 で同タイトルの発表をさせてもらいました。10分ほどの発表でしたが、割と良い反応をいただけたので、少し内容を補足してブログとしても公開します。 発表時のスライドは以下です。 前提 一般的に、モバイルアプリは自動テストしづらい箇所が多いと言われます。たしかに、画面から素朴に実装していくと、自動テストでは確認が難しくなりやすいです。そうなってしまうと、アプリを起動して手動で動作確認するしかなくなってしまいます。 一方で、設計やツールを適切に使えば、モバイルアプリであっても広範囲が自動テストで検証可能になります。手動での動作確認を完全になくすことはできませんが、…
1年前
記事のアイキャッチ画像
お届けチームがイベント駆動アーキテクチャを採用した理由
10X Product Blog
ネットスーパーで注文された商品が効率よく確実にお客さまのもとに届くためには、店舗でのピッキングやパッキング、配送といった業務が必要となります。この業務を支えるStailer上のアプリケーション開発を担っているのが、お届けチームです。 10x.co.jp お届けチームは昨年「イベント駆動アーキテクチャ」を導入する取り組みを行いました。イベント駆動アーキテクチャをどんな狙いで導入し、どんな成果が得られたのか。お届けチームの開発メンバーである鈴木さんに聞いてみました。 イベント駆動アーキテクチャ: イベント駆動アーキテクチャは、システム内で発生するイベントをトリガーにして処理を実行する設計パターン。…
1年前
記事のアイキャッチ画像
Devin AIの商品データパイプラインへの適用
10X Product Blog
はじめに 10X ソフトウェアエンジニアの野々村です。元々アプリケーション開発者としてサーバーサイドを中心に仕事をしてきましたが、最近は協業する小売事業者様から受領したデータをネットスーパーに掲載できる状態へ加工する商品データパイプラインの開発に主に携わっています。 10x.co.jp 10XでもDevin AIを利用し始めて1ヶ月程度が経ったので、適用事例と展望について紹介します。 前提 Devin AI とは Cognition AI社によって提供されるAIエージェントSaaSです。2024年12月に一般利用が開始され、各所で導入事例が紹介されています。 devin.ai Devin AI…
1年前
記事のアイキャッチ画像
アーキテクチャの変更をどうやって完遂するか
10X Product Blog
既存のアーキテクチャの問題が見えると、アーキテクチャを変更して解決すると思います。 それ自体は素晴らしいことなのですが、変更が全体に浸透し切らず古いアーキテクチャと新しいアーキテクチャが混在したままになってしまうと、状況はさらに悪化します。そのため、アーキテクチャを変更する時には、「どうやって完遂するか」もセットで考えるべきでしょう。 10Xの現状は? 混在しています。 自然と移行を完遂できる日は来なかったので、完遂する努力をしています。 完遂するための取り組み アーキテクチャの限界を漸進的に押し上げる取り組み で紹介した通り、10Xでは 以下の4ステップのサイクルを回してアーキテクチャを改善…
1年前
記事のアイキャッチ画像
しなやかなデータ連携に向けたdatacontract-cliへの貢献について紹介します
10X Product Blog
データ基盤チームに所属しているデータエンジニアの吉田(id:syou6162)です。10X社内のデータマネジメントの仕事をしています。 最近、チーム内外でData Contractを取り扱う機会が増えています。本エントリでは、Data Contractの実践にあたり利用しているdatacontract-cliというOSSをなぜ選定したのか、業務で利用するにあたり不足していた機能にpull requestを送って貢献した話を紹介します。 Data Contractの必要性: しなやかなデータ連携を実現したい datacontract-cliを通じて、しなやかなデータ連携を実現したい dataco…
1年前