I from time to time do something like what you are looking for, I believe. But I also think that it’s going to be difficult to find those “solid specifications you might get from a customer”.
What I do is to start a project that usually reinvents the wheel, so you know exactly what is needed, and focus on experimenting at different levels as you said: architecture, project management, design, UI, coding, CI/CD, pipelines, quality, etc. You also end up learning a lot about the problem itself.
For me the goal of those projects has not traditionally be to release something and create the next startup, but to experiment and have some fun. In my last project I also tried OpenFastTrack, which is a tool for gathering requirements and tracking their completion in the repository.
It was a lot of fun. Maybe this sounds good to you, and the truth is I have been looking forward to collaborate with others with the same approach, to also introduce the “autonomous team” factor to the experimentation 🙂.
This also happens in the Midsize Companies I have worked for, and also in the Small Companies where management was not technical or had no interest in technical topics.
I think key factors are:
That said, and whereas the advice might be effective, it also sucks to not be true to your own values. I would suggest to try to be communicative, but maybe don’t become the asshole we all hate. And try to know more about the company on this regard while interviewing. Difficult, true, but include this in the list of factors when deciding which companies to join.