Information Technology Careers | Software Developer / Engineer

Software Developer / Engineer

Career Area: Information Technology

Occupation Group: Software Development

Salary

Percentile wages tell how much a certain percentage of an overall population in a geographic area or within a given industry or field makes. The percentile wage estimate is the value of a wage below which a certain percent of workers fall.

An example would be the 25th percentile, 25 percent of workers employed in that occupation earn less and 75 percent earn more than the estimated wage value. At the 75th percentile, 75 percent of workers employed in that occupation earn less and 25 percent earn more than the estimated wage value.

A typical Software Developer / Engineer earns the following wages (national and state):

State

The average salary in North Carolina for those pursuing this career is $99,347

*The salaries depicted here are representative of the range of salaries posted in job listings over the past year. Living wage in North Carolina is $30,000.

National

The average salary in the United States for those pursuing this career is $99,438

*The salaries depicted here are representative of the range of salaries posted in job listings over the past year. Living wage in North Carolina is $30,000.

What Does a Professional in this Career Do?

Designs or improves computer software. Oversees the entire software development process. Analyzes customer or user needs, designs programs, writes code or instructs computer programmers, tests design, and documents programs. May assist with upgrades or maintenance. May specialize in the design of computer applications or computer systems.

Employment Trends

The job demand and job growth statistics shown here were derived from job posts over the past year. Expected job growth projections are extrapolated from year-over-year job post listing history.

Job demand and job growth is expected at the following rates:

LocationGrowth
North Carolina15460+29.1%
Nationwide419197+25.6%

Skills

A professional in this position typically utilizes the following skills in the course of everyday work in this exciting and challenging field:

Baseline Skills

The following are baseline skills every Software Developer / Engineer is expected to have in order to experience success in this field:

  • Communication Skills: The ability to convey information to another effectively and efficiently.
  • Teamwork / Collaboration: Experience working in collaborative efforts with a team to achieve a common goal or to complete a task in the most effective and efficient way.
  • Problem Solving: Problem solving consists of using generic or ad hoc methods, in an orderly manner, for finding solutions to problems.
  • Troubleshooting: Troubleshooting or dpanneuring is a form of problem solving, often applied to repair failed products or processes on a machine or a system.
  • Writing: Experience expressing business messages effectively in written form. This may include planning drafting and revising as necessary.

Specialized Skills

These skills are specific to working in this career:

  • Software Engineering: Working experience with the application of engineering to the development of software in a systematic method.
  • Software Development: Software development is the process of computer programming, documenting, testing, and bug fixing involved in creating and maintaining applications and frameworks resulting in a software product.
  • Java: Java is a set of computer software and specifications developed by Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cross-platform computing environment.
  • SQL: SQL ( ESS-kew-EL or SEE-kwl, Structured Query Language) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).
  • JavaScript: JavaScript (), often abbreviated as JS, is a high-level, dynamic, weakly typed, object-based, multi-paradigm, and interpreted client-side programming language.

Distinguishing Skills

Any Software Developer / Engineer that possesses the following skills will stand out against the competition:

  • Web Development: Web development is a broad term for the work involved in developing a web site for the Internet (World Wide Web) or an intranet (a private network).
  • Continuous Integration (CI): Working experience of Continuous Integration (CI), which is the practice in software engineering of merging all developer working copies to a shared mainline several times a day.
  • Software Architecture: Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures.
  • JavaScript Object Notation (JSON): In computing, JavaScript Object Notation or JSON ( JAY-sn), is an open-standard file format that uses human-readable text to transmit data objects consisting of attributevalue pairs and array data types (or any other serializable value).
  • TypeScript: Working experience of TypeScript, which is an open-source programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript, and adds optional static typing to the language. TypeScript may be used to develop JavaScript applications for client-side or server-side (Node.js) execution. TypeScript is designed for development of large applications and transpile to JavaScript. As TypeScript is a superset of JavaScript, existing JavaScript programs are also valid TypeScript programs.

Experience

This position typically requires the following level of experience. The numbers presented in the pie charts below were derived from actual job posts over the past year. Not all job postings list experience requirements.

Experience Required%
0 to 2 years22%
3 to 5 years51%
6 to 8 years18%

Many of the programs offered through NC State are designed for working professionals who need additional credentials to enhance existing work experience.

Students who do not have the expected level of experience may wish to look into internship and employment opportunities.

Common Job Titles

It is possible to find work in this field in positions commonly listed as the following job titles:

  • Software Engineer
  • Software Developer
  • Full Stack Developer
  • Junior Software Developer
  • Entry Level Software Engineer

Similar Occupations

If you are interested in exploring similar occupations, you may want to research the following job titles: