BS Degree in Computer Science or related experience
6 years or more of experience in IT Application Development
6 years of strong hands-on experience with Java Enterprise Edition (Java/J2EE) and web technologies o Spring, WebSphere, JBoss, service-oriented architectures (SOA), RESTful Web Services, HTML, Java Server Pages (JSPs), Servlets, jQuery, extJS, Enterprise Java Beans (EJBs), design patterns such as MVC, Command, Session Façade, DAO, WebSphere MQ, *QueueManager, Queues configurations, troubleshooting Message latency and failover
6+ years of experience with SPRING frameworks, Rational Software Architect is required
4+years working with Oracle, including writing SQL and PL/SQL
6+ years of experience with automated unit testing technologies (Such as JUnit, Spock, or similar)
6+ years of experience with mock data frameworks for unit testing
3+ years of experience specifying, designing and developing web service applications
Demonstrated success in building
Design & Analysis:
Create the HL Design and detailed design document with the support of architects for the assigned scope;
Review all deliverables created by the Developer;
Study non functional requirements and design for NFR as required;
Understand the interdependencies of the various components in work packages being developed;
Create detailed design and assign to developer; provide input to the Project Manager / Technical Lead to create the project plan from a technical perspective; support development of proof of concept as designed by Designer / Solution Architect; initiate development environment setup;
Provide demo to customer for early feedback; create quality check points for all deliverables.
Develop tier coding, business layer coding, interface development, service development, creation of stored procedures, etc. as applicable for the work package / project;
CTS and customer spectific coding coding standards, guidelines and best practices;
Understand the database concepts and write efficient queries; raise clarifications / issues / concerns regarding work output to the lead;
Seek review from peer / technical lead periodically; participate in setup activities for required environment setup; deploy code build in testing environment; conduct peer review during design, coding and testing;
Complete documentation as per the scope; prepare guidelines and checklist for development and testing activities;
Provide feedback to design team; share feedback with developers to check if code is as per requirements;
Incorporate changes as per feedback; provide necessary and timely status updates to the Supervisor / Technical Lead;
Highlight any potential risks to the leads;
Update traceability matrix for the work package developed; mentor the Developers to help them solve technical difficulties in the course of coding;
Follow the SCM policies set for project; raise clarifications / issues / concerns regarding work output to the lead on time; provide necessary and timely status updates to the Supervisor / Technical Lead;
Proactively highlight any potential risks to the lead; provide support on process audit activities; adhere to process and tools (usage of cognizant 2.0, awareness of Quality Management System).
Develop comprehensive unit testing cases and unit test plans; conduct comprehensive unit testing; create unit test logs;
Prepare and support in preparation of unit test strategy; plan document and data requirements; automate unit testing and contribute to automation of unit testing;
Conduct peer review of unit test cases; perform developer integration testing by integrating the components;
Review test cases as prepared by the Developer.
Participate in defect triage meetings; conduct RCA for defects identified;
Rework on the code based on review comments from code review / defects raised in unit testing, peer testing, SIT, UAT testing or any other relevant testing phases.
Assist in transition of knowledge and to support organization with any defects raised post production as required.
Process Improvements and Adherence:
Participate in innovation sessions; implement process improvements to reduce manual intervention (e.g. automation); support on process audit activities;
Generate ideas to provide value-add and share the same with the Technical Lead;
Adhere to process and tools (usage of cognizant 2.0, awareness of Quality Management System, IDE etc.).
Contribute towards updating knowledge assets, user manual, online help document, installation manual / scripts;
Conduct knowledge transfer sessions for new joiners in the project team; conduct training through academy (if approved);
Guide and mentor team junior members from a technical perspective to ensure quality delivery of the components; contribute / search / reuse all types of assets from repository.
Engage with team; resolve / conflict management within team; conduct internal trainings for developers within team.