Turning Complex Banking Infrastructure Into One Product.
How I helped VictorFi turn complex payment infrastructure into a scalable product banks could trust, fintechs could integrate with, and engineers could ship.
V VictorFi
Home
Transactions
Accounts
Approvals 12
Beneficiaries
Reports
Developers
Settings
TransactionsSearch transactions…Acme Fintech ▾
AllPendingProcessingCompletedFailedReturned
ID
Type
Amount
Status
Counterparty
Date
TXN-82101
ACH Payment
$25,000.00
Pending approval
Checking ••••1234
May 14, 2025
TXN-82100
Wire Transfer
$150,200.00
Processing
First Bank ••••9876
May 14, 2025
TXN-82099
RTP Payment
$12,500.00
Completed
Customer ••••4455
May 14, 2025
TXN-82098
ACH Payment
$8,750.00
Failed
Vendor ••••3344
May 13, 2025
TXN-82097
Wire Transfer
$75,000.00
Returned
Partner ••••6677
May 13, 2025
Today's volume$3,246,730.00+12.4% vs yesterday
Transactions1,842+8.7% vs yesterday
Success rate98.6%−0.2% vs yesterday
Processed$80B+total volume
The operator view — one transaction list across ACH, wire and RTP, with state, counterparty and approval queue in a single place. Illustrative reconstruction; figures are not live.
$6M
Seed funding raised
$80B+
Processed transaction volume
2025
Acquired by Jack Henry
Company outcomes during my tenure.
Overview
VictorFi connected fintechs to banks and payment rails through one product layer.
The product had to make complex, regulated banking infrastructure easier to integrate with and easier to operate.
The shape I was accountable for: one integration surface facing the fintech, one facing every rail behind it.
What I owned
I joined early and worked across product strategy, UX, customer discovery, engineering delivery, compliance, onboarding, go-to-market and fundraising support.
Product strategy and roadmap
Transaction and payment workflows
Bank and fintech onboarding
Roles and permissions
Approval flows
Exceptions and reconciliation
Customer discovery
Product requirements
UX and product design
Engineering refinement
QA and release
Compliance collaboration
Market positioning
Product demos and fundraising support
I owned the bridge between customer needs, banking complexity, and engineering execution.
The Challenge
Every new fintech, bank and rail multiplied the product, not just the integration work.
Each combination brought its own rules, approval structures, permissions, compliance requirements, reconciliation logic, failure states and operational edge cases. Growth and engineering load rose together, so a sales win and an engineering crisis were the same event.
The case I had to make internally. Four customers and six rails is twenty-four integrations to build and maintain; routed through one platform it is ten.
The problem wasn't payments. It was multiplying complexity.
One payment was never just one payment.
To a customer it reads as a single instruction. Underneath sit twelve decisions, each needing an owner, a state, a failure path and an audit record.
What the customer asks for, and what I had to specify. Twelve decisions sit under one instruction, and every one of them needed an owner, a state and an audit record.
My job was to make this manageable without removing the controls banks depended on.
Who I Designed For
Three groups judged the same product differently.
Fintech operator
Can I integrate quickly and understand what happened to my payment?
Wanted speed and simplicity.
Bank operations & risk
Can I see, approve, audit and control what is happening?
Wanted visibility and control.
Engineering
Can we support the next customer without creating another version of the product?
Wanted consistency and scalability.
My role was to find the common product underneath all three.
Constraints
The constraints were the product.
Unlike a normal SaaS product, we could not optimise only for the cleanest UX. Bank-specific rules, four rails that behave differently, mandatory auditability, and enterprise operations where failures and returns matter as much as successes — every flow had to work inside all of it.
The gap between the interaction a designer wants and the one a regulated rail permits. Every stage after the first is a control somebody is accountable for.
The constraint wasn't something to design around at the end. The constraint was part of the product.
The Decision
I rejected both obvious answers.
Option A — build each bank exactly what it asks for.
Fastest way to satisfy an early customer, and easy to say yes to. It also means more custom workflows, more logic, more QA, more maintenance and a product that fragments into as many products as we have customers.
Option A, which I rejected. Each new customer adds a workflow rather than a configuration, so the build and test surface grows with the sales pipeline.
Option B — force every bank into one rigid workflow.
Cleaner architecture and easier engineering. It also denies that banks genuinely differ in approval structures, limits, compliance requirements and operating controls.
Option B, which I also rejected. Clean to build, and unusable for any bank whose approval hierarchy differs from the template.
The call.
We identified the reusable product concepts sitting underneath the different bank implementations, and drew the line between what is shared and what is configurable. Where that line sits is the product decision — engineering effort, onboarding time and how fast sales could say yes all followed from it.
Shared core
Transaction model
Payment states
Permissions framework
Audit model
Reconciliation model
Common operator workflows
Configurable per institution
Approvals
Limits
Rules
Permissions
Compliance requirements
Operational controls
The call I made. One transaction model, one permissions framework, one audit trail — with each institution's approvals, limits and controls applied as configuration.
Standardize the core. Configure the edges.
Stakeholders
Five groups described the same problem in five different languages.
Customers and banks brought operational needs. GTM brought commercial urgency. Compliance brought risk and audit constraints. Engineering brought feasibility and cost. My role was to turn those inputs into one clear product decision.
The filter every request went through. Three of the four outcomes build something; naming the fourth out loud is what kept the platform from becoming custom software.
My job was not to pass requests through. It was to reduce ambiguity and make the trade-off explicit.
One conflict, in full
A bank needed its own three-level approval hierarchy. Every group had a legitimate position and they did not agree.
“The approval hierarchy is a genuine control and cannot simply be removed.”
My decision
Make the approval structure configurable at the platform level rather than building a separate product flow for that customer.
Result
The institution kept the control it required without creating a separate VictorFi product experience.
This was the trade-off I handled repeatedly: satisfy the real requirement without turning the platform into custom software.
Compliance Upstream
Decision one — compliance moved into product definition.
Compliance had been arriving as a checkpoint after build, which produced late changes, revisited engineering work, slower releases and controls that felt bolted on.
The change I pushed hardest for. Compliance moved from a checkpoint after build to a participant in product definition; the pipeline is the same length and the rework loop is gone.
Permissions, approvals, auditability and operational controls became part of product definition rather than requirements imposed on a finished design.
Controls became product behavior, not late-stage patches.
Onboarding
Decision two — onboarding became configuration, not engineering.
Every institution arrived with different approval models, limits, permissions, risk controls and operational ownership. The goal was to support those differences without rebuilding the product each time.
The middle box is the whole decision. If a new institution needed engineering rather than configuration, the model had failed.
Different institutions could have different requirements without creating different products.
What Shipped
One mental model across rails that behaved differently.
The goal was not to pretend ACH, wire, RTP and FedNow are the same. It was to give users one consistent way to understand a payment while rail-specific complexity stayed underneath.
What shipped. Success, failure and return all terminate in the same reconciliation and audit trail, which is what made the platform defensible to a bank.
Success, failure and return all terminate in the same reconciliation and audit trail. That was a deliberate specification — it is the property that let a bank's risk function accept the platform.
How I worked with engineering
I stayed involved beyond design handoff, through discovery, definition, design, refinement, ship and feedback.
Engineering constraints, QA and customer feedback routinely changed the product after the first design pass.
What Didn't Go to Plan
Three things I got wrong, and what changed because of them.
Some abstractions were too rigid.
We expected more bank workflows to fit one shared model than actually did. Some institution-specific requirements were real and could not be designed away.
What changed
We became deliberate about separating three things that had been blurred: shared platform behaviour, configuration, and true exceptions.
Compliance arrived too late in early work.
When compliance entered after design, we had to revisit workflows that were already defined and partly built.
What changed
Compliance moved into product definition — the decision two sections above exists because of this failure.
Partner timelines moved slower than product timelines.
Banks and external partners had approval and implementation cycles that did not match a startup's cadence, and planning as though they would was a mistake.
What changed
We separated what VictorFi could ship independently, what depended on partner approval, and what needed staged rollout.
How It Evolved
The loop stayed the same for five years. How much I could explore before the first conversation did not.
2020–2022 · Manual
Manual discovery synthesis
Manual requirements drafting
Edge cases found mainly through stakeholder reviews
QA scenarios created manually
Documentation assembled manually
2023–2025 · AI-assisted
Conversation synthesis
Requirement interrogation
Edge-case generation
Acceptance criteria
QA scenario generation
Documentation and product exploration
Compliance interpretation, prioritisation, customer judgment, risk decisions and final requirements stayed human-led. The change was that I arrived at engineering, customer and compliance conversations with more scenarios already explored.
AI increased exploration speed. It did not replace product judgment.
Impact
From customer to acquirer.
VictorFi had built strategic value with Jack Henry before the acquisition. One of the platform's own customers ultimately became the company that bought it — and the product question changed from scaling an independent startup to preserving its logic inside a much larger banking technology environment.
$6M
Seed funding raised
$80B+
Processed transaction volume
2025
Acquired by Jack Henry
Company outcomes across five years and many people. I was one input into them.
Reflection
What I learned
The simplest fintech experiences hide enormous complexity.
The job was not to remove that complexity. It was to decide which complexity users needed to see and which belonged inside the platform.
The best product decisions were the ones that let us say no.
Standardizing the core only worked because we were willing to reject both custom-everything and rigid-standardization.
Enterprise fintech isn't about removing complexity. It's about putting complexity in the right layer so customers can move fast without sacrificing trust, visibility, or control.