The candidate should have a demonstrable understanding of software principles, theories, and concepts related to software engineering (including software development lifecycle and software development process), design patterns and Object Oriented analysis, design, and programming, The selected candidate will perform the activities involved with the requirements gathering, design, development, documenting, interfacing, integration, testing, maintenance, and modification of complex software applications