Gone are the days when simply "learning to code" could easily land you a six-figure salary.

Nowadays, the job market for software engineers is highly competitive, with dozens of qualified applicants for each posting. Since mid-2022, the tech industry has been facing a big downturn, and regardless of the root causes, many workers are feeling the pinch. During the pandemic, tech companies went on a hiring spree due to the need for online technology and lots of money being pumped into the economy due to monetary policy to avoid a recession. There was a significant surge of hiring and then a significant drop in hiring after the pandemic in 2022 even below pre pandemic levels back in 2018. This situation is exacerbated by the growing number of computer science graduates over the last decade and the wave of layoffs across the industry, with many competing for the same roles.

I feel fortunate to have entered the industry at the right time (2018), allowing me to get a foot in the door before the two major downturns (the COVID crash and the 2022/2023 tech recession). It’s incredible how much change I've witnessed in such a short span.

Even in this recession (yes, I know the technical definition requires two consecutive quarters of negative GDP growth—don’t correct me!), I noticed that certain professionals are still getting hired.

  1. Senior and Staff-Level Engineers: These roles are invaluable across tech fields. Achieving this level of proficiency can take up to a decade. Even with the right technical skills, engineers may not get promoted due to being on teams with limited visibility or budgets. However, senior roles remain available for those who can navigate tough interviews. The best way to land one of these jobs is to already be in a similar role at another company and interview well. The bar is high, but tools like ChatGPT can help you prepare for these challenging questions. I know there is level inflation at all companies but if you can achieve to be a solid senior engineer or staff engineer at a reputable and established tech company, it’s a golden ticket to pick your next job.

  2. AI Engineers (ML, Data Science, etc.): With the rise of large language models (LLMs) and other advancements, demand for AI talent is strong. Engineers with real experience and credentials in this field are thriving. However, new graduates or those who haven’t invested the necessary time and effort will struggle, especially if they’ve been working at smaller or less-established organizations.

  3. Specialists: Excluding the categories mentioned in #1 and #2, There are several specializations that seem surprisingly unsaturated, based on my experience applying to hundreds of job postings. Even on LinkedIn, the number of applicants for these roles is much lower than for general software engineering positions. I define “General Software Engineers” as those in fields like:

    Usually General Software engineers code in high level languages, know something about designing systems, know a Querying language for a database and deploying some workload to on-prem and cloud.

    Specialist Fields, on the other hand, include:

    Most of these specialist roles are less prone to automation or AI replacement because it is too complex or they require more understanding than just coding. While application or mobile development can be automated to some extent (especially with AI assistance), roles in specialist fields tend to require deeper, more nuanced expertise. And although there are fewer jobs in these areas, the competition is also significantly less. It’s like going to a grocery store and seeing one line with 20 people and another with just three.

    If you're in a generalist field early in your career, I strongly recommend transitioning to one of these specializations. You likely already have the coding skills—now you just need to pick up a couple of extra topics. Often, these skills can be learned on the job. For example, being on-call helped me understand SRE concepts and system administration. Since most engineers already deploy code in the cloud, transitioning to a cloud engineer role isn’t too difficult if you grab a few AWS/Azure Certs. Additionally, most software engineers are familiar with OS concepts, so starting a side project, like writing a Linux drivers, can be a logical next step.

    This will help ensure that your skills remain valuable, both in the face of AI and during economic downturns, allowing you to maintain the kind of career and salary you desire.

Happy hunting, everyone.

— Joe