The lack of rigor and sanity in software engineering (especially wrt. web services) was enough to burn me out for the first time before I was thirty. The lack of sanity and engineering in scientific computation did it again five years later, and I've never recovered. It's been eight years, and I still don't function properly.
I've found that answering questions on forums is a good way to keep up with the tech, and rarely make some interesting contacts, if you keep looking for the new and interesting stuff (to you, that is; I do
not mean trendy), and completely ignore the popularity contest crap. (We definitely do not live in the information age anymore; that came and went. We live in the reputation or popularity age, now.)
This.. I guess rejection of good practice, tested science, and robust engineering? .. is widespread, if you care to look. One of the best examples I can think of, is the evolution of the C standard. C99 was a great step in the correct direction, but most of C11 is utter crap. None of the known good interfaces from POSIX (like
getline()) got included in the standard, but a lot of frankly useless "safe versions" of I/O functions, invented by Microsoft, were. It makes zero sense, unless you consider it from MS's business standpoint, ignore all long-term effects, and consider only the short term. I just wonder how the committee members went along with it, some of them actually know what they are doing, programming/software engineering-wise.
I can see similar stuff in the embedded area. Sure, Arduino is an excellent environment for playing with microcontrollers and electronics; it makes them Legos, essentially. However, if you look at the implementation, it's not that impressive; many libraries conflict, or need changes to work with certain hardware or other libraries, fracturing the code base. Not good engineering. Embedded Linux SBC's are even worse. Too many of them use a hacked-up kernel and userspace, with zero regards to maintenance, and zero effort to push it upstream (so that the hardware would stay maintained for longer than until the manufacturer pushes out the next revision). And, of course, people blame Linux, and not the manufacturers, for putting out a crappy software implementation.
How do you do work you can be proud of, and still get paid, in this world?