I agree on the "what I know" (also generally called 'boring tech'). Your boring tech stack is slightly different from 'mine' but also very similar in a sense. I guess we differ in being a Microsoftie vs. a *NIXer.

I think we also see a lot of stack choices here that are really great for smaller operations but don't scale well to larger ops. Pure initial speed of untyped languages and magic frameworks are great if you're alone or work with a few co-workers that you're close with and that know all of the magic by heart. Once you reach a certain size and you can't keep the whole thing in your head at all times, typed languages w/ IDE support just become so much faster. You are no longer building new stuff all time or adjust things you intimately know. You have to figure out yet another dusty corner of the code base that was written years ago by people that have since left the company. You really want to be able to just 'click through' the code in your IDE to understand it, without having to have a complete mental model of the whole thing in your head already and remember the 13 magic incantations that make the whole thing actually do something at runtime. Languages and frameworks that allow simple string searchability are king. I see "someString" somewhere, I want to be able to find _everything_ related to that by searching "someString". I don't want to have to try "some_string" or "some-string" or "string" (because "some" is a magic prefix added by some framework) to find related things!

SQL Server, while MS (which I don't like personally in any stack), has good foundations and they evolved it nicely. SQL Server is very boring as in, they licensed an established database and developed it for their own purposes and stack (i.e. their own operating system). For the newbies: MS SQL Server is Sybase ASE basically and the SQL dialect, Transact-SQL is the Sybase SQL dialect. Awesome boring tech that I 'grew up with'.

Love PostgreSQL myself and I am so glad to see that many many more people than "in my youth" are now finally using Postgres instead of MySQL. I'm at a Postgres using place right now and that's great!

Personally as I'm a *NIX guy, my boring backend language is Java and the not quite as boring one on the same JVM is Kotlin. I have dabbled in C# privately and love it from what I've seen, but never professionally because it comes with the 'wrong' rest of stack but the language and standard library is really nice and feels 'familiar' as a Java guy.

Totally with you on the FE: less is more! ;) Unfortunately there are these pesky users that want a UI and pay our bills. For that Typescript w/ React is soooo much better than either JQuery or Angular (never had to work with others) ever were going to be in a large shop.

NoSQL is "fine". It's actually boring tech! Just with a new twist. My dad used to tell me something along the lines of "Relational databases? That new-fangled stuff that's way too slow because you gotta join this table and that table and yet another table and all those indices that take forever to update on each write? Nah! We have the tables in exactly the format we need them and we look things up by key! Way faster!". That was on IBM mainframes. Big Iron.