If I wanted to get a senior-level job in my local area, I can do this pretty easily. I have experience with the .NET framework, so those jobs have been available to me for years, and usually an interview is a week away from an initial application, or from one of the many recruitment emails I get. The same goes for Ruby jobs, since I have been using Ruby for about a year with public projects I can refer to.
Now, let's move that to larger companies outside of my local area. I've recently been looking at roles in London for larger companies, since I would like to move to NYC in the not-so-distant future. If I apply for a role at a big tech company I'm almost guaranteed to be rejected (FAANG, Twitter, IBM, Oracle, Adobe). If I apply for a role at a larger multinational company - the likes of JP Morgan, Bloomberg, Buzzfeed, Deliveroo, WorkDay, any investment bank based in London, IBM, Squarespace, the list goes on - and I'll be rejected. In fact, in the last month I can count over thirty rejections. This is for a developer with ten years experience, albeit at startups and agencies, but someone that has put time in.
IMO, it boils down to a handful of things:
1. Companies want to hire developers that match their criteria perfectly. I can apply for a Java role with recent, but limited, Java experience, and be rejected. This is because I'm not a Java developer. The same goes for Python, despite the fact that I've worked with Python and Django on a project last year. I'd be rejected by most companies because I'm not a Python developer, despite...you know, knowing enough Python to get up to speed quickly.
2. Companies would rather interview someone nearby. Bear in mind that I can get to London by 9 if I get the first train in from Bristol, so travel isn't a huge issue, but in my experience a lot of companies would rather interview someone that can interview on-site in a week, and usually someone a few hours away will want time to arrange something.
3. Somewhat against the first point, many companies will happily hire a less experienced person because they are cheaper. If they cannot get someone that matches the first criteria, they'll get the cheapest person.
4. Most posts on job boards are bullshit. Out of the thirty rejections this month, a few of them were for companies hiring in my exact stack, while also saying they sponsor visas. Those ads are still up on Stack Overflow Jobs, or have been renewed, but they weren't interested in me - even when my stack and experience almost perfectly align with theirs.
If you were to ask me a few months ago whether I thought finding another job as an experienced developer would be hard, I'd say no, because I am in demand in a reasonably big tech city in my country, but after the last month I'm not so sure. Many of these roles obviously get filled, so either there's something about my specific experience that turns people off, or this experienced developer shortage is down to companies wanting one (or more) of the above criteria to be met before considering a hire.