Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system. 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 other departments on project status, proposals, or technical issues, such as software system design or maintenance. Design, develop and modify software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design. 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 (For this job offer, a bachelorâÂÂs degree in computer science or its related major is required).