The major downside of software engineering is that, more than any other career by far, your employability (what kind of job you can secure if any) is entirely dependent on your "tech interview skills", not your proven experience. There's no point at which you've finally made it into the industry and, from now on, your experience speaks for itself, the real-world skills you exercise make you more employable in the future, etc. You have to change jobs often to stay competitive, and that means passing competitive interview processes again and again. It never ends. In fact, as you reach Senior+ level, interviews get much harder.
This is different than other high-paying fields like Medicine or Law. Once you score high on the MCAT, you never have to take it again. You have to interview for Medical School, yes, but if you already look good on paper, you should be able to get accepted into, say, 2/5 schools you interview at. Then, of course, you have to get into Residency. Then you're done! Now you can focus on work, building your professional reputation. If Medicine were like Software Engineering, you would have to re-pass the MCAT five times over your career, except it would be a different test every time, and the overall difficulty would get harder.
Software engineers nowadays will spend as much as 6 months "interview prepping." Tech interviewing has become a cottage industry, with countless companies offering practice courses for "cracking" interviews. Many software engineers say that they spend more effort applying to, practicing for, and interviewing for new jobs than they do at their actual job. So being a software engineer is like having 2 jobs.
A typical interview process is like
(1) Make it through the resume stage (probably <5% for most people)
(2) Talk with recruiter for 30 minutes
(3) Hiring manager gets your resume from recruiter and decides you're worth interviewing (probably 40% success rate for most people)
(4) Either a tech screen (usually algorithms i.e. brain-teasers) or a hiring manager screen (probably a 25% success rate for most people)
(5) Now the real fun begins. You're only about 20% done with the interview process. You have to do 4 1-hour interviews in a row and pass them each with flying colors.
Be prepared for rude, arrogant interviewers. Because tech is so competitive, everyone who works in it has a big ego for having passed a competitive interview process themself.
Once again, this is your entire "career," this interviewing thing.
I know guys 40 years old who spend their weekends sitting in coffee shops doing LeetCode or reading Grokking the System Design Interview or some bull**** like that. It's pathetic.
But this is the result of everyone crowding into Computer Science once it became common knowledge that software engineers make a lot of money.