The candidate should have a demonstrable understanding of software principles, theories, and concepts related to software engineering including software development lifecycle, software development process, design patterns and Object-Oriented concepts