I am not against this article, but my personal experience, we have been using monorepo successfully and many teams onboarded successfully. I strongly believe it has got more advantages than challenges which are stepping stones. Just to mention some of the advantages with our monorepo,
Common CI checks: Continuous Integration checks like file naming convention, file location, code coverage and pull request reviewer check etc. are really helping to have unified development practice with high quality code which enables to have the stable operating environment.
Common images: Common images like Build, Runtime, and Development help to have a standard development environment and helps to find most of the issue at the development stage itself.
Easy refactoring: Restructuring is easier as everything is neatly in one place and easier to understand.
Better developer testing: This has led our developers to find more bugs locally before even sending a pull request.
Reduced code complexity: Easy to keep track of pull requests and changes happening across the repository.
Effective code reviews: Most developers understand the end to end platform and more bugs being identified and fixed at the code review stage.
Sharing of common components: We actually found that the code for each microservice became smaller, as a lot of common functionality was identified and shared across services.