people sitting at computer

A computer software engineer could...

Write the software that controls the movement of assembly-line robots. assembly line Create the artificial intelligence that controls characters in video games like The SimsTM. The Sims
Develop software for a portable global positioning system (GPS) so drivers don't get lost. GPS Write software that allows people to communicate over great distances. Video chat
Find out more...

Key Facts & Information

Overview Are you interested in developing cool video game software for computers? Would you like to learn how to make software run faster and more reliably on different kinds of computers and operating systems? Do you like to apply your computer science skills to solve problems? If so, then you might be interested in the career of a computer software engineer.
Key Requirements Deductive and inductive reasoning, mathematical reasoning, original thinking, and an understanding of what people want from their computers
Minimum Degree Bachelor's degree
Subjects to Study in High School Physics, chemistry, computer science, geometry, algebra, algebra II, calculus, English
Median Salary
Computer Software Engineer
U.S. Mean Annual Wage
Min Wage
Projected Job Growth (2014-2024) Much Faster than Average (21% or more) In Demand!
  • Meet Jeff Hagen, an Engineering Manager at Medtronic. Find out how he directs a team of engineers working on a website that enables patients with heart troubles to get the help they need to live fuller lives.
  • REPLACE- Read this interview with Robert Griffiths, mobile software engineer at Electronic Arts.
Related Occupations
  • Computer support specialists
  • Mathematical technicians
  • Electronic drafters
  • Aerospace engineering and operations technicians
  • Computer science teachers, postsecondary
  • Computer, automated teller, and office machine repairers
  • Electrical and electronics repairers, commercial and industrial equipment
  • Numerical tool and process control programmers
Source: O*Net

Training, Other Qualifications

Most employers prefer applicants who have at least a bachelor's degree and experience with a variety of computer systems and technologies. In order to remain competitive, computer software engineers must continually strive to acquire the latest technical skills. Advancement opportunities are good for those with relevant experience.

As technology advances, employers will need workers with the latest skills. Computer software engineers must continually strive to acquire new skills if they wish to remain in this dynamic field. To help keep up with changing technology, workers might take continuing education and professional development seminars offered by employers, software vendors, colleges and universities, private training institutions, and professional computing societies. Computer software engineers also need skills related to the industry in which they work. Engineers working for a bank, for example, should have some expertise in finance so that they understand banks' computer needs.

Education and Training

A bachelor of science in computer software engineering is a requirement for entry-level positions. Most employers prefer applicants who have at least a bachelor's degree and broad knowledge of, and experience with, a variety of computer systems and technologies. The usual college major for computer software engineers is computer science or software engineering. Systems software engineers often study computer science or computer information systems. Graduate degrees are preferred for some of the more complex jobs and are required for faculty positions. In 2006, about 80 percent of computer software engineers had a bachelor's degree or higher.

Academic programs in computer software engineering may offer the program as a degree option or in conjunction with computer science degrees. Because of increasing emphasis on computer security, software engineers with advanced degrees in areas such as mathematics and systems design will be sought after by software developers, government agencies, and consulting firms.

Students seeking software engineering jobs enhance their employment opportunities by participating in internships or co-ops. These experiences provide students with broad knowledge and experience, making them more attractive to employers. Inexperienced college graduates might be hired by large computer and consulting firms that train new employees in intensive, company-based programs.

Other Qualifications

People interested in jobs as computer software engineers must have strong problem-solving and analytical skills. They also must be able to communicate effectively with team members, other staff, and the customers they meet. Because they often deal with a number of tasks simultaneously, they must be able to concentrate and pay close attention to detail.

In this video, Jessica Mong explains how fixing a broken computer when she was a child in Nigeria eventually inspired her to earn a computer engineering scholarship in the U.S. and start her career as a software engineer.

Nature of the Work

Computer software engineers apply the principles of computer science and mathematical analysis to the design, development, testing, and evaluation of the software and systems that make computers work. The tasks performed by these workers evolve quickly, reflecting new areas of specialization or changes in technology, as well as the preferences and practices of employers.

