Software Engineer
Belfast - Hybrid working
An industry-leading digital consultancy is seeking to add a Software Engineer to their team in Belfast working with both public and private sector clients.
The ideal Software Engineers with comprehensive expertise in software development, including proficiency in Java OOP principles, Java 8 features, multi-threading, web application development, RESTful services, and testing frameworks.
Key Responsibilities
* Apply advanced object-oriented programming (OOP) concepts in Java to develop robust, scalable solutions.
* Utilize Java 8 features such as streams, functional interfaces, and enhanced collection frameworks to improve code clarity and maintainability.
* Demonstrate expertise in multi-threading, including strategies to avoid deadlocks, optimize performance, and manage parallel processing.
* Develop and maintain web applications using MVC frameworks and implement dependency injection for modular and testable code.
* Design and implement REST APIs using JAX-RS, adhering to best practices for API consumption and development.
* Conduct unit testing with JUnit, Wiremock, and Mockito, transitioning seamlessly between frameworks like TestNG.
* Automate integration testing using tools like Cucumber and Gherkin for collaborative and efficient testing workflows.
* Specify and document APIs using OpenAPI Swagger to ensure clarity and consistency across teams.
* Maintain code quality using SonarQube and enhance application security with Red Hat SSO.
* Work with libraries and frameworks such as Feign, Mustache, Spring, Guice, Swagger, and Spring Boot to build scalable solutions.
* Orchestrate and host applications with Docker, Kubernetes, and AWS Auto Scaling Groups (ASG).
* Set up and manage CI/CD pipelines using tools like Bitbucket, Maven, Terraform, Jenkins, Ansible/Packer, and Kustomize.
* Leverage Kafka and SQS for message queuing and implement scheduling using Jenkins/Ansible.
* Perform comprehensive testing using Cucumber, JUnit, Selenium, and Postman.
Qualifications
* A minimum of 3 years of hands-on experience in Java software development, with proven leadership experience.
* In-depth knowledge of the listed technologies and tools.
* A proven track record of designing, implementing, and delivering sophisticated software solutions.
* Strong analytical and problem-solving abilities.
* Excellent communication and teamwork skills.
* This role offers an opportunity to work on cutting-edge technologies and contribute to impactful projects in a collaborative environment.