- Should be very strong in Core Java (special attention to Collection concepts and implementations etc.)
- JDK 8 vs 17 or whichever version the candidate has used, main differences / advantages between them should be clear.
- Proficient in SpringBoot and Spring core concepts (special attention to configurations and different popularly used annotations - @Primary, @ConditionalOnProperty/@ConditionalOnExpression, @PropertySource (custom property file loading) , concepts of Filters/Interceptors etc.)
- Git commands/concepts(rebasing, merge fetch, pull etc.)
- CI/CD concepts. Basic overview of a Jenkins file, how to do a deployment (pulling from Git, running code quality checks, deploying the image to different env/blue-green or canary etc.
- How the release process works.
- Use of JMeter/Postman
- Basic cloud concepts- Docker and k8 concepts (Dockerfile (how do you containerise an app and how does a dockerfile looks like, what is the advantage of containerisation etc.),
k8s - hpa, configmap, secrets, services, ingress etc.) - Candidate's last project's architecture. Experience in System Architecture, Cloud Deployments, Containerization, Authentication/Authorization Systems, and Protocols. Experience in scaling solution in a multi-cloud environment.
- Proficiency in Web Service design using RAML, YAML (with JSON) and ODATA.
- Experience in building common services framework for Logging, Error Handling, Auditing, Policy Management, Authentication, and Authorization.
- Proficiency in building Microservices using Java, Springboot, GraphQL, etc.
- Good understanding of Microservice architecture with experience in containerized deployment using MS Azure.
- Experience in integration with Databases (Cassandra and RDBMS) and Streaming platforms (Kafka). Continuous integration and Continuous deployment using Maven, Jenkins, Docker, Kubernetes and Springboot.
Good to have-
knowledge on Graphql or Cassandra.