inSmartBank

AI家計簿アプリ「ワンバンク」を開発・運営する株式会社スマートバンクの Tech Blog です。より幅広いテーマはnoteで発信中です https://note.com/smartbankinc

"お金を扱うエンジニアリング"がもたらす知的興奮と成長、 あるいはキャリア停滞の打破

こんにちは。株式会社スマートバンクでEngineering Managerをしている@ohbaryeです。

株式会社スマートバンクはエンジニアを積極採用しており、カジュアル面談や選考過程で私もたくさんの方にお会いしてきました。その中で最もよく聞かれる質問の1つが

株式会社スマートバンクの事業にエンジニアとして関わることのやりがいやおもしろさって何ですか?

というものです。その都度お答えしている内容を1つの記事にまとめ、より多くの方に知ってもらいたいと考え筆を取ってみました*1。文化や組織風土、優れたエンジニアの在籍など他にも語れる面白さは多くありますが、あくまで本記事では事業特性に由来する技術的な面白さに絞り、これらの魅力についてお伝えします。

結論: 株式会社スマートバンクだからこその魅力とおすすめしたい方々

最初に結論を書きますと、筆者は株式会社スマートバンクにおけるエンジニアリングの魅力を以下の3つに整理してお伝えしています。ここでは、それぞれの魅力がどのような方に刺さりそうかも併記してみました。

(1) ふつうのWebサービス開発だけでなく一味違うスパイスの効いた経験ができる

  • ふつうのWebサービス開発をそれなりに経験してきて停滞感がある」方へおすすめ
  • カード製造プロジェクトや決済ネットワーク連携など他では得がたく、知的好奇心を満たせる開発経験が積める
  • 正解がないような状況でデータや経験に基づいて意思決定をするという、不確実性への対応力を身につけられる

(2) サーバーサイド開発を軸足としつつ少しずれた領域の専門性を磨く機会がある

  • Webサービス開発を軸足としつつ少しずれた領域のスペシャリティも身につけたい」方へおすすめ
  • 人が少なく責任が細分化されていないからこそ新しい領域に触れられる

(3) Webサービス開発を高い水準で堅牢に行うスキルが得られる

  • Webサービス開発を突き詰めて高いレベルでやりたい」方へおすすめ
  • 1円のミスも起こさないようにするにはどのようなエンジニアリングをすればいいのか、という難しくも面白い問題解決ができる
  • ドメインを正しく理解して適切なデータモデリングを行う、異常検知ができる仕組みを整える等の当たり前のことを高い水準でやれる

上記3つのいずれかがご自身のやってみたいことに当てはまるのであれば、株式会社スマートバンクのエンジニアリングチームへの参加を自信を持っておすすめできます。ぜひ本記事を読んでみてください。また、エンジニアリング組織の概要についてさらに知りたい方は下記ページも合わせてご参照ください。

smartbank.co.jp

前提: 株式会社スマートバンクの事業を知らない方へのご説明

事業に由来する技術的な面白さの詳細に立ち入るにあたり、その源泉となる弊社の事業・プロダクトについて説明します。ご存じの方はこちらの項を読み飛ばしていただいて構いません。


株式会社スマートバンクは「誰もが日々お金を使っているのに、ほとんどの人がそれを正しく把握できていない」という課題を解決するために、B/43(ビーヨンサン)というプロダクトを提供しているFintech企業です。

B/43は「家計簿アプリ」と「Visaプリペイドカード」がセットになった「家計簿プリカ」というサービスで、毎月の予算をカードにチャージして日々の支払いをすることで、自動で記録され支出が見える化されます。また、夫婦やカップル向けの「B/43ペアカード」、お子さま向けの「B/43ジュニアカード」など、さまざまなライフスタイルに合わせた展開を行っています。

プロダクトラインナップ

これだけ読むと「ふーん、家計簿…?」と、スケールが小さく技術的な面白みを見出しにくいのではないでしょうか。筆者も初見であればそう感じると思います。

