What AI pair-programming actually looks like inside a bank
- ai-assisted-dev
- java
There's a version of AI-assisted development you see on social media: describe an app, accept everything, ship it. That version does not survive contact with a regulated environment. Here's the version that does.
The constraints come first
In a bank, three things are non-negotiable before any tool touches the codebase:
- Approved tooling only. You use the enterprise-licensed deployment — GitHub Copilot for Business, an internal Claude gateway — never a personal account, because the license terms about training on your code are the whole point.
- No secrets or customer data in prompts. Ever. Connection strings, account numbers, and anything derived from production data stay out of context windows.
- You are the author of record. The commit has your name on it. "The AI wrote it" is not a phrase that exists in a post-incident review.
None of these make the tools less useful. They make the workflow the thing you design, instead of the prompts.
Where it actually pays off
After a few years of daily use, the wins cluster in predictable places:
Test scaffolding. Writing the fifteenth JUnit test for a validation rule is mechanical. Copilot drafts the arrange-act-assert skeleton from the method signature and the previous fourteen tests; I fix the assertions it got wrong. The interesting work — deciding what to test — stays human.
Legacy translation. We refactored a C# document portal into Java. An AI that can hold the old code in one window and draft the equivalent Spring service in another turns an archaeology project into a review project. Every line still gets read — but reading is faster than writing.
Boilerplate with sharp edges. Kafka consumer configs, Spring Batch job definitions, Terraform blocks. The AI knows the shape; I know which defaults are wrong for us (auto-commit, for one).
Rubber-ducking on unfamiliar ground. "Explain what this Concourse pipeline does" is the modern version of grabbing the one person who remembers.
Where it's not allowed to drive
Anything where being plausibly wrong is expensive: entitlement checks, money-movement logic, cryptography, retention policy. The AI can draft tests around that code. It doesn't write the code itself, because plausible is exactly the failure mode — generated code fails in ways that read correctly.
The habit that makes it safe
Small diffs, reviewed like a hostile PR. If the suggestion is bigger than what I'd comfortably review from a junior engineer, it's too big to accept in one piece. That single habit converts "AI wrote my code" into "AI typed my code" — and the second one is compatible with an audit.
The tools are genuinely good now. The discipline is what makes them usable where the code moves money.