What does a Software Engineer do?
Software engineers are the creative minds behind computer programs. They may begin by asking how the customer plans to use the software. They must identify the core functionality that users need from software programs. software engineers must also determine user requirements that are unrelated to the functions of the software, such as the level of security and performance needs. They design the program and then give instructions to programmers, who write computer code and test it.
If the program does not work as expected or if testers find it too difficult to use, software engineers go back to the design process to fix the problems or improve the program. After the program is released to the customer, a software engineer may perform upgrades and maintenance.
Source: The Bureau of Labor Statistics (BLS)
Get career advice
Our career coaches can help you make a plan.
Working as a Software Engineer
Depending on their roles, qualifications, specialization and years of experience, a software engineer may:
- Analyze users' needs and then design, test, and develop software to meet those needs
- Recommend software upgrades for customers' existing programs and systems
- Design each piece of an application or system and plan how the pieces will work together
- Ensure that a program continues to function normally through software maintenance and testing
- Document every aspect of an application or system as a reference for future maintenance and upgrades
- Collaborate with other computer specialists to create optimum software.
- Create a variety of models and diagrams (such as flowcharts) that show programmers the software code needed for an application
The Bureau of Labor Statistics (BLS)
How much does a Software Engineer make in the United States?
Average base salary
The average salary for a software engineer is $117,933 per year in the United States and $5,000 cash bonus per year.50.3k salaries reported, updated at December 5, 2023
Where can a Software Engineer earn more?Compare salaries for Software Engineers in different locations
How much do similar professions get paid in United States?
How do Software Engineers rate their jobs?
Based on 6,504 reviews
Teamwork, Training, Client Success, and a Great Work Environment
Written by Software Engineer (Current Employee) at IBM - Austin, TX – August 1, 2019
IBM's work environment is quiet, professional, friendly, and enjoyable. Team members are knowledgeable, sharing one common goal making sure client success is at the forefront our job, they have educational outlets, as well as the internal training or scrums to keep you knowledgeable and informed. You will get necessary training needed to help ensure client applications perform at their peak in a secure, high availability WAS environment. The most enjoyable part of my job comes after a complex issue is resolved with guidance we've provided.
A great place to learn and grow in software development
Written by Software Developer/Engineer in Test (Former Employee) at Microsoft - Redmond, WA – November 21, 2014
A typical day started off with reviewing, sorting, and when needed - respond to over-night emails. In addition to team and company correspondence, they also consisted of automation test results and testing done over-seas. Next, I would review my bugs in the database to see what needed follow-up on for that day. In my last position, we would have a daily scrum to sync up with all our teammates on where we all were in our tasks and goals for the project. This is also where we would make agile decisions on our workforce and re-assign folks or create new tasks to help keep the project on track for its determined release date.
Before working at Microsoft, I was a video editor and award winning 3D animator. However, I didn't know very much about software development - just how to manipulate it to get my work done. Working at Microsoft, I learned on the job about how to perform software testing - specifically manual UI. In addition, I picked up a lot of general information on the use of Microsoft products and devices. I also learned a lot about corporate networking. Because I served on many teams, I got to understand on a deep level the following products: My Sync II, Point of Sale OS, Hyper-V, Zune, IE, and CE OS and many portable devices over the years.
Microsoft is a big company, so my experience won't represent the company so much as just a small part of it that I worked with. My managers were all great and very helpful. Because I started after the company had matured, the managers were very good about work/life expectations. That made it a very safe environment to work in. They
The people, flexible work hours, remote from home work days, free sodas, coffee, and tea
Inconsistent work - as a contractor the waits between jobs can be too long
Working to become a hip place
Written by Master Software Engineer (Current Employee) at Capital One - Wilmington, DE – November 24, 2018
7am check that the nightly process worked by check email on my phone
8 am get to the office go through all the emails that have spun to our gmail services. wading through to find the immediate required responses and filtering out the spam
write followups and forward messages
check github for checkins and reviews
work through technical requests
10 am Srum standup
10:15 Technical Follow up
11:00 check out and merge others code to local branches
do some development, answer follow up emails
12 - 12:30 lunch as desk or cafeteria
12:30 - 1 Finish some code
1 backlog meetings
2 technical meetings with other teams
3 grooming sessions
4 code or emails which ever is hotter
5 jira checkup , team followups
10 pm - non automated deployments from home
11 pm 1am - verify and finish the work
Highly technical projects, intelligent co workers
Antiquated performance management pits employees against each other
Interesting Work...on the Road
Written by Senior Manager (Current Employee) at Accenture - Los Angeles, CA (home office) – July 25, 2014
Fly out on Monday mornings to client location and return home on Thursday evenings.
Long days - but interesting and varied work at each client.
Typical day consists of:
- Planning, scheduling and executing all phases of system implementations.
- Assessing business implications for each project phase and monitoring progress to meet deadlines, standards and cost targets.
- Building client relations with key executive stakeholders to support
- Attending regular status updates.
- Providing experience, leadership, and coaching to Accenture and client members of the team throughout the project.
Work with some very driven and bright colleagues.
Weekly travel (away from home 4 days / week)
Great workplace with great people
Written by Software Engineer Internship (Current Employee) at General Dynamics Information Technology - Huntsville, AL – May 8, 2018
A typical day at work is writing automated tests for the web application and army airspace management system, TAIS, and conducting reviews. Automated clicks and other user actions to test the system for defects. I learned Python and Selenium WebDriver. I also learned Extensive Testing and Rational Team Concert for source control. Management is wonderful. All of the people there are wonderful and so helpful. The hardest part of the job, which isn't often, is finding the right path to an element. The most enjoyable part of the job is getting to solve the puzzle.
Common questions about for a Software Engineer
How many vacation days do software engineers get per year?
This differs greatly between employers. Tech employers are often competing for talented software engineers and often have extremely generous policies, including unlimited paid time off.
What's the dress code for a software engineer?
Good software engineers are hard to find and retain, so they are often treated very well and given a lot of freedom in their choice of clothing. Extreme outfits should be avoided and some employers disallow very casual clothing like shorts or flip flops, but casual clothing that wouldn't look out of place when worn on the streets in a large city is probably ok.
Some more formal workplaces still exist. Software engineers working for large corporations or consultancies may still be required to wear more formal clothes, but suits are extremely uncommon.
What are the working hours for a software engineer?
Software engineering is a mixture of project work, meetings and mentoring. The meetings and mentoring require you to be present in the office, but the project work can be completed anywhere. This leads to a variety of different working hour practices across different employers. Some simply measure output, and the employee is free to arrive and leave as they please. Others require employees to arrive for a set of core hours (eg 9-5), and also measure the output.
Often, during crunch times, when a product deadline is looming, the engineering team will be expected to work harder than usual, and may end up being in the office for many more hours than contracted - they usually do not receive overtime payments for this work.