In 2020 Laurent Bercot, the developer of the s6 init tools, was contacted by a recruiter at Google. He wrote an answer which he made public. That answer deserves to be spread far and wide. I present the answer here as a direct copy from the original. https://unixsheikh.com/articles/this-is-how-you-keep-your-dignity-and-not-sell-your-soul.html
systemd is an example of the extreme manifestation of low quality software in the area of system programming. This is because complexity is a very important factor that controls both the creation and defeat of errors, including security related errors. https://unixsheikh.com/articles/code-has-to-be-simplified-until-it-becomes-absolutely-correct.html
So, you normally do pip install foo, or composer install foo, or npm install foo, or perhaps go get foo, and you never read the source code of the package you just pulled down? Well guess what, that's one (almost) sure way to blow up your project! https://unixsheikh.com/articles/are-you-trusting-open-source-blindly-then-you-are-in-for-a-world-of-hurt.html
Are you a JavaScript framework or library fan-boy? One of those frontend developers who cannot figure out how to build a website without completely smothering and drowning everything in JavaScript? Well, if you are, let me share a JavaScript nightmare with you! https://unixsheikh.com/articles/javascript-malware-infested-nightmare.html
It has happened again! Another company has contacted me because they had a product developed which has now turned into a huge beast of complexity. Even basic functionality has stopped working and nobody wants to have anything to do with it. It has devastating consequences for the company because they are loosing customers every single day. I have come to the same conclusion, which I have reached in several other similar situations, the codebase is one big pile of complex object oriented mess. ht
In my last article No more object oriented programming with PHP I addressed some of the real-life problems that object oriented theory and implementation creates. In this article we'll take a look at some of the benefits of procedural programming and what you need to do, to do it in a proper manner, whether it's PHP, C, or some other programming language. https://unixsheikh.com/articles/procedural-programming-in-a-nutshell.html
Some people argue that you cannot test procedural PHP code, but that is not true. In this small tutorial I am going to show you how you can use PHPUnit to test your procedural functions. https://unixsheikh.com/tutorials/how-to-test-procedural-functions-with-phpunit.html
It's easy to determine if you really need the object oriented paradigm, you just need to look for the things that you can only do with object oriented programming and then ask yourself whether you really need that. It's called "The Three Pillars of Object-Oriented Programming". If you don't use all three at the same time, then you're not doing object oriented programming and you don't need it. https://unixsheikh.com/articles/how-do-i-know-if-i-really-need-object-oriented-programming.html
Code testing is not only great, it is a must as you cannot develop software without testing your code. However, there is something which I prefer to call "frantic code testing", which is what needs to be avoided. https://unixsheikh.com/articles/stop-being-frantic-about-code-testing.html