Software Engineer
About Griffin
Hi, we’re Griffin. We’re a fully regulated UK bank that powers the accounts and payments offerings of product-led fintechs and platforms like Uber, Yonder, Prosper, and Sidekick. By doing the heavy lifting behind the scenes, our customers can focus on what they do best - delivering amazing customer experiences.
We’ve grown rapidly since our launch in 2024, and today provide the banking backbone behind products in remittance, payroll, wealth, insurance, proptech, payments, neobanking and more.
We’re moving into card issuing, stablecoin infrastructure, and agentic finance next as we continue to support the next generation of product-led companies.
Learn more about what we do
Our culture
We believe that smart, motivated, conscientious people thrive in high-trust, high-autonomy environments and have done our best to create such an environment at Griffin. People who thrive here don’t require much hand-holding, and go out of their way to figure out how to contribute in the most valuable way possible.
We've been remote-first since we were established in 2017 and we remain so today. Work here is asynchronous and fully flexible - because we want to be a part of your life in a way that helps you to get the most out of both your work and home life.
We understand that our culture and ways of working aren’t for everyone, and we’re very intentional about our hiring process as a result. We won't hire people who don’t seem like a strong fit for our core values, even if they're otherwise extremely qualified.
Our strong culture has helped us to remain a mission-driven company as we have scaled, and gives our people a clear, explicit operating framework and the space to focus on delivering real value for our customers.
Learn more about our culture.
The team
The Craft function has seven small, cross-functional engineering teams - each with engineers, an engineering manager, and a product manager, working closely with designers. You'll join one team that owns a product area end-to-end.
When we start work, we explore multiple solutions before picking one. You'll write RFCs, build proof-of-concepts, and run experiments to validate approaches. Once we commit to building something, we care about maintainability more than cleverness, observability more than hoping it works, and scalability more than premature optimisation. We ship quality code over hitting arbitrary deadlines. Once something goes live, we refactor the rough edges rather than polish what's already working.
The opportunity
Right now, we're building card issuing from scratch, going direct on Faster Payments, enabling cross-border payments, and building term deposit accounts. Day to day, this means: writing the reconciliation systems that process millions of FPS transactions, implementing double-entry accounting that tracks card spending and settlements, designing webhook infrastructure with message signing and replay protection, building API versioning that lets us evolve without breaking customers, or creating payment approval workflows that satisfy both user experience and compliance requirements.
What success looks like
Success here is about impact beyond your own code: improving how we work, making other engineers more productive, and building systems that our customers (other developers) actually want to use. This looks like:
- redesigning the transaction reconciliation service to handle 10x throughput before we hit FPS volume limits
- fixing the root cause of webhook delivery failures so we stop getting paged at 3am
- building a Bazel rule that cuts build times in half for the whole team
- writing an RFC that becomes the pattern we use for all event-driven services
- pairing with another engineer to help them reason through FoundationDB transaction semantics
- owning card issuing from initial RFC through to processing the first live transaction - making every architecture and implementation decision along the way.
What you'll own
- The technical