Posts

Finding a new tech job in 2026

2026 sucks

Skip to summary to get the key takeaways

I started off 2026 taking on a new role at Meta. I was hired as an Engineering Manager and spent 7 months supporting a team of fantastic engineers before being laid off and flung back to the open market along with several thousand others.

First I had to decide what to do next. Did I want to stay in management, return to technical leadership or take on an individual contributor role? I decided to apply for as many jobs as possible and choose the most interesting role, rather than chase a specific title.

By mid-September I had received two offers and accepted one. This chart shows the overall count:

Interview-stage Sankey diagram showing 34 roles ending in 19 rejections, 13 withdrawals and 2 offers.

This post contains an overview of what I did wrong, and how I improved in each area - hopefully you find it useful!

Writing a resume

In the past I sent the same CV for every role. This time I was applying for individual contributor, engineering manager and technical lead roles (IC/EM/TL). Cramming everything into two pages left each version dense with irrelevant information. Recruiter feedback helped me realise it needed to be more digestible.

I cut the CV to one page to focus on my core achievements and the story I wanted to tell. From that baseline, I created three two-page versions, adding detail for each type of role. I used FlowCV which has a simple visual editor and the ability to download my CVs from any device which made copying between devices much less painful. For each application, I would tweak the CV, download it and send it off.

Throughout the search, I downloaded over 800 tweaked copies of my CV. I kept building on previous edits until I was consistently getting responses, now I rarely change it unless a role has an unusual or specific requirement. I try to follow these principles:

  1. Focus on outcomes and achievements
  2. Quantify everything
  3. Emphasise what you own, not what you participate in

A useful mental model is objectives and key results (OKRs). Use the objective as context and the key results as achievements. For example:

BadBetterExplanation
I used AI tooling in my day-to-day workIncreased my accepted PRs by 300% quarter-over-quarter using AI toolsQuantify the effect on your outcomes, don’t focus on the tools you used.
Responsible for handling production incidentsResolved over 30 production incidents for a public-facing service handling 6k QPS, reducing MTTR from 35 to 20 minutesDescribe the service’s scale, the incidents you handled and the results. These details provide signals of ownership, accountability and incident management.
Contributed to a new product used by five million peopleOwned three subsystems responsible for scheduling workloads on the critical path of a new product delivered to five million peopleName the parts you owned, even within a larger system. Specific attribution is stronger than a vague claim of contribution.
Expanded the team from five to ten peopleJustified headcount to expand the team, took responsibility for sourcing, interviewing and onboarding nine new software engineers and one engineering manager‘Expanding the team’ could mean hiring people or receiving transfers in a reorganisation. Explain what you owned that led to the outcome.

A CV is the first stage of an application. Its goal is to start a conversation. Focus on achievements and outcomes, you’ll have plenty of time to go over the how and why in the interview.

A lot of people struggle with polishing their profile. It’s key to understand where the line between ‘polishing’ and ’lying’ is. A litmus test is to give your CV to someone you worked with before - if this makes you uncomfortable, consider if you’re polishing too hard.

Another approach is to do a mock interview - try to answer a question where you’re pushed about the topic. If you feel comfortable answering, you’re likely polishing - if you can’t phrase or structure your answer naturally then you may be polishing too hard.

Applying for roles

Initially I applied for around 30 roles per day and got almost no responses. It felt impossible to get any engagement.

Interview timeline highlighting which stages occurred on which dates

The ramp

The market started picking up around July/August, around the same time I’d built a solid system for making applications and was getting consistent responses resulting in interviews.

Finding good matches

I was spending hours a day in a doom-loop of applications with nothing to show for it. Eventually I started applying for roles I wasn’t interested in, just to get a response. I needed a system that could deliver a tailored list of matches each day, this way I could set a designated ‘Apply for jobs’ time each day and timebox the activity.

I tried matching platforms such as Welcome to the Jungle, Cord and hackajob, but got no responses from several hundred applications. I’ve tried them at different points in my career without much success. My impression is that they’re incentivised to overfit candidates to roles. Combined with the low cost of applying, this leaves companies with a flood of similar candidates. It felt like the same problem I encountered on LinkedIn, despite a different approach to matching.