ユーザーが求めるのは「お金について悩まなくてもよくなること

これまで支出管理を通じてお金を上手に「使う」サービスの提供をしてきており、その形が家計簿のようなものであったのは事実です。しかし、ユーザーが本当に求めているのは「家計簿を自動化すること」ではなくて「お金について悩まなくてもよくなること」だと我々は考えています。お金の悩みは多岐にわたりますが、当面はプロダクトを通じてユーザーがお金を「使う」「貯める」「増やす」ことができるようサポートしていきたいと思っています。

使う、貯める、増やす!

そのために家計を健全化して「使う (支出管理)」「貯める (貯金)」「増やす (資産運用)」という3種類の価値提供を繋げていくことがミッションです。「決済することで家計管理が自動化される → 家計管理に成功することで貯金がたまる → 貯金によって決済の限度額が高まる」という好循環を生み出すことで、ユーザーの家計を改善に導けると考えています。

使う、貯める、増やす、ベン図!


さて、前置きが長くなりましたがここからは、こうした事業領域が生み出す技術的な挑戦や醍醐味をお伝えしていきます。

1. ふつうのWebサービス開発と一味違うスパイス... カード決済

まず第一に挙げたい、株式会社スマートバンクの事業に由来する面白要素の1つ目はカード決済システム開発です。カード決済システム開発では他のWebサービス開発ではなかなか経験できないユニークなプロジェクトに出会うことができ、以下のような感情をお持ちの方へおすすめできます。

  • 「ふつうのWebサービス開発をそれなりに経験してきて停滞感がある」
  • 「Webサービス開発の経験を活かしつつちょっと違った分野にも踏み込んでみたい」
  • 「どうせ働くならその会社でしか経験できない稀有な経験をしてみたい」

実際にどんな体験を株式会社スマートバンクのエンジニアがしてきたか、このドメイン特有の興味深い事例を3つ紹介してみます。

事例1: 物理的なカードの製造(発行)プロジェクト

弊社ではプリペイドカードを自社で発行しています。裏側ではカード番号などカードに設定する情報の生成から、ICチップへの書き込み設定などカード発行に関する幅広い技術知識の習得と課題解決が必要になります。

この経験はCTOの@yutadayoがYAPC::Hakodate 2024にて発表しており、スライドも公開しています。*2

普段何気なく使うカードがどのように作られるのかを知り、実際に自分たちでカードを作り上げていく経験は稀有なものです。

あなたの知らないカード決済の世界...の一端

物理プロダクトの面白さ

世にあるWebサービスの大部分はデジタルな世界で完結しますが、B/43では物理的なカードも含めてプロダクトとして扱います。製造や配送といった領域に踏み込むことで生じる高難度の技術的な課題に取り組むこともできますし、リアルなカードに触れることで生み出されるユーザーの情緒的価値をどう作るか、といったプロダクトマネジメントの醍醐味もあります。

デジタルオンリーのプロダクトから一歩踏み出したい方には面白いと感じていただけると思います。

事例2: 運用しながら完成度を上げていく実験的な開発

「カード決済にはしっかりかっちり固まった仕様や技術文書がすでに存在するのでは?」と思われるかもしれませんが、実際に開発と運用に関わってみると想像よりはるかにファジーな世界であることに驚きます。

どういうことかというと、カード決済における国際規格は存在するもののどのようなデータが決済ネットワークを通じてカード会社に送られてくるかは実際に運用してみないとわからない、ということです。もちろんユーザーに不便や不利益が生じないよう入念な調査や技術検証は行うものの、最後の最後で「本番の決済ネットワーク基盤でしか起きえない問題」が多数あるのです。

まさにこの点にフォーカスした発表がYAPC::Hiroshima 2024における@mitaniの『VISAカードの裏側と “手が掛かる” 決済システムの育て方』です。カード決済システム開発の苦悩と面白さを語ってもらいました。

