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.


Salary: $53,000 – $140,000

Education: 2&4 Year College/On-the-Job Training

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 customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.

*This list of tasks does not encompass all tasks that may be applicable to this job.


See how this career’s salary aligns with your lifestyle.


Learn more about this career and more below.