Providing technical expertise for every phase of the project lifecycle from concept development to solution design, implementation, optimization and support.
Interacts with a set of clients (client senior developers and architects) to create technology specifications from business requirements for one of the modules within the project
Assists the architect in articulating the pros and cons of using a certain technology stack or component or design pattern versus another to the clients and project team and drives selection of technologies, designs to come up with the optimal architecture
Drives the performance tuning, re-design and re-factoring for a module
Contributes to designing and implementing the build, release process as well as system configuration and deployment characteristics of the application. Understands, and practices Continuous Integration.
Implements (hands-on) the module components based on industry best practices.
Mentors the team (people working on the module and other project team members) on technology concepts and best practices for design, implementation and other processes
Good in Data Structures, Algorithms and I/O.
Strong Development Skills in Java (Primarily JDK5+, but latest the better, Java 8)
Strong in software development process, test driven development.
Strong OO design skills & implementation of design patterns.
Experience with either Multithreading alternative concurrency paradigms is must
Good communication skills and ability to work with global teams to define and deliver on projects.
Strong experience with J2EE, Core Java (Serialization, Synchronization, Concurrency, Reflection, enums, Annotations, Generics, Loops etc), Frameworks/ORM tools (Struts/ Springs/ Hibernate/ toplink/ JPA/ Ibatis etc.),
Presentation Layer (JSP/ Servlet/ Spring MVC/ Rails/ Grails/ Play/ Wicket/ JSF/any), Web Services, REST, Databases(RDBMS/ NoSql/ Key/ Value/any)
Build and Release, Systems Integration, Agile, Estimations/Planning, Client Management/Interaction.