Senior Java Engineer
Who we are:
Mama Money is a growth-stage fintech on a mission to improve the financial lives of migrants and underserved communities across Africa and beyond. What started in 2015 as a cross-border payments service has grown into a multi-product financial platform. We give people the tools to send, save, and manage money โ on their own terms, at a socially fair price.
Mama HQ is in beautiful Cape Town, South Africa. We're 150 people strong (and counting), representing 19 countries across Africa, Asia, the UK, and Europe. From remittances to a growing range of financial products, everything we build is in service of people who deserve better. Our culture reflects that same commitment. We look after our team the way we want them to look after our customers. "Just be lekker!" means we trust our talented, diverse people to do what's right and make it happen โ simply and with heart.
We've earned a few accolades, built lasting partnerships, and grown our reach in ways we're proud of. We've had good times and tough times, but our focus has never shifted. People over profit, always.
With growth comes the exciting challenge of scaling our development platforms and practices to support multiple teams collaborating on features simultaneously. To meet this head-on, we're embracing Agile principles through the Scrum framework.
You'll need a solid, hands-on understanding of Agile and Scrum โ not just the mechanics, but the why behind them. You'll be involved across the full process: requirements analysis, writing and refining stories in Jira, task breakdowns, and story point estimation. Most importantly, you'll be part of our evolving journey as we figure out how to scale smartly and sustainably.
As our Senior Java Engineer you will:
- Play an active role in researching and implementing new processes, tools, and technologies that drive how we build and scale โ your ideas and curiosity are genuinely welcome here.
- Be involved across the full Software Development Life Cycle (SDLC), from early-stage feature design and planning through to delivery and beyond.
- Own test automation for new code, including unit and integration testing, ensuring what we ship is reliable, robust, and production-ready.
- Help identify and tackle technical debt in existing codebases โ bringing a thoughtful approach to balancing short-term delivery with long-term code health.
- Collaborate across deployment, QA, and support functions, contributing to a smooth and stable release process and helping resolve issues when they arise.
- Champion code quality through thorough peer reviews, clear documentation, and a culture of knowledge sharing โ helping the whole team grow, not just the codebase.
Tools & Technologies:
-
Languages & Frameworks: Java with Spring Boot as the backbone of our backend services โ clean, scalable, and built to handle real transaction volume.
-
Database: MariaDB for reliable, structured data management across our core systems.
-
AWS Services: We're cloud-native and make full use of the AWS ecosystem โ including API Gateway, Cognito, SQS, SNS, and S3 to power our integrations, messaging, and storage layers.
-
Versioning & Deployment: Git and GitHub for version control, with GitHub Actions for CI/CD pipelines, and Helm and ArgoCD to manage our Kubernetes deployments in a clean, automated way.
-
Project Tracking & Documentation: Jira for sprint planning and issue tracking, and Confluence to keep our knowledge base organised and accessible across teams.
What We're Looking For:
- A natural collaborator who thrives in a fast-moving, ever-evolving environment; adaptable, communicative, and comfortable with change being the norm rather than the exception.
- A genuine commitment to writing clean, simple, and easily understandable code; you believe that great code is code that others can read, maintain, and build on without friction.
- The ability to implement meaningful test coverage that goes beyond ticking boxes; you und