Develop, create, and modify general computer applications software or specialized utility programs. Analyze user needs and develop software solutions. Design software or customize software for client use with the aim of optimizing operational efficiency. May analyze and design databases within an application area, working individually or coordinating database development as part of a team. May supervise computer programmers.
<ul><li>Modify existing software to correct errors, allow it to adapt to new hardware, or to improve its performance.</li><li>Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.</li><li>Confer with systems analysts, engineers, programmers and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces.</li><li>Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.</li><li>Store, retrieve, and manipulate data for analysis of system capabilities and requirements.</li><li>Develop and direct software system testing and validation procedures, programming, and documentation.</li><li>Supervise the work of programmers, technologists and technicians and other engineering and scientific personnel.</li><li>Determine system performance standards.</li><li>Coordinate software system installation and monitor equipment functioning to ensure specifications are met.</li></ul>