We are looking for an experienced Spring Boot Java Developer to join our innovative IT team. The successful candidate will play a pivotal role in designing, building, and maintaining distributed systems with a focus on ensuring transactional integrity, performance, security, and reliability. The ideal candidate will be well-versed in managing complex backend services, handling large-scale transactions, and ensuring system robustness and availability in a distributed environment. Key ResponsibilitiesTransaction Management:Implement and manage distributed transactions using Sagas for compensating transactions to maintain data consistency across services.Handle transaction reconciliation to sync systems when third-party integrations or services go out of alignment.Error Handling:Develop comprehensive error-handling mechanisms for system and business errors, including managing timeouts, delays, and transaction retries in distributed environments.Define and implement error codes, status codes (such as HTTP codes for APIs), and employ standardised error formats (e.g., RFC7807).Create automated and manual error resolution processes, ensuring proper logging for troubleshooting.Logging & Auditing:Ensure detailed request and response logging for external/internal services, with debug and audit logs enabled where necessary.Incorporate performance logging and error tracking with detailed contextual information for diagnostics.Data Modelling:Develop and maintain canonical data models, ensuring consistency across integrations and services.Handle complex data transformations and ensure efficient tracking with message headers (context IDs) for monitoring and troubleshooting.Validation:Enforce business validations at appropriate application layers, particularly within APIs to ensure the integrity of business logic.Security:Implement robust authentication and authorisation protocols, handling system IDs, tokens, and human credentials securely.Ensure adherence to industry-standard security best practices for distributed systems.Business Logic & Rules:Define and enforce critical business rules and logic within the service layer to ensure smooth service operation.Monitoring & Alerting:Set up and maintain monitoring systems, including real-time alerts for system issues or performance bottlenecks.Caching:Implement and manage efficient caching strategies to improve performance and reduce system load.Batch Processing & Scheduling:Design and manage batch jobs, scheduling processes with enterprise-grade scheduling tools to ensure timely data processing and system integrity.Message Ordering:Ensure correct message ordering in distributed environments to avoid concurrency issues and ensure data consistency.Date & Time Management:Handle complex date and time calculations, ensuring consistency across all services by centralising date/time processing.Service Availability (24x7):Ensure high availability of services to handle client transaction requests and maintain operations, even during backend downtime or failures. Qualifications & ExperienceProven experience as a Spring Boot Java Developer, with a strong focus on distributed systems.Hands-on experience managing distributed transactions, error handling, data modelling, and system security.Strong background in designing and implementing robust monitoring, reconciliation, caching, and batch processing solutions.Ability to ensure high system availability and manage complex transaction flows in a cloud-based or hybrid environment.Exceptional problem-solving skills and a strong focus on optimising system performance and security. Preferred SkillsExperience working with Sagas or similar frameworks for compensating transactions.Hands-on knowledge of reconciliation processes and tools for transactional sync.Familiarity with standard error handling frameworks (e.g., RFC7807).Proficiency with enterprise scheduling and batch processing tools. Technical SkillsJava Programming: Strong proficiency in Java, including core language features, data structures, algorithms, and multi-threading.Spring Ecosystem: In-depth expertise in Spring Boot, Spring Batch, Spring Data, Spring MVC, and Spring Security.Microservices Architecture: Strong understanding of microservices architecture and design patterns.RESTful APIs: Experience designing, exposing, and consuming RESTful web services.Database Expertise: Proficiency with JPA/Hibernate for database interaction and a deep understanding of SQL.DevOps Tools: Experience with Docker, Kubernetes, Maven, Gradle, and other CI/CD tools.Testing & Quality: Strong experience with unit testing frameworks such as JUnit and Mockito, ensuring high-quality code through test automation.