Hi HN.
I kind of feel I have wasted my time/life on this career. Maybe someone can give me decent advice.
I am in my 40s now. I started coding when I was a young teen, copying code from books in the library to build text based games. I ended up making lots of my own games, some got popular. I grew a love for tinkering, coding, and building things. I eagerly joined the CS dept at university in the early 2000s, when CS attendance was at a record low. But I didn't care, I loved it.
When I graduated, I could not get a job. This was around 2004-2005. I submitted my resume to many companies and got nothing. I ended up working temp jobs, until I finally got lucky at a career fair, hit it off with a software QA person, and got my first SWE role.
This job wasn't exactly pure coding, but more like a data scientist/engineer role. But I became the coding expert on my team, and built many critical things for the company. I got the best perf reviews, threw myself into the job and did pretty well. It wasn't the most satisfying work (I just wanted to code), but I got my itch scratched enough. Unfortunately the company tanked right as I was having a kid, and I had to leave.
Next up was, in retrospect, probably the highlight of my career. Almost a pure coding job in HFT. I gelled very well with my manager and my team, and I threw myself into it. Again I was top ranked in perf reviews, and I got my first big pay check after 6 years of relatively low salaries. Then it kind of fell apart. Some controversial stuff came out, all the SWEs realized they were getting screwed, and morale sunk. It hit me very hard personally - I felt I had given my soul and life to this company, and they had screwed me over. I left and went abroad.
At this point, my career started to stagnate and I became more and more disillusioned with the software field. I could not find the same environment I had at the HFT company. Everywhere I went had people who barely had any work ethic, or were barely able to perform their job. I found it very hard to enjoy working in these environments. I started consulting to at least earn more money and try and find better roles, but nothing ever improved.
After several years of this, I was getting miserable and depressed, and my marriage was falling apart. Combined with my experience at work, I developed deep burn out. I found myself unable to work more than an hour or two a day. It was incredibly depressing. But worse, at the places I worked at, no one seemed to care. So I guess at this point I had just become like everyone else. Oh man. That was eye opening and depressing at the same time.
I decided to try and rekindle my love for engineering again. I started working on my M.S., with a plan to join FAANG when I was done. Everyone says how these are the best places to work, a true engineer's paradise. Doing the M.S. was great - I was back to programming and the basics, which I love, and I enjoyed it a lot.
I'm now an IC at a FAANG (one of F/G, you guess). And you know what? It sucks. I could go into great depth why it sucks. But suffice to say, my expectations were sorely disappointed. This was supposed to be a pinnacle of my career. Instead, it is one of the most dysfunctional places I have worked at. The only positive is the pay is extraordinary. But I don't see how I can work here for more than a year or two. It is stressful for all the wrong reasons.
At this point in my career, I'm thinking what else is there for me? I'm exhausted - tired of chasing the next dream for it to be a disappointment. I just want a job where I can flex my engineering skills without BS, work with good, competent people who care as much as I do, and be able to relax when I get home, knowing I've done what was expected of me. Does this even exist anymore?
Assume the responsibility for the things that happen in your life. It is kind of annoying to read your text, it is always some external thing that "happened" to you, and it is always other people who are not up to your standards. At some moment you even declare with despair: "(...)at this point I had just become like everyone else". And guess what? This is true and false at the same time, in a fundamental level most people are not remarkable, and you probably aren't too. But at the same time, nobody is the same, you have worth just by being, and other people have too.
I don't care about your engineering skills, while they are good enough to warrant you a job at a FAANG company, by 40, it is clear that you are not some John Carmack, a Dave Cutler, or a Linus Torvalds. So stop this bullshit about wanting to work with people who "care as much as I do", as if you are some hero descended from Olympus forced to work with those lowly mortals.
The impression I get is that you must be someone incredibly annoying to work with, and that your performance is not even nearly close to what you think it is, and that you really need to come down to earth.
Stop looking outside, work on yourself instead. You'll never be satisfied just by changing jobs. Do therapy if you wish, become acquainted with stoicism, be a volunteer in some poor country, whatever, but do something to regain control of your life, to get some perspective, and to adjust your expectations to reality.