Research, design, and develop computer and network software or specialized utility programs. Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Update software or enhance existing software capabilities. May work with computer hardware engineers to integrate hardware and software systems, and develop specifications and performance requirements. May maintain databases within an application area, working individually or coordinating database development as part of a team.
Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.
Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects.
Confer with systems analysts, engineers, programmers and others to design systems and to obtain information on project limitations and capabilities, performance requirements and interfaces.
Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.
Coordinate installation of software system.
Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design.
Determine system performance standards.
Develop or direct software system testing or validation procedures, programming, or documentation.
Modify existing software to correct errors, adapt it to new hardware, or upgrade interfaces and improve performance.
Monitor functioning of equipment to ensure system operates in conformance with specifications.
Obtain and evaluate information on factors such as reporting formats required, costs, or security needs to determine hardware configuration.
Prepare reports or correspondence concerning project specifications, activities, or status.
Recommend purchase of equipment to control dust, temperature, or humidity in area of system installation.
Specify power supply requirements and configuration.
Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
Supervise and assign work to programmers, designers, technologists, technicians, or other engineering or scientific personnel.
Supervise the work of programmers, technologists and technicians and other engineering and scientific personnel.