Atlantisのマルチクラウドへの対応について

SREの菅原です。 カンムではAWSやGCP、Datadogなど様々をIaaS・SaaSをterraformで管理しているのですが、以前は「GitHub Actionsでplan」「管理者や開発者が手元でapply」というフローになっており、terraform applyの実行が管理者や一部の権限を持った開発…

Go の静的解析で DB へのコミット漏れを検出する

エンジニアの佐野です。カンムはバックエンドに PostgreSQL を置きつつサーバを Go で書いています。DB のトランザクションの取り回しは概ね次の様なイディオムになっているのですが、先日 Commit() が漏れている箇所を見つけまして...。結果としてそれにつ…

Terraform Providerを使ったcron式のチェック

SREの菅原です。 カンムのサービスのバッチ処理は基本的にEventBridge Scheduler+ECSで動いており、バッチのスケジュールはterraformで以下のように定義されています。 module "kanmu_batch" { # バッチまわりはモジュール化 source = "../modules/batch" fo…

terrraformを使ったGoのLambdaの管理

SREの菅原です。 カンムのサービスはWebサービス・バッチ処理なども含めて基本的にはECS上で動かしているのですが、簡単なバッチ処理はLambda+EventBridge Schedulerの組み合わせで動かすこともあります。 LambdaはECSに比べてDockerイメージのビルドやECRの…

ウォーターフォールを見直して自チームに最適化した開発フローを構築する

エンジニアの佐野です。バンドルカードではポチっとチャージという後払いの機能を利用する際に年齢確認が必須となりました。通信キャリアや銀行との連携等によって年齢確認ができるようになっています*1。今回はこの機能の開発を題材に普段開発でどのような…

「React Native Meetup #17」を開催しました

こんにちは、カンムのエンジニアリングマネージャー佐藤です。 先日、React Native Japanと一緒に開催した「React Native Meetup #17」のイベントレポートをお届けします!前回に引き続き、今回もたくさんの方にご参加いただき、賑やかな会になりました。 皆…

バンドルカードが Google Pay™ に対応しました

バンドルカードのバックエンドエンジニアをしているshibaです。生粋のiPhoneユーザです。 昨年の10月頃にバンドルカードは Google Pay に対応しました。少し遅くなってしまいましたが、 Google Pay 対応について簡単に紹介したいと思います。なお、 Google P…

「React Native Meetup #16」を開催しました

こんにちは、カンムのエンジニアリングマネージャーの佐藤です。カンムでは5月30日(木)に、React Native Japanコミュニティと協賛してReact Native Meetup #16を開催しました。本記事では、その様子をレポートしました。 当日の様子 イベントは、弊社オフィ…

【Go Conference 2024】プロポーザルに通ったカンムのエンジニアが準備したこと、通った後にやったことʕ◔ϖ◔ʔ

ソフトウェアエンジニアの@sho-hataです。 2024年6月8日(土)開催のGo Conference 2024に、ソフトウェアエンジニアの私と@bisho-joの2人が登壇します。また、カンムはブロンズスポンサーとして協賛します。 gocon.jp カンムが提供している バンドルカード …

Poolのソフトウェアエンジニアを募集しています

ソフトウェアエンジニアのhataです。 Poolはソフトウェアエンジニアの募集を公開しました。 ソフトウェアエンジニア(フロントエンド)- Pool / 株式会社カンム 今回の記事では、Poolというサービスを開発する面白さや、直近抱えている課題について紹介しま…

カンムの機械学習インフラの今 2023 年版

こんにちは。ソフトウェアエンジニアの新田です。こちらは カンム Advent Calendar 2023、8日目の記事です。 昨日はデザイナー torimizuno さんによる バンドルカードの Google Pay デザイン でした。今年のバンドルカードの目玉リリースの1つであるスマホタ…

バンドルカードの Google Pay デザイン

デザイナーのtorimizunoです。 こちらはカンム Advent Calendar 2023、7日目の記事です。 先日の記事はhikkyさんによるSecure W2で証明書を発行してEntra ID CBAを設定する でした。 はじめに バンドルカードは2023年10月に Google Pay に対応しました。 お…

【デスクツアー】カンムメンバーの在宅環境

これは誰のデスクかな...? こんにちは。Pool開発チームのhataです。 自分は人のデスク環境を観るのが好きです。人のデスク環境は三者三様で、その人らしさや個性が滲み出ており観ていて楽しいんですね。なので、ガジェット系Youtuberがたまに投稿しているデ…

ドキュメントを書く時に考えていること

ソフトウェアエンジニアの summerwind です。最近は LLM が自分のふりをして代わりに仕事をしてくれるような仕組み作りを趣味にしています。 先日社内で「ドキュメントをうまく書く方法はありますか?」という質問をもらったのですが、普段ドキュメントを書…

カード決済のセキュリティ的な問題点とその対策、IC チップの決済とその仕組み

エンジニアの佐野です。カンムはカード決済のサービスを提供しています。カード決済にはいくつかの決済手段があり、マグストライプ、IC、IC非接触(俗に言うタッチ決済)、オンライン決済などの機能が提供可能です。iD のようなスマートデバイスにカード情報を…

次なる`pkg/errors`を探して

エンジニアの宮原です。 今回はGoでスタックトレースを取得するライブラリ選定についての記事です。 この記事は 【Gophers Talk】スポンサー4社による合同LT & カンファレンス感想戦で発表したものです。 発表スライドはこちらから確認できます。 この記事の…

Go Conference 2023 CTF: 標準ライブラリの利用ミスに関わる脆弱性

セキュリティエンジニアの宮口です。 Go Conference 2023にてCTFの問題を用意させていただきました。 問題はこちらになります。 github.com 本記事では出題の意図、想定解などを解説します。 解けた方も解けなかった方もぜひ読んでみてください! 1. 問題の…

無理なく始めるGoでのユニットテスト並行化

KanmuでPoolを開発しているhataです。最近、ロボット掃除機を買いました。ロボと猫がじゃれている景色はいいですね。 今回はGoのユニットテストの並行化についての記事です。 TL;DR Goのテストは、並行化することでテスト実行時間の短縮やテスト対象の脆弱性…

カンムは Go Conference 2023 にプラチナGoルドスポンサーとして協賛します

カンムは 2023年6月2日 (金) 開催の Go Conference 2023 にプラチナGoルドスポンサーとして協賛します。 gocon.jp カンムが提供している バンドルカード や Pool のバックエンドは主に Go で開発しており、このイベントを通して Go コミュニティの発展に寄与…

Gmail 管理者検疫に関するアラートをSlackへ通知させたい!

カンムでコーポレートエンジニアをやっているhikkyです。 今回セキュリティチームからの依頼で、GoogleWorkspace(以下GWS)の機能である 「高度なフィッシングと不正なソフトウェアへの対策」 という機能の一部を有効化しました。 しかしこの機能通知がメー…

Azure ADを利用したDjango adminのSAML認証

SREの菅原です。 カンムのサービスのバックエンドは基本的にGoで書かれているのですが、一部の内部向け管理画面はPythonのフレームワークDjangoで作成されています。 スタッフがDjango adminページにログインして各種オペレーションを行うのですが、adminペ…

「MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析」を開催しました

カンムの @fkubota です。 2023/1/26に株式会社Mobility Technologiesさま、コネヒト株式会社さまと合同で「MoT/コネヒト/Kanmu が語るプロダクト開発xデータ分析」というイベントを開催しました。ご参加いただいたみなさま、ありがとうございました! kanmu…

クエリログを使ったPostgreSQLの負荷テスト

SREの菅原です。 この記事はカンム Advent Calendar 2022の4日目の記事になります。 少し前にサービスで使っているPostgreSQLをRDSからAuroraに移行しました。 Auroraに移行するため色々と作業を行ったのですが、その中でAuroraの性能を測るために行った負…

開発のためにBoltでSlackボットを作った話

SREの菅原です。 この記事はカンム Advent Calendar 2022の2日目の記事になります。 細々としたことをさせるためのボットをSlackに常駐させるのはよく行われていることだと思いますが、カンムにも kanmukun と kabot という2台のボットが常駐しています。 …

「泥臭くも価値を届ける決済の仕組みと工夫 by 10X + CAMPFIRE + Kanmu」を開催しました

カンムの achiku です。 2022/11/30に株式会社10Xさま、株式会社CAMPFIREさまと合同で「泥臭くも価値を届ける決済の仕組みと工夫 by 10X + CAMPFIRE + Kanmu」というイベントを開催しました。ご参加いただいたみなさま、ありがとうございました! kanmu.conn…

「価値を最大化して素早くユーザーへ届けるための開発フロー〜Figma編〜 SmartHRxKanmu」を開催しました

こんにちは!カンムの小山内です。 2022/11/21に株式会社SmartHRさまと合同で「価値を最大化して素早くユーザーへ届けるための開発フロー〜Figma編〜 SmartHRxKanmu」というイベントを開催しました。なんと100名以上の方にお申し込みいただけたようです。ご…

クレジットカード決済システムで利用するデータセンターの選定

エンジニアの佐野です。今日はインフラの話です。主に物理インフラの話です。カンムがデータセンター(以下、DC)の選定や契約をした際の勘所について書きます。クラウドと DC の相互接続であったりネットワーク構成や機器のコンフィグレーションなどのテクニ…

「LayerXとKanmu FinTechスタートアップセキュリティ事情」を開催しました

バンドルカードのソフトウェアエンジニアをしている summerwind です。最近は社内で解体屋と呼ばれています。 2022/09/30に株式会社LayerXさまと合同で「LayerXとKanmu FinTechスタートアップセキュリティ事情」というイベントを開催しました。今回のイベン…

「Tech Meetup 〜Goで作る決済サービス〜」を開催しました

こんにちは、カンムでCOOやってます achiku です。 2022/08/04に、株式会社UPSIDERさま・株式会社BASEさまと合同で「Tech Meetup 〜Goで作る決済サービス〜」というイベントを開催いたしました。200名近くの方からお申込いただき、ありがとうございました! …

バンドルカードと Pool のカードが 3D セキュアに対応しました

バンドルカードの SRE をしている summerwind です。最近は A Philosophy of Software Design を読んでいます。 タイトルの通り、2022年6月21日からバンドルカードと Pool のカードが 3D セキュアに対応しました。バンドルカードではアプリですぐに発行可能…