Navigating the 2024 Software Engineering Job Market

Maria Matyushenko
7 min readJul 28, 2024

Once again, I found myself on the job search. We’ve all been there: feeling drained at work, trapped in the same routine, and knowing it’s time to break out of our comfort zone and dive back into the world of interviews. But this time, I could tell things were going to be more challenging — let me explain why.

The State of the Job Market

When I decided to look for a new job in March 2024, the job market was brutal. The tough economic situation had forced many tech companies, including some giants, to downsize massively, leading to hiring freezes across the board. As a result, many talented people found themselves back on the job hunt. With fewer positions available and more people competing for them, you can imagine the math wasn’t in my favor.

Then there’s the infamous “Easy Apply” button on LinkedIn. It made job applications so easy that people are practically swiping right on every job posting that vaguely matches their profile. LinkedIn has basically become a job version of Tinder.

The first hint that this job search would be a tough nut to crack was seeing hundreds of applicants for every job posting. Even those posted less than 24 hours ago had more people lining up than a Black Friday sale at a tech store.

Luckily, I was in a better situation than many of my fellow software engineers and some dear friends. I still had my job, and it was my choice to change it. I could take my time and didn’t have to accept the first offer I received. The timing wasn’t perfect, but let’s be honest — when is it ever perfect? Sometimes, you just have to trust your gut and take the leap.

My Approach to Job Searching

I had to come up with a strategy, which I’d like to share in this blog post.

Disclaimer: Job searching is an entirely individual journey, and I don’t claim my approach is the best one.

I’m just another wanderer on this bumpy path who managed to land several offers. But if any of the methods I used can help someone else struggling with getting a job, I’ll consider it a success.

As mentioned, each open position seemed to attract applicants like free donuts attract coworkers. So, how do you stand out from the crowd?

Crafting a CV

The most important first step was to prepare my CV. A couple of friends of mine who are in recruitment confirmed that CVs are incredibly important. When faced with a mountain of resumes, a lazy CV export from LinkedIn is about as exciting as a tax form. You might be a great engineer, but you can easily be overlooked. So, my first advice is to put effort into preparing a good CV.

There are endless debates on the internet about how long and detailed a CV should be. I aimed to fit mine onto two pages — not too little, but not too much to read. For each job experience, I included a short summary of my achievements, along with bullet points of my responsibilities. I wanted my CV to tell the story of my professional journey, rather than just being a list of skills.

I also find it crucial to link all relevant accounts and contributions — GitHub, X (former Twitter), a blog, etc. Some recruiters won’t even look at a software engineer’s CV if it’s not linked to a GitHub profile. A well-crafted CV puts you one step ahead of others!

ChatGPT is a great tool to use here — it saved me tons of time and helped me prepare a neat CV. Just remember to use it wisely and don’t copy and paste everything it gives you. Draft your CV first and use the tool for grammar, enhancement, and style.

A Cover Letter Can Make a Difference

Now, let’s talk about the importance of a cover letter. Many people underestimate it and copy-paste the same generic cover letter for every company. But imagine you’re a recruiter. You have to read hundreds of applications and decide which ones to pursue and which to reject. A good, catchy cover letter can make your application stand out.

My method was to keep it short but personal. I would mention why I wanted to join that specific company and how I thought I could contribute to the team. This shows a) you’re interested in that particular company, and b) you’ve checked the position carefully and could imagine yourself as part of the team.

I took the time to write a new personal cover letter for each company I applied to. Yes, it was tedious, but I believe it was worth it. As mentioned earlier, I was fortunate to have the luxury of being picky with companies and positions to apply for since I had a stable job and plenty of time.

Applying for a Job

For each position I found interesting, I didn’t use the “Easy Apply” button on LinkedIn. Instead, I went directly to the company’s website and applied there.

Yes, it takes extra effort to go around LinkedIn, but that was exactly my point. I wanted to show recruiters that I’m not just pressing the button — I’m making a real effort. Whether it helped or not, I can’t say for sure, but I got more replies this way than when applying through LinkedIn. To be completely honest, I don’t think I received any responses at all from using the “Easy Apply” feature. Maybe it’s like buying local — it’s the thought that counts.

Playing the Waiting Game

Once you start applying, don’t expect every company to respond to you. As I mentioned, they’re overwhelmed with applications and might not reply to everyone. Don’t take it personally; just keep on applying.

If I received a negative response, even at the very first step, I’d still reply nicely and thank them for their time. Being nice is very important. Sometimes, it could lead to a follow-up where they put your CV in a backlog for future openings.

The Interview Marathon

When I got through the application process and started getting invites for interviews, it was really tough. I’ve never had so many technical interviews in my entire professional life. Each company had at least three to four rounds of interviews (one had six), and most of them were technical. I was doing take-home tasks, technical conversations, pair programming, on-site workshops, case studies — you name it. And I wasn’t applying to tech giants, just small startups and medium-sized companies. But even they have definitely raised the expectations!

So, how did I survive all these interviews? First, I took every interview and every stage of the process seriously. For each interview, I started preparing a few days in advance by reading articles related to the position and the technologies they use and solving some programming tasks. During the recruiting period, I also tried to boost my knowledge. I found enrolling in some online classes helpful (I find Udemy a great platform for self-education) and got familiar with new programming languages and frameworks. Maybe not everyone needs it, but for me, it gave me more confidence.

During interviews, my approach was to be professional but honest. If I didn’t know the answer to a question, I’d just say so. I believe honesty is more important than pretending to know everything and guessing the answer.

If the interview goes well, they usually give you 10 minutes at the end for questions. Use this time wisely! I personally prepared questions for the interviewer upfront. Why do I think this is important? First, remember that you might be joining this company and team. Make sure you get an idea of how they work and if it aligns with your expectations. By asking questions, you show you’re truly interested in the position.

Also, I had some very insightful conversations during interviews by asking simple questions about the team, processes, or the company. And I could see that the interviewer was happy to explain and engage in the discussion, which I believe made me more memorable when it was time to make a decision.

The Salary Negotiation

Let’s talk about the awkward topic of salary expectations. Depending on the person, this can be a breeze or a minefield. For me, it was always tough to talk about money, and I was often underpaid because of it.

This time, I took a different approach: when it comes to salary expectations, I would ask, “What is the salary band for this position?” This simple question rolls the ball to the company’s court, requiring them to reveal their cards. Once you know the range, you can navigate within it. Don’t be shy to ask for the higher end of the band, especially if the interviews go well!

Wrapping Up: The Stats

To summarize, going through the hiring process was tough. The first interviews were bumpy, but the more I did it, the more confidence I gained. Like many other things in life, with practice, you get better. And I have to admit that at some point, I even started enjoying challenging myself in solving test tasks :)

In the end, here are some stats:

  • I applied to a total of 12 positions that I really liked, plus a few more “easy applies” from which I never heard back.
  • I got 6 responses (2 rejections and 4 invitations to initial interviews).
  • Out of the 4 companies I interviewed with, I received 3 offers.
  • It took about 2 months from the moment I started applying to signing a contract.

I think that’s not a bad result, right? What do you think? If you managed to read this far, thank you so much!

And if you’re going through the job search process right now, I hope you find some of my experiences useful. You got it!

--

--

Maria Matyushenko

I am a passionate Software Quality Assurance engineer. My job is to support companies in developing quality thinking and providing high quality software.