Software engineers can be involved in the design and development of many types of software, including computer games, word processing and business applications, operating systems and network distribution, and compilers, which convert programs to machine language for execution on a computer.

Computer software engineers begin by analyzing users' needs, and then design, test, and develop software to meet those needs. During this process, they create the detailed sets of instructions, called algorithms, that tell the computer what to do. They also may be responsible for converting these instructions into a computer language, a process called programming or coding, but this is usually the responsibility of computer programmers. Computer software engineers must be experts in operating systems and middleware to ensure that the underlying systems will work properly.

Computer applications software engineers analyze users' needs and design, construct, and maintain general computer applications software or specialized utility programs. These workers use different programming languages, depending on the purpose of the program. The programming languages most often used are C, C++, and Java, with Fortran and COBOL used less commonly. Some software engineers develop both packaged systems and systems software or create customized applications.

Computer systems software engineers coordinate the construction, maintenance, and expansion of an organization's computer systems. Working with the organization, they coordinate each department's computer needs—ordering, inventory, billing, and payroll record keeping, for example—and make suggestions about its technical direction. They also might set up the organization's intranets—networks that link computers within the organization and ease communication among various departments.

Systems software engineers also work for companies that configure, implement, and install the computer systems of other organizations. These workers may be members of the marketing or sales staff, serving as the primary technical resource for sales workers. They also may help with sales and provide customers with technical support. Since the selling of complex computer systems often requires substantial customization to meet the needs of the purchaser, software engineers help identify and explain needed changes. In addition, systems software engineers are responsible for ensuring security across the systems they are configuring.

Computer software engineers often work as part of a team that designs new hardware, software, and systems. A core team may comprise engineering, marketing, manufacturing, and design people, who work together to release a product.

Work Environment

Computer software engineers normally work in clean, comfortable offices, or in laboratories in which computer equipment is located. Software engineers who work for software vendors and consulting firms frequently travel overnight to meet with customers. Telecommuting is also becoming more common, allowing workers to do their jobs from remote locations.

Most computer software engineers work at least 40 hours a week, but about 17 percent work more than 50 hours a week. Software engineers also may have to work evenings or weekends to meet deadlines or to solve unexpected technical problems.

Like other workers who spend long hours typing at a computer, computer software engineers are susceptible to eyestrain, back discomfort, and hand and wrist problems, such as carpal tunnel syndrome.

On the Job

  • Modify existing software to correct errors, to adapt it to new hardware or to upgrade interfaces and improve performance.
  • Design and develop software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
  • Consult with engineering staff to evaluate interface between hardware and software, develop specifications and performance requirements, and resolve customer problems.
  • Analyze information to determine, recommend and plan installation of a new system or modification of an existing system.
  • Develop and direct software system testing and validation procedures.
  • Direct software programming and development of documentation.
  • Consult with customers or other departments on project status, proposals and technical issues, such as software system design and maintenance.
  • Advise customer about, or perform, maintenance of software system.
  • Coordinate installation of software system.
  • Monitor functioning of equipment to ensure system operates in conformance with specifications.
  • Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
  • Confer with data processing and project managers to obtain information on limitations and capabilities for data processing projects.
  • Prepare reports and correspondence concerning project specifications, activities and status.
  • Evaluate factors such as reporting formats required, cost constraints, and need for security restrictions to determine hardware configuration.
  • Supervise and assign work to programmers, designers, technologists and technicians and other engineering and scientific personnel.
  • Train users to use new or modified equipment.
  • Utilize microcontrollers to develop control signals, implement control algorithms and measure process variables such as temperatures, pressures and positions.
  • Recommend purchase of equipment to control dust, temperature, and humidity in area of system installation.
  • Specify power supply requirements and configuration.

Source: BLS

Companies That Hire Computer Software Engineers

Explore what you might do on the job with one of these projects...

