Browsers that can not handle javascript will not be able to access some features of this site.
Skip Navigation
Michigan Career PortalMichigan.gov, Official Portal for the State of Michigan
Pure Michigan - MichiganAdvantage.org Pure Michigan - Michigan Jobs & Career Portal
Michigan.gov HomeCareers Home | Contact Us | MI Careers FAQ
Printer Friendly Version Printer Friendly   Text Only Version Text Version  Share this page.
#434 - COMPUTER SOFTWARE ENGINEER

A Michigan Jobs and Career Portal service.

Job Duties

Working Conditions/Requirements

Education & Preparation

Job Openings & Entry Method

Earnings & Advancement

Employment & Outlook

 

Sources of Additional Information


Software Engineers design, develop, and test software such as operating systems, network management, and database management software for computer firms and/or business clients in areas such as scientific research, communications, aerospace, or industrial engineering.


JOB DUTIES

Software Engineers may:

Consult with key customers concerning the design and maintenance of a software system

Use scientific analysis and mathematical models to predict and measure outcome and consequences of design

Consult with hardware engineers and staff such as industrial designers and manufacturing operations personnel, to evaluate the interface between hardware and software performance of the overall system

Evaluate the interface between hardware and software and operational/performance requirements

Analyze the time and cost requirements for the development of the software

Design general computer application software such as spreadsheet, word processing, graphics, and communications software products

Design software in areas such as communication/networking, device drivers, embedded systems, graphics hardware, or games development

Use object-oriented programming to design software

Develop WAN (wide area network) or LAN (local area network) connectivity and network management software products

Develop file transfer or network protocol (instructions so that files can be transferred easily between computers that are in a "network" or linked together) such as TCP/IP or IPX/SPX

Oversee projects and supervise other workers such as programmers, analysts and technicians

Coordinate the installation of software systems

Develop test strategies or devices to test and debug new software systems

Create and maintain technical documentation

Click here  to see a video about a Software Engineer.

The tools and equipment used may include:

* Computer languages

* Monitors

* Anti-span systems

* Firewalls

* Network systems

* Modems

* Reference guides and manuals

* Scanners

* CD ROM drives

* File Servers

* Diagnostic computer programs

* Printers

* PC's (with Internet access) and mainframe computers

*Personal Digital Assistants (PDAs)


OCCUPATIONAL SPECIALTIES

Software Engineers may specialize in these areas:

030.062-010 OPERATING SOFTWARE ENGINEERS consult with hardware engineers and other engineering staff to evaluate interface between hardware and software, and operational performance requirements of overall system. Formulates and design software system, consults with customers concerning maintenance and/or installation of software system.

Software Engineers research, design and develop computer software systems, in conjunction with hardware product development. They analyze software requirements to determine feasibility of design with time and cost constraints.

Occupations which involve computers and programming are often highly related to each other, with persons in one field often performing the tasks of another.

You may find it helpful to explore the following Career Exploration Scripts:  


                       [back to top]


WORKING CONDITIONS AND REQUIREMENTS

Software Engineers work in pleasant offices which are well-lighted and ventilated. Much of the work is done at a computer screen using a keyboard. Most software engineers have a 40-hour work week. Some may work at home or away from the office part of the week. Software Engineers who work as consultants may travel frequently to develop software for business clients located across the country.

One of the pressures of the job is keeping current with continuously developing technologies. Companies may not feel that they are responsible for providing training for their employees to keep current with technological changes. Companies may prefer to hire outside their ranks to bring in people with newer skills and competencies. Again, this is determined by the setting.  Most large software and hardware companies typically pay for updating staff skills because they feel it is an advantage for their company.

Corporations are demanding that people have excellent technical skills and also some of the "soft" skills that make computer personnel more aware of business problems and business know-how. This has not resulted in a rush to hire liberal arts graduates, but rather that corporations seek out people with both types of skills. 

