What does a successful Senior Java Developer do?
This role demands a developer proficient in both microservices and monolithic architectures, capable of driving complex projects in a fast-paced environment. You will have deep expertise in some if not all of the following: Spring Boot, Spring Security, GCP cloud technologies, containerization (Docker, Kubernetes), Jenkins for CI/CD, Git for version control, and agile methodologies such as Scrum. This position requires leadership, mentoring capabilities, and the ability to contribute significantly to architectural decisions.
What you will do:
- Lead the design, development, and maintenance of Java applications, including both microservices and monolithic systems and participate in the full software development lifecycle (design, coding, testing, deployment).
- Architect and implement complex solutions using Spring Boot, Spring Batch and potentially Spring Security; contribute to system architecture and design decisions and drive technical innovation.
- Deploy and manage applications on GCP cloud infrastructure.
- Implement and manage containerization using Docker and Kubernetes.
- Develop and maintain CI/CD pipelines using Jenkins.
- Utilise Git for version control and collaboration, and conduct code reviews.
- Work with databases (SQL and NoSQL), optimize queries for performance, and demonstrate a strong understanding of database concepts.
- Participate in Agile ceremonies (daily stand-ups, sprint planning, retrospectives).
- Troubleshoot and resolve complex technical issues, and provide root cause analysis.
What you will need to have:
- Extensive experience with Java programming principles and object-oriented design (+ 8 years).
- Expertise in Spring Boot, Spring Security, and other Spring ecosystem components.
- Proven experience with both microservices and monolithic application development.
- Strong understanding of GCP cloud technologies and hands-on experience with Docker and Kubernetes.
- Proficiency in designing and implementing RESTful APIs.
- Strong database skills (SQL and NoSQL) and experience with data modeling.
- Extensive experience with Git and CI/CD pipelines using Jenkins.
- In-depth knowledge of software development principles and best practices.
- Experience working in a Scrum Agile environment.
- Bachelor's or Master's degree in Computer Science or a related field (or equivalent practical experience).
- Strong communication, collaboration, and leadership abilities along with excellent problem-solving, debugging, and troubleshooting skills.
#LI-1IB
R-10359136