Role Summary

We are looking for a Senior Software Engineer with strong core Java fundamentals and hands-on experience designing and implementing microservices architectures. The ideal candidate has deep, practical expertise in Spring Boot and Hibernate, and can independently own the design, development, and delivery of backend services for enterprise-grade, cloud-native applications. You will work closely with architects, product owners, and DevOps engineers to build reliable, secure, and high-performing systems.

Key Responsibilities

  • Design, develop, and maintain scalable backend applications and services using core Java and the Spring ecosystem (Spring Boot, Spring MVC, Spring Data).
  • Lead the design and implementation of microservices architecture, including service decomposition, API contracts, inter-service communication, and data ownership boundaries.
  • Build and optimise persistence layers using Hibernate/JPA, ensuring efficient data modelling, query performance, and transaction management.
  • Design and expose RESTful APIs following versioning, security, and documentation (OpenAPI/Swagger).
  • Apply sound object-oriented design principles, design patterns, and clean-code practices across the codebase.
  • Collaborate with DevOps and cloud engineering teams to containerise services (Docker/Kubernetes) and deploy on AWS.
  • Ensure application security, performance, and resilience, including authentication/authorization, input validation, caching, and fault-tolerance patterns.
  • Write unit tests, participate in peer/code reviews, and adhere to quality standards (SonarQube, CI/CD gates).
  • Troubleshoot and resolve production issues, perform root-cause analysis, and drive continuous improvement in reliability and performance.
  • Mentor junior engineers and contribute to technical design discussions, architecture reviews, and best-practice adoption across the team.

Required Skills & Experience

  • 8+ years of software development experience, primarily in core Java (Java 8+) and object-oriented design.
  • Proven experience designing and implementing microservices architecture in production environments, including service boundaries, communication patterns (REST/messaging), and data consistency strategies.
  • Strong, hands-on expertise with Spring Boot and Spring Framework (Spring Data, Security, and Cloud is a plus).
  • Solid working knowledge of Hibernate/JPA for ORM, including entity relationships, query optimisation, caching, and transaction handling.
  • Experience with relational databases (MySQL, PostgreSQL, or Oracle) and writing efficient SQL.
  • Practical experience with RESTful API design, JSON, and API documentation tools (Swagger/OpenAPI).
  • Familiarity with containerisation and orchestration (Docker, Kubernetes) and CI/CD pipelines.
  • Understanding of application security fundamentals (OAuth2/JWT, secure coding practices).
  • Experience with unit/integration testing frameworks (JUnit, Mockito) and version control (Git).
  • Strong analytical and problem-solving skills, with the ability to work independently and take ownership
Good to Have
  • Exposure to AWS cloud services (EC2, ECS/EKS, RDS, Lambda, S3) or other public cloud platforms.
  • Experience with event-driven architecture and messaging systems such as Kafka or RabbitMQ.
  • Familiarity with distributed systems patterns (circuit breakers, retries, Saga/distributed transactions).
  • Working knowledge of NoSQL databases (MongoDB, DynamoDB, Redis).
  • Prior experience in an JIRA/Agile/Scrum delivery environment.
  • Certifications in Java, AWS, or related technologies.

Qualifications

  • Bachelor's or Master's degree in Computer Science, Information Technology, or a related field.

Required Skills

Microservices Java