“ファジーな世界”とだけ聞くとなんだか辛いだけに思えるかもしれませんが、データを見ながら仮説を立て、実験や検証を繰り返すことでシステムの完成度を上げていくプロセスは、エンジニアとして成長するための大きな刺激になります。言い換えれば、正解がわからない中で不確実性に対処する能力を磨ける環境であるともいえます。

不確実な状況への対応を迫られている様子


余談ですが事例1の「クレジットカードを製造する技術」はてなブックマークにて同スライドは1,784ブックマーク(本記事執筆時点)を記録しており、2024年に広く読まれたスライドの1つとなりました*3。加えて、@mitaniによる本講演はYAPC::Hiroshima 2024参加者数百名による投票を経てベストスピーカー賞を受賞しております。カード決済という一見ニッチなドメインが、多くのエンジニアの知的好奇心を刺激するおもしろいテーマであることの証左だと考えています。

事例3: 身近な仕組みを解き明かす楽しさ:3Dセキュアの裏側

3つ目の事例は3Dセキュア開発です*4。こちらも『3Dセキュア入門 -B/43の3Dセキュア開発・運用の裏側』にて詳細をまとめており、Kaigi on Rails 2022にて筆者が以下の発表もさせてもらいました。

筆者は3Dセキュアの存在自体は知っていたものの、その裏側でどのような処理が行われているのか、開発に着手するまではまったく知りませんでした。カード事業に関わっていなければ3Dセキュアの内部について知る機会はまずなかったといえます。

「未知の領域だ…まったくわからない」と思って調査してみると、3Dセキュアプロトコルを構成する技術要素はWebサービス開発者にも馴染み深いネットワークやセキュリティ技術の応用であり、決して異次元のテクノロジーではないことがわかりました。Web技術の総合格闘技ともいうべきもので、「日常で見かけるあの仕組みは、自分の知っているWeb技術を組み合わせて動いていたのか!」という知的好奇心が大いに刺激されました。

3Dセキュアは "Web技術の総合格闘技"


カード決済領域で将来やっていくこと

カード決済システム開発にまつわる3つの事例をご紹介してきましたが、いずれも運用フェーズに入っており、B/43では”枯れている”機能といえます。本記事を読んだ方が入社してからどのようなカード決済関連プロジェクトがありうるか、将来の可能性を挙げてみます*5

  • Apple Pay / Google Pay対応
    • B/43ユーザーの皆様から最も要望が多い機能の1つです
    • カードを持ち歩かずに済むという圧倒的な利便性は、筆者も1ユーザーとして熱望するところです
  • クレジットカード製造
    • 記事執筆時点では株式会社スマートバンクはプリペイドカードのみ提供しています
    • クレジットカード製造とプリペイドカード製造は類似しているようで別物と聞きます。与信枠の決定や請求処理など、作ってみないとわからないことが多いにあり、ワクワクしています

どの開発に関わるかは入社時の会社状況や本人のご希望に応じて柔軟に決定しますので、「カード決済システム開発をやってみたい」と思われた方はぜひその旨を選考過程等でお伝えください。

また、「カード決済も気になるけど…まずは一般的なWeb API開発などからスタートして横目でカード決済開発がどんなものか見てみたい」という方も大歓迎です!念のためお伝えしておくと、株式会社スマートバンクのエンジニア全員が毎日カード決済に関わる開発をしているわけではありません。対モバイルアプリ向けのWeb API開発や、社内のカスタマーサポート向けの管理機能開発など他にも重要な業務がたくさんあり、これらを主務とする方々も多数おります。

2. サーバーサイド開発を軸足としつつ少しずれた領域のスペシャリティも身につける機会

“カード決済システム開発”と聞くと「お堅そう」「制約が多くて速度が出なさそう」という印象を持つ方がおられるかもしれません。しかし、株式会社スマートバンクは急成長中のスタートアップです。堅実で安定した高いサービスレベルを保つことも重要ですが、同時に高速な機能リリース*6をすることや技術革新を活用する実験的な精神も求められます。そのため”少しずれた領域のスペシャリティ”を身につけていただく機会があります。