Log in to add favorite
Science Fair Project Idea
Virtual reality (VR) headsets are becoming increasingly popular. Video game designers use a variety of programs to create the amazing 3D worlds that you see when you turn on your favorite video game, and many of those worlds are now also designed to be compatible with VR headsets. Can you use a computer-aided design (CAD) program or video game engine to design your own virtual world that can be viewed using a VR headset? Did you know you do not have to be a programming expert to create… Read more
Log in to add favorite
Science Fair Project Idea
Do you love playing video and computer games? Do you dream of someday creating your own? With this science fair project you can turn that "someday" wish into a "today" reality! Read more
Log in to add favorite
Science Fair Project Idea
Lights and music make a great combination! Getting sound and lights to complement each other just right helps set the mood for everything from DJ parties and concerts, to theater shows, the circus, and ballet performances. You can put together your own lights and music show using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project looks like: … Read more
Log in to add favorite
Science Fair Project Idea
The first man-made satellite, the Sputnik 1, was launched in 1957. As of late 2020, more than 2,600 man-made satellites orbit Earth, with a little over 70% of them in low Earth orbit. If you would like to delve into how satellites and their sensors are configured, or into how their orbits are planned—and do not shy away from a little programming—this project is for you! With the help of FreeFlyer®—powerful software that allows you to simulate satellite orbit and… Read more
Log in to add favorite
Science Fair Project Idea
If you are interested in space travel and willing to do some coding, this project is for you! It uses FreeFlyer®—powerful software that allows you to simulate space travel—to explore essential mission questions. Space travel is complex. Many factors influence the trajectory of a spacecraft. Simulations like the ones generated by FreeFlyer are powerful, as they allow you to analyze each factor in isolation, and then visualize the effects in various ways. Once you familiarize… Read more
Log in to add favorite
Science Fair Project Idea
Do you play video games on a console or smartphone? Have you ever wished you had the power to change how a game worked, or even to create your very own game? This project will show you how to make your very own video game and controller using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project looks like. Of course, you can design the looks and gameplay of your game any way you like! … Read more
Log in to add favorite
Science Fair Project Idea
If you're the kind of person who has taken apart your Rubik's cube in order to grease the inside parts so it will move more smoothly, this could be a great project for you. We'll show you three sets of move sequences that accomplish specific rearrangements of the cube. Can you devise a way to solve the cube using only these three move sequences? Read more
Log in to add favorite
Science Fair Project Idea
This is a more challenging JavaScript project: can you write a program that can play Tic-Tac-Toe? You'll have to figure out a way to translate the game strategy into a computer algorithm. The project will show you how to create a working Tic-Tac-Toe board on a webpage. Your challenge will be to show the computer how to play. Just think: you'll be creating artificial intelligence! Read more
Log in to add favorite
Science Fair Project Idea
This project is a follow-up to the Science Buddies project Explore Optical Illusions: Build an Infinity Mirror, which shows you how to build a basic infinity mirror using light emitting diodes (LEDs) and arts and crafts materials. What if you wanted to build an infinity mirror that could change colors, like the one in Figure 1? Figure 1. A color-changing infinity mirror. You can do this by using special RGB (red, green, and blue) LEDs. Just like the… Read more
Log in to add favorite
Science Fair Project Idea
Do you enjoy playing video games? Do you like the challenge of reaching a difficult game level and scoring lots of points? Video games include many graphic elements that are great to watch, but did you know that not only sighted people enjoy video games? Blind and visually impaired players can also play video games by relying on sound cues — the pings, pops, bangs, and bursts of music that make a game fun or exciting. When building a game that will be accessible to differently abled… Read more
Log in to add favorite
Science Fair Project Idea
Have you ever wished you could create an alarm system to guard your stuff? Or what about throwing a surprise party for someone and automatically playing music and flashing lights when they walk in the door? You can do either of these things using the Raspberry Pi Projects Kit. The kit includes a motion sensor, which can detect when people move in front of it. Check out the video to see what this simple, but fun, project looks like: … Read more
Log in to add favorite
Science Fair Project Idea
Have you ever had to take prescription medicine to get over an illness? To get better, it is important to take the medication in the proper manner and at the proper time. Wouldn't it be cool if there were a tool or piece of automated equipment that held your medicine and reminded you to take it? A tool that would know when you picked up the bottle and took your medicine? Building a smart medicine cabinet is what this science project is all about! Read more
Log in to add favorite
Science Fair Project Idea
Have you ever played a video game and gotten so involved that you felt as if you were living inside the game? What were the characteristics of the game that made you feel part of the action? One component of an absorbing video game is an onscreen world that makes sense—a world that takes physics into account. A game in which the player feels the effect of trudging through mud, slipping on ice, or catapulting a bird is more fun than one with no environmental interaction. In this… Read more
Log in to add favorite
Science Fair Project Idea
The benefits of Western medicine have evolved tremendously, with a wealth of tests and medications to treat many conditions. But remembering to take medication or perform a test regularly, consistently, and at specific times can be difficult for elderly people with short-term memory loss, or teenagers absorbed in activities. With mobile devices becoming our constant companions, could a smartphone or tablet offer a solution? The Massachusetts Institute of Technology (MIT) has created a simple… Read more
Log in to add favorite
Science Fair Project Idea
Did you ever have a favorite toy like an action figure or doll that could light up, make noise, or move? This project will show you how to make your own interactive toy using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project looks like. The version you make does not have to be a robot; it can be any shape and have any sound effects you want. … Read more
Log in to add favorite
Science Fair Project Idea
Have you ever seen night lights that automatically turn on when it gets dark? What about art projects, like paintings or sculptures, with embedded lights? This project will let you combine the two, by adding lights to an art project of your choice. You can make the lights automatically turn on when it gets dark using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project looks like: … Read more
Log in to add favorite
Science Fair Project Idea
Have you ever played a game that tested the steadiness of your hands? Operation® is a popular board game that requires you to perform "surgery" without bumping a tool against the edges of the game. There are also popular amusement park or carnival games where you try to move a metal loop along a wavy metal wire without letting the two touch. You can build your own version of these games using the Raspberry Pi Projects Kit. Check out the video to see what this simple, but fun, project… Read more
Log in to add favorite
Science Fair Project Idea
Have you ever wondered about the various types of music in a video game you've played? You may not have paid much attention to the music, but its job was to enhance your gaming experience. In fact, the wrong kind of music can detract from the atmosphere of the game. Can you imagine the music in Mario KartTM playing in Street Fighter®? In a game, music can indicate many different things, such as a special or new event, shift of mood, or the arrival of a character. This kind of music is… Read more
Log in to add favorite
Science Fair Project Idea
A singing monkey? An elderly couple doing the chicken dance? What kind of funny electronic cards do you like to email people? Feel free to dream up your coolest and funniest card ideas, because in this science project, you'll create your own animated greeting card with a simple-to-use programming language called Scratch. Scratch is a programming language that makes it easy to create interactive stories, games, music, and art. When the program you have written is complete, you can even share it… Read more
Log in to add favorite
Science Fair Project Idea
Imagine yourself as a software engineer, a decade and a half from now. You are called upon to help solve the world energy crisis by programming nano-organisms (NANORGs) to extract energy from industrial sludge. Your program must be small enough to fit in the NANORGs' tiny processors, yet at the same time meet several challenges. First and foremost, your NANORGs need to navigate on their own, extract energy from the sludge, and find collection points to deliver the harvested energy. Second,… Read more

Ask Questions

Do you have a specific question about a career as a Computer Software Engineer that isn't answered on this page? Post your question on the Science Buddies Ask an Expert Forum.


Additional Support

We'd like to acknowledge the additional support of:
  • Intel
  • Motorola Solutions
  • Seagate
Free science fair projects.