I'm a self taught dev, with only about 2 years of experience.
Personally, I do not apply to jobs. It feels like throwing my resume into a blackhole.
Instead, my strategy is: build an online presence
--> I put my resume online in various job sites (see 3rd to last sentence in my post for examples), I have a web portfolio, which links to my github where I have an open source project I built (in modern frameworks: node, react, postgres) and I am on LinkedIn with over 500 connections.
I get jobs interview requests from recruiters via the strategy above.
* Do you have open source code on Github?
* Do you have a web portfolio showing personal/academic/work-skill related projects?
I worked 5 months in 2020-- mostly was on sabbatical. Yet was hired twice-- both times via recruiters who contacted me on LinkedIn.
In 2021, I've worked 2 months-- recently quit a job after realizing it wasn't the right role for me. And yet, I have spoken two recruiters (1 internal and 1 external recruiter) in the past two days. I usually get 1-3+ recruiters contacting me every week or two-- why? Because I market myself, and I decided to build trendy dev skills.
That is, I focused on learning specific skills which I saw were currently in demand: Javascript (node & react), AWS Cloud, SQL, among others.
Yet, I do not know algorithms. It's an area I need to study. So, I don't think I'd be able to land the interviews you've landed-- those top notch companies. If I did, I would surely fail.
By the way, those are difficult companies to pass interviews with. They all have tons of applicants.
* Did you send your resume to those companies/orgs you've listed on the first line of your post? Or were you contacted by their recruiters?
Recruiters contact software developers because they have a urgent need to fill a role.
Whereas, if you're applying to companies then you're throwing your resume into a stack of potentially dozens or even hundreds of very well qualified, well-studied applicants who in many cases studied for weeks or months for their interviews.
I don't do that-- Instead, I put my presence online via LinkedIn, A web portfolio, and profiles on job sites (Indeed, ZipRecruiter, DICE, etc. type sites-- the ones that let you setup a resume on their site so it can be indexed by recruiters).
It sounds like it may be a problem of your strategy.
Market yourself, if you're not marketing yourself.
___________
By the way-- Homelessness is not necessarily that bad as long as you're resourceful: asking around to find A. a property camp on B. local resources such as food banks & community centers.
I've spent a year of my life living out of a tent in my pursuit of software dev skills so I could study (and not pay bills) rather than work full time.
For example, I set up a tarp tent in woods on the outskirts of Portland, OR, and would go to a community center for showers. Every day I'd go to a cafe to apply to jobs (this was back before I worked as a professional dev-- was still working in marketing). And sure, my car was broken into while I was camping there, but hey-- all replaceable stuff.
Prior to that, I lived in a tent for 4 months on someone's property east of Austin, TX. How'd I find a person's property to camp on? I asked around in my social network & also to strangers at parties-- "Hey, I am looking for a property to camp on where I'd have access to a shower, bathroom, and kitchen, do you know of anyone?" --> repeated dozens of times until I found someone who knew someone.
In Juneau, Alaska, I spent 8 weeks living in a tarp tent while working at a fish smokehouse during the morning & early evening, and then studying programming in the late afternoon & sometimes evening at a cafe or library. Food? Breakfast &. lunch: smokehouse's employee breakroom microwave. Dinner: Camping stove. Showers? Public Pool's locker room.
Was it always comfortable and easy? Hell no. Did it make me work hard to accomplish my goal of building skills? Hell yes.