After some experimentation, I got great results through ChatGPT. I set up a task to search job boards and company career pages, then send me a daily list scored against my criteria and profile. In my experience, it surfaced better matches than the job platforms. I think having less incentive to overfit candidates to roles helped here.

Keeping the search in one chat let me refine the results in plain language. I could also ask for CV and cover letter advice, adding context about the roles I wanted. Over time this context helped the LLM find better matches, and helped me refine what I actually found interesting as the weeks went on.

An example of the job match from ChatGPT

A good example match that I ended up interviewing for.

Every day I would work through two or three of the matches ChatGPT surfaced, spending about twenty minutes each tailoring my CV to the role, writing a cover letter and submitting the application. I got responses to roughly 50% of applications I made this way.

You might be thinking - ‘Why not use AI to tailor the CV and submit the whole application?’, I tried, but it wasn’t effective. Even frontier models made awkward edits, inserted unrelated keywords and hallucinated skills. They also emphasised tasks over outcomes to match the job specification. That weakens any CV, especially a senior one.

On a related note, AI tools will add hidden characters to text, such as extra spaces or subtle differences to some characters that will get flagged on recruitment systems. If you allow the AI to directly edit your CV, make sure you run it through a sanitiser before sending it off.

Interviewing

Around July I was getting a lot more engagement, but also more rejections. I’d obviously improved my application process, now I needed to work on my interviewing technique. Most of the initial rejections happened in early stages, I figured this meant I was communicating poorly in general - since that’s all screen rounds have to judge on.

The type of interview that got the rejection
Which stage in the process I got rejected

Using feedback

Starting the day after each interview, I chased the recruiter daily for feedback. Most companies eventually told me I’d been rejected, but a minority never replied. Rejections were usually generic copy/paste emails or AI slop referencing the job title.

Percentage of companies that told me I was rejected, vs the amount that gave meaningful feedback

The few companies that gave feedback did so early in my search. This helped me understand what I was doing wrong:

In the performance management example discussed, there were opportunities to identify and address concerns earlier through more frequent feedback gathering, coaching, and intervention. For Engineering Managers, we look for leaders who actively diagnose emerging team issues, seek multiple perspectives, and take timely action to support both the individual and the wider team.

Strong engineering leaders balance empathy with curiosity when performance or behavioural concerns emerge. In the examples shared, there was a tendency to rely on surface-level signals initially rather than systematically exploring underlying causes through coaching, feedback loops, and structured investigation. Developing a more rigorous approach to understanding problems before reaching conclusions would strengthen leadership effectiveness.

This feedback followed a conversational interview. I tried to paint a picture of my effectiveness through high-level approaches and outcomes. But the interviewer was working through a checklist of specific signals. I needed to explain my process in enough detail to tick those boxes, rather than assume the overall picture would be enough.

I needed to improve in three ways:

  • Ensure I understand the intention of the question, rather than the question itself
  • Understand if the interviewer wants a discussion or a story
  • Make sure I have a story to hand that can communicate the correct signals

For example:

QuestionOther angleSignals
Tell me about a time you handled a difficult performance caseAre you a sociopath?Empathy, Coaching, Systematic, Humility
Tell me about a project you ran where you had to make difficult decisionsIf someone disagrees with you on priorities, can you manage that respectfully?Compromise, Communication, Pluralism
Tell me about a time you hired someone who wasn’t a great fitDo you learn from your mistakes?Empathy, Accountability, Prudence

After breaking down the questions like this, I used experiences from my career to build a bank of stories that could cover all signals. I wrote these down and rehearsed them - I didn’t get another rejection from this type of interview.


The next feedback came from a System Design interview. I had prepared for the specific question that came up just the day before on HelloInterview, so I was blindsided by the rejection. The feedback was:

The candidate demonstrated a design that would work, but didn’t go into the technical depth expected for someone of their seniority. I wanted to see specific solutions and more accounting for scale. I expected the candidate to refuse some of the additional requirements, or at least challenge them more confidently.

I should have checked the interviewer’s expectations as we went. I spoke in abstractions such as ‘a layer four load balancer’ and ‘a key-value store’, then explained scaling through a consistent hash ring. The interviewer wanted specific technologies, such as Redis or HAProxy, and more practical detail about using them.

The feedback on challenging requirements also surprised me. I hadn’t expected candidates to refuse or strongly challenge requirements in a system design round. Later, I found online discussions of the same team’s process that mentioned this ‘gotcha’. Researching it beforehand would have helped me prepare.

