The salaries of software engineers depend primarily on two factors: Experience and location. Let’s explore experience first.
Let’s look at how experience determines salary in the city of Chicago. The following is typical, but your mileage may vary:
0 - 1 years experience: $50,000 - $65,000
1 - 2 years experience: $65,000 - $90,000
3 - 5 years experience: $90,000 - $120,000
We’ll talk about 5+ years in a moment, but first let’s talk about location.
The salary range for each level of experience varies by location. Generally, software developers in major cities command higher salaries than those in smaller towns. However, there’s an important tradeoff to consider: The cost of living in major cities is significantly higher than that in smaller locations.
Silicon Valley, which consists of San Francisco and its surrounding environs, is well known for paying extremely high salaries for software engineers. For example, entry level developers in San Francisco can be paid as much as $100,000! However, the cost of rent in San Francisco can easily be double that in other cities.
After 5 to 10 years of coding, there are several tracks available to software engineers regarding the next step in their career path.
Tech Lead: Some developers never want to stop being in the thick of code. They simply love building things and using their creativity to solve tough problems. These developers often become the leaders of a team of developers, and go by various titles such as Tech Lead or Principal Developer.
Software Architect: Software Architects make many of the high level technical decisions regarding how the software should be built. For example, they may select which programming language to use, or what type of information should be stored in the database. They set the course for the software engineers, but usually don’t actually jump into the code itself.
Engineering Manager: Sometimes known as Director of Engineering, an Engineering Manager manages the software developers. Among other things, the Engineering Manager ensures that the developers are making progress on their project, and does what she or he can to help ensure their success. Most of what Engineering Managers do is people-work, and can be very rewarding.
CTO: The Chief Technical Officer, sometimes known as the Chief Information Officer (CIO) or VP of Engineering, is essentially in charge of the entire software development department of a company. The CTO is very much a business person, making executive decisions about the company’s technology and tech projects, and collaborates with the CEO and other leadership about many business decisions. This is a level up from Engineering Manager, as Engineering Managers usually report to the CTO.
Consultant: Many software developers go out on their own, and work for themselves by working short or long term contracts with companies in which they do a variety of technical work. This work may range from actual coding to software architecting to managing software engineers. Consultants make whatever they decide to charge, which can be a lot of money. Consultants with a lot of experience have a lot of leverage in this regard.
There’s no single career path for a software developer. A software developer may become a Software Architect and then an Engineering Manager, or they might have the opportunity to become an Engineering Manager immediately. An Engineering Manager may eventually become a CTO, or can become a consultant. Even regular software developers can go straight into consulting if they wish. In addition, many companies have all sorts of positions and roles with various titles, making it impossible to include all of them here.
To complete the salary discussion, let’s return to our Chicago example: Tech Leads, Software Architects, and Engineering Managers can make salaries that range between $120,000 and $150,000, and CTOs can make even more. And as we mentioned, consultants can charge whatever they want if they know how to market themselves.
Of course, some people decide to create their own tech companies, and then the sky’s the limit!