Associate Principal Engineer, Java

Nagarro
Summary
Join Nagarro, a Digital Product Engineering company, as a highly experienced Java developer with 11+ years of experience. You will be responsible for designing, developing, and maintaining high-quality software applications using Java 8 or higher, Spring Boot, and various other technologies. Your expertise in cloud platforms (Azure, AWS, GCP), Agile/DevOps methodologies, and CI/CD pipelines will be crucial. You will collaborate with clients and stakeholders, lead UAT and production rollouts, and contribute to a positive and collaborative team environment. A Bachelor's or Master's degree in Computer Science or a related field is required. The role involves a wide range of responsibilities from code writing and review to troubleshooting and resolving complex bugs.
Requirements
- Total experience 11+years
- Strong working experience with architecture and development in Java 8 or higher
- Strong expertise in Spring Boot, OpenShift/Kubernetes, Docker, NoSQL, and RDBMS
- Deep understanding of OOP, design patterns, asynchronous programming, and multithreaded environments
- Proven experience in SDLC and Agile development methodologies
- Skilled in designing, testing, troubleshooting, maintaining, and integrating web services (RESTful and Microservices)
- In-depth knowledge of cloud platforms (Azure, AWS, GCP)
- A good understanding of UML and design patterns
- Experience working in Agile/DevOps environments and implementing CI/CD pipelines
- Experience with version control systems like GitHub and GitLab
- Ability to work in TDD environment and develop robust unit tests including edge cases
- Excellent communication skills and ability to interact with clients and stakeholders
- Bachelor’s or master’s degree in computer science, Information Technology, or a related field
Responsibilities
- Writing and reviewing great quality code
- Understanding functional requirements thoroughly and analyzing the client’s needs in the context of the project
- Envisioning the overall solution for defined functional and non-functional requirements, and being able to define technologies, patterns and frameworks to realize it
- Determining and implementing design methodologies and tool sets
- Enabling application development by coordinating requirements, schedules, and activities
- Being able to lead/support UAT and production roll outs
- Creating, understanding and validating WBS and estimated effort for given module/task, and being able to justify it
- Addressing issues promptly, responding positively to setbacks and challenges with a mindset of continuous improvement
- Giving constructive feedback to the team members and setting clear expectations
- Helping the team in troubleshooting and resolving complex bugs
- Coming up with solutions to any issue that is raised during code/design review and being able to justify the decision taken
- Carrying out POCs to make sure that suggested design/technologies meet the requirements