So when applying for a job, one usually spend some time beforehand finding out the company's culture (e.g., reading their website/blogs/social media/etc.). The thing is: I couldn't care less about their culture. I'm well past the stage of caring whether a company values X or Y or Z. I'm flexible. I can do them all. I'm an "easy-going" engineer. If you tell me I need to take ownership for a project from beginning to end plus maintenance, I know how to do it: I'm your guy. If you tell me that I shall not criticize my superiors and follow their advice 100%, I know how to do it too, I'm your guy. If you care about pushing features without caring about quality and tech debt: I've been there, we can deliver as fast as you want. If you care deeply about quality and long-term maintenance: you bet I can do it as well. I you tell me I can only work for your company if I'm proactive: hire me right now because I know how to do that. Monolithic applications? Distributed monoliths? Microservices all the way down? Zero problems, I can manage. You get the point.
I can be whatever you want (within reasonable limits, ofc) and I can do it efficiently. How can I signal this as a positive thing to the people who's interviewing me? Usually people think that my attitude is rather poor ("You have no personal preferences? Weird") and they don't want people like me in their teams. I have been working in so many different environments that I feel productive and efficient in all of them.
What I end up doing is faking the interview. I memorize their values and I pretend I care about them. I pass the interviews just fine. I just wish I could be more honest; I think it would be a win-win for everyone.
That's a fantasy, unfortunately. You have to play their game the way they want it played. Nobody will trust you if you claim to be omnipotent. They're really looking for people who can be molded, not people who are super-proficient out of the gate. Also, if you're too good, your superior might have to worry about his own job security. Sorry to say it but you have to swallow your pride and play the game. Or, better, start your own business.
As a rule I dislike answering open-ended and nuanced questions on the spot in interviews since it basically guarantees a poorly considered response.
These days I'll push back a little on these questions by trying to get something more specific I can answer more explicitly. Eg:
"That's a difficult question to answer on the spot... I'd need to think about it a bit honestly. It might help if you explain some of your values and I can give some thoughts on how I would fit with those."
Something I often come back to is the context dependency of a lot of these questions. The monolith vs microservices question as an example probably doesn't have a universally correct answer. Clearly understanding what being optimised for is more important that some off the cuff general opinion on the pros and cons of monoliths vs microservices. So far as I have an opinion on that debate, this would be it.
So personally I'd express an opinion by shifting the question a bit if possible. Instead of giving my values, I'd ask for company's values and explain how I'd fit. Or if I think the question is context dependent I'd probably express how important I feel the context is.
I think really interviewers are just looking for someone who can contribute useful opinions / perspectives and will work well with the team. And you can do that without having to give an on the spot answer to, "monolith vs microservices?"
It doesn’t sound like you’re flexible. You’re pretty set in your ways about disliking every company’s culture and acting like you can mold yourself to be who they want. What if they don’t want people who have to mold themselves to be X, Y, or Z?
Hard to imagine anybody less flexible and easygoing than that.
> ("You have no personal preferences? Weird")
I wouldn’t worry about this too much. Easygoing people who are productive and efficient usually have a lot of trouble coming up with people willing to be references for them.