Software Engineer I
Role details
Job location
Tech stack
Job description
As a Software Engineer in M3, you'll contribute to the development of highly scalable, event-driven payment systems that support critical financial workflows across the enterprise.
You'll help build systems that power:
- Consumer payment journeys
- Lending and loan servicing capabilities
- Business-to-business payments
- Cross-border payment experiences
- Stablecoin-enabled payment capabilities
You'll work alongside experienced engineers who are passionate about building resilient, high-performance systems and creating a strong engineering culture.
Engineering Approach & Technology
M3 is built using modern backend architecture patterns designed to support highly scalable, resilient, and event-driven payment systems.
Our engineering approach includes:
- Event Sourcing
- CQRS
- Event-driven microservices
- Streaming and asynchronous processing patterns
You'll gain hands-on experience building distributed systems and learn how to design software that is scalable, observable, resilient, and operationally robust.
Our core technology stack includes:
- Kotlin
- Quarkus
- Kafka
- PostgreSQL
- Gradle
Join M3?
This is a strong opportunity for engineers early in their career to work on meaningful technical problems in a modern engineering environment.
You'll gain exposure to:
- Large-scale distributed systems
- Event-driven architecture patterns
- High-throughput backend engineering
- Financial technology and payment systems
- Modern JVM-based development practices
Most importantly, you'll work with a team that values mentorship, technical growth, and collaborative problem-solving while building systems that directly power how money moves across the world.
Responsibilities
- Build and enhance backend services supporting payment capabilities.
- Contribute to event-driven applications and APIs.
- Work as part of an Agile Scrum team, participating in sprint planning, stand-ups, backlog refinement, and retrospectives.
- Collaborate closely with engineers, product partners, and stakeholders to deliver high-quality software incrementally.
- Write clean, maintainable, and well-tested code.
- Participate in code reviews and technical discussions to continuously improve engineering quality.
- Learn modern distributed systems and software engineering practices.
- Help improve platform reliability, performance, and developer experience.
- Support production systems by troubleshooting issues and contributing to operational excellence practices.
Requirements
- A foundation in software engineering principles and backend development.
- Experience with Java, Kotlin, or another object-oriented programming language.
- Interest in distributed systems and scalable backend platforms.
- Understanding of software development lifecycle concepts and Agile ways of working.
- Ability to collaborate effectively within a cross-functional Scrum team.
- Problem-solving skills and a willingness to learn new technologies.
- Strong communication skills and a collaborative mindset.
- Curiosity, ownership, and enthusiasm for engineering challenges.
Employment eligibility to work with American Express in the UK is required as the company will not pursue visa sponsorship for these positions.