Software Engineers design specifications and diagrams for programmers to use. The programmer classification is the entry-level occupation while the Software Engineer is a higher skill level. Software Engineers must have the ability to produce a good design that is easy to use and efficient. Business applications programming usually involves recordkeeping for inventory or finances. For example, a manufacturing firm may need a program to keep track of where specific parts are located on the factory floor (real-time factory floor data collection), whereas an insurance company may require its form-processing software upgraded to be more efficient. Software Engineers work on graphics for business presentations, computer games, animation, or do graphics modeling for flight systems. Companies frequently need a CAD (Computer Assisted Drafting) program altered to meet their needs. Software Engineers may also provide databases that organize scientific information for research purposes.

Software Engineers duties change depending on the work environment. If they work for large software companies they will be involved in large-ranging projects, but perform a small-defined role within this type of project. For example, a Graphical User Interface Designer or GUI Designer will determine the layout of the screen and what functions each pull-down menu item or button icon will perform for the user. The person that designs the computer actions that occur when information is actually entered by means of icons or menus may be an entirely different Software Engineer. A Software Engineer working within a smaller company (which includes smaller IT related companies), may be the only Software Engineer on staff.  As a result, the Software Engineer may have sole responsibility for the software programming needs of a large department or the entire corporation.

Software Engineers may join professional organizations such as the Association for Computing Machinery or the Institute for Certification of Computer Professionals . Members of such organizations pay periodic fees.

You should prefer:

  • Activities of a logical, scientific and technical nature
  • Activities which involve the use of math and statistics
  • Activities which bring recognition or appreciation from others
  • Activities which require self-motivation

You should be able to:

  • Think logically in a clear and organized manner
  • Understand and use high level mathematics
  • Compare/see differences in size/shape/form of objects/lines/figures
  • Perform a variety of duties which may change often
  • Work within precise limits or standards of accuracy
  • Rate information by using personal judgment or standards which can be measured or checked
  • Plan/direct/control an entire activity and the activities of others
  • Communicate effectively both orally and in writing
  • Make decisions
  • Analyze and solve problems based on accurate information

Math Problem You Should Be Able to Solve:

Find the derivative of the following polynomial at the indicated point y=3x^8, x=3

Reading Example You Should Be Able to Read and Comprehend:

The top-down approach starts at the top of the structure and it then proceeds to test components at lower levels in the hierarchy. Bottom-up integration requires "drivers". Top-down requires "stubs".

Writing Example You Should Be Able to Produce:

Prepare a written analysis, proposal and definition of all user requirements and testing results.

Thinking Skill You Should Be Able to Produce:

Should be able to demonstrate excellent analytical skills and be a detail oriented problem solver when testing software applications.

               [back to top]


EDUCATION AND PREPARATION OPPORTUNITIES

NOTE: An Associate Degree (two years of study beyond high school) or a Bachelor's Degree (four years of study beyond high school) may qualify a person for this occupation.

The following education and preparation opportunities are helpful in preparing for occupations in this Career Exploration Script:

***SCHOOL SUBJECTS***

1000 COMPUTERS , 2200 MATH

***VOCATIONAL EDUCATION PROGRAMS***

There are no Vocational Education Programs related to this Career Exploration Script.

***POSTSECONDARY PROGRAMS***

214 COMPUTER SCIENCE

Programs in Computer Science, Electrical/Electronic Engineering, Mechanical Engineering, Management Information Systems, and Physics provide opportunities to gain the knowledge and skills needed for becoming a Software Engineer.

Courses vary from school to school but may include:

Algebra/Calculus

Artificial Intelligence

Physics

Robotics

Programming

Human-computer Communication

Object-Oriented Systems

Databases/Information Retrieval

Operating Systems

Computer Architecture

Data Structures/Algorithms

Software Engineering

Microprocessor Systems

Computer Networks and Interfacing

214 COMPUTER INFORMATION SYSTEMS

Programs in Computer Information Systems provide opportunities to gain the knowledge and skills necessary for employment in information systems and management positions. Information systems involve the entire spectrum of organizational activities, technology, and people. Information systems support an organization's operations, management, and decision-making functions. Individuals who teach at the secondary school level must have a Michigan Teaching Certificate .

