Job market for Senior Python Engineers in Q4’2023#

TL;DR: The market is much better than a year ago, but the job search is still tough.

Context#

I had an opportunity to measure the job market for Python programmers. The timeframe is October-November 2023. The focus on Python is no coincidence but a property of the market.

Observations#

  1. Companies are looking for a skill fit. Employers are unwilling to let new employees learn the new technology as they ramp up. They would rather go for someone with existing experience in the target environment. To illustrate, I had interviewed with a company where I had a perfect fit on all levels with both founders except for my day-to-day with Typescript. I know Javascript okay. It’s just not my daily driver, and I was willing to learn. However, the company decided to move on with other candidates who are more familiar with Typescript.

  2. Companies can afford to make hiring decisions over weak signals. In an abundance of software engineering supply, hiring managers are running out of ways to rank candidates. As a result, I’ve seen people trying to figure out culture fit during technical interviews. For example, my question about the quality of internal documentation was considered a decisive signal against my collaborativeness.

  3. Getting noticed without a referral is tough. Usually, I’m only interviewing with companies that reach out to me. This is the best way because you get a person interested in your success. Actively looking for a job, though, meant that I applied without having any contacts in the company. The majority of the companies I applied to rejected me even though my resume was a strong fit with a job description. On the other hand, most of the companies I was referred to were willing to interview me (and extend a job offer eventually).

  4. I observed three cohorts of employers:

    1. Big tech (FAANG and alike). These guys fired most of their recruiters and now started to hire back, but they lost their hiring momentum. For Meta, Amazon, and Google, I would start talking to a recruiter, but after a call or a quick chat, they would just ghost me.

    2. Small companies with “reasonable” salaries. There seems to be a bubble of Series-A to Series-C startups that have the same salary range and interview process. Their bands suspiciously synchronized and moved up and down (mostly down during my observations), creating a feeling of a tight market. From one of the recruiters, I learned about tools such as Pave that “suggest” the salary range for each role.

    3. Non-tech companies that still need software engineers. These guys offer half of the salary and struggle with a special kind of problem: interview cheating. During my years at Moveworks, I ran 1 or 2 interviews every week, and I have never seen a single case of a person trying to cheat at the coding screening. The closest my colleagues have seen was someone doing a quick Googling for the problems we ask and preparing for them. But for this cohort, the picture is very much different: 3 out of 10 candidates are trying to cheat. This is insane! Out of curiosity, I tried going through the process with a couple of these and had a really hard time trying to prove I’m not a camel.

Reflections#

  1. It took me two months to get four offers. I got at least one from each cohort.

  2. The process is slow at most places. Going through 9 (nine) interviews and getting a rejection is no fun. Some recruiters allowed batching coding and system design interviews to speed up the process upon my request.

  3. A couple of places were super fast. A single interview on Friday, offer call on Monday. It was a delightful experience, confusing even.

  4. Companies want to signal “meaningful growth” by being very careful and considerate to avoid bad hires. The problem is that they have no tools to do that. No number of extra interviews and extra weeks in the decision-making provides any quantitative improvement. If I were hiring, I would just enjoy a short position-filling cycle and not try to hire the best of the best.