Perform all phases of software development life-cycle, including application design, programming, testing (unit and system level), internal documentation of