Mandatory Skills :
Strong experience in Core Java, Spring, JSF, and Hibernate/Spring Data JPA
Experience in SOA based architecture, Web Services (Apache CXF/JAXWS/JAXRS/SOAP/REST)
Experience in multiple application and web servers (JBoss/Tomcat/Websphere)
Experience in front-end frameworks (AngularJS/Backbone/Knockout/Handlebar)
Experience in messaging (JMS/WebSphere MQ/Active MQ)
Experience in continuous integration (Jenkins/Sonar/Nexus/PMD)
Hands on experience of RDBMS like SQL Server, Oracle, MySQL, PostgreSQL
Experience in using profiler tools (JProfiler/JMeter)
Have a good understanding of UML and design patterns
Optional/Preferred Skills :
Knowledge of ESB
Knowledge of NoSQL databases (Hadoop/Cassandra/MongoDB)
Experience with mobile, SaaS and cloud based development
Requirements Elicitation & Understanding:
Understand various disparate views of the system.
Analyze system requirements and map to specific components/libraries.
Define, understand and be able to analyze the non-functional requirements of the project.
Architecture & Design :
Be able to envision the overall solution for defined functional and non-functional requirements; and be able to define technologies, patterns and frameworks to materialize it.
Design and develop the framework of the system and be able to explain choices made. Also write and review design document explaining overall architecture, framework and high level design of the application.
Create, understand and validate WBS and estimated effort for given module/task, and be able to justify it.
Be able to define in-scope, out-of-scope and taken assumptions while creating WBS and effort estimates.
Be able to identify and integrate well over all integration points in context of a project as well as other applications in the environment.
Define guidelines and benchmarks for NFR considerations during project implementation.
Do required POCs to make sure that suggested design/technologies meet the requirements.
Review architecture and design on various aspects like extensibility, scalability, security, design patterns, user experience, NFRs, etc., against a predefined checklist and ensure that all relevant best practices are followed.
Be able to give solution to any issue that is raised during code/design review and be able to justify the decision taken.
Possess/acquire strong troubleshooting skills and be interested in performing troubleshooting of issues in different desperate technologies and environments.
Be able to understand and relate technology integration scenarios and be able to apply these learnings in complex troubleshooting scenarios.
Be able to help teams in complex and unusual bugs and troubleshooting scenarios.