冒頭の事業説明で「ユーザーの家計を改善に導きたい」と述べました。言うのは簡単ですがプロダクト越しに行動変容を起こすのは難しい挑戦であり、我々はデモグラフィックデータ・個別最適化された分析、これらを駆使したAIアシスタントとも呼べるような機能をプロダクトに搭載しようとしています。

まだまだ走り始めたばかりですが、AI利活用の嚆矢としては@moznionの『生成AIを有効活用した「魔力」のあるプロダクト作り』が挙げられます。何ができて何ができないのか、見極めるためにとにかく手数を打っていくところです。

同スライドの終盤でも述べていますが、執筆時点で株式会社スマートバンクには機械学習や生成AIやデータ関連の専門家は正社員としては在籍しておらず*7、気概のあるサーバーサイドエンジニアが自身の専門性を広げながら挑戦しています。

また、データ活用基盤としてSnowflakeの導入も決定しています。他社では収集できない決済のような独自のデータを持つからこそ出来る開発や戦略に魅力を感じて入社してくれた@godgardenが進行中です。

Webサービス開発の傍ら軸足を一歩ずらしてスペシャリティを獲得したい、新しいことを学んでみたいという方には大チャンスのボーナスタイム期間といえます。

3. 当たり前のことをふつうにやることが生み出す堅牢性

前項では「堅実で安定した高いサービスレベルを保つこと」と「高速な機能リリースをすることや技術革新を活用する実験的な精神」の両立が求められると述べました。本項では前者について説明し、高いサービスレベルへの要求がなぜ魅力たりえるのかをお話します。

株式会社スマートバンクの開発、特にお金まわりを扱うシーンにおいて一般的なWebサービス開発と一線を画す点はシステムの堅牢性へのこだわりです。お金を扱う以上、1円でもずれてしまうとユーザーからの信頼度はがくっと下がってしまうためです。このあたりのやりがいについては、『「1円でもずれてはいけない」フィンテックだからこそ細部へのこだわりを突きつめられる』にて語られています。

アプリを触っていてタイムラインの画面を表示した時、APIが1回だけ失敗してリロードしたら成功した、といったことがたまにありますが、何万分の1の確率で失敗するだけなので普通はそこまで気にならないと思います。ですが、お金周りのシステムではそれを無視できません。1円でもずれたらユーザーさんに連絡しなければいけないし、1円を取り戻すために運用コストをかけなければいけません。この細部へのこだわりをいかに持てるかというのが、フィンテックの楽しい部分で、やりがいを感じるところです。

株式会社スマートバンクでは不具合やデータ不整合を即座に検知・対処できる仕組みを張り巡らせています。実際に以下のような対策をエンジニアリングチームで検討して実施しています*8

  • データ不整合を起こさない設計: データモデリングを相互レビューし、データロストが起きないよう、整合性が保たれるよう設計段階から工夫。たまにデータモデリングの勉強会を行ったりもしています。
  • 監視の徹底: 金額のズレなど不正な状態が発生しないか異常を検知する監視を仕込む*9

監視力 👁️

ここで強調したいのは、Fintechの開発だからといって決して特別なテクノロジーを使っているわけではない点です。ドメインを正しく理解して適切なデータモデリングを行う、異常検知ができる仕組みを整える、Webのベストプラクティスに従う、そうした当たり前のことを高い水準でやることが堅牢なシステムをつくることになります。

つまり、一般的なWebアプリ開発で培ったスキルがそのまま活きる領域で、当たり前のことを妥協せずにやり切る面白さがあるのです。高度な堅牢性が求められるぶん挑戦しがいが大きく、陳腐化しないエンジニアリングスキルが身に付くチャンスがあります。

色々できることはわかったけど、なんか難しそう…?

ご紹介した事例や今後の構想を実現するためにやっていくことは確かに一見難しそうです。一方、今いるメンバーが最初からすべてを実行するスキルを持っていたわけではなく、入社後に学習や業務を通じてスキルを獲得したり実績を積んでいったというのは強調しておきたいところです*10