Courses vary from school to school but may include:

Economics

On-Line Programming

System Design

Financial Management

System Analysis

Management Accounting

Management Science

System Implementation

Data Base Concepts

Computer Operating System

Management Science

Introduction to Computers

Introduction to Computers Information Systems

  Search for a College and/or Instructional Program    

***APPRENTICESHIP OPPORTUNITIES***

There are no Apprenticeships related to this Career Exploration Script.

***MILITARY TRAINING PROGRAMS***

Please check the Military website at   http://www.todaysmilitary.com/

COMPUTER SYSTEMS OFFICERS

The military uses computers in almost every aspect of its operations. The services have about 24,000 computer systems specialists.  Military computers are used to process payroll and personnel information, control the targeting and firing of weapons systems, account for money, and make it easier to communicate around the world. Computer systems officers direct the operations of computer centers and are involved in the planning and development of computer systems.

What They Do

Computer systems officers in the military perform some or all of the following duties:

  • Prepare processing plans and budgets
  • Develop and monitor contracts for data processing equipment and services
  • Translate military objectives and needs into computer systems requirements
  • Design and maintain computer software and data bases
  • Plan and oversee the installation of new equipment
  • Direct teams of computer systems specialists and computer programmers

Special Requirements

A 4-year college degree in computer science, computer or industrial engineering, business administration, or related field is required to enter this occupation. Some specialties require a master's degree.

Help Attributes

Helpful attributes include:

  • Interest in working with computers
  • Interest in working with mathematical models and formulas
  • Interest in technical work

Work Environment

Computer Systems officers in the military work in offices or at computer sites on military bases or aboard ships.

Training Provided

Job training consists of classroom instruction. Training length varies depending on specialty. Course content typically includes:

  • Fiscal and contract management
  • Assessment of computer equipment needs
  • Computer systems development and project management

Civilian Counterparts

Civilian computer systems officers work for a wide variety of employers, such as banks, hospitals, manufacturers, financial firms, government agencies and firms that design and test computer systems. They perform duties similar to those performed by military computer systems officers. They may also be called information systems directors, ADP or EDP managers, computer systems engineers, software engineers, or systems analysts.

Opportunities

The exact number of building computer systems officers is unknown.  After job training, computer systems officers are assigned to units where they work in teams of engineers, systems analysts, and computer programmers. With experience and demonstrated leadership, the may advance to senior management or command positions in the computer systems field.

E-Learning Courses and Programs


               [back to top]

OPPORTUNITIES FOR EXPERIENCE AND METHODS OF ENTRY

Most employers require a bachelor's degree in computer science, electrical/electronic engineering or mechanical engineering as the minimum level of education for a Software Engineer. Internships and cooperative work/study programs are typically available through the colleges or universities. Few opportunities for exploration exist without specific training. To enter this occupation once you have completed training, apply directly to employers, locate positions through college placement offices, and consult newspaper want ads. In addition, you should access and search the Internet's on-line employment services sites such as:

Michigan Jobs & Career Portal

Michigan Talent Bank

simplyhired.com 

Indeed | one search. all jobs.   

Yahoo!hotjobs

CareerBuilder

MONSTERTRAK.COM

Dice

ComputerJobs.com

USAJOBS - United States Office of Personnel Management

NationJob.com

You should also enter an electronic resume on these on-line services.

                [back to top]


EARNINGS AND ADVANCEMENT

Earnings of Software Engineers vary with the employer and the geographic location of the company. For instance, salaries in California tend to be much higher than salaries in Florida. California, Washington and Oregon have many opportunities for Software Engineers because of the large computer firms located in these areas. Smaller companies tend to pay less than larger firms. Earnings also vary with experience, ability and education. For example, Software Engineers frequently are hired for their expertise in using specific computer programs and languages.

Nationally, in early 2009, Software Engineers had average annual earnings as follows:

Job Title

Annual Average

Junior Software Engineer

$57,300

Intermediate Software Engineer

