Case Study - The server behind a US business bank: card approvals, credit, and the APIs the phone apps later used.

Six months on a business bank’s servers. We built a service that approves or declines a card while the customer is still standing there, moved two generations of code onto one toolchain, and kept shipping credit, payments, and cash-flow tools on that same server.

Client
Business bank
Year
Service
Platform, product engineering

Overview

This is the server work for a US business bank serving smaller firms with checking, company cards, and credit lines. It is not the later phone-app project. Those apps use what this project left behind.

The through-line was a decision on a card swipe while the customer was still standing there. We started a dedicated service for that path: verify the caller, read balances, apply spending rules, and keep a log. Through the spring it gained a database, a message bus, and the partner bank’s auth. Deposit cards and charge cards ended on one table. By midyear the isolated read models were gone. Authorization read the same banking tables as the rest of the money system.

In parallel, two generations of services moved onto one toolchain and one internal framework. Language and build upgrades, a reproducible developer setup, a shared money and secrets library, and an internal admin surface with a normal login. Midway we moved the SQL layer toward a typed mapper and replaced the old dependency container. A few mapper paths came back out when they were not stable yet. The rule was to ship the product, not to win the migration.

Product work rode the same platform. Credit-line monitors and agreement generation. International payment consumers and bill-pay audit trails. Cash-flow sync that stopped holding database connections open across a slow partner call. A cache in front of a third party that could not keep up. Object-level checks after an outside review, including a fix on a transactions route that trusted an id it should not have.

The build had to keep up with that. CI was rebuilt so master finished in about a quarter of the previous wall-clock. A pre-merge check started catching missing infrastructure changes. Staging pool and CPU incidents were diagnosed rather than restarted and forgotten. Deploys stopped replacing a newer manual release with an older automated one.

The result was one server that could approve a card swipe, keep shipping credit and payments, and feed both the website and the later phone apps.

What we did

  • Card decisions
  • Toolchain unification
  • Capital and payments
  • Build and deploys
  • API for web and phones
On the platform
6 months
Previous master build time
~1/4
Web and phones share it
1 stack

More case studies

Android and iOS apps for a US business bank, shipped in about six weeks.

A US bank for small and mid-size businesses needed phone apps, not another browser tab. Two engineers built Android and iOS together: balances, cards, and the chat assistant that was already running on the server.

Read more

A website, a booking tool, and a small ad test for a chauffeur who had been living on referrals.

A private car service had no website and no booking system. We built the site, a chat that takes a booking, a phone app for the driver, and a short Facebook and Instagram test. In two weeks, a few hundred dollars in ads brought in about ten times that in new rides.

Read more

Contact

Tell us about the project. We will tell you if we can help.