また、そのようなキャッチアップが早期にできるシニアなメンバーだけでなく、経歴や年代にもばらつきがあります。

過去にチームで学んだドメイン知識はドキュメントとして蓄積されており、それらを用いた入社後の研修やサポートも充実しています。我々としては「在籍することがキャリアのプラスになる」「いるだけで学びになる」エンジニアリング組織を目指していきますので、現時点でできるかどうかではなくこれからやってみたいと思う方を歓迎しています!もう少し学んでから検討しようと思わず、ぜひ今の興味や関心を大事に!

おわりに

最後に改めて株式会社スマートバンクでエンジニアとして働くことの楽しみや魅力をまとめます。

(1) ふつうのWebサービス開発だけでなく一味違うスパイスの効いた経験ができる

ふつうのWebサービス開発をそれなりに経験してきて停滞感がある」方へおすすめ!

(2) サーバーサイド開発を軸足としつつ少しずれた領域の専門性を磨く機会がある

Webサービス開発を軸足としつつ少しずれた領域のスペシャリティも身につけたい」方へおすすめ

(3) Webサービス開発を高い水準で堅牢に行うスキルが得られる

Webサービス開発を突き詰めて高いレベルでやりたい」方へおすすめ


今回の記事ではエンジニアリング面にフォーカスしましたが、文化やコミュニケーションなどソフトな領域でも誇れることがたくさんあります*11

本記事の内容あるいはその他すべての語り尽くせていないことについて話を聞いてみたいと思われた方はぜひお気軽にカジュアル面談へどうぞ!

募集要項 / カジュアル面談リンク

smartbank.co.jp

https://smartbank.co.jp/positions/sresite-reliability-engineersmartbank.co.jp

https://smartbank.co.jp/iossmartbank.co.jp

https://smartbank.co.jp/androidsmartbank.co.jp

https://smartbank.co.jp/positions/kz0fa3g2fm/smartbank.co.jp

*1:株式会社スマートバンクのエンジニアリング部門は、サーバーサイド・モバイルアプリ・SREの3職種がありますが、本記事ではサーバーサイドエンジニアとしての魅力にフォーカスして記述します。モバイルアプリ開発の魅力については、https://blog.smartbank.co.jp/entry/2024/12/24/letter-to-coming-app-engineer もご参照ください。

*2:YAPC::Hakodate 2024 にて「クレジットカードを製造する技術」というタイトルで登壇してきた - yuta's blog』にも書かれています

*3:バズったことがそのまま資料価値となるわけではないものの

*4:オンラインでカード決済をする際、「本人認証のためにパスワード入力やワンタイムコード入力を求められる」場面に遭遇したことがあると思います。これは3Dセキュアと呼ばれるカード本人認証の仕組みで、不正利用(盗難カードやなりすまし)防止のために導入されたものです。弊社のB/43カードでも2022年6月に3Dセキュア対応をリリースしました。

*5:いずれも実施時期は未定です

*6:機能リリースではないですが1日に数回のデプロイを安定して実施しています

*7:業務委託でサポートいただいている方はいます

*8:不具合や不整合対策だけでなく、株式会社スマートバンクではサーバーサイドエンジニア・モバイルエンジニア・SRE共同で、2週間に1回のパフォーマンスミーティングを実施しており、全てのサーバーのメトリクスやSLI/SLOを確認しています。

*9:Kaigi on Rails 2021 で決済サービスの監視についてトークしてきました!

*10:エンジニアリング部門でいえば過去に金融プロダクトの経験者はほぼいない状況からスタートして現在に至ります

*11:本記事を書くにあたり、弊社社員の外部発信を多く添付させてもらいました。いずれも業務を通じて深めたドメイン知識や技術を外部公開しているものであり、業務の中で刺激的かつキャリアの糧になる経験ができていることの証明だと思います。

We create the new normal of easy budgeting, easy banking, and easy living.
In this tech blog, engineers and other members will share their insights.