About the Role
We are seeking experienced Software Engineers to join our growing teams in the United Kingdom. Our client partners with innovative clients to deliver large-scale technical transformation projects across various sectors.
Key Responsibilities:
* Design and develop scalable, high-performance solutions using Java, incorporating strong object-oriented programming principles.
* Apply key features of Java 8, such as streams, functional interfaces, and enhanced collections, to improve code efficiency and maintainability.
* Demonstrate expertise in multi-threading, employing effective techniques to prevent deadlocks and optimize performance through parallel execution and resource management.
* Develop web applications using MVC frameworks while incorporating dependency injection for enhanced modularity and ease of testing.
* Design and implement RESTful APIs with JAX-RS, following industry best practices to ensure seamless integration and consumption.
* Conduct unit testing and behavior-driven development (BDD) with JUnit, Wiremock, and Mockito, with the ability to transition from other testing frameworks such as Test NG.
* Automate integration testing using Cucumber and Gherkin to drive efficient and collaborative testing processes.
* Utilize Open API Swagger to define and document APIs, ensuring consistency and clarity across teams.
* Enforce code quality standards using Sonar Qube and implement security measures through Red Hat SSO.
* Work with a variety of frameworks and libraries, including Feign, Mustache, Spring, Guice, Swagger, and Spring Boot.
* Manage and optimize data storage solutions such as Elastic Search, RDS, Aurora, Postgres, Elastic Cache, Open Search, and Debezium.
* Deploy and orchestrate applications using Docker, Kubernetes, and AWS Auto Scaling Groups (ASG).
* Administer web containers with Tomcat and NGINX for efficient web application hosting.
* Implement monitoring and logging solutions using the ELK stack.
* Set up and maintain CI/CD pipelines using tools such as Bit Bucket, Maven, Terraform, Jenkins, Ansible/Packer, and Kustomize.
* Develop messaging and scheduling solutions with Kafka, SQS, and Jenkins/Ansible.
* Leverage tools like Cucumber, JUnit, Selenium, and Postman for end-to-end testing and quality assurance.
Requirements
* A minimum of 2 years of hands-on experience in Java software development, including leadership roles.
* Proficiency in the technologies and tools mentioned above, with a track record of successful implementation.
* Strong ability to design, develop, and deliver complex software solutions in a fast-paced environment.
* Excellent problem-solving, analytical, and troubleshooting skills.
* Strong communication and collaboration abilities to work effectively within cross-functional teams.
What We Offer
* Work From Home
* Performance Bonus
* Company Shares
* Medical Aid / Health Care