$66,200

Senior Software Engineer

$79,300

Lead Software Engineer

$90,800

Some Software Engineers working as executives, senior staff specialists or consulting scientists earned from $101,200 to $114,600 per year in 2009.  The median yearly earnings of "all" workers in the U.S. were $37,544 in 2008.  In the Great Lakes area, including Michigan, earnings of Software Engineers were competitive with National earnings. For example, average annual salaries in early 2009 for Software Engineers were:

Job Title

Great Lakes Area Annual Average

Junior Software Engineer

$61,500

Intermediate Software Engineer

$63,200

Senior Software Engineer

$79,900

Lead Software Engineer

$87,400


According to a 2009 Michigan survey, Software Engineers annual salaries were:

Area

Average

Middle Range

Southeastern Michigan

$71,516

$67,474 - $92,891

Oakland County

$90,784

$66,909 - $90,293

Wayne County

$88,506

$70,942 - $96,305

Software Engineers working in the Detroit Metro Area in 2008-2009 earned the following annual salaries:

Type of Software Engineer

Average Salary

Average Salary Range

Software Quality Assurance Engineer

$67,300

$52,000 - $88,100

Embedded Software/Firmware Engineer

$74,400

$58,800 - $95,800

Web Software Engineer

$81,000

$ 65,800 - $95,000

Most Software Engineers receive fringe benefits such as paid vacations, holidays and sick leave; life, health, accident and disability insurance retirement and have educational reimbursement plans and stock purchases/savings plans. Benefits are usually paid for, at least in part, by the employer.

Most Software Engineers start out as trainees, co-op students during college years or work as "interns" during summer months. They may advance to Lead or Senior Software Engineers. From these positions they may advance to management or consulting.

               [back to top]


EMPLOYMENT AND OUTLOOK

Nationally, there were about 856,800 Computer Software Engineers employed in 2006. About 506,800 were computer applications software engineers and 350,000 were computer systems software engineers.  About one third of all software engineers were employed by computer systems design and related services firms.  About 1.6% of all Computer Software Engineers were self-employed. Employment is expected to increase much faster than the average for all occupations through the year 2016. The industry distribution for Computer Software Engineers looked like this:

NAICS Code

INDUSTRY

% EMPLOYED 2006

541500

Computer systems design & related services

29.4

334000

Computer & electronic product manufacturing

9.9

520000

Finance & insurance

8.1

511200

Software publishers

6.8

516890

Internet and other information  services

5.5

518000

Internet service providers, web search portals, & data processing services

5.1

420000

Wholesale trade

4.5

990000

Government

4.5

551100

Management of companies & enterprises

3.7

517000

Telecommunications

3.1

560000

Administrative & support services

2.8

541300

Architectural, engineering, and related services

2.8

--

Others

13.8

To find employers, click Employer/Business Locator .

Most large companies have changed to integrated software systems (enterprise resource planning software) which coordinate all the separate computer programs that may handle a company's customer orders, inventory, shipping and other information, and replacing them with a single set of programs, which oversee all the others. This has made for an explosion in Internet-related software for business-to-business (B2B) transactions and network management. Software has been developed for remote access, wireless and portable communications. The United States is also the leader in the artificial intelligence (AI); computer-aided design, manufacturing, and engineering (CAD/CAM/CAE); and the networking products software market. Growth in these changing technologies will increase the demand for Software Engineers. Also new software technologies involving wireless and mobile devices and customized software will be supporting growth.

There are about 19,425 Computer Software Engineers employed in Michigan. The number of Computer Software Engineers is expected to grow much faster than the average for all occupations through 2016. About 11,575 of these Engineers were Software Applications Engineers and about 7,850 were Software Systems Engineers.

For the Software Engineers who specialized in applications, an average of 520 annual openings is expected, with 350 due to growth and 170 due to replacement of those who retire, die, or leave the labor force for other reasons (see table below).

