Core JAVA - Very good understanding of Java Programming and Core Java Libraries including Collection, NIO2 and Concurrency.
Web Application Development - Very good working experience with Server-side web technologies, Spring MVC, ReactJS or Angular for presentation.
Microservices - Ability to design highly scalable applications by splitting them into logical modules interacting with each other over a microservice-based architecture.
Spring - Very good working experience with the Spring MVC framework. Development of Rest APIs and Controllers and their dependencies with Spring Beans and other Spring modules like Spring Security, AOP, Data, etc.
Algorithm and Data Structure - Good with arrays, stacks, queues and linked data structures. Algorithms based on Strings, Collections, Trees and Heaps.
Databases - Extensive hands-on experience with SQL and NoSQL databases. At least one NoSQL is a must.
SCM - Working knowledge with SCM tools. Preferably GIT, GitHub. Understanding of the usage and role of Jenkins, Ansible, Docker etc.
Background (essential and desired)-
Understanding Business Requirements - Ability to translate requirements into engineering stories. Ask queries to seek clarity and consider constraints of an existing system while designing a solution. (Not designing from scratch)
Agile Development - Experience with Agile Software Development practices using Scrum. Ability to guide the team and delivery on scrum practices.
Good communication and presentation skills
Working knowledge with NoSQLs like Cassandra, MongoDB
Experience with any application which extensively uses Caching. Any caching technology would do