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.