For Software Engineers who specialized in systems, fewer openings are present in Michigan. An average of 260 openings is expected with 150 due to growth and 110 due to the replacement of those who retire, die or leave the labor force for other reasons. Additional openings will occur as workers change jobs or occupations. 

Michigan's automotive industry tends to make it a large customer. However, since the general economy has suffered, the information technology sector of the economy has also been severely affected. Companies put off large investments in software and hardware when times are challenging. Many companies have turned to outsourcing to save on programming costs. Because of Michigan's manufacturing base, companies need networking capabilities and software application development. Those with "soft skills" in addition to technical skills are in demand as well as those with the ability to analyze business problems. Software Engineers with experience in the very latest programming skills will be sought after. Software Engineers with specialized skills in new programming languages such as Java, .NET, XML, NetRexx (IBM simplified syntax), and Boo (a newer version of Python) requires a higher level of programming skills and logic. Individuals possessing these skills will find employment opportunities more favorable in a highly competitive market.   

MICHIGAN 'S EMPLOYMENT OUTLOOK TO 2016

For Software Engineers who specialize in Applications only:
 

 

 

 

PROJECTED

EMPLOYMENT

NUMBER

PERCENT

YEARLY JOB

REGION

EMPLOYED

GROWTH

OPENINGS

 

 

 

 

Michigan - Statewide

11,575

30.0

520

Ann Arbor Area

1,030

35.8

52

Battle Creek Area

40

31.6

2

Benton Harbor Area

40

20.5

2

Central Michigan

50

13.7

2

Detroit Area

7,210

31.2

330

East Central Michigan

30

35.7

1

Flint Area

75

28.9

3

Grand Rapids Area

1,070

27.6

46

Jackson Area

150

24.3

6

Kalamazoo Area

210

28.7

9

Lansing MSA

1,225

19.3

42

Muskegon Area

25

11.1

0

North East Lower Peninsula

30

21.4

1

NorthWest Lower Peninsula

90

47.2

5

Saginaw Area

275

13.4

8

Upper Peninsula

100

27.0

5

 

 

 

 

Note:  Areas may not add up to state-wide total due to rounding, sampling, statistical error or omission due to confidentiality issues.

 

 
               [back to top]

SOURCES OF ADDITIONAL INFORMATION

 

Assn. for Computing Machinery

 

Institute of Electronics & Electrical Eng. Computer Society

2 Penn Plaza

2001 L. Street, N.W., Suite 700

New York, N.Y. 10121-0701

Washington, DC 20036

(212)626-0500 or (800) 342-6626

(202)371-0101

 

 

Association of Information Technology Professionals

Institute for Certification of Computer

Attention: Computer Careers

Professionals (ICCP)

401 N. Michigan Ave Ste. 2400

2400 E. Devon Ave., Ste. 281

Chicago, IL 60611-4267

Des Plaines, IL 60018-4610

(312) 245-1070 or (800) 224-9371

(847) 299-4227 or (800)843-8227

 

 

Software Information Industry Assn.

Computer and Automated Sys. Assn of

1090 Vermont Ave. N.W.

Society of Manufacturing Engineers

6th floor

1 SME Drive

Washington, D.C. 20005

Dearborn, MI 48121

(202)289-7442

(313) 425-3000 or (800)733-4763

 

 

Association for the Advancement of Artificial Intelligence

Telephone Directory Yellow Pages:

445 Burgess Drive, Ste. 100

Computer Programming

Menlo Park, CA 94025-3442

Computer Software, Computer

(650) 328-3123

System Designers and Consultants,

 

Information Systems, Marketing

 

Research and Analysis

American Society of Employers

 

Detroit Area Office

 

23815 Northwestern Hwy.

 

Southfield, MI 48075

 

(248)353-4500

 

 
               [back to top]

Copyright © 2009 Michigan Department of Energy, Labor & Economic Growth

Michigan.gov Home | Talent and Job Resources Home | Careers Home | State Web Sites
Accessibility Policy | Link Policy | Privacy Policy | Security Policy | Michigan News | Michigan.gov Survey

Copyright © 2001-2012 State of Michigan