エンジニアの佐野です。最近はバンドルカードのデータ探索を行うための社内プロダクト Synapse (と名付けた) の開発をしています。雨後の筍のように AI の名を冠したソフトウェアやサービスが出るようになって久しいのですが、カンムでもとりわけ生成 LLM を…
バックエンドチームの近松です。 カンムでは、Go Conference 2025 開催前に Capture The Flag (CTF) を公開していました。皆さん、お楽しみいただけたでしょうか? 本記事では、CTF の模範解答および作問にまつわる裏話を紹介します。 作問担当者 想定ターゲ…
バックエンドチームの近松です。 株式会社カンムは、Go Conference 2025 に Silver スポンサーとして参加します! gocon.jp カンムは例年、プログラミングクイズや Capture The Flag(CTF) を Go Conference 前に公開しています。直近では① 脆弱性を利用し…
こんにちは、サクっと資金調達 開発チーム ソフトウェアエンジニアの hata です。 カンムは、2025年9月に開催される Go Conference 2025 にシルバースポンサーとして参加します。 Go Conference には例年関わってきましたが、今年も引き続き、スポンサーとい…
プラットフォームチームの菅原です。 GolangのPostgreSQLドライバ jackc/pgxについて最近まで知らなかった機能があったので紹介します。 driver.ErrBadConnでのリトライ データベースの再起動などで切断されたコネクションをコネクションプールから引き当て…
Go1.24 がついに公開されましたね。その中でとても興味深い改善内容がありました。 1/14 Go's new map implementation in 1.24 is powered by Swiss Tables, a cutting-edge hash table design that significantly boosts performance. Let's break down why…
プラットフォームチームの菅原です。 Goでデータベースを使う場合には、以下のメソッドでコネクションプーリングまわりの設定を調整することが多いと思います。 SetConnMaxIdleTime() SetConnMaxLifetime() SetMaxIdleConns() SetMaxOpenConns() MaxOpenConn…
プラットフォームチームの菅原です。 カンムのサービスで使われている各種アプリケーション(Goアプリ・管理アプリ・Redash等)では、データベースに接続する場合に一般的なパスワード認証を使っていることが多いです。 しかし、パスワード認証はパスワード…
プラットフォームチームの菅原です。 カンムではサービスのモニタリングにDatadogを利用しており、その管理はプラットフォームチームが担っています。 DatadogへのログインはMicrosoft Entra ID(旧AzureAD)を使ったシングルサインオンで行うため、Datadog…
こんにちは、エンジニアのpongzuです。 今日は、カンムが提供するプロダクト「Pool」の残高管理設計について書きます。 本記事では、まずPoolがどのような仕組みで動いているのか、投資やウォレットといったサービス仕様を簡単にご説明します。その後、それ…
はじめに ソフトウェアエンジニアの hata です。先日、カンムが提供するプロダクトの一つ、 Pool を取り巻くFintech法律勉強会を開きました。 pool-card.jp 金融は最も規制が厳格で複雑な分野です。金融サービスは、複数の法律から最適な組み合わせを選ぶこ…
こんにちは、リモートワークしてますか?私は週7家にいます。エンジニアの岡田です。 この記事はカンム Advent Calendar 2024の24日目です。1 23日目は teshiken さんの「成果を出しつづけるための行動として意識していること」でした。 adventar.org さて、…
カンム 2024年アドベントカレンダーの22日目です。 adventar.org 昨日はAwesomeさんの「銀行員が転職した話」でした。 Awesomeさんは今年カンムへ転職してきてくれたのですが、新規事業である「サクっと資金調達」の立ち上げに関わっていただいています。カ…
エンジニアの佐野です。文字列および数値を BCD と相互変換するライブラリを Rust で書きました。 github.com crates.io にも公開しました https://crates.io/crates/bcd-convert BCD BCD は Binary-coded decimal の略で日本語では二進化十進表現などとも呼…
はじめまして。プラットフォームチームの高山です。 この記事は カンム Advent Calendar 2024 の18日目の記事です。 adventar.org 最近読んだ本がなかなか興味深かったので、ちょっとご紹介できればと思います。 技術者・研究者のための 技術者倫理のキホン…
エンジニアの佐野です。菅原が Redash について言及したのでそれに乗っかって自分も簡単な記事を書きます。 tech.kanmu.co.jp まず Redash の基本的な使い方としては次の通りです。 https://your-redash-domain/queries/new にアクセスする。 データソース *…
ソフトウェアエンジニアの新田です。 これは カンム Advent Calendar 2024 の8日目の記事です。昨日はフロントエンドチームのEMの佐藤さんの記事 チームが成長するたびに変わっていった朝会の話 - カンムテックブログ でした。 私は現在プラットフォームチー…
こんにちは、カンムのフロントエンドチームでエンジニアリングマネージャーをしている佐藤です。 これは カンム Advent Calendar 2024 の7日目の記事です。昨日は always_allokay によるお世話になっているライブラリをちょっと見てみるシリーズ、shopspring…
こんにちは. Poolでエンジニアをしている @always_allokay です。 こちらはカンム Advent Calendar 2024 の6日目の記事です。 昨日はprinさんによるボボステの記事でした。 タイトルの通り、お世話になっているライブラリをちょっと見てみるシリーズです。(…
SREの菅原です。 この記事はカンム Advent Calendar 2024の4日目の記事です。 最近のRedashの開発状況について、知っている範囲ですこし書いてみたいと思います。 redash.io Redashといえば様々なデータソースをSQLを使って可視化できるBIツールで、カンムで…
はじめに こんにちは、エンジニアの王です。 フロントエンドの開発者として、私はいくつかのプロジェクトでRedux Toolkitを使用してきました。Redux Toolkitは確かに強力な状態管理ツールですが、プロジェクトが進むにつれて、その構造的な複雑さを次第に強…
こんにちは、nakaji_dayoと申します。カンムでエンジニアリングマネージャーをしています。 2024年9月に「Builders Day」という社内ものづくりイベントを初開催しました。本稿ではイベント企画の背景や開催時の様子の紹介をします。 Builders Dayとは はじめ…
エンジニアの佐野です。カンムでは SMS を多用しています。例えば以下のようなポイントで使っています。 ユーザ新規登録時の認証コード送信 ログイン時の認証コード送信 3Dセキュア 認証時 後払い機能利用時 ユーザにメッセージを送る時 ...etc ここでもし S…
SREの菅原です。 カンムではAWSやGCP、Datadogなど様々をIaaS・SaaSをterraformで管理しているのですが、以前は「GitHub Actionsでplan」「管理者や開発者が手元でapply」というフローになっており、terraform applyの実行が管理者や一部の権限を持った開発…
エンジニアの佐野です。カンムはバックエンドに PostgreSQL を置きつつサーバを Go で書いています。DB のトランザクションの取り回しは概ね次の様なイディオムになっているのですが、先日 Commit() が漏れている箇所を見つけまして...。結果としてそれにつ…
SREの菅原です。 カンムのサービスのバッチ処理は基本的にEventBridge Scheduler+ECSで動いており、バッチのスケジュールはterraformで以下のように定義されています。 module "kanmu_batch" { # バッチまわりはモジュール化 source = "../modules/batch" fo…
SREの菅原です。 カンムのサービスはWebサービス・バッチ処理なども含めて基本的にはECS上で動かしているのですが、簡単なバッチ処理はLambda+EventBridge Schedulerの組み合わせで動かすこともあります。 LambdaはECSに比べてDockerイメージのビルドやECRの…
エンジニアの佐野です。バンドルカードではポチっとチャージという後払いの機能を利用する際に年齢確認が必須となりました。通信キャリアや銀行との連携等によって年齢確認ができるようになっています*1。今回はこの機能の開発を題材に普段開発でどのような…
こんにちは、カンムのエンジニアリングマネージャー佐藤です。 先日、React Native Japanと一緒に開催した「React Native Meetup #17」のイベントレポートをお届けします!前回に引き続き、今回もたくさんの方にご参加いただき、賑やかな会になりました。 皆…
バンドルカードのバックエンドエンジニアをしているshibaです。生粋のiPhoneユーザです。 昨年の10月頃にバンドルカードは Google Pay に対応しました。少し遅くなってしまいましたが、 Google Pay 対応について簡単に紹介したいと思います。なお、 Google P…