About the role
- 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.
- 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
- 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.
- Bachelor's or Master's degree in Computer Science, Information Technology, or a related field.