Conducts multidisciplinary research and collaborates with equipment designers and/or hardware engineers in the planning, design, development, and utilization of electronic data processing systems for product and commercial software. Determines computer user needs; analyzes system capabilities to resolve problems on program intent, output requirements, input data acquisition, programming techniques and controls; prepares operating instructions; designs and develops compilers and assemblers, utility programs, and operating systems. Ensures software standards are met. Analyzes user needs and software requirements to determine feasibility of design within time and cost constraints. Confers with systems analysts, engineers, programmers and others to design system and to obtain information on project limitations and capabilities, performance requirements and interfaces. Designs, develops and modifies software systems, using scientific analysis and mathematical models to predict and measure outcomes and consequences of design. Coordinates software system installations and monitors equipment functioning to ensure specifications are met. Modify existing databases and database management systems. Write and code logical and physical database descriptions and specify identifiers of database to management system or direct others in coding descriptions. Work as part of a project team to coordinate database development and determine project scope and limitations. Review project requests describing database user needs to estimate time and cost required to accomplish project.