Senior Software Engineer
Summary
Builds and maintains distributed backend services for Monzo’s in-house banking platform (accounts, business banking, savings, etc.), focusing on scalability, resilience, and customer-driven features using Go, Cassandra, Kafka, and Kubernetes.
Senior Software Engineer at Monzo.
About the role Become part of a dynamic team of over 650 engineers dedicated to developing an in-house banking platform that supports a wide range of financial services, including personal accounts, business banking, savings, investments, pensions, and credit products. In this role, you will collaborate within a cross-functional squad that includes product managers, designers, analysts, and both mobile and web engineers to deliver features that are utilized by customers on a daily basis. Monzo organizes its teams into self-managing collectives of approximately 100 individuals, focusing on various domains such as Core Banking, Business Banking, Wealth, Borrowing, Growth, Payments, Platform, Fincrime, Security, and Expansion.
Key facts
- Location: Barcelona, Spain
- Engagement: Hybrid, requiring three days per week in the office
What you’ll do
- Work closely with your squad to design, develop, and maintain backend services tailored to a specific product area.
- Engage in building distributed systems that are designed to remain resilient even under high traffic conditions.
- Utilise data-driven insights to influence customer outcomes and enhance user experience.
- Participate in open-source projects and actively share your expertise through both internal and external platforms.
- Collaborate with cross-functional teams to ensure alignment on product goals and deliverables.
- Troubleshoot and resolve issues in production environments to ensure optimal performance and reliability.
- Contribute to code reviews and provide constructive feedback to peers to maintain high coding standards.
- Stay updated with industry trends and emerging technologies to continuously improve the development process.
Requirements
- Proven experience in backend engineering within a technology-focused product environment.
- Ability to navigate through uncertainty and ambiguity while working collaboratively in a team.
- A keen interest in distributed systems and a commitment to building dependable software solutions.
- Proficiency in at least one strongly-typed programming language, such as Go, Java, C, or Scala.
- A product-oriented approach that prioritises addressing real customer needs and challenges.
- Strong problem-solving skills and the ability to think critically about software design and architecture.
Nice to have
- Familiarity with the following technologies is advantageous, although comprehensive onboarding support will be provided:
- Experience with container orchestration tools like Kubernetes and Docker.
- Knowledge of messaging systems such as Kafka for asynchronous communication.
- Understanding of cloud platforms, particularly AWS for production infrastructure and GCP for data management.
Skills & tools
- Go for developing application code.
- Cassandra for managing persistent data storage.
- Kafka for facilitating asynchronous messaging.
- Kubernetes and Docker for orchestrating containerized applications.
- Envoy Proxy for remote procedure calls (RPC).
- AWS for hosting production infrastructure.
- GCP for handling data infrastructure needs.
- React for building public web applications and internal tools.
Practical notes
- The base salary for this position will be determined based on your experience, supplemented by performance-related incentive awards and a comprehensive benefits package.
- An annual learning budget of 1200 EUR is allocated for books, courses, and attendance to conferences to support your professional development.
- Flexible working hours are offered, allowing you autonomy over your schedule to maintain a healthy work-life balance.
- No formal degree is required for any engineering position at Monzo, emphasizing skills and experience over traditional qualifications.
- This role is classified at the L50 level according to the Engineering Progression Framework; if you have questions about leveling, please discuss it with our recruitment team.
- The interview process consists of an initial phone screening, followed by a take-home assignment or a pair programming exercise, and concludes with final round that includes system design and behavioral interviews. The typical duration of the entire process is around four weeks.
- Applicants are welcome to use a preferred name when making submission, ensuring a comfortable and inclusive hiring experience.