Job Description We are seeking highly skilled and experienced Java Engineers with expertise spanning various aspects of software development, including Java OOPS concepts, Java 8 features, multi-threading, web applications, REST services, testing frameworks, and more. The ideal candidate will have a solid background in leadership and a proven track record of successful project implementation. Key Responsibilities: Apply strong object-oriented programming principles in Java to design and implement robust and scalable solutions. Leverage Java 8 features, including streams, functional interfaces, and collections, to enhance code readability and maintainability. Demonstrate a deep understanding of multi-threading concepts, implement strategies to avoid deadlocks, and optimize performance through parallel runs and resource sharing. Design and develop web applications using MVC frameworks, incorporating dependency injection for improved modularity and testability. Implement RESTful services using JAX-RS and adhere to best practices for designing and consuming REST APIs. Utilize JUnit, Wiremock, and Mockito for effective unit testing, mocking, and behaviour-driven development. Transition from other frameworks seamlessly, including TestNG. Develop and execute automated integration tests using Cucumber and Gherkin for efficient and collaborative testing. Use OpenAPI Swagger to specify and document exposed APIs, ensuring clarity and consistency. Implement code quality checks using SonarQube and ensure security through Redhat SSO. Utilise a range of libraries and frameworks, including Feign, Mustache, Spring, Guice, Swagger, and Spring Boot. Work with various data storage solutions, including ElasticSearch, RDS, Aurora, Postgres, ElasticCache, OpenSearch, and Debezium. Implement hosting and orchestration using Docker, Kubernetes, and AWS Autoscaling Groups (ASG). Oversee web container management using Tomcat and NGINX. Implement monitoring and logging solutions using the ELK stack. Set up and manage the CI/CD pipeline using BitBucket, Maven, Terraform, Jenkins, Ansible/Packer, and Kustomize. Work with Kafka, SQS for queuing solutions and implement scheduling using Jenkins/Ansible. Use a combination of Cucumber, JUnit, Selenium, and Postman for comprehensive testing.