Our 40+ engineering teams are working on designing, creating and running the rich product catalogue across our business areas (e.g. Payments Services, Business Services). We have a long roadmap ahead of us and always have interesting problems to tackle. We trust and empower our engineers to make real technical decisions that affect multiple teams and shape the future of Tide's Global One Platform. It's an exceptional opportunity to make a real difference by taking ownership of engineering practices in a rapidly expanding company!
We work in small autonomous teams, grouped under common domains owning the full lifecycle of some microservices in Tide's service catalogue. Our engineers self-organize, gather together to discuss technical challenges, and set their own guidelines in the different Communities of Practice regardless of where they currently stand in our Growth Framework.
About The Role
Contribute to our event-driven Microservice Architecture (currently 200+ services owned by 40+ teams). You will define and maintain the services your team owns (you design it, you build it, you run it, you scale it globally)
Use Java 17, Spring Boot and JOOQ to build your services.
Expose and consume RESTful APIs. We value good API design and we treat our APIs as Products (in the world of Open Banking often times they are gonna be public!)
Use SNS+SQS and Kafka to send events
Utilise PostgreSQL via Aurora as your primary datastore (we are heavy AWS users)
Deploy your services to Production as often as you need to (this usually means multiple times per day!). This is enabled by our CI / CD pipelines powered by GitHub with GitHub actions, and solid JUnit / Pact testing (new joiners are encouraged to have something deployed to production in their first 2 weeks)
Experience modern GitOps using ArgoCD. Our Cloud team uses Docker, Terraform, EKS / Kubernetes to run the platform.
Have DataDog as your best friend to monitor your services and investigate issues
Collaborate closely with Product Owners to understand our Users' needs, Business opportunities and Regulatory requirements and translate them into well-engineered solutions
What We Are Looking For
Have some experience building server-side applications and detailed knowledge of the relevant programming languages for your stack. You don't need to know Java, but bear in mind that most of our services are written in Java, so you need to be willing to learn it when you have to change something there!
Have a sound knowledge of a backend framework (e.g. Spring / Spring Boot) that you've used to write microservices that expose and consume RESTful APIs
Have experience engineering scalable and reliable solutions in a cloud-native environment (the most important thing for us is understanding the fundamentals of CI / CD, practical Agile so to speak)
Demonstrate a mindset of delivering secure, well-tested and well-documented software that integrates with various third party providers and partners (we do that a lot in the fintech industry)
Our Tech Stack
Java 17, Spring Boot and JOOQ to build the RESTful APIs of our microservices
Event-driven architecture with messages over SNS+SQS and Kafka to make them reliable
Primary datastores are MySQL and PostgreSQL via RDS or Aurora (we are heavy AWS users)
Docker, Terraform, EKS / Kubernetes used by the Cloud team to run the platform
Data Dog, Elastic Search / Fluentd / Kibana and Rollbar to keep it running
GitHub with GitHub actions for Sonar cloud, Snyk and solid JUnit / Pact testing to power the CI / CD pipelines