Java Microservices with GCP
deloitte
Job Description
Qualifications
Must Have Skills/Project Experience/Certifications:
- 4 - 7 years of hands-on experience in Java, J2EE, Springboot, Microservices
- Has built scalable, reliable, and secure backend services and APIs using Java and Spring Boot
- Experienced in developing high-performing React/Angular applications integrated with Spring Boot microservices
- Good understanding of Object-Oriented Programming concepts
- Should be able to provide correct definitions of Object-Oriented Programming Concepts and able to differentiate between them.
- Able to come up with class structure in adherence with object-oriented concepts
- Able to identify mistakes / deviation from object-oriented principles in a given scenario or piece of code
- Good theoretical understanding on Java 8+ concepts and hands on experience
- Well versed with: Exception Handling, Collections Framework, Threads, Streams, Lambdas etc.
- Ability to write working code for given scenarios in Core Java(Java 8+)
- Should be able to predict correct output of code snippets
- Able to write impeccable code for the given scenario, should be able to consider performance and security aspects while writing code and justify the logic he/ she has written
- Given multiple ways to fix a problem, should be able to select the best one and justify the same
- Good understanding of Micro Services concepts
- Develop and maintain RESTful APIs for various applications and services.
- Familiarity with SOAP services
- Explain best practices
- Able to ensure effective inter-service communication and data consistency
- Given a scenario, should be able to come up with high level design of micro services
- Good theoretical and hands-on knowledge of Spring framework and Springboot.
- Able to build simple projects and write working code without handholding.
- Able to explain important annotations
- Able to explain design principles in Spring and Springboot
- Able to explain bean creation process
- Able to explain transaction management
- Able to explain database access
- Extensive experience with Spring Security, Spring Cloud
- Aware of cross cutting concerns and how to address those using Spring framework
- Good understanding of RDBMS and SQL concepts, should be able to understand, troubleshoot and write complex SQL queries
- Understanding of forms of Normalization. Able to do table design in accordance with standards.
- Expertise in any of the ORM frameworks(e.g. Hibernate) and JPA.
- Should be able to write JPA queries
- Should be able to design entity data model for a given scenario
- Expertise in transaction management and performance optimization of ORM based code
- Understanding NoSQL concepts, familiarity with any of NOSQL databases. Able to explain prominent features of NOSQL databases.
- Should be able to write Junit test cases and ensure code coverage.
- Strong theoretical understanding and hands-on experience in basic advanced aspects of React/Angular concepts
- Good understanding of cloud computing and any of the cloud providers (AWS, Azure, GCP etc.).
- Familiar with deployment in cloud and containerized environments (Docker, Kubernetes)
- Good grasp of asynchronous communication and its standard implementations
- Hands-on experience with version control systems like Git. Able to explain version control process and best practices.
- Expertise in build-tools like MAVEN and Gradle. Able to address issues like vulnerability fixes.
- Expertise in CI/CD concepts and tools (Jenkins, GitLab CI, GitHub Actions). Should be able to explain the build process and its stages.
- Able to suggest appropriate design pattern for a given scenario and write code in accordance with it.
- Good grasp of AI concepts and recent trends:
- Able to explain concepts related to Natural Language Processing (NLP), Machine Learning, Deep Learning, Computer Vision etc.
- Able to think about practical project ideas and suggest implementation strategies
- Should have worked with Agile methodology and aware of best practices:
- Awareness of core principles, and application in projects
- Able to compare between traditional models with Agile and justify Agile adaptation
- Explain important Agile Metrics - velocity, cycle time, burndown charts etc. and usage of the same for process improvement
- Able to explain Sprint ceremonies and estimation process followed in the current project
- Should be able to explain the business