The Software Engineering Job Landscape

Posted on March 17, 2022 with tags:
In this post:

It's a great time to be an engineer and especially great to be a software engineer. The job market is incredibly hot, with many 22 year olds landing salaries of $70k+ straight out of college. As a recent grad with many friends just a couple years behind me on a similar career path, I remember what it was like to be in their position. I had a few years of college under my belt, some less-than-professional work experience for a college startup, and little knowledge of the industry. I'm writing to document what I've learned about working in the field over the past 3 years in hopes to provide some insight to those who may come after me.

As demand for engineers is increasing faster than colleges can pump out CS majors, recent grads in the field often have some degree of choice in where they work. With this article, I’m hoping to shine some light on the different types companies that employ software engineers.

DISCLAIMER: The following article contains vast generalizations and should be taken with a large grain of salt.

A Software Company Taxonomy

For new software engineers, I think most useful way to categorize potential employers is to break them down into tiers organized by the competitiveness of their pay and and scarcity of their job openings. For example, elite tier companies pay great, but are very selective with their hiring.

For each tier, I’ll list the minimum expected hours per day. These numbers represent actual time spent working/coding, not any time spent on social media, youtube, running errands, or other mid-workday distractions. Additionally, keep in mind that most likely as your role, pay, and responsibility increases, so will the time spent working.

Elite Tier

(6+ hours/day)

The best of the best. Elite tier companies include big names (Google, Apple, Meta, etc) and small to mid-size startups as well. They pay the most, recruit the best talent, and make the best products. Frequently, the products these companies make have large user bases (100k-1M+) and management will have strict speed and quality requirements for developers.

For large Elite companies, the interview process will most likely start with an asynchronous personality assessment and coding challenge. Openings at these companies receive thousands of applicants, and they use these automated evaluations to filter en masse. Hiring managers only want to interface with the cream of the crop.

I've never worked at an Elite company, but I'd expect that the development pace is rapid and the expectation is that employees will diligently work hard. High pay and great benefits justify the extra pressure applied by management.

These companies offer a great place to kickstart a career by connecting you with many high-achievers. Unicorn startups are often founded and staffed by former employees of these companies.

To get an entry level job at an Elite tier company you need a stellar resume, great personality, and at little luck. The expectation is that you have prior work experience (internships) and at least a couple personal projects to demonstrate your skills. These companies also consider the quality of your college and GPA.

Mid Tier

(4+ hours/day)

Mid tier companies are often large business (i.e. many people/products), and thus the pace of development is limited by the complexity of the company. These days, most corporations use highly customizable business-to-business software, and they need engineering teams to build and maintain these applications. The banking, insurance, and healthcare industries all heavily rely on software, and so these businesses employ many software developers.

Expectations for entry level engineers at Mid tier companies can vary depending on team and manager, but expect the average employee to be less talented/passionate than what you'd find at an Elite company. However, this is not all bad. A slower pace of work does away with the cutthroat culture common at Elite companies. Mid tier companies foster community within their teams and care for their employees.

When applying to positions at Mid tier companies, try to learn about the company culture. Check out Glassdoor or ask about it in interviews.

I believe at Teradata (which I identify as Mid Tier), there is a tacit understanding that most people are there for the paycheck. It’s expected that people work hard and meet deadlines when they arise, but management wants what's best for their employees. Upward mobility, good benefits, and a relaxed culture means there’s a good deal of “lifers” at Teradata.

Differentiating Elite vs Mid

There are two criteria that differentiate Elite tier companies from the rest:

  1. Elite companies build great products (applicable, durable, easy to use)
  2. Elite companies hire great people (smart, driven, qualified)

These create the ultimate positive feedback loop: great builders → great products → more revenue → more money for hiring → more great people

Elite tier companies have large user bases because their product solves a problem that many people/businesses have. (For Apple - everyone wants a high quality personal device, for AWS - businesses want to host their software on the cloud, etc.)

These two factors heavily impact the day to day of any individual developer. As a coder, it feels great to work on a well written and documented codebase, especially when building a product that works well and is easy to use. Additionally, smart coworkers and leaders reduce friction and enable developers to work efficiently. On the contrast, individuals at Mid tier companies often are hindered by knowledge silos and bureaucracy, which slow down the pace of development.

C Tier

(2+ hours/day)

The 'C' in C tier stands for 'Contract' and 'Consulting'. These firms don't sell a software product; they sell software development as a service.

Entry level positions at these companies have the lowest pay (~60k) and worst benefits, but also require the least amount of experience. A kid with a coding bootcamp certificate and work authorization could land a job at these companies.

If a nice paycheck for minimal work is what you are after, C Tier companies are for you. Don't expect great benefits or internal upward mobility.

Pre-professional Tier

(0+ hours/day)

Many coders, especially those still in high school, will look for opportunities to exercise and grow their engineering skills and take on projects for little to no pay. Whether it's building a website for a family business or "founding" a company with other youths, I'd consider these opportunities in the Pre-Professional tier. These ventures rarely result in a product with any real value, but listing them on your resume demonstrates ambition and initiative, especially if you are a founder/creator.

Comments

Sign in to leave a comment.