Information Technology Careers | Embedded Software Engineer

Embedded Software 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 Embedded Software Engineer earns the following wages (national and state):

State

The average salary in North Carolina for those pursuing this career is $102,041

*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 $108,993

*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 the embedded computer software that supports specialized hardware for certain products, devices or systems. 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.

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 Carolina231+29.1%
Nationwide10767+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 Embedded Software 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.
  • Troubleshooting: Troubleshooting or dpanneuring is a form of problem solving, often applied to repair failed products or processes on a machine or a system.
  • Problem Solving: Problem solving consists of using generic or ad hoc methods, in an orderly manner, for finding solutions to problems.
  • 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:

  • Embedded Software: Working experience of Embedded Software, which is computer software, written to control machines or devices that are not typically thought of as computers. It is typically specialized for the particular hardware that it runs on and has time and memory constraints.
  • Software Engineering: Working experience with the application of engineering to the development of software in a systematic method.
  • C++: C++ (pronounced cee plus plus ) is a general-purpose programming language.
  • 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.
  • Linux: Linux (pronounced LIN-ks or, less frequently, LYN-ks) is a Unix-like computer operating system assembled under the model of free and open-source software development and distribution.

Distinguishing Skills

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

  • Firmware development: Working experience of Firmware development. In electronic systems and computing, firmware is a computer program that provides the low-level control for the device's specific hardware. Firmware can either provide a standardized operating environment for the device's more complex software (allowing more hardware-independence), or, for less complex devices, act as the device's complete operating system, performing all control, monitoring and data manipulation functions.
  • C (Programming Language): C (, as in the letter c) is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.
  • Mathworks Simulink: Simulink, developed by MathWorks, is a graphical programming environment for modeling, simulating and analyzing multidomain dynamic systems.
  • Board Bring-Up: Working experience of Board Bring-Up. Board bring-up is a phased process whereby an electronics system, inclusive of assembly, hardware, firmware, and software elements, is successively tested, validated and debugged, iteratively, in order to achieve readiness for manufacture.
  • Digital Signal Processing (DSP): Digital signal processing (DSP) is the use of digital processing, such as by computers, to perform a wide variety of signal processing operations.

Salary Boosting Skills

A professional who wishes to excel in this career path may consider developing the following highly valued skills:

  • Linux Kernel: Working experience of Linux Kernel, which is an open-source monolithic Unix-like computer operating system kernel.

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 years16%
3 to 5 years55%
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:

  • Embedded Software Engineer
  • Senior Embedded Software Engineer
  • Embedded Engineer
  • Embedded Developer
  • Embedded Software/Firmware Engineer

Similar Occupations

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