Getting a tech job in 2025
This article is inspired by a video of the same name recently published by the brilliant Theo Browne. In October 2024, 7 years into my software engineering career, I was affected by a wave of tech layoffs for the first time. Through some grit and good fortune I was able to find a new role at a really great place after around 2 months. I want to expand on the original video a little bit with my own job application experiences here in the UK.
Hiring junior engineers
The first lead engineer I worked with used to talk about "mouldability". He said he would rather hire a team of good people with no experience and train them to do the job than hire experienced developers who were stuck in their ways and had little ambition. As a junior I only saw the positive side of this. I had landed my first job as a web developer after completely blagging my way through the interview, and grew rapidly over the first few years in an environment where it felt safe to make small mistakes.
With the benefit of hindsight I'm now able to see the other side of this statement. It was a small company. There was almost no progression, no career framework, and new, more experienced devs often felt their opinions went unheard and didn't stay too long. As much as I loved the 3 years I was there, I had to move on in order to grow any further.
Theo explains prompting Claude can feel similar to mentoring junior engineers. Going forward new tech businesses who want to move fast and push boundaries may leverage AI in this way and almost replace the role of the junior developer. There are already some extremely talented devs who are struggling to land their first role in the industry, and Meta CEO Mark Zuckerberg also recently predicted that AI will write middle engineer-level code in 2025. There's certainly nothing more mouldable than a large language model, but there will always be room for a human who cares about tech and who cares about the product they're building.
Companies hiring junior developers do so because they have the time and resources to make that investment. They likely have a fairly stable product already and need to maintain their core business offerings while starting to explore new ground. Ambitious junior developers make excellent assets to these teams. They can be shown how to contribute to the existing business tech, and have the opportunity to go into new tech/product discussions on a level playing field with their more seasoned co-workers. By the time the new MVP is ready the junior will have grown into twice the developer they were when they started, and will be ready to take on more responsibility. The investment pays off on all sides.
Money, growth and passion
Sure, there are are juniors without a burning ambition. This is true for all levels. If anything it's more common the more you climb the corporate ladder. Over the years I've been quite resilient against burnout, but one of my biggest challenges after being laid off from a job I loved and poured everything into for over 4 years was finding the motivation to move on. I'm not embarassed to say I submitted a few job applications because I needed "a job". Thankfully, I did end up finding a place I really cared about and felt welcome.
I've worked with plenty of people who've seen their tech job as that; a job. They do their 9-5 and complete every task they're asked to complete but never push further. As a junior beneath these people it can be quite frustrating, but they're usually good people with other things going on in life. I've worked with bosses who will say "You need the passion to code for 13 hours a day if you want to grow" but then also say "You need a work-life balance". Can you have both?
Regardless, in 3 years you will have surpassed the people you're working harder than, but most importantly you will also have surpassed yourself. The thing about applying for a junior engineer role is, you're probably only going to have to do it once.
I'm from the generation that got into coding because it was fun, and it's important to me that I still spend time outside of working hours keeping it fun. I watch tech YouTube videos (obviously) and build goofy little experiments. I see no reason not to think this mindset has helped my career over the years, and naturally, money often comes with that.
There will always be people who get into tech because of the money, and this is often painted in a negative light. While I didn't do so myself, I can also say without a doubt one of the best and most abitious lead engineers I ever worked with has always been very open about the fact he was drawn to tech because of the money. As much as it pains me to admit, I included money for the first time as one of the factors to consider in my most recent job search. The reality is that 7 years ago I didn't have a car, or a mortgage. If I also factor in marriage and young children, I can sympathise with his reasoning a bit more now than I could then. If nothing else, I've seen proof that getting into tech for money doesn't have to mean you won't be a passionate engineer who's hungry to grow and deliver value.
It's easy for a manager to see low output in team members as a product of low ambition, but this is not always true. Those who have settled for that easier lifestyle will end up being tasked with some of the more monotonous tasks that might not be the best use of the senior's time. If the company budget allows for it, they will be kept around. Unfortunately for seniors, this paints a much larger target on them.
Layoffs
Layoffs, usually called redundancies here in the UK, are common in tech. Big tech in the US goes through waves of hiring and firing in the thousands, but generally speaking the UK is quite resilient to this. In fact, my own redundancy experience was through a once-English company who'd been bought out by an American firm a couple years ago. Call it coincidence if you will.
For those looking for a new dev job, this means you have a massive pool of people to compete with. Especially now that a lot of companies are willing to hire remote to find the best talent. For people aspiring to move into more senior roles for the first time, the ambition you've carried in your career so far - as well as the fact you're probably going to have a lower salary expectation than someone moving between senior roles - will work to your advantage here. This depends, unfortunately, on you being able to land an interview in the first place; which is proving to be more challenging than ever before.
The role of AI
AI is everywhere, whether we like it or not. If you're working for a startup right now, you're probably being asked by an executive to shove AI into their product somehow. You probably know someone using an AI code-completion tool in their daily workflow. If you're looking for another job, you're probably using AI to write your CV/résumé, and you're probably having it be reviewed and processed by AI, too.
I'm one of the few old farts that has yet to adopt AI into most of the things I do. Sure, I've used ChatGPT a few times with mildly successful results. The cover image for this article is the first image I've ever generated with AI that I've then actually found a use for, but in terms of how I navigate AI I'm comparable to that old man in the pub that thinks Facebook, Google, and "the internet" are all the same thing. It never crossed my mind to leverage AI during my job application process until I realised it was being used against me anyway.
![A young man excitedly starting his first day as a software engineer in a modern tech office](img/article-preview.webp)
Most of the jobs I applied for in the early days simply went unanswered. They all had hundreds of applicants within mere days of being posted. My first rejection came exactly 10 days after applying, with a generic message from an email address seemingly belonging to a woman who worked at the company but wasn't mentioned on the original application or the company website. The email said I hadn't made the cut this time. I replied thanking them for responding to my application and asking if they could provide any further feedback - eager to know if something in my CV had come across the wrong way or if I was missing a particular skill. Unfortunately, I never heard back.
A few weeks later, also exactly 10 days after applying, I received an eerily similar email from a different company. By this point during the job search I was feeling pretty burned out, so replied with a simple "Thank you for getting back to me. Have a good day." To my surprise, I received a thorough reply a few seconds later expanding on the fact I had been rejected - without clarifying the reason - and wishing me well for the future. There is no a way a human could have written this reply in this time. For me, this felt worse than failing any tech test or awful interview.
I spent something like two dozen hours on my CV in the weeks I was applying for jobs. I spent a lot of time on the wiki in the r/EngineeringResumes subreddit which was an absolute gold mine of wisdom. I also shared my CV on LinkedIn and with some ex-colleagues and a few very kind people gave me some very good feedback. Some pointed out I could just get AI to write it (and covering letters) for me, but I wanted them to represent me, warts and all. Something about it just didn't feel right.
Eventually I had tweaked my CV enough so that even after days of staring at it I couldn't think of any more changes. At that point I finally scratched the itch and fed it into ChatGPT. I asked it to rewrite the content to be more concise, professional, and help pass ATS (Applicant Tracking Systems). What I received back was something that felt extremely similar with no real reason behind a lot of the wording changes. It just felt less like me. Some of the points also now started with words that the EngineeringResumes wiki had specifically said to avoid. After sitting on the proposed changes for a few days I ended up taking the ones I liked - generally the ones that removed words from points without removing meaning - and discarding the ones I didn't. The result was a marginal improvement. I felt happy that I was able to create something that could only be refined to such a limited extent, but you could also argue I could have saved myself a dozen hours by just doing that in the first place.
Technical assessments
I encountered some very different viewpoints on AI (and tooling in general) while doing tech tests for companies. Nobody likes tech tests, especially not the person issuing them, but ultimately it's a common way for companies to try and ensure they're getting what they pay for. As a candidate, they also show you what kind of place you're interviewing for.
During a first round conversation with one company, I was asked about my competence in 7 different languages and frameworks. I told them with all honesty I was pretty confident in 6 of the 7, but the final one was something I had virtually no experience in and would have to spend a few weeks learning in order to really fill the role. They said this was absolutely fine. That night I was sent a link to a recorded online assessment with very clear rules. I had to have my camera on and share my screen for the duration of the test, and during the test I was not allowed to navigate away from the main test page. No Googling, no AI assistants, no documentation. The questions generally asked about quirks of each technology or gave a snippet of code and a problem to solve. All things an AI would have been exceptional at answering I'm sure. Unfortunately for me most of the questions were very specific to the one language I had confessed to having no competence in. I spent the hour sweating my way through; trying and failing to run the code given until I got somewhere near a solution. After the first few questions I realised I was fighting a losing battle and started skipping the ones I knew I'd never get. I am by no means the best developer out there, but I think a lot of people would have struggled here. Quite frankly the whole thing felt a bit unfair, but I suppose I would say that considering how terribly I performed. To my absolute shock at the end of the test, I was notified that I had performed in the top 36% of candidates and someone would "be in touch". Naturally, I never heard from this company again. When describing this experience to some of my former co-workers, more than one of them said they would have left the room and returned when the timer hit zero, simply refusing to comply with a test of this nature.
Not too long after this, I attended my only in-person technical assessment where I was questioned for half an hour then given a React Native project to work on. The project environment was relaxed, but it was still an assessment. While trying to kick my brain back into gear after the questioning, I forgot a fairly simple piece of syntax I needed and asked sheepishly if I could Google it quickly. The interviewer seemed quite surprised by the question and said "Absolutely. Use whatever you need, I just want to see how you work." Needless to say this was one of the better experiences I had, by far.
The only truly unsupervised assessment I did was for a finance company who had sent a very math/logic-heavy problem to solve. Instructions were loose and I had a whole week to play about with a solution. I quite liked this approach. It suggested I could have used AI or any tooling to help write the solution and even unit test it, but the problem itself was complex enough that I would have needed some pretty specific prompts in order to get an accurate working implementation.
The final assessment of note was a pairing exercise with a lead engineer. He had prepared a small Laravel project with clear instructions about where he wanted to take it. My job was to follow those instructions under his watch, talking through each. After some light back and forth we managed to complete every requirement. At the end I asked how he would have felt if I had brought up an AI assistant to go through the task with me. He said quite nonchalantly that if I wanted to work that way I was more than welcome, as the important thing was explaining the process, navigating the architecture, and ultimately understanding the problem. Again, this was a positive experience.
While I didn't end up taking offers at any of these companies, I sincerely hope companies 2, 3 and 4 have found exactly what they need in their ideal candidate, and I hope company 1 has found a new way to test people, or launched their own dev trivia-oriented game show. I'd watch it.
The importance of networking
Not only is building relationships important, it's something you're going to do whether you're trying or not, so you might as well build good ones.
I got my first ever dev job interview through the recommendation of a great friend who later became a colleague. I got my second job interview through the recommendation of a colleague who later became a great friend. I still had to do the interviews and tech tests, but having those connections is an incredible advantage. If nothing else it gets your CV a bit closer to the top of the pile.
"Back in the day" I was encouraged to go to local tech and business meetups and conferences to build my network. Many companies will even make time for their devs to go to conferences if there's something there that will make you better at your job. A lot of what you get out of this depends on your patience and your ability to socialise. You're not going to get offers thrown at you just by attending a meetup, although you might get a great slice of pizza.
For introverts, you can expand your network without leaving your room. Most conferences stream their talks. Platforms like Facebook, YouTube, Twitch, Discord, Reddit, Dev.to and LinkedIn are full of amazing tech creators, people eager to join conversations and explore the social side of tech. Popular open source projects often have thousands of issues and discussions on GitHub.
While I don't have a Twitch or a Discord myself, I can't see a negative side to joining such a community if I really wanted to boost my career prospects. Theo got so many comments for plugging his own communities that he had to address them in his own comment, which seems a little unfair. That being said, there are hundreds of communities out there, and you should find ones that suit you, your interests, and your humour - because there's a lot of crap out there too.
The one massive advantage joining communities will bring you is being able to have a conversation about tech. Interviews don't have to be an intense round of questions and answers, they can be conversations. If you can talk (and listen!) comfortably about your skills, interests and experiences you're going to have a great interview. You might even enjoy it. This communication skill will only benefit you when aiming for more senior roles. You'll be able to outline project technical requirements clearly, communicate progress to stakeholders in a way they can understand, and effectively mentor and pair with your colleagues.
A note on recruiters
The UK tech market is saturated with recruitment companies who essentially act as middlemen between you and your prospective employer. Their job is to find you, find jobs that match your skills, and help you prepare for the interview processes. In return they receive a commission from the employer when a new candidate is successfully hired.
There are some recruiters out there who will try to shove you in every role they find so they can get their commission. There are some who will ghost you completely if you're not having much success or not including specific keywords on your CV. I got many messages from recruiters who didn't put me forward for roles because I didn't have Node.js listed as a skill on my CV despite the fact I really didn't see a reason to include it or see it as different enough from vanilla JavaScript to even make that distinction. Of course, a wiser man may have just shut up and listed it.
There are also recruiters who will spend hours on the phone telling you more than you could possibly even need to know about your potential new employer, new manager, and new role. There are good people who will wish you the best of luck even if you decide not to go with their agency in the end. Good luck finding them, because it's becoming increasingly hard to avoid using recruiters altogether.
![Every job search result on LinkedIn for 'senior software engineer' returns a recruitment agency](img/linkedin-job-search.png)
I've met a few really solid devs who landed their first roles straight out of university or bootcamps due to recruitment agencies attending career days or sponsoring those bootcamps. All of the experiences I mentioned above were found through recruiters. They can be a real asset; helping negotiate salaries and providing essential information that may otherwise be hard to find. If networking is important, which it should be, then recruiters are your cheat code.
Parting thoughts
In one of my previous roles I used to hold second stage interviews for back end engineering applicants. I saw a lot of CVs and a lot of different types of people. I'm proud to say I never gave anyone a pass that didn't then go on to become an absolute asset to the company. I did this by holding each candidate to a specific set of criteria that I later applied to myself when I was applying for roles. If I could sum them up I would say: be honest, be yourself, have a conversation, be respectful, celebrate your team, and find something about the company that makes you want to work there. Or, as Theo succintly ended his video:
Make friends, build trust, show the world that you kind of know what you're talking about, and you won't have as bad of a time.