Engineer 3 - Software will work as a mid-senior level member of a software development team, responsible for the development, implementation and post deployment support of enterprise applications. In this role, the Engineer 3 Software will work under the supervision of Technical Team lead or Senior Engineer. As a member of the team, the Engineer 3 - Software will participate in all phases of the Software Development Life Cycle (SDLC). RESPONSIBILITIES: Architect moderate to advanced system solutions, solicit and incorporate inputs from technical and operational teams and document for consumption of development and testing teams. Develop advanced software programs, with clear and succinct code documentation, that meet the written and oral functional requirements provided by customer. Fix defects in the home grown applications or third party software according to written and oral specifications. Create scripts to create and modify database objects. Work on deliverables, such data analysis, client report requests etc. With minimal inputs and guidance from Development Manager or senior developers. Actively participate and contribute in SDLC activities such as solution design, work effort estimation, assisting peers with technical challenges and code reviews. Works to understand the business processes and develop unit and integration test scenarios in accordance with system requirements and business process changes. Provide expert advice to the testing team to create test data manually and/or systematically to test software programs. Perform production support activities such as monitor system processes, evaluate the outcome of system processes, work through system exceptions, and create processes to monitor and report on the overall system health. Work independently to understand the assigned work, deliver on agreed upon dates and raise issues/risks in a timely manner in case of risk to deliverables. Create/modify artifacts and deliverables expected from the SDLC and change management process such as project charter, proposed solution documents etc. Follow the SDLC and change management processes adopted by the organization. Participate in change management meetings to provide impact assessment of requested change, update the defect tracking system with most up to date information and perform release management tasks as assigned by Development manager. SKILLS & EXPERIENCE:(a) Advanced proficiency in Object Oriented (OO) Programming: Advanced skill in OO programming languages, with advanced ability in at least one OO language (preferably C# .NET) is required.(b) Advanced understanding in complex concepts of data organization: Advanced skills with RDBMS .(c) Advanced understanding of SDLC such as Waterfall, AGILE SCRUM etc.(d) Advanced knowledge of information systems design principles and current/emerging trends in this field is required.(e) Knowledge of policies, standards, procedures, and techniques used for application development is required.(f) Strong ability to think logically and structurally, and have attention to detail is required.(g) Strong Analytical skills and strong Communications skills, both written (with emphasis on technical documentation) and verbal, are required.(h) Ability to work effortlessly and efficiently in high performing and self-governing teams.(i) Ability to work independently on most size projects.Technical Skills and Desired Proficiency:(a) C# .NET Expert(b) VB .NET Intermediate(c) TSQL Advanced(d) ASP.NET Web Forms Expert(e) ASP.NET MVC Expert(f) Custom MVC implementations Expert(g) WPF desktop apps Expert(h) WinForms desktop applications Expert(i) UML Fundamental Awareness(j) SVN Fundamental Awareness(k) Jenkins Fundamental Awareness(l) JIRA Fundamental Awareness EDUCATIONAL REQUIREMENTS: Bachelor s Degree in Computer Engineering, Computer Science or a related field with 3 to 5 years of relevant experience or Master s Degree in Computer Engineering, Computer Science or a related field with 2 to 4 years of relevant experience.