Highly proficient in object-oriented programming in Java. Should be able to articulate design patterns and principles and their application. Should be familiar with articulating time and space complexity of programs.
Should be comfortable with Java 8 and above features. Knowledge of Multi-threading, Java Streams, Lambdas, Functional Interfaces, Comparators, Exception Handling, CompletableFuture.
Spring Boot
Proficient in core concepts of Spring Boot like Inversion of Control, Dependency Injection, AOP, Component Scanning, Bean Scopes, Bean Lifecycle, Spring Boot Annotations, REST API Exception Handling, JPA.
Experience in test-driven development (TDD), integration testing, and end-to-end testing using Junit, Mockito etc.
Microservices
Open API standards, experience with Message Brokers, RDBMS, NoSQL database, Caches, common microservice architectural patterns.
Good To Have Skills
Experience in any cloud service provider application/service architecture, including deployment and scaling.
Experience with Continuous Integration Delivery models such as Azure DevOps, including Git, CI/CD pipelines and IaC.
Hands on experience/knowledge in Cloud Services, DevOps, Docker images, containers, Kubernetes, distributed cache (Redis), distributed APM solutions.
Hands on experience with front-end technologies like Angular, React, JavaScript, or TypeScript.
Demonstrable understanding of infrastructure and application security management, in the context of developing and operating large-scale multi-tenant systems.
Other Requirements
The ideal candidate would be a self-starter, with an eye to detail. They would have worked in a creative and problem-solving environment. They would be a continuous learner and a great team player.