Senior Java Software Engineer
Job Type
Full Time
Responsibilities
Designing and developing high-volume, low-latency applications and delivering high-availability and performance.
Contributing in all phases of the development lifecycle.
Create technical documentation to support developed components through their lifecycles.
Management of the development team to be able to deliver on time and with quality.
Ensure the best possible performance, quality, and responsiveness of applications.
Implementing automated testing platforms and unit tests.
Mentor and coach development team Owning and leading your own projects.
Work effectively in a team environment and follow/develop product software development processes and standards.
Understand existing product and domain elements and work with business analysts to refine and implement new requirements.
Refactor and improve the code to keep the product maintainable and adaptable to new requirements Support existing and develop new functionality and components.
Support continuous improvement by investigating alternatives and technologies and presenting these for architectural review.
Candidates will need to be comfortable working in a fast paced and highly autonomous environment that can sometimes be subject to tight deadlines.
Core requirements
Have excellent working Java knowledge to a minimum of Java 8.
At least 5 years Java/Spring experience.
Strong experience in the Spring Framework (Core, Boot, MVC, Data, Security).
OOP and Design Patterns Shell Scripting (Bash)
Tech Lead experience
Microservice/Docker experience
Cloud experience; preferably AWS
OAuth experience
Have knowledge and experience designing and building large scale and high availability systems.
Awareness of SOLID & Clean Code principles
Sonarqube/Jacoco
Good experience using Agile processes
TDD/JUnit/Mockito/Cucumber. Unit and Integration Testing
Git/GitHub/JIRA
CI/CD experience
Knowledge in RDBMS and NOSQL technologies (MongoDB,Oracle,MySQL,PL/SQL)
Candidates will need to be comfortable working in a fast paced and highly autonomous environment that can sometimes be subject to tight deadlines.
Be a willing team player happy to knowledge share and improve development capabilities as well as being capable of receiving feedback and acting upon it.
Beneficial skills
Javascript/NodeJS/Python
Reactive experience using Spring WebFlux
Kubernetes
GCP/Azure
Redis
DynamoDB
Auth0
Flyway