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
National
The average salary in the United States for those pursuing this career is $99,438
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:
Location | Growth | |
---|---|---|
North Carolina | 15460 | +29.1% |
Nationwide | 419197 | +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 years | 22% |
3 to 5 years | 51% |
6 to 8 years | 18% |
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: