Execute full lifecycle software development.
Write well designed, testable, efficient code.
Produce specifications and determine operational feasibility.
Integrate software components into a fully functional software system.
Develop software verification plans and quality assurance procedures.
Document and maintain software functionality.
Tailor and deploy software tools, processes and metrics.
Comply with project plans and industry standards.