It is. It really is.

I had posted something about jobs and looking for jobs some time before here, but the best advice I can give is that all of this "What color is your rainbow" and "Cracking the coding interview" and so on isn't really applicable or it never seemed applicable to me and my experience.

To expand on my previous comment, I'm now on my 9th job in 10 years. Over the last year or so I've had another 30-40 interviews give or take. It was probably more, but this is as close as I can get. I would have liked to spend more time on some of these jobs, but circumstances didn't work in my favor so I had to make changes. What I've learned throughout the process is that all of this is a numbers game. It also helped me spot red flags and cut the process short.

For anyone else looking for a job and for the OP, here are some things:

1. Someone who is motivated to hire someone for a job will be quick/good to communicate

2. They need to set a clear timeline and steps in the process (and if they don't, ask for one and any deviation will be a red flag)

3. They might also tell you how many others are applying for the role (not mandatory, but it's good so you have a rough idea of what your statistical chances are)

4. Be clear about salary expectations early on and if someone pushes to find your current salary, feel free to say it's higher than it actually is. Any deviation from this or if someone doesn't want to say, it's a red(ish) flag and I'd be careful. It doesn't matter and if a recruiter will comment on this - I don't care what your theory about this is, you will aim to pay the lowest amount you can humanly get away with. It's also the reason we have minimum wage laws, not because companies were showering employees with money, but because they would have kept slavery going if that made sense to their bottom line (and they still do).

5. Ask why they are hiring - did they fire a bunch of people previously, are people leaving every few months or is the team/company growing; these can help you save time later on and at least have an idea of what culture you might be joining

6. Ask how widespread the technology you're going to be using is within the company. If a company has 99% Go roles and you applied to the 1% of the roles that are in Java, why is there such a discrepancy? Is it some old code carcass left over with no documentation, testing and with no desire to further develop it but they just want a body in the chair in case something goes wrong... not sure, but that's not something I'd want to do.

7. Be CLEAR about remote work/hybrid working policies - unless it is clearly stated in the contract, it CAN be changed with no notice. A change in contract would at least generally give you some time, but without this being in the contract, you can't really back out of it (case and point, Atos had remote-ish contracts for some of their teams, then they said they updated the terms and conditions, issued a new contract and forced employees to sign or resign). At a previous role I left I was told that the team is highly flexible and remote working is normal, but it's not in the contract, but it's ok, because everyone likes it. On a Thursday we were told that from Monday its 5 days in the office.

8. Anything outside of your salary or contract is NOT guaranteed, so don't pick a job based on perks. Those tend to vanish at the first sight of trouble and also, don't be one of those people that drinks the free coffee at the office just because its free. Stuff costs to make, grow, ship, build - pay for it.

9. Don't be pressured into accepting. This is a bit weirder, but it can happen. Let's say you are interviewing at 2 companies at the same time, one is more motivated to hire, but you don't like it as much, the other has a longer process but you like their domain more. Be upfront about this - "I am interviewing with another company and would like to see both outcomes to make a decision". Being forced at this stage to drop out, being bullied into saying the company name or anything of the sort is a red flag to me. If you have an offer but you need to wait a few days or a week - say so. "I am waiting for a reply from the other company too and I can provide an answer at the end of the next week".

10. Just because you accepted a job doesn't generally mean you need to take it. This is not legal advice, so take it with a grain of salt, as it depends greatly on what you sign, how enforceable it is and where you reside. But the general idea is that, if you accepted a job, but a week or two after you get a better offer, just tell the company you accepted the offer "No". "No" is a complete sentence. You do not need to give justifications, you don't need to take abuse or anything else. You have to think about yourself. They won't. If there is some legal rationale through which you NEED to start that role, just start it and hand in your notice on the first day. Most of these contracts will have some sort of "1 week notice by either party during probation". So you can join, give your notice, work the week, get paid for it and start at the other job.

Also, it will suck. Searching for a job will suck. More and more companies (especially recruitment companies - Noir, Tietalent, Aristo Group, RM Group and Hays to name a few) are really just mining for data with little to no interest in pushing you to any of their clients. They will also tend to try and say that just because you had read about COBOL during Uni, you are now 100% COBOL dev and set you up with a rather terrible interview with some client. There are more, but I'll stop here. On a side note, if you do end up working or answering to a question from a recruitment company check their reviews, look up the person that contacted you, look up the client and apply the same rigor to them as to the company you would end up working with. This entire industry is focused on selling out people to whomever, so don't end up pushed into stuff you don't want to do by one of these enthusiastic second hand car sales people.