⟵back

The two-year itch

In September, I hit the two-year mark of starting my first dev position and had occupied more than one ongoing position within those two years. I didn't want potential employers to take one look at my CV and write me off as a dreaded "job-hopper"; however, I had also realised that my current situation wasn't conducive to autonomous professional growth. It was time to take charge of my career.

I had started applying for my first jobs a couple of months prior, in July, but I got my first offer this past November: 113 days later, to be exact. And the absolute irony is that while I invested a whole lot of time in searching for postings and writing applications, in the end, I signed a contract with a company that had approached me!

But frankly, I was surprised it took so long. After all, aren't companies supposed to be thirsting for developers?

As I see it, I had several factors working against me:

  1. The fact my title on paper was still "junior developer" and I was aiming for mid-level roles
  2. The current economic situation, with many tech companies laying off staff or implementing hiring freezes (I'll admit, for this reason alone, I felt like giving up more than once and just hanging on to what I had even though it was making me unhappy)
  3. The negative feelings I held towards my current role

Regarding that last point, my partner brought up something I hadn't thought of: you need to allow yourself space to grieve the fact that this job, this company, ultimately didn't turn out how you thought it would be. I realised that in order to successfuly move on, it was important to first make peace with the fact that we were no longer a good match, and then, to believe that something better was out there. To be honest, this is considerable growth from what I might have believed even a year ago. I'd have gritted my teeth and pushed through, lest I be labelled a "quitter" (especially since most workers around the world "have it so much worse").

Dealbreakers

As part of the process, I should mention that I also did some rejecting myself, too. I understand that if you are looking to land your first-ever dev job, this might be hard to swallow. But no matter how desperate you might be to get out, you should feel empowered to turn companies down. After all, you don't want to hop from one miserable situation to another! Here are some reasons why I've broken off the process:

  1. A surprise live-coding challenge in what had been set up as a initial getting-to-know-you video call
  2. Weird, patronising vibes, such as: implying I'd be a diversity hire; asking me if I knew what a tuple was; the statement "your CV shows a creative background, but you wouldn't be doing that kind of thing here"
  3. Unfavourable attitude towards remote work — perhaps not such a big deal for everyone, but definitely very important to me

All the same, that doesn't change the fact that after many rejections, no matter which side it came from, it's natural to begin to doubt yourself.

In this post, I want to sum up how I went about looking for a new job. It's a big undertaking, after all, with lots of aspects to consider, but it can be done without that extra pain.

Looking for a job in practical terms

Timing

Job opportunities fluctuate depending on the time of year and, well, the economy. For example, when I was looking for a job in summer 2021, I was able to compile 60 positions that fit my profile, and only 10 of those were taken down before I could apply. I got an offer within two months. This time around, it has been rather different. I found fewer decent positions on my level (this may be my own personal filter getting stricter, though), and I was invited to fewer interviews. The vast majority of the positions available were for senior or staff developers (by the way, here's why you shouldn't necessarily assume that simply hiring a senior will solve all your problems). In the end, the feedback I heard most often after an interview was "we picked someone with more experience", which adds to my theory of it being tougher out there for the junior-mid people, aka the two-year-itchy crowd. Which leads me to the next point...

Experience & skills

Well, first of all, what exactly is enough experience? What we tend to forget, as early-career developers, is that no matter if we're only a few months or a couple of years into our first job, we're already so much further than we were not so long ago. We just don't notice because we're already worrying about being "good enough" and learning the next hot new thing...

Many job ads measure experience in years employed in that position at a company, when actually, it's often a lot less linear or straightforward. My advice is to actually search for opportunities that don't have any "experience specification" in the title — for example, by using the search term "junior developer", you may be shutting out some good results. Maybe search "Python developer" and go for postings that ask for one more year of experience than what you currently have, for example.

It also seems like there are actually a few companies out now that are not obsessed with applicants being skilled in a single particular tech stack, but rather possessing general software engineering skills. They are harder to come by, especially because you're most likely searching by a certain language or framework, but they are certainly out there.

What I have concluded is that it can't hurt to go over your fundamentals. I was surprised when an interviewer started quizzing me on Python basics that I now take for granted. When your fundamentals are good, everything else will follow. Even the stuff you haven't learnt yet.

Organisation

Spreadsheets are everything. For job applications, I created quite a sophisticated one featuring a colour-coded system indicating when I applied, how interested I was in the job, where I was in the application process, and any possible misgivings. Having a column for the Google Docs link to the cover letter was also useful.

Something that often comes up in career advice is that you should have an individualised CV for each company. But unless the companies truly are disparate in their missions or fields, that is an awful lot of work. To simplify the process, you could first look at the companies you've put in your spreadsheet and consider what they have in common. Then figure out what exactly is it about the company that stands out to you? If you're genuinely aware of why you're applying (apart from, obviously, the radical need for food and shelter), you'll also come across a lot more confident and sincere in interviews.

If you're not familiar with time-blocking, this might be a good moment to get into it. Job-hunting is famously a full-time job in itself, and due to the nature of our industry, you will also feel a (not unjustified) pressure to constantly be improving your knowledge alongside that.

That's why another thing you should organise, whether you're looking for a job or not, is your personal learning curriculum. If you see recurring technologies being mentioned in the job postings you're interested in, it's probably going to be worth investing some time in them. For this, I use Notion. I have pages and sub-pages on each topic, with notes on concepts to learn later. It's also a great place to post code snippets and even embed external documents from Figma, Miro, and other places.

Resilience

Sometimes, rejections don't make sense. After doing a tech test, I was told in the subsequent interview that I had been the only candidate who'd used a certain paradigm in my code. After that, I was pretty sure I had it in the bag, but then a couple of days later, I got an email saying I didn't.

And sometimes, your assumptions may also turn out to be wrong. In one case last year, I gave my salary expectations to a new, small company, expecting them to negotiate lower, yet that's what they ended up putting in their offer, because they thought I was a perfect fit. Yet another company I was interviewing with, active in an industry where... let's just say you'd assume they'd have cash to spare... told me my expectations were too high. In that particular case, I also had a hunch I'd not be making much of an individual impact.

Results

Recruiters have been consistently impressed by my career change; the way I'd instigated it myself and pushed for it. So, to junior devs and career changers, who are feeling nervous about not having much experience: own it! Not everyone has the guts to do what you've done! There are some excellent talks on the topic of advocating for yourself and creating a brand in the You Got This! conference archive.

Conclusion

With the right combination of discernment, self-belief, and organisation, you will be able to find a job. It's easy to become disheartened in the current climate, but I promise: you'll get there! If your applications are just not working out, please get some feedback from a friend, mentor, or your coding community. Good luck!