Making my own feedback

I wasn’t going to improve at interviewing using the minimal amount of feedback I was getting, so I started collecting my own data. I began recording my interviews with screen-recording software (or just my own microphone if there was a request to not record) then reviewing them later.

This helped me massively. It was immediately obvious what I was doing wrong, and helped me narrow focus on a few key areas. For example:

  • I was over-explaining my background and experience - I was cramming my entire career into 3 minutes and failing. This is inefficient communication - the interviewer already has my profile. To mitigate this, I started using audience-centric communication - thinking what the interviewer is most likely to care about.
  • I scheduled interviews back-to-back, and my focus deteriorated with each one. I needed more time between them to prepare and rest.
  • I spoke too slowly in an effort to be clear, dragging out discussions.
  • Nerves sometimes made me seem stiff. A little conversation at the start helped me build rapport and relax.
  • During recruiter screens, they would ask questions that were steering me down a particular path - often this was either misleading or ended up conveying the wrong image of my skillset. I started more confidently steering the discussion from the start of calls to pre-empt this.
  • During technical interviews I wasn’t talking through my thought process clearly enough. I needed to pause, process my thoughts then communicate them. A small, uncomfortable pause is better than going on a tangent.

Watching every recording and taking notes became time-consuming. I automated the review using local-only tools because I didn’t want to upload potentially sensitive recordings to a hosted service. The workflow looked like this:

flowchart TD

    A[Audio / Video Recording]

    A --> B[FFmpeg]
    B --> C[WhisperX]

    subgraph Transcription["Transcription + Diarisation"]
        C --> D[faster-whisper]
        D --> E[Whisper large-v3]

        C --> F[Alignment]

        C --> G[pyannote.audio]
        G --> H[speaker-diarization-community-1]
    end

    E --> I[Timestamped Transcript]
    F --> I
    H --> I

    I --> J[Bash Wrapper]

    J --> K[analysis.sh]
    J --> L[summarize.sh]

    subgraph LLM["Local LLM Analysis"]
        K --> M[Ollama]
        L --> M

        M --> N[Qwen3 8B]

        N --> O[Q&A Extraction]
        N --> P[Answer Effectiveness Scoring]
        N --> Q[Topic Summarisation]
    end

    O --> R[Analysis JSON / Markdown]
    P --> R
    Q --> S[Summary JSON / Markdown]

I used local models with some heavily refined prompts to extract valuable feedback from each transcription. For example:

  • Did one person talk for much longer periods than the other?
  • Were questions answered directly, correctly and concisely?
  • Were there any unusually long pauses?

This system found very useful signals that I had missed in my own analysis. The summaries of discussions were also useful, as I could retain information from previous rounds and generate notes or prep material for future rounds automatically.

Talking about AI

Companies’ use and acceptance of AI varied wildly. Some I spoke to barely used it; others seemed to have outsourced all their work to it. This didn’t seem to correlate with the products they built.

In interviews, be cautious. You might be speaking to an AI-pilled company whose internal culture hasn’t adapted yet. Start talking about replacing your partner with a chatbot and you may quickly get a rejection email.

On the other hand it’s important to not come across like a luddite - most companies will screen out people who are totally against using AI.

Treat it like a discussion about politics: you don’t yet know the interviewer’s views. Be non-committal and pragmatic, then open up as you understand their perspective.

Why is this market bad?

You might be thinking that I eventually landed a lot of interviews, and multiple offers - how can this market be bad?

By saying it’s ‘bad’, I’m not saying it’s impossible to navigate, but that the experience of looking for a role was significantly more unpleasant than any of my previous searches. Here are some reasons why:

Hiring hasn’t caught up with AI

I no longer write code by hand. I use AI to translate my requirements into code, then review the output. Most companies still use LeetCode-style challenges that I have little motivation to prepare for. Spending 30 hours a week grinding would help me pass an interview round, but offers little value to my day-to-day work.

I want to call out some companies that had better processes:

  • Sliide gave me a three-stage take-home challenge. The tasks would take days without AI, so they asked me to use it, aggressively timebox each task and document what specifically I used it for. In the next round, I walked through my work. This felt closer to real-world work while still testing whether I understood the output.
  • CloudX took a similar approach. Their take-home test would take over a day without AI, but an hour or two with it.
  • Meta gave me a code-review challenge rather than a code-writing challenge, although this was during an earlier job search.

The market is saturated with good-quality candidates

There are more candidates in the market, and junior talent is extremely capable, particularly when using AI. Over the last five years, each batch of graduates I’ve hired has made me feel more like a prehistoric caveman. This competition raises employers’ expectations and puts downward pressure on wages.

Employers behaving badly

In this round of interviews I had so many bad experiences, I’ll call out some of the companies by name and with examples:

  1. Deliveroo - I received positive feedback after a screen and was promised a follow-up. An hour later, I received a rejection email with no explanation. Repeated requests for feedback went unanswered.
  2. A London-based company contacted me about a VP of engineering role. In the first two rounds, they repeatedly described it as hands-off. The third round unexpectedly included a coding challenge with the CTO. The feedback said the role was ‘80% hands-on’, so I wasn’t a good fit. This company wasn’t even a startup.
  3. One company opened by asking what my parents did for work. This theme continued for a full hour. Unsurprisingly, they gave me no feedback.
  4. GitHub - I was contacted about several roles, but everything moved at a glacial pace. After an initial conversation with a hiring manager, I was told the role would be re-listed with changed expectations. They encouraged me to apply again, then ignored my emails until an automated rejection arrived two months later. Why ask me to reapply if they weren’t going to engage? No wonder their website breaks every ten minutes.
  5. After a screen, one company said they were keen to progress, then ghosted me for three months. They eventually asked if I was still interested because interviews were starting. I said yes. The next morning, they rejected me because my profile didn’t match the role.
  6. At Barclays, the interviewer spent 25 of our 30 minutes talking about their own career. They then told the recruiter I didn’t have “enough architecture experience”. If I hadn’t joined the call, the interview would barely have been different.

Recruiter guidance ahead of interviews was also frequently inaccurate. For example:

  1. I was told a technical test would be to analyse some Terraform code, create a Kubernetes cluster then troubleshoot issues at the application layer. In the interview, there was no Kubernetes cluster - all the tests were to do with creating and connecting different AWS services.
  2. I was told to expect an SRE fundamentals interview. Instead, I faced an interrogation-style review of my CV with no mention of SRE.
  3. A recruiter said the coding challenge used Python, but the role wouldn’t require it. In the interview, I learned that the company’s entire infrastructure codebase was written in Python and they wanted an expert.

No guidance would be better than bad guidance. I sometimes spent hours preparing for the wrong interview. I then appeared unprepared, got rejected and lost time I could have spent on another process.

Few companies made an effort to show why I should want to work there. Most interviews were rubric-style tests of whether I ‘met their bar’, offering little insight into what working there would be like.

The Engineering Manager role is overloaded

Most of the roles I interviewed for were engineering manager roles, but expectations varied drastically between companies. Each process required technical rounds at a senior or staff individual contributor level, plus behavioural rounds testing that company’s management expectations. Understanding what each company expected of managers took substantial preparation; the same title could describe very different jobs.

A graph showing which type of roles I interviewed for

These roles demanded more than either a pure management or technical lead role. I’m not convinced the companies I spoke with will find people who meet that bar. I’ve met very few people who excel at both, and none who want to do both jobs simultaneously over the long term.

In my view, frontline engineering management is no longer a great job. You’re exposed to AI-induced layoffs and close to the work, but not close enough to truly claim specific outcomes. You support people but don’t have much power to fix the organisational problems affecting them. You’re also on the frontline of the disruption AI transformations are causing to engineering workflows. That can make your impact hard to demonstrate. By comparison, dedicated individual contributor and management career paths offer clearer expectations and more measurable impact.

Summary

This job search was difficult, and the market is definitely more fickle than before. But there are still good opportunities if you adapt rather than expect the market of 2022 to come back from the dead.

TL;DR

  • Companies are picky. Strong competition makes their processes less forgiving.
  • Use AI to help with applications, but don’t let it own the process.
  • A CV should start a conversation, not tell your life story or secure an immediate offer.
  • Use whatever you can to improve: seek feedback, prepare for each interview and review your performance.
  • Discuss AI pragmatically: explain where it helps and what problems it creates, without evangelising or demonising it.