UPSIDER Tech Blog

社内用 MCP サーバーを Cloud Run でリモート公開した話

はじめに こんにちは。オンラインレンディングチームでエンジニアをしている堀航大です。 チームの DB 調査やログ検索を AI に任せられるように、MCP サーバーを作って Cloud Run にホストし、リモート MCP サーバーとしてチームに公開しました。 目指したの…

「とりあえず動いた」react-pdf の設定を、ちゃんと理解できるまで調べました

はじめに 支払い.com フロントエンドエンジニアの Torii です。 react-pdf を Next.js に入れてみたところ、思ったより設定が多くて手こずりました。worker ファイルをどこに置くか、webpack をどう設定するか、あちこちに手を入れる必要があります。正直な…

ETCカード開発の舞台裏 ― QA一人が背負う品質から、チームでつくる品質へ

QA

1. はじめに こんにちは。UPSIDERでQAエンジニアをしているteraです。 このたび、多くのお客様からご要望をいただいていたETCカードを、ついにリリースできました。たくさんの方に使っていただけたら嬉しいです。 ——さて、ここからはその開発の裏側の話です…

トップダウンをやめ、仕組みで自律を支える——制約下でスクラムチームを機能させた実践

はじめに こんにちは。UPSIDER でカードチームに所属している Nagai Takumi です。 私たちのチームは、既存サービスの運用と複数の新規開発を並行しながら、限られた人数で ETC カード機能を開発していました。ちょうどこのころ、チームリーダーが育休に入り…

レンダリング設定によって変わるTanStack RouterのbeforeLoadのふるまい

はじめに UPSIDERのエンジニアの 太田 です。 新規プロダクト開発において、初めて実務でTanStack RouterとTanStack Startを使用する機会がありました。 本記事ではこれらのフレームワークを初めて使った際に戸惑った、TanStack Startのレンダリング方法と、…

決済を止めるな!稼働中の決済基盤DBをゼロダウンタイムで暗号化対応へ

はじめに UPSIDER の Processor チームで、法人カードの決済基盤開発に携わっている Nagato です。 私たちは 2025 年に PCI DSS 4.0 対応の一環として、カード情報を保存するデータベースを暗号化に対応した新しい構成へ移行しました。カード決済は 24 時間 …

型注釈で損しない! 実例3パターンで学ぶsatisfiesの特性と活用

はじめに こんにちは!PRESIDENT CARD事業部、エンジニアの Nuu です。 今回は改めてTypeScript の satisfies について掘り下げてみます。 satisfies、使っていますか? 「存在は知ってるけど、使いどころがピンとこない」「普通に型注釈書けばよくない?」—…

法人カード基盤の外部提供という挑戦 決済基盤を「他社にまるごと使ってもらう」QAの話

QA

こんにちは!UPSIDER QAマネージャーのNaokiです!みなさんいかがお過ごしでしょうか? QAの発信ってテスト技法やツールの話になりがちなんですが、今回はもう少し現場の空気というか、「こんなことで悩んで、こんなことに面白さを感じてました」という温度…

法人カード基盤の外部提供にも耐えうる不正利用対策基盤の構築

1. 導入 こんにちは、UPSIDER 不正利用対策(Anti-Fraud)チームのRyutaroです。 Anti-Fraudチームは、その名の通り不正利用対策を専門に担うチームですが、実際の守備範囲は「不正検知」だけに留まりません。3Dセキュア認証によるカード利用者の本人確認、…

AIが実装しレビューする時代に、プロダクトエンジニアは何をするのか

はじめに こんにちは、お客様向け管理画面チーム(以下、Irisチーム)TLのakariです。法人向けカード基盤提供事業において、BFF兼オーケストレーターに位置づけられるサービス(社内通称Iris)の開発をしています。Irisチームは、社内の基盤サービスを駆使し…

仮説駆動で取り組む負荷試験計画

こんにちは。決済/カード発行基盤チームのKinshoです。法人カード基盤の外部提供の挑戦についての技術ブログ バトンリレー5日目の記事です。 本記事では、法人カード基盤の外部提供に向けた負荷試験において、実施前の計画フェーズの設計思想と実践を紹介し…

複数の銀行データソースを1つに束ねる ― マルチブランド法人カードを支える銀行連携基盤

こんにちは!銀行連携基盤チームのPO/EMをしている terryです。 法人カード基盤の外部提供プロジェクトの tech blog リレー、銀行連携編です。 前回は、mitomi-san の Error Reportingに関する記事でした。コストとのトレードオフを考慮した異常検知機構の選…

GCP Error Reportingで「最低限の異常検知」を低コストに実現する

はじめに こんにちは。法人審査基盤の開発をしているMitomiです。 以前の記事で紹介があったように、UPSIDERでは法人カード基盤のマイクロサービス化を行いました。 tech.up-sider.com 私たちのサービスは「基盤」という立ち位置にある以上、ここで障害が発…

1年動き続けるワークフローを壊さずにデプロイする ― Temporal Worker Versioning 導入記

はじめに こんにちは。請求基盤チームでバックエンドエンジニアをしている西脇です。 私たちは請求・決済まわりのバックエンドで Temporal を使い、長期間にわたって動き続けるワークフローを運用しています。請求のように「翌月の支払い期日まで待つ」とい…

Spanner Change Streams を自前で読む ― 決済データを欠損なく取り込む

はじめに こんにちは、solaris チームでバックエンドを開発している大迫(m11o)です。 私たちが開発している solaris は、UPSIDER の法人カード基盤の一部を担うサービスです。UPSIDER では、自社で磨いてきた法人カード基盤を「パートナー企業が自社ブランド…