Developing and maintaining Java services with accompanying unit tests and acceptance tests.
Working with architects to design the best solutions to challenging problems.
Participating in Agile ceremonies such as backlog refinement, sprint planning, sprint retrospectives, and daily scrums.
Fixing bugs and issues raised by QA engineers or found in production.
Monitoring the performance of software components and services in production systems.
Participating in code reviews
Key Skills
A Bachelor's degree in computer science, computer engineering, or a related field.
Proven experience, ideally using Spring Boot and related technologies (Spring Cloud, Spring Data, Spring REST, etc.);knowledge of Javascript or Typescript would be considered an asset. Strong knowledge of cloud native development concepts, microservices architecture, and distributed systems.
Excellent knowledge of REST API design principles and practices.
A solid understanding of multi-threaded software development.
Strong knowledge of SQL and NoSQL data access and persistence (ideally some of MariaDB, MongoDB, Elasticsearch, Redis).
Experience using Git and the Git feature branch workflow or trunk driven development.
Knowledge of Jira as the primary tool to manage the SDLC.
Strong knowledge of Docker and containerisation technologies. Knowledge of Kubernetes is desirable.
Experience developing unit tests using Junit 4/5 and mocking tools such as Mockito.
Experience using asynchronous messaging techniques using message queue systems such as RabbitMQ.
Experience using (and ideally developing) CI/CD pipelines & relevant automation.
Excellent communication and collaboration skills, excellent command of the English