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.
Prepares the technical design of the more complex technology components within the module (one or more of client/ web presentation tier, server tier, data access and data model, integration component, package function customization).
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.
Implements (hands-on) the module components based on and industry best practices.
Mentors the team (people working on the module and other project team members) on technology concepts and the way and best practices for design, implementation and other processes.
Strong Development Skills in Java (JDK 1.5 OR 1.6)
Java 5 Features: Enums, Annotations, Generics, Auto boxing, Loops, Concurrent APIs etc.
Strong in software development process, test driven development.
Strong OO design skills/ implementation of design patterns.
Experience with Multithreading/ Data Structures and Algorithms is highly preferred (not a mandate though)
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), Frameworks/ ORM tools (Struts/ Springs/ Hibernate/ Toplink/ JPA/ Ibatis etc.), Presentation Layer (JSP/ Servlet)/ Web Services, Databases, Build and Release, Systems Integration, Agile, Estimations/ Planning, OOPS Concepts, Client Management/ Interaction.
Business Knowledge: Financial services domain experiences would be a plus.
a. Strong and innovative approach to problem solving and finding solutions
b. Excellent communicator (written and verbal, formal and informal)
c. Flexible and proactive/ self-motivated working style with strong personal ownership of problem resolution
d. Ability to multi-task under pressure and work independently with minimal supervision.
e. Ability to prioritize when under pressure