I've changed companies a lot as a software engineer and I noticed that whenever I join a new company, I usually feel like the dumbest person in the company at the beginning - For example, other developers might mention specific features of Linux which I had never come across before or they might make references to certain technical concepts which I didn't know about. But a couple of months in, I usually feel smart again and then I get bored... (This cycle happens every time when I change company).
What I realized is that knowledge doesn't flow very well between companies - Each one tends to get specialized in very specific ways but they don't realize it. The developer who has been around the longest is the most knowledgeable when it comes to the technology surrounding the project in its current state - So it's very difficult for another regular developer to 'win' an argument against them - This is bad because the most senior developer is often too deeply set in his ways (it works best for him) but in reality, you need the whole team to take a few steps back to find something which works best for everyone.