Just remember that many popular stacks are due to marketing; often the marketing pushes you in ways that are highly profitable for whoever sells you the stack. Unfortunately, if you follow their instructions to the T, you will spend more money, and may make architectural mistakes that hold you back.

(IE, be careful before you drink the kool-aide on "cloud" or whatever comes next.)

Also, many blog posts are by people trying to make themselves feel important, pad their resumes, or otherwise self-promote. Tone management in a blog post can make an awful architecture sound wonderful. Other wonderful architectures may be the wrong fit for what you're trying to do.

Finally: Avoid many layers of abstraction. It just adds unneeded complexity to your code and makes it too hard to onboard new hires. Carefully review all 3rd party libraries before you commit to using them. Sometimes introducing a 3rd party library to "save an hour today" will quickly "burn a day, week, or month" later.

That is a lot of what not to do. What are some ways to learn what to do for someone just getting into the field?

Best way to learn is by working with someone experienced.

Or just use mature solution like Rails for example it solves most of typical problems and has easy itegrations. If you need more flexibility then maybe Node.js or other ecosystem is better.

Generally theme about architecture is called System Design and there are resources to learn it for interviews/learning purposes but most of it only is applicable at very big scale and you might never need it. Read "Designing Data Intensive Applications" and look into [1] if still interested.

IMO better to invest time into data design/querying (caching) so that you won't think you need some vodoo to handle your traffic. Like 90%+ of sites/apps don't have 1000req/second and this should be handled by Python on Arduino so as long as your DB design is good you are fine.

For async processing it's worth taking a look into Temporal [2] as it looks as promising alternative to job ques and cronjobs.

I can also recommend [3] to learn some cloud patterns

[1] https://github.com/donnemartin/system-design-primer

[2] https://temporal.io/

[3] https://docs.microsoft.com/en-us/azure